{"version":3,"sources":["webpack:///./node_modules/devextreme-vue/data-grid.js","webpack:///./node_modules/devextreme/esm/ui/shared/accessibility.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/m_accessibility.js","webpack:///./node_modules/devextreme/esm/events/double_click.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/column_state_mixin/m_column_state_mixin.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/m_modules.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/views/m_columns_view.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/column_headers/m_column_headers.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/m_core.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/column_headers.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/columns_controller/const.js","webpack:///./node_modules/devextreme/esm/core/utils/date_serialization.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/columns_controller/m_columns_controller_utils.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/columns_controller/m_columns_controller.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/m_columns_controller.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/data_controller/m_data_controller.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/m_data_controller.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/data_source_adapter/m_data_source_adapter.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/m_data_source_adapter.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/sorting/m_sorting_mixin.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/sorting/m_sorting.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/sorting.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/views/m_rows_view.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/rows.js","webpack:///./node_modules/devextreme/esm/core/utils/stubs.js","webpack:///./node_modules/devextreme/esm/ui/widget/ui.search_box_mixin.js","webpack:///./node_modules/devextreme/esm/ui/text_box/utils.caret.js","webpack:///./node_modules/devextreme/esm/ui/text_box/ui.text_editor.mask.rule.js","webpack:///./node_modules/devextreme/esm/ui/validation_message.js","webpack:///./node_modules/devextreme/esm/ui/editor/editor.js","webpack:///./node_modules/devextreme/esm/ui/text_box/texteditor_button_collection/button.js","webpack:///./node_modules/devextreme/esm/ui/text_box/ui.text_editor.clear.js","webpack:///./node_modules/devextreme/esm/ui/text_box/texteditor_button_collection/custom.js","webpack:///./node_modules/devextreme/esm/ui/text_box/texteditor_button_collection/index.js","webpack:///./node_modules/devextreme/esm/ui/text_box/ui.text_editor.label.js","webpack:///./node_modules/devextreme/esm/core/resize_observer.js","webpack:///./node_modules/devextreme/esm/ui/text_box/ui.text_editor.base.js","webpack:///./node_modules/devextreme/esm/ui/text_box/ui.text_editor.mask.strategy.js","webpack:///./node_modules/devextreme/esm/ui/text_box/ui.text_editor.mask.js","webpack:///./node_modules/devextreme/esm/ui/text_box/ui.text_editor.js","webpack:///./node_modules/devextreme/esm/ui/text_box/text_box.js","webpack:///./node_modules/devextreme/esm/ui/text_box.js","webpack:///./node_modules/devextreme/esm/ui/hierarchical_collection/ui.data_converter.js","webpack:///./node_modules/devextreme/esm/ui/hierarchical_collection/ui.data_adapter.js","webpack:///./node_modules/devextreme/esm/ui/hierarchical_collection/ui.hierarchical_collection_widget.js","webpack:///./node_modules/devextreme/esm/ui/context_menu/ui.menu_base.edit.strategy.js","webpack:///./node_modules/devextreme/esm/ui/context_menu/ui.menu_base.js","webpack:///./node_modules/devextreme/esm/ui/context_menu/ui.context_menu.js","webpack:///./node_modules/devextreme/esm/ui/context_menu.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/context_menu/m_context_menu.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/context_menu.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/error_handling/m_error_handling.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/error_handling.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/views/m_grid_view.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/grid_view.js","webpack:///./node_modules/devextreme/esm/ui/collection/ui.collection_widget.async.js","webpack:///./node_modules/devextreme/esm/ui/toolbar/constants.js","webpack:///./node_modules/devextreme/esm/ui/toolbar/ui.toolbar.base.js","webpack:///./node_modules/devextreme/esm/ui/toolbar/ui.toolbar.utils.js","webpack:///./node_modules/devextreme/esm/ui/toolbar/strategy/toolbar.multiline.js","webpack:///./node_modules/devextreme/esm/ui/list/item.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.scroll_view.native.pull_down.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.scroll_view.native.swipe_down.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.scroll_view.simulated.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.scroll_view.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view.js","webpack:///./node_modules/devextreme/esm/ui/shared/grouped_data_converter_mixin.js","webpack:///./node_modules/devextreme/esm/renovation/utils/type_conversion.js","webpack:///./node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_element_style.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.base.js","webpack:///./node_modules/devextreme/esm/ui/toolbar/internal/ui.toolbar.menu.list.js","webpack:///./node_modules/devextreme/esm/ui/popup/popup_drag.js","webpack:///./node_modules/devextreme/esm/ui/resizable.js","webpack:///./node_modules/devextreme/esm/ui/popup/popup_position_controller.js","webpack:///./node_modules/devextreme/esm/ui/popup/popup_overflow_manager.js","webpack:///./node_modules/devextreme/esm/ui/popup/ui.popup.js","webpack:///./node_modules/devextreme/esm/ui/popup/ui.popup.full.js","webpack:///./node_modules/devextreme/esm/ui/popup.js","webpack:///./node_modules/devextreme/esm/ui/toolbar/internal/ui.toolbar.menu.js","webpack:///./node_modules/devextreme/esm/ui/toolbar/strategy/toolbar.singleline.js","webpack:///./node_modules/devextreme/esm/ui/toolbar/ui.toolbar.js","webpack:///./node_modules/devextreme/esm/ui/toolbar.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/header_panel/m_header_panel.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/header_panel.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/m_widget_base.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/state_storing/m_state_storing_core.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/state_storing/m_state_storing.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/state_storing.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/selection/m_selection.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/selection.js","webpack:///./node_modules/devextreme/esm/renovation/utils/dom.js","webpack:///./node_modules/devextreme/esm/renovation/component_wrapper/editors/editor.js","webpack:///./node_modules/devextreme/esm/renovation/component_wrapper/editors/check_box.js","webpack:///./node_modules/devextreme/esm/renovation/ui/common/utils/get_updated_options.js","webpack:///./node_modules/devextreme/esm/renovation/ui/common/dom_component_wrapper.js","webpack:///./node_modules/devextreme/esm/renovation/ui/overlays/validation_message.js","webpack:///./node_modules/devextreme/esm/renovation/ui/editors/common/editor.js","webpack:///./node_modules/devextreme/esm/renovation/utils/get_computed_style.js","webpack:///./node_modules/devextreme/esm/renovation/ui/editors/check_box/utils.js","webpack:///./node_modules/devextreme/esm/renovation/ui/editors/check_box/check_box_icon.js","webpack:///./node_modules/devextreme/esm/renovation/ui/editors/check_box/check_box.js","webpack:///./node_modules/devextreme/esm/renovation/ui/editors/check_box/check_box.j.js","webpack:///./node_modules/devextreme/esm/ui/check_box.js","webpack:///./node_modules/devextreme/esm/ui/tree_view/ui.tree_view.base.js","webpack:///./node_modules/devextreme/esm/ui/tree_view/ui.tree_view.search.js","webpack:///./node_modules/devextreme/esm/ui/tree_view.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/column_chooser/m_column_chooser.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/column_chooser.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/m_utils.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/grouping/m_grouping_core.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/grouping/m_grouping_collapsed.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/grouping/m_grouping_expanded.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/grouping/m_grouping.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/master_detail/m_master_detail.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/master_detail.js","webpack:///./node_modules/devextreme/esm/ui/number_box/utils.js","webpack:///./node_modules/devextreme/esm/ui/number_box/number_box.caret.js","webpack:///./node_modules/devextreme/esm/ui/number_box/number_box.spin.js","webpack:///./node_modules/devextreme/esm/ui/number_box/number_box.spins.js","webpack:///./node_modules/devextreme/esm/ui/number_box/number_box.base.js","webpack:///./node_modules/devextreme/esm/ui/number_box/number_box.mask.js","webpack:///./node_modules/devextreme/esm/ui/number_box/number_box.js","webpack:///./node_modules/devextreme/esm/ui/number_box.js","webpack:///./node_modules/devextreme/esm/ui/drop_down_editor/ui.drop_down_button.js","webpack:///./node_modules/devextreme/esm/ui/drop_down_editor/utils.js","webpack:///./node_modules/devextreme/esm/ui/drop_down_editor/ui.drop_down_editor.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.strategy.grouped.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.decorator_registry.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.provider.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.search.js","webpack:///./node_modules/devextreme/esm/ui/list_light.js","webpack:///./node_modules/devextreme/esm/ui/editor/ui.data_expression.js","webpack:///./node_modules/devextreme/esm/ui/drop_down_editor/ui.drop_down_list.js","webpack:///./node_modules/devextreme/esm/ui/radio_group/radio_button.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.decorator.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.decorator.selection.js","webpack:///./node_modules/devextreme/esm/ui/select_box.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.mask.parts.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_utils.js","webpack:///./node_modules/devextreme/esm/ui/calendar/ui.calendar.navigator.js","webpack:///./node_modules/devextreme/esm/ui/calendar/ui.calendar.base_view.js","webpack:///./node_modules/devextreme/esm/ui/calendar/ui.calendar.views.js","webpack:///./node_modules/devextreme/esm/ui/calendar/ui.calendar.selection.strategy.js","webpack:///./node_modules/devextreme/esm/ui/calendar/ui.calendar.single.selection.strategy.js","webpack:///./node_modules/devextreme/esm/ui/calendar/ui.calendar.multi.selection.strategy.js","webpack:///./node_modules/devextreme/esm/ui/calendar/ui.calendar.range.selection.strategy.js","webpack:///./node_modules/devextreme/esm/ui/calendar/ui.calendar.js","webpack:///./node_modules/devextreme/esm/ui/calendar.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.calendar.js","webpack:///./node_modules/devextreme/esm/renovation/ui/scroll_view/utils/convert_location.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_view_roller.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_view.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.date_view.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.native.js","webpack:///./node_modules/devextreme/esm/ui/box.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.time_view.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.calendar_with_time.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.list.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.base.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.mask.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.js","webpack:///./node_modules/devextreme/esm/ui/shared/ui.editor_factory_mixin.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/editor_factory/m_editor_factory.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/editor_factory.js","webpack:///./node_modules/devextreme/esm/ui/dialog.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/editing/const.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/editing/m_editing_utils.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/editing/m_editing.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/m_editing.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/editing/m_editing_row_based.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/editing_row_based.js","webpack:///./node_modules/devextreme/esm/ui/form/ui.form.items_runtime_info.js","webpack:///./node_modules/devextreme/esm/ui/form/ui.form.item_option_action.js","webpack:///./node_modules/devextreme/esm/ui/form/ui.form.utils.js","webpack:///./node_modules/devextreme/esm/ui/form/ui.form.item_options_actions.js","webpack:///./node_modules/devextreme/esm/ui/responsive_box.js","webpack:///./node_modules/devextreme/esm/ui/form/constants.js","webpack:///./node_modules/devextreme/esm/ui/validation/default_adapter.js","webpack:///./node_modules/devextreme/esm/ui/validator.js","webpack:///./node_modules/devextreme/esm/ui/form/ui.form.layout_manager.utils.js","webpack:///./node_modules/devextreme/esm/ui/form/components/label.js","webpack:///./node_modules/devextreme/esm/ui/form/components/field_item.js","webpack:///./node_modules/devextreme/esm/ui/form/components/button_item.js","webpack:///./node_modules/devextreme/esm/ui/form/components/empty_item.js","webpack:///./node_modules/devextreme/esm/ui/form/ui.form.layout_manager.js","webpack:///./node_modules/devextreme/esm/ui/validation_summary.js","webpack:///./node_modules/devextreme/esm/ui/validation_group.js","webpack:///./node_modules/devextreme/esm/ui/form/ui.form.js","webpack:///./node_modules/devextreme/esm/ui/form.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/editing/m_editing_form_based.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/editing_form_based.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/editing/m_editing_cell_based.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/editing_cell_based.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/validating/m_validating.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/validating.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/virtual_data_loader/m_virtual_data_loader.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/virtual_scrolling/m_virtual_scrolling_core.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/virtual_scrolling/m_virtual_scrolling.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/virtual_scrolling.js","webpack:///./node_modules/devextreme/esm/ui/overlay/utils.js","webpack:///./node_modules/devextreme/esm/ui/menu/ui.submenu.js","webpack:///./node_modules/devextreme/esm/ui/menu/ui.menu.js","webpack:///./node_modules/devextreme/esm/ui/menu.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/filter/m_filter_row.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/filter_row.js","webpack:///./node_modules/devextreme/esm/ui/list/modules/search.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/header_filter/m_header_filter_core.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/header_filter/m_header_filter.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/header_filter.js","webpack:///./node_modules/devextreme/esm/ui/filter_builder/between.js","webpack:///./node_modules/devextreme/esm/ui/filter_builder/ui.filter_operations_dictionary.js","webpack:///./node_modules/devextreme/esm/ui/filter_builder/utils.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/filter/m_filter_custom_operations.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/filter/m_filter_sync.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/filter_sync.js","webpack:///./node_modules/devextreme/esm/ui/filter_builder/filter_builder.js","webpack:///./node_modules/devextreme/esm/ui/filter_builder.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/filter/m_filter_builder.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/filter_builder.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/filter/m_filter_panel.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/filter_panel.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/search/m_search.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/search.js","webpack:///./node_modules/devextreme/esm/renovation/component_wrapper/grid_pager.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/utils/get_element_width.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/resizable_container.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/common/base_pager_props.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/common/pager_props.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/info.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/common/keyboard_action_context.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/common/light_button.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/common/consts.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pages/page.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pages/large.js","webpack:///./node_modules/devextreme/esm/renovation/ui/editors/common/editor_state_props.js","webpack:///./node_modules/devextreme/esm/renovation/ui/editors/common/editor_label_props.js","webpack:///./node_modules/devextreme/esm/renovation/ui/editors/number_box.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/utils/calculate_values_fitted_width.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pages/small.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pages/page_index_selector.js","webpack:///./node_modules/devextreme/esm/renovation/ui/editors/drop_down_editors/select_box.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/page_size/small.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/page_size/large.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/page_size/selector.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/content.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pager.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pager.j.js","webpack:///./node_modules/devextreme/esm/ui/pager.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/pager/m_pager.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/pager.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/columns_resizing_reordering/m_columns_resizing_reordering.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/columns_resizing_reordering.js","webpack:///./node_modules/devextreme/esm/__internal/utils/memoize.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/keyboard_navigation/const.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/keyboard_navigation/dom.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/keyboard_navigation/m_keyboard_navigation_utils.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/keyboard_navigation/m_keyboard_navigation.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/m_aggregate_calculator.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/keyboard_navigation.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/summary/m_summary.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/column_fixing/m_column_fixing.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/column_fixing.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/adaptivity/m_adaptivity.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/virtual_columns/m_virtual_columns_core.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/adaptivity.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/virtual_columns/m_virtual_columns.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/virtual_columns.js","webpack:///./node_modules/devextreme/esm/ui/button_group.js","webpack:///./node_modules/devextreme/esm/ui/drop_down_button.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/m_export.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/export/m_export.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/focus/m_focus_utils.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/focus/m_focus.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/focus/m_focus.js","webpack:///./node_modules/devextreme/esm/__internal/m_draggable.js","webpack:///./node_modules/devextreme/esm/__internal/m_sortable.js","webpack:///./node_modules/devextreme/esm/ui/sortable.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/row_dragging/const.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/row_dragging/dom.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/row_dragging/m_row_dragging.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/row_dragging.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/m_widget.js","webpack:///./node_modules/devextreme/esm/ui/data_grid.js"],"names":["__importDefault","this","mod","__esModule","Object","defineProperty","exports","value","DxHide","DxHeaderFilter","DxGroupPanel","DxGroupOperationDescriptions","DxGroupItem","DxGroupingTexts","DxGrouping","DxFrom","DxFormItem","DxFormat","DxForm","DxFilterRow","DxFilterPanelTexts","DxFilterPanel","DxFilterOperationDescriptions","DxFilterBuilderPopup","DxFilterBuilder","DxFieldLookup","DxField","DxExportTexts","DxExport","DxEmailRule","DxEditingTexts","DxEditing","DxDataGridSelection","DxDataGridHeaderFilterTexts","DxDataGridHeaderFilterSearch","DxDataGridHeaderFilter","DxCustomRule","DxCustomOperation","DxCursorOffset","DxCompareRule","DxColumnLookup","DxColumnHeaderFilterSearch","DxColumnHeaderFilter","DxColumnFixingTexts","DxColumnFixing","DxColumnChooserSelection","DxColumnChooserSearch","DxColumnChooser","DxColumn","DxCollision","DxColCountByScreen","DxChange","DxButton","DxBoundaryOffset","DxAt","DxAsyncRule","DxAnimation","DxDataGrid","DxValueFormat","DxValidationRule","DxTotalItem","DxToolbarItem","DxToolbar","DxTo","DxTexts","DxSummaryTexts","DxSummary","DxStringLengthRule","DxStateStoring","DxSorting","DxSortByGroupSummaryInfo","DxShow","DxSelection","DxSearchPanel","DxSearch","DxScrolling","DxRowDragging","DxRequiredRule","DxRemoteOperations","DxRangeRule","DxPosition","DxPopup","DxPatternRule","DxPaging","DxPager","DxOperationDescriptions","DxOffset","DxNumericRule","DxMy","DxMasterDetail","DxLookup","DxLoadPanel","DxLabel","DxKeyboardNavigation","DxItem","data_grid_1","index_1","index_2","createComponent","props","accessKey","String","activeStateEnabled","Boolean","allowColumnReordering","allowColumnResizing","autoNavigateToFocusedRow","cacheEnabled","cellHintEnabled","columnAutoWidth","columnChooser","columnFixing","columnHidingEnabled","columnMinWidth","Number","columnResizingMode","columns","Array","columnWidth","customizeColumns","Function","dataRowTemplate","dataSource","dateSerializationFormat","disabled","editing","elementAttr","errorRowEnabled","export","filterBuilder","filterBuilderPopup","filterPanel","filterRow","filterSyncEnabled","filterValue","focusedColumnIndex","focusedRowEnabled","focusedRowIndex","focusedRowKey","grouping","groupPanel","headerFilter","height","highlightChanges","hint","hoverStateEnabled","keyboardNavigation","keyExpr","loadPanel","masterDetail","noDataText","onAdaptiveDetailRowPreparing","onCellClick","onCellDblClick","onCellHoverChanged","onCellPrepared","onContentReady","onContextMenuPreparing","onDataErrorOccurred","onDisposing","onEditCanceled","onEditCanceling","onEditingStart","onEditorPrepared","onEditorPreparing","onExporting","onFocusedCellChanged","onFocusedCellChanging","onFocusedRowChanged","onFocusedRowChanging","onInitialized","onInitNewRow","onKeyDown","onOptionChanged","onRowClick","onRowCollapsed","onRowCollapsing","onRowDblClick","onRowExpanded","onRowExpanding","onRowInserted","onRowInserting","onRowPrepared","onRowRemoved","onRowRemoving","onRowUpdated","onRowUpdating","onRowValidating","onSaved","onSaving","onSelectionChanged","onToolbarPreparing","pager","paging","remoteOperations","renderAsync","repaintChangesOnly","rowAlternationEnabled","rowDragging","rowTemplate","rtlEnabled","scrolling","searchPanel","selectedRowKeys","selection","selectionFilter","showBorders","showColumnHeaders","showColumnLines","showRowLines","sortByGroupSummaryInfo","sorting","stateStoring","summary","syncLookupFilterValues","tabIndex","toolbar","twoWayBindingEnabled","visible","width","wordWrapEnabled","emits","computed","instance","$_instance","beforeCreate","$_WidgetClass","default","$_hasAsyncTemplate","$_expectedChildren","column","isCollectionItem","optionName","dataGridHeaderFilter","dataGridSelection","createConfigurationComponent","hide","show","$_optionName","ignoreEmptyValue","message","reevaluate","type","validationCallback","$_isCollectionItem","$_predefinedProps","x","y","cssClass","icon","name","onClick","template","text","data","insertAfterKey","insertBeforeKey","lg","md","sm","xs","alignment","allowEditing","allowExporting","allowFiltering","allowFixing","allowGrouping","allowHeaderFiltering","allowHiding","allowReordering","allowResizing","allowSearch","allowSorting","autoExpandGroup","buttons","calculateCellValue","calculateDisplayValue","calculateFilterExpression","calculateGroupValue","calculateSortValue","caption","cellTemplate","customizeText","dataField","dataType","editCellTemplate","editorOptions","encodeHtml","falseText","filterOperations","filterType","filterValues","fixed","fixedPosition","format","formItem","groupCellTemplate","groupIndex","headerCellTemplate","hidingPriority","isBand","lookup","minWidth","ownerBand","selectedFilterOperation","setCellValue","showEditorAlways","showInColumnChooser","showWhenGrouped","sortIndex","sortingMethod","sortOrder","trueText","validationRules","visibleIndex","AsyncRule","button","columnHeaderFilter","columnLookup","CompareRule","CustomRule","EmailRule","NumericRule","PatternRule","RangeRule","RequiredRule","StringLengthRule","validationRule","emptyPanelText","enabled","mode","position","search","searchTimeout","title","columnChooserSearch","columnChooserSelection","timeout","allowSelectAll","recursive","selectByClick","texts","columnFixingTexts","fix","leftPosition","rightPosition","unfix","groupInterval","searchMode","columnHeaderFilterSearch","searchExpr","allowClearing","displayExpr","valueExpr","comparisonTarget","comparisonType","dataTypes","editorTemplate","hasValue","dataGridHeaderFilterSearch","dataGridHeaderFilterTexts","cancel","emptyValue","ok","deferred","selectAllMode","showCheckBoxesMode","allowAdding","allowDeleting","allowUpdating","changes","confirmDelete","editColumnName","editRowKey","form","newRowPosition","popup","refreshMode","selectTextOnEditStart","startEditAction","useIcons","change","editingTexts","addRow","cancelAllChanges","cancelRowChanges","confirmDeleteMessage","confirmDeleteTitle","deleteRow","editRow","saveAllChanges","saveRowChanges","undeleteRow","validationCancelChanges","allowExportSelectedData","formats","exportTexts","exportAll","exportSelectedRows","exportTo","fieldLookup","allowHierarchicalFields","bindingOptions","customOperations","fields","filterOperationDescriptions","focusStateEnabled","groupOperationDescriptions","groupOperations","maxGroupLevel","onValueChanged","customOperation","field","animation","closeOnOutsideClick","container","contentTemplate","copyRootClassesToWrapper","deferRendering","dragAndResizeArea","dragEnabled","dragOutsideBoundary","enableBodyScroll","fullScreen","hideOnOutsideClick","hideOnParentScroll","maxHeight","maxWidth","minHeight","onHidden","onHiding","onResize","onResizeEnd","onResizeStart","onShowing","onShown","onTitleRendered","resizeEnabled","restorePosition","shading","shadingColor","showCloseButton","showTitle","titleTemplate","toolbarItems","wrapperAttr","between","contains","endsWith","equal","greaterThan","greaterThanOrEqual","isBlank","isNotBlank","lessThan","lessThanOrEqual","notContains","notEqual","startsWith","filterEnabled","filterPanelTexts","clearFilter","createFilter","filterEnabledHint","applyFilter","applyFilterText","betweenEndText","betweenStartText","operationDescriptions","resetOperationText","showAllText","showOperationChooser","alignItemLabels","alignItemLabelsInAllGroups","colCount","colCountByScreen","customizeItem","formData","items","labelLocation","labelMode","minColWidth","onEditorEnterKey","onFieldDataChanged","optionalMark","readOnly","requiredMark","requiredMessage","screenByWidth","scrollingEnabled","showColonAfterLabel","showOptionalMark","showRequiredMark","showValidationSummary","validationGroup","currency","formatter","parser","precision","useCurrencyAccountingStyle","colSpan","editorType","helpText","isRequired","itemType","label","left","opacity","scale","top","allowCollapsing","autoExpandAll","contextMenuEnabled","expandMode","groupingTexts","groupByThisColumn","groupContinuedMessage","groupContinuesMessage","ungroup","ungroupAll","alignByColumn","displayFormat","showInColumn","showInGroupFooter","skipEmptyValues","summaryType","valueFormat","and","notAnd","notOr","or","allowColumnDragging","complete","delay","direction","duration","easing","from","staggerDelay","start","to","html","locateInMenu","location","menuItemTemplate","options","showText","widget","editOnKeyPress","enterKeyAction","enterKeyDirection","showColon","indicatorSrc","showIndicator","showPane","allowedPageSizes","displayMode","infoText","showInfo","showNavigationButtons","showPageSizeSelector","pageIndex","pageSize","pattern","toolbarItem","at","boundary","boundaryOffset","collision","my","of","offset","max","min","filtering","groupPaging","trim","allowDropInsideItem","autoScroll","cursorOffset","dragDirection","dragTemplate","dropFeedbackMode","filter","group","handle","onAdd","onDragChange","onDragEnd","onDragMove","onDragStart","onRemove","onReorder","scrollSensitivity","scrollSpeed","showDragIcons","columnRenderingMode","preloadEnabled","rowRenderingMode","scrollByContent","scrollByThumb","showScrollbar","useNative","highlightCaseSensitive","highlightSearchText","placeholder","searchVisibleColumnsOnly","groupColumn","summaryItem","ascendingText","clearText","descendingText","showSortIndexes","customLoad","customSave","savingTimeout","storageKey","calculateCustomSummary","groupItems","recalculateWhileEditing","totalItems","groupItem","summaryTexts","totalItem","avg","avgOtherColumn","count","maxOtherColumn","minOtherColumn","sum","sumOtherColumn","item","FOCUS_STATE_CLASS","FOCUS_DISABLED_CLASS","FOCUSED_ROW_SELECTOR","GRID_ROW_SELECTOR","GRID_CELL_SELECTOR","concat","TREELIST_ROW_SELECTOR","TREELIST_CELL_SELECTOR","viewItemSelectorMap","columnHeaders","rowsView","footer","isMouseDown","isHiddenFocusing","focusedElementInfo","processKeyDown","viewName","event","action","$mainElement","executeKeyDown","isHandled","fireKeyDownEvent","originalEvent","keyName","saveFocusedElementInfo","target","addClass","selectView","$target","ariaLabel","attr","$activeElements","getActiveAccessibleElements","element","targetIndex","index","extend","viewInstance","viewElement","$viewElement","find","findFocusedViewElement","viewSelectors","root","getRootNode","getDocument","selector","$focusViewElement","first","length","executeAction","args","handled","_createActionByOption","onDocumentVisibilityChange","visibilityState","subscribeVisibilityChange","on","unsubscribeVisibilityChange","off","hiddenFocus","preventScroll","focus","registerKeyboardAction","$element","option","getMainElement","keyDownHandler","e","mouseDownHandler","removeClass","focusinHandler","needShowOverlay","$targetElement","eq","trigger","ctrlKey","viewNames","keys","viewItemIndex","indexOf","_viewName","setTabIndex","keyboardController","getController","isKeyboardEnabled","createAction","DBLCLICK_EVENT_NAME","DBLCLICK_NAMESPACE","NAMESPACED_CLICK_EVENT","DBLCLICK_TIMEOUT","DblClick","inherit","ctor","_handlerCount","_forgetLastClick","_firstClickTarget","_lastClickTimeStamp","add","_clickHandler","bind","timeStamp","Date","now","timeBetweenClicks","isSimulated","isDouble","remove","COLUMN_INDICATORS_CLASS","GROUP_PANEL_ITEM_CLASS","_a","columnAlignment","_getColumnAlignment","parameters","isGroupPanelItem","rootElement","hasClass","$indicatorsContainer","_createIndicatorContainer","$span","_getIndicatorClassName","columnsController","component","indicatorAlignment","getHeaderContentAlignment","indicator","_renderIndicator","ignoreIndicatorAlignment","_getIndicatorContainer","setAria","css","$cell","$indicatorContainer","children","$container","$indicator","append","indicatorName","getColumns","$cells","getColumnElements","i","_updateIndicator","rowOptions","parent","cells","command","_applyColumnState","WIDGET_WITH_LEGACY_CONTAINER_NAME","ModuleItem","that","_updateLockCount","_actions","_actionConfigs","callbackNames","flags","callbackFlags","unique","syncStrategy","_endUpdateCore","optionCache","_optionCache","arguments","apply","_setOptionWithoutOptionChange","actionName","get","prefix","setAttribute","_createComponent","_controllers","config","_createAction","empty","className","componentName","NAME","slice","toLowerCase","containerName","addWidgetPrefix","$gridElement","closest","getWidgetContainerClass","is","Controller","ViewController","_views","View","isReady","callBase","_isReady","_requireReady","_requireRender","_requireResize","render","_$parent","requireResize","requireReady","renderCompleted","resizeCompleted","_$element","marginTop","parseFloat","marginBottom","offsetHeight","isVisible","_getTemplate","$parent","appendTo","toggleClass","_renderCore","done","fire","isResizing","_resizeCore","MODULES_ORDER_MAX_INDEX","getExtendedTypes","types","moduleExtenders","extendTypes","entries","forEach","_ref","extender","currentType","classType","registerPublicMethods","componentInstance","moduleItem","publicMethods","_","methodName","Error","processModules","componentClass","modules","modulesOrder","createModuleItems","moduleTypes","moduleItems","moduleType","sort","module1","module2","orderIndex1","orderIndex2","rootControllerTypes","rootViewTypes","_ref2","moduleName","controllers","views","_ref3","subclassOf","call","_ref4","_ref5","extenders","controllerTypes","reduce","_ref6","viewTypes","_ref7","callModuleItemsMethod","module","push","moduleNames","SCROLL_CONTAINER_CLASS","SCROLLABLE_SIMULATED_CLASS","GROUP_SPACE_CLASS","CONTENT_CLASS","TABLE_CLASS","TABLE_FIXED_CLASS","CONTENT_FIXED_CLASS","ROW_CLASS","GROUP_ROW_CLASS","GROUP_CELL_CLASS","DETAIL_ROW_CLASS","FILTER_ROW_CLASS","ERROR_ROW_CLASS","CELL_UPDATED_ANIMATION_CLASS","HIDDEN_COLUMNS_WIDTH","CELL_HINT_VISIBLE","FORM_FIELD_ITEM_CONTENT_CLASS","appendElementTemplate","content","subscribeToRowEvents","$table","touchTarget","touchCurrentTarget","timeoutId","clearTouchTargets","setTimeout","clearTimeout","currentTarget","pointer","down","join","rowIndex","getRowIndex","rowElement","_rowPointerDown","_rowClick","_rowDblClick","getWidthStyle","setCellWidth","cell","style","copyAttributes","newElement","oldAttributes","attributes","newAttributes","nodeName","hasAttribute","removeAttribute","nodeValue","removeHandler","templateDeferred","resolve","normalizeWidth","toFixed","viewWithColumnStateMixin","$tableElement","scrollingOptions","useNativeScrolling","bounceEnabled","useKeyboard","useSimulatedScrollbar","rowType","_cellPrepared","createElement","textAlign","headerId","isArray","colspan","visibleWidth","rowObject","tagName","row","dataIndex","isAppend","_createColGroup","browser","safari","setTableRole","mozilla","preventDefault","$row","visibleColumns","_columnsController","getVisibleColumns","columnIndex","cellOptions","isHeaderRow","isDataRow","isMasterDetailRow","isGroupRow","isFilterRow","isDataRowWithTemplate","isEditorShown","isEditing","isHeaderRowWithTemplate","isGroupCellWithTemplate","shouldShowHint","removeAttr","difference","scrollWidth","clientWidth","getOptions","$fieldItemContent","delegateTarget","resultOptions","cellElement","eventType","formItemOptions","getVisibleIndex","colgroupElement","j","_createCol","col","delayedTemplates","_delayedTemplates","syncTemplates","async","asyncTemplates","_renderDelayedTemplatesCore","_renderDelayedTemplatesCoreAsync","templates","templateTimeout","_templateTimeouts","delete","isAsync","date","templateParameters","shift","doc","needWaitAsyncTemplates","renderDelayedTemplates","renderingTemplate","allowRenderToDetachedContainer","model","renderedTemplate","nodeType","templateID","_templatesCache","getTemplate","_processTemplate","templateOptions","onRendered","isDisposed","reject","columnAsync","_templateDeferreds","promise","always","tableElement","not","hasRowTemplate","_getBodies","isRefreshing","_tableElement","needWrapRow","_needWrapRow","$tbody","appendTemplate","scrollLeft","_scrollLeft","scrollTo","$root","changeType","_createTable","_renderRows","rows","_getRows","columnIndices","changeTypes","_renderRow","_createRow","$wrappedRow","_wrapRowIfNeed","_renderCells","_appendRow","_addWatchMethod","_rowPrepared","_needRenderCell","_renderCell","values","oldValue","oldValues","$rowElement","$newRowElement","$newCells","cellUpdatedClass","$newCell","replaceWith","columnIndexOffset","getColumnIndexOffset","ariaColIndex","_getCellOptions","cellIndex","findIndex","_createCell","_setCellAriaAttributes","_renderCellContent","appendChild","renderOptions","_getCellTemplate","renderTemplate","_updateCell","isAltRow","_isAltRow","source","watchers","watch","getter","updateValueFunc","updateRowFunc","watcher","newValue","JSON","stringify","splice","update","keepRow","isExpanded","optionNames","checkChanges","widths","map","setColumnWidths","isFixedTableRendering","super","optionChanged","_invalidate","_dataController","Set","excludeValidators","category","afterExecute","_afterRowPrepared","columnsChanged","_columnOptionChanged","changed","_handleDataChanged","pos","$scrollContainer","_getContent","scrollChanged","forceWaiting","result","waitTemplatesRecursion","size","fail","$newTableElement","waitAsyncTemplates","_removeContent","setTableElement","_wrapTableInScrollContainer","$cellElements","cellElements","toArray","offsetWidth","getBoundingClientRect","rect","getTableElement","$rows","isDetailRow","isErrorRow","isRowVisible","display","isRelevantRow","_getWidths","$cols","getVisibleColumnIndex","colWidth","_getCellElementsCore","_getRowElements","columnIdentifier","getCellElements","columnVisibleIndex","_getVisibleColumnIndex","$tableElements","getTableElements","iterator","_getCellElement","_getRowElement","elements","columnOption","cellPosition","tBodies","_getRowElementsCore","paddingLeft","paddingRight","isHorizontal","_disposed","_b","window","clear","CELL_CONTENT_CLASS","HEADERS_CLASS","NOWRAP_CLASS","ROW_CLASS_SELECTOR","HEADER_ROW_CLASS","COLUMN_LINES_CLASS","CONTEXT_MENU_SORT_ASC_ICON","CONTEXT_MENU_SORT_DESC_ICON","CONTEXT_MENU_SORT_NONE_ICON","CELL_FOCUS_DISABLED_CLASS","VISIBILITY_HIDDEN_CLASS","TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX","SORT_INDICATOR_CLASS","SORT_INDEX_INDICATOR_CLASS","HEADER_FILTER_CLASS_SELECTOR","HEADER_FILTER_INDICATOR_CLASS","MULTI_ROW_HEADER_CLASS","LINK","columnHeadersModule","defaultOptions","columnHeadersView","createCellContent","$cellContent","addCssClassesToCellContent","contentAlignment","$indicatorElements","_getIndicatorElements","$visibleIndicatorElements","indicatorCount","sortIndicatorClassName","sortIndexIndicatorClassName","$sortIndicator","$sortIndexIndicator","members","shiftKey","needCellContent","_renderEmptyMessage","$content","textEmpty","_getEmptyHeaderText","needSplit","includes","leftPart","rightPart","split","columnChooserTitle","columnChooserView","getView","$link","showColumnChooser","createTextNode","hasHiddenColumns","hasGroupedColumns","_getDefaultTemplate","resultTemplate","_isGroupingChanged","_isLegacyKeyboardNavigation","_handleActionKeyDown","_lastActionElement","headerFilterController","$column","getColumnIndexByElement","showHeaderFilterMenu","_processHeaderAction","isLoaded","_hasRowElements","_updateContent","_renderTable","getRowCount","$cellElement","rowspan","rowCount","_getHeaderTemplate","groupExpanding","_isElementVisible","elementOptions","clone","insertBefore","_alignCaptionByCenter","$indicatorElement","returnAll","_isSortableElement","$headerRows","headerRow","columnElements","bandColumnIndex","getChildrenByBandColumn","getCellIndex","$columnElements","isReorderingEnabled","isColumnOptionUsed","getName","getElementHeight","sortingOptions","onItemClick","params","changeSortOrder","itemData","columnID","setColumnOpacity","setRowsOpacity","rowColumns","registerModule","USER_STATE_FIELD_NAMES_15_1","USER_STATE_FIELD_NAMES","IGNORE_COLUMN_OPTION_NAMES","bestFitWidth","bufferedFilterValue","COMMAND_EXPAND_CLASS","MAX_SAFE_INTEGER","GROUP_COMMAND_COLUMN_NAME","DETAIL_COMMAND_COLUMN_NAME","COLUMN_OPTION_REGEXP","DEFAULT_COLUMN_OPTIONS","DATATYPE_OPERATIONS","number","string","datetime","COLUMN_INDEX_OPTIONS","grouped","GROUP_LOCATION","COLUMN_CHOOSER_LOCATION","NUMBER_SERIALIZATION_FORMAT","DATE_SERIALIZATION_FORMAT","DATETIME_SERIALIZATION_FORMAT","ISO8601_PATTERN","ISO8601_TIME_PATTERN","ISO8601_PATTERN_PARTS","DATE_SERIALIZATION_PATTERN","MILLISECOND_LENGHT","dateParser","skipISO8601Parsing","parseISO8601String","parseDate","getTimePart","part","isDefaultSerializationFormat","getDateSerializationFormat","parsedValue","parse","parts","match","newDate","setFullYear","setMonth","setDate","year","month","day","timeZoneHour","timeZoneMinute","correctYear","d","hour","minute","second","millisecond","Math","pow","UTC","getIso8601Format","useUtc","deserializeDate","forceIsoDateParsing","serializeDate","serializationFormat","valueOf","setFilterOperationsAsDefaultValues","defaultFilterOperations","globalColumnId","createColumn","columnOptions","userStateColumnOptions","bandColumn","commonColumnOptions","setName","getCommonSettings","calculatedColumnOptions","_createCalculatedColumnOptions","createColumnsFromOptions","columnsOptions","_columnsUserState","checkUserStateColumn","hasColumns","getParentBandColumns","columnParentByIndex","unshift","columnChildrenByIndex","getColumnByIndexes","columnIndexes","bandColumnsCache","getBandColumnsCache","callbackFilter","isPlain","_columns","getColumnFullPath","calculateColspan","processBandColumns","getValueDataType","getSerializationFormat","updateSerializers","deserializeValue","isDateType","serializeValue","isNaN","toString","getAlignmentByDataType","isRTL","customizeTextForBooleanDataType","valueText","getCustomizeTextByDataType","createColumnsFromDataSource","fieldName","firstItems","_getFirstItems","processedFields","isWrapped","updateColumnIndexes","_commandColumns","updateColumnGroupIndexes","currentColumn","updateColumnSortIndexes","isSortOrderValid","updateColumnVisibleIndexes","bandedColumns","parentBandColumns","getColumnIndexByVisibleIndex","getGroupColumns","getChooserColumns","moveColumnToGroup","groupColumns","userStateColumn","applyUserState","userStateColumnIndex","columnsUserState","ignoreColumnOptionNames","_ignoreColumnOptionNames","columnCountById","resultColumns","allColumnsHaveState","userStateColumnIndexes","applyFieldsState","defaultSelectedFilterOperation","findUserStateColumn","id","_hasUserState","initialIndex","hasAddedBands","columnUserState","added","assignColumns","updateIndexes","resetBandColumnsCache","resetColumnsCache","_previousColumns","updateColumnDataTypes","updateColumnChanges","columnChanges","_columnChanges","fireColumnsChanged","onColumnsChanging","reinitOptionNames","isInitialized","some","_reinitAfterLookupChanges","reinit","updateSortOrderWhenGrouping","prevGroupIndex","columnWasGrouped","lastSortOrder","sortMode","sortedByAnotherColumn","fireOptionChanged","prevValue","fullOptionName","fullOptionPath","_skipProcessingColumnsChange","_notifyOptionChanged","columnOptionCore","notFireEvent","initialColumn","optionGetter","functionsAsIs","maxDepth","optionSetter","_checkColumns","getColumnByPath","addExpandColumn","_getExpandColumnOptions","addCommandColumn","defaultSetCellValue","path","dotCount","getDataColumns","bandColumnID","parents","invisibleParents","isCustomCommandColumn","commandColumn","customCommandColumns","getFixedPosition","processExpandColumns","expandColumns","customColumnIndex","expandColumnsByType","expandColumn","digitsCount","numberToString","str","mergeColumns","commandColumns","needToExtend","commandColumnIndex","isColumnFixing","_isColumnFixing","defaultCommandColumns","getCommandColumnIndex","columnType","isColumnFixed","convertOwnerBandToColumnReference","_bandColumnsCache","findColumn","identifier","identifierOptionName","substr","sign","column1","column2","caption1","caption2","localeCompare","strictParseNumber","formattedValue","formattedValueWithDefaultFormat","groupsCount","normalizeSortingInfo","getFirstItemsCore","childItems","collapsedItems","isApplyingUserState","_isColumnsFromOptions","_dataSourceApplied","applyDataSource","_dataSource","replace","parseInt","needUpdateRequireResize","previousValue","fullName","init","_updateRequireResize","columnOptionValue","columnOptionName","forceApplying","isDataSourceLoaded","_dataSourceColumnsCount","columnsFromDataSource","updateColumns","isAllDataTypesDefined","_visibleColumns","_fixedColumns","_rowCount","getUserState","commonColumnSettings","groupingOptions","groupPanelOptions","checkSerializers","defaultCalculateCellValue","_compileVisibleColumnsCore","isBase","_shouldReturnVisibleColumns","_compileVisibleColumns","_getFixedColumnsCore","notFixedColumnCount","transparentColumnIndex","lastFixedPosition","transparentColumn","transparentColspan","prevColumn","newColumn","_getExpandColumnsCore","firstGroupColumn","isFixedFirstGroupColumn","parentIndex","isParentColumnVisible","_isColumnVisible","isInGroupPanel","_isColumnInGroupPanel","isCommand","indexedColumns","_getIndexedColumns","_getVisibleColumnsFromIndexed","isDataColumnsInvisible","hasVisibleDataColumns","columnDigitsCount","positiveIndexedColumns","negativeIndexedColumns","_c","_d","isDefaultCommandColumn","isFixedToEnd","_i","_this","getExpandColumns","rowspanGroupColumns","rowspanExpandColumns","_loop","firstPositiveIndexColumn","positiveIndexedRowColumns","columnsByFixing","columnsByVisibleIndex","hiddenColumnsByBand","getInvisibleColumns","getAllColumns","columnChooserColumns","fromVisibleIndex","toVisibleIndex","sourceLocation","targetLocation","sourceColumn","targetGroupIndex","fromIndex","toIndex","targetColumn","sortingMode","needResetSorting","useLocalSelector","sortColumns","sortItem","displayField","desc","compare","updateNewLookupsOnly","deferreds","valueMap","originalCallback","calculateCallbackName","calculateCallback","context","displayValueMap","getFormatByDataType","defaultFilterOperation","isColumnDataTypesUpdated","lookupDataType","valueDataType","getDisplayValue","_updateColumnOptions","hasOwnerBand","updateSortingGrouping","sortParameters","getSortDataSourceParameters","groupParameters","getGroupDataSourceParameters","filterParameters","lastLoadOptions","_customizeColumns","refresh","_updateChanges","equalSortParameters","dataController","equalFilterParameters","getCombinedFilter","fromDataSource","isColumnsChanged","updateSortGroupParameterIndexes","indexParameterName","columnsGroupParameters","columnsSortParameters","groupingChanged","groupExpandingChanged","remoteFiltering","updateFilter","columnCount","beginUpdate","endUpdate","visibleColumn","childIndexes","handleStateField","state","isFilterPanelHidden","usedNames","hasEditableColumnWithoutName","duplicatedNames","isEditable","log","skipDeserialization","defaultCalculateFilterExpression","createFilterExpression","userDataType","calculateValue","displayValue","dataSourceOptions","paginate","load","updateValueMap","resizedCallbacks","resized","defaultOptionName","charAt","toUpperCase","alwaysGetRowIndex","onlyVisibleDirectChildren","bandColumns","columnsControllerModule","adaptColumnWidthByRatio","regenerateColumnsByVisibleItems","changePaging","_getPagingOptionValue","_skipProcessingPagingChange","_isPaging","pageChanged","ControllerWithDataMixin","_items","_cachedProcessedItems","_currentOperationTypes","_dataChangedHandler","operationTypes","_columnsChangedHandler","_handleColumnsChanged","_loadingChangedHandler","_handleLoadingChanged","_loadErrorHandler","_handleLoadError","_customizeStoreLoadOptionsHandler","_handleCustomizeStoreLoadOptions","_changingHandler","_handleChanging","_dataPushedHandler","_handleDataPushed","_isLoading","_isCustomLoading","_repaintChangesOnly","_changes","dataErrorOccurred","error","_refreshDataSource","stopOnFalse","reset","isValueChanged","store","_array","needToRefreshOnDataSourceChange","changedPagingOptions","_handleDataSourceChange","_setPagingOptions","isPageIndexChanged","isLoading","_useSortingGroupingFromColumns","returnDataField","combinedFilter","isColumnsTypesDefined","isDataSourceApplied","additionalFilter","_calculateAdditionalFilter","combineFilters","isRemoteFiltering","_readyDeferred","every","updateItems","storeLoadOptions","isCustomLoading","isLoadingAll","extra","totalCount","_columnsUpdating","filterApplied","reload","_applyFilter","_needApplyFilter","updateItemsHandler","virtualColumnsScrolling","isAsyncDataSourceApplying","_isDataSourceApplying","isDelayed","needApplyFilter","_isAllDataTypesDefined","_fireLoadingChanged","pushed","_len","_key","pagingEnabled","scrollingMode","appendMode","virtualMode","isPaginateChanged","isPageSizeChanged","requireTotalCount","key","oldDataSource","_initDataSource","setDataSource","visibleItems","lastVisibleItem","rowIndexDelta","getRowIndexDelta","getDataIndex","_processItem","_generateDataItem","_processDataItem","keyOf","dataItem","generateDataValues","isModified","_applyChangeUpdate","_applyChangesOnly","_applyChangeFull","rowIndices","a","b","correctedRowIndex","allowInvisibleRowIndices","_getRowIndices","prevIndex","rowIndexCorrection","equalItems","item1","item2","strict","oldItem","oldNextItem","newItem","newNextItem","isFullUpdate","_partialUpdateRow","oldRow","newRow","visibleRowIndex","isLiveUpdate","isCellModified","modifiedValues","_isCellChanged","changedColumnIndices","_getChangedColumnIndices","isCellChanged","expandedMatch","summaryCellsMatch","summaryCells","continuationMatch","isContinuation","isContinuationOnNextPage","newIndexByKey","getRowKey","currentItems","oldItems","_isItemEquals","_correctRowIndices","oldRowIndexOffset","_rowIndexOffset","rowIndexOffset","getRowIndexOffset","newVisibleRowIndex","cachedProcessedItems","useProcessedItemsCache","_beforeProcessItems","_processItems","_afterProcessItems","_applyChange","loadIndex","getVisibleRows","isDataChanged","needUpdateDimensions","_needUpdateDimensions","_updateItemsCore","_fireChanged","loadingOperationTypes","loadingChanged","_loadingText","_isFilterApplying","filterExpr","prototype","filterName","clearColumnOption","searchByText","changedHandler","dataSourceChanged","dataSourceAdapterProvider","_getDataSourceAdapter","dataSourceAdapter","create","enabledRemoteOperations","isLocalStore","isCustomStore","_createDataSourceAdapterCore","cancelAll","loadError","customizeStoreLoadOptions","changing","dispose","_isSharedDataSource","_createDataSourceAdapter","_fireDataSourceChanged","byLoaded","pageCount","skipFilter","loadOptions","_handleDataLoaded","getIndexByKey","getRowIndexByKey","byKey","byLoadedRows","rowKeys","keyData","messageText","changesOnly","getDataSource","customizeLoadResult","_disposeDataSource","rowIndexes","searchText","getCachedStoreData","itemsCount","totalItemsCount","hasKnownLastPage","dataControllerModule","loadingTimeout","cloneItems","groupCount","calculateOperationTypes","isFullReload","fullReload","groupExpand","skip","take","getPageDataFromCache","updatePaging","fillItemsFromCache","cacheItemsFromBegin","cacheItemBeginCount","cacheItemsFromEnd","cacheItemEndCount","cachedDataPartBegin","cachedDataPartEnd","reverse","fromEnd","_e","cachedItems","cachedData","localIndex","cacheItemIndex","cacheItem","getItemFromCache","skips","takes","getGroupItemFromCache","childCacheItem","isLast","getCacheItem","loadedItem","globalIndex","childSkips","_remoteOperations","_isLastPage","isLastPage","_hasLastPage","_currentTotalCount","_cachedData","_lastOperationTypes","_eventsStrategy","_totalCountCorrection","_isLoadingAll","_dataLoadedHandler","_pushHandler","_handlePush","memberName","member","isSharedDataSource","resetCurrentTotalCount","_cachedStoreData","_cachedPagingData","_lastLoadOptions","isLocalOperations","operationName","fromStore","_needClearStoreDataCache","resetPagesCache","keyInfo","_applyBatch","_dataIndexGetter","indexByKey","storeData","isCacheUpdated","_needToCopyDataObject","_getKeyInfo","isReshapeMode","isVirtualMode","getItemCount","oldItemCount","useInsertIndex","skipCopying","needUpdateTotalCountCorrection","operationType","operationTypesByOrder","operationTypeIndex","currentOperationTypes","cachedStoreData","cachedPagingData","_needCleanCacheByOperation","_handleDataLoading","originalStoreLoadOptions","_isRefreshing","_customizeRemoteOperations","_loadingOperationTypes","_isRefreshed","_lastOperationId","operationId","_handleDataLoadingCore","cachedExtra","localLoadOptionNames","langParams","optionValue","localPaging","needCache","needPageCache","needPagingCache","needStoreCache","mergeStoreLoadData","_handleDataLoadedCore","cacheItems","currentTotalCount","isDataLoading","_loadPageSize","_operationTypes","_dataSourceTotalCount","ceil","dataSourceLoadOptions","loadResult","_customLoadOptions","_scheduleCustomLoadCallbacks","_scheduleLoadCallbacks","loadFromStore","fireEvent","full","dataSourceAdapterType","SORT_CLASS","SORT_NONE_CLASS","SORTUP_CLASS","SORTDOWN_CLASS","SORT_INDEX_CLASS","SORT_INDEX_ICON_CLASS","HEADERS_ACTION_CLASS","ariaSortState","isSortingAllowed","hasSeveralSortIndexes","prepend","COLUMN_HEADERS_VIEW_NAMESPACE","ColumnHeadersViewSortingExtender","$cellElementFromEvent","editingController","editingMode","isCellEditing","_updateIndicators","HeaderPanelSortingExtender","$rootElement","$item","_processGroupItemAction","groupColumnIndex","sortingModule","headerPanel","ROWS_VIEW_CLASS","DATA_ROW_CLASS","FREE_SPACE_CLASS","ROW_LINES_CLASS","ROW_ALTERNATION_CLASS","LAST_ROW_BORDER","EMPTY_CLASS","ROW_INSERTED_ANIMATION_CLASS","LOADPANEL_HIDE_TIMEOUT","getMaxHorizontalScrollOffset","scrollable","round","defaultCellTemplate","isDataTextEmpty","setEmptyText","textContent","innerHTML","getScrollableBottomPadding","getScrollable","summaryItems","getGroupRowSummaryText","_getDefaultGroupTemplate","tag","isGroup","isRowExpanded","_setAriaRowIndex","isPagerMode","isVirtualRowRendering","arg","isNewRow","repaintRows","deep","skipImmediate","force","_loadPanel","_renderLoadPanel","allColumnsHasWidth","_hasHeight","_renderScrollableCore","isNativeScrolling","_scrollTop","scrollOffset","_scrollRight","isScrollbarVisible","dxScrollableOptions","_createScrollableOptions","scrollHandler","_handleScroll","onScroll","_scrollable","_scrollableContainer","renderLoadPanel","contentElement","_findContentElement","newTableElement","_contentChanges","contentChanges","executors","rowInsertedClass","dataChangeType","$rowElements","toggle","_updateCells","insertAfter","last","prependTo","_renderContent","isFixed","getFixedColumns","$emptyRow","$tBodies","isTableContainer","$colgroup","$freeSpaceRowElement","_createEmptyRow","_appendEmptyRow","fireError","_rowHeight","_needUpdateRowHeight","rowsHeight","_getRowsHeight","tableElements","expr","columnsCountBeforeGroups","_getColumnsCountBeforeGroups","_renderGroupedCells","groupCellOptions","_getGroupCellOptions","groupColumnAlignment","_checkRowKeys","_renderFreeSpaceRow","updateFreeSpaceRowHeight","_renderDataRowByTemplate","_renderScrollable","resizeCompletedHandler","scrollableInstance","document","_visibilityChanged","isEmpty","_lastColumnWidths","formatValue","groupingTextsOptions","isParentBandColumn","devicePixelRatio","renderNoDataText","itemCount","freeSpaceRowElements","_getFreeSpaceRowElements","isFreeSpaceRowVisible","scrollbarWidth","getScrollbarWidth","elementHeightWithoutScrollbar","contentHeight","showFreeSpaceRow","borderTopWidth","heightCorrection","_getHeightCorrection","resultHeight","_updateLastRowBorder","freeSpaceRowCount","isZoomedWebkit","webkit","_getDevicePixelRatio","isChromeLatest","chrome","version","hasExtraBorderTop","_fireColumnResizedCallbacks","_editorFactoryController","setLoading","forceUpdateScrollPosition","_update","scrollableContainer","clientHeight","lastColumnWidths","columnWidths","getInstance","isRenovated","_updateHorizontalScrollPosition","maxHorizontalScrollOffset","scrollRight","_updateRowHeight","_updateScrollable","dxScrollable","hasHeight","loadPanelOptions","visibilityOptions","calculateLoadPanelPosition","_hideLoadingTimeoutID","_setRowsOpacityCore","groupCellIndex","isTop","isFloor","itemIndex","prevOffset","viewportBoundary","$contentElement","contentElementOffsetTop","rowElements","_getBoundaryVisibleItemIndex","getTopVisibleItemIndex","scrollToElement","rowsModule","stubComponent","EditorClass","_getDefaultOptions","searchValue","searchEnabled","searchEditorOptions","_initMarkup","_renderSearch","searchBoxClassName","_addWidgetPrefix","rootElementClassName","_removeSearchBox","_getSearchEditorOptions","_searchEditor","_$searchEditorElement","userEditorOptions","valueChangeEvent","inputAttr","_valueChangeDeferred","_valueChangeTimeout","_getAriaTarget","_itemContainer","_focusTarget","_updateFocusState","isFocused","_toggleFocusClass","getOperationBySearchMode","_optionChanged","searchOperation","_cleanAria","role","activedescendant","_refresh","setEditorClass","ios","mac","devices","real","isFocusingOnCaretChange","getCaret","input","range","selectionStart","end","selectionEnd","setCaret","body","getBody","host","getActiveElement","EMPTY_CHAR","BaseMaskRule","_value","next","rule","_next","rawValue","_prepareHandlingArgs","_config$str","_config$start","_config$length","handlingProperty","hasOwnProperty","isAccepted","adjustedCaret","caret","isForwardDirection","char","_adjustedForward","_adjustedBackward","isValid","EmptyMaskRule","MaskRule","maskChar","rest","substring","_tryAcceptChar","_accepted","_isAllowed","acceptedChar","fullText","_isAccepted","_isValid","allowedChars","RegExp","test","StubMaskRule","hasValueProperty","nextArgs","INVALID_MESSAGE","INVALID_MESSAGE_AUTO","INVALID_MESSAGE_ALWAYS","INVALID_MESSAGE_CONTENT","VALIDATION_MESSAGE_MIN_WIDTH","integrationOptions","templatesRenderAsynchronously","propagateOutsideClick","_checkParentVisibility","_renderInnerHtml","validationErrors","preventScrollEvents","positionSide","h","v","contentId","updateMaxWidth","_updatePosition","_ensureMessageNotEmpty","_updatePositionByTarget","_toggleModeClass","_updateContentId","_textMarkup","_getTextMarkup","shouldShowMessage","_toggleVisibilityClasses","$wrapper","_this$option","validationErrorMessage","err","_err$message","separator","targetWidth","_getPositionsArray","rtlSide","componentOffset","positions","READONLY_STATE_CLASS","INVALID_CLASS","DX_INVALID_BADGE_CLASS","VALIDATION_TARGET","VALIDATION_STATUS_VALID","VALIDATION_STATUS_INVALID","READONLY_NAMESPACE","ALLOWED_STYLING_MODES","VALIDATION_MESSAGE_KEYS_MAP","validationMessageMode","validationMessagePosition","validationMessageOffset","validationBoundary","showValidationMessageTimeout","validationRequest","_createElement","_initOptions","initValidationOptions","_init","_options","cache","validationError","validationStatus","validationTooltipOptions","_showValidationMessage","_attachKeyboardEvents","_setOptionsByReference","_optionsByReference","_createValueChangeAction","_valueChangeAction","_suppressValueChangeAction","_valueChangeActionSuppressed","_resumeValueChangeAction","_toggleReadOnlyState","_setSubmitElementName","_renderValidationState","_raiseValueChangeAction","_valueChangeArgs","_valueChangeEventInstance","_saveValueChangeEvent","_focusInHandler","isValidationMessageShownOnFocus","_canValueBeChangedByClick","_this$_validationMess","$validationMessageWrapper","_validationMessage","_getStylingModePrefix","_renderStylingMode","allowedStylingClasses","stylingModeClass","defaultOptionValue","stylingMode","platformOptionValue","_convertRulesToOptions","_defaultOptionsRules","_getValidationErrors","_disposeValidationMessage","_$validationMessage","_toggleValidationClasses","isInvalid","validationMessageContentId","_getValidationMessageTarget","visualContainer","_getValidationMessagePosition","_bindInnerWidgetOptions","_toggleBackspaceHandler","isReadOnly","$eventTarget","_keyboardEventBindingTarget","eventName","_dispose","$submitElement","_getSubmitElement","_setValidationMessageOption","_this$_validationMess2","optionKey","_hasActiveElement","_this$_validationMess3","_refreshFocusState","editor","synchronizeValidationOptions","_innerWidgetOptionChanged","blur","isEditor","$placeMarker","_isVisible","_isRendered","_create","_attachEvents","_addPlaceMarker","_shouldRender","pointerDown","STATE_INVISIBLE_CLASS","TEXTEDITOR_CLEAR_BUTTON_CLASS","TEXTEDITOR_CLEAR_ICON_CLASS","TEXTEDITOR_ICON_CLASS","TEXTEDITOR_SHOW_CLEAR_BUTTON_CLASS","_addToContainer","_isClearButtonVisible","$button","editorName","pointerType","_clearValueHandler","$editor","rendered","_legacyRender","CUSTOM_BUTTON_HOVERED_CLASS","stopPropagation","ignoreParentReadOnly","_isDisabled","_prepareIntegrationOptions","skipTemplates","isUpdated","isDefinedByUser","TEXTEDITOR_BUTTONS_CONTAINER_CLASS","checkButtonInfo","buttonInfo","checkNamesUniqueness","existingNames","newName","isPredefinedButtonName","predefinedButtonsInfo","info","defaultButtonsInfo","names","isStringButton","isDefaultButton","defaultButtonInfo","Ctor","buttonsInfo","$buttonsContainer","_compileButtonInfo","_createButton","buttonName","_renderButtons","TEXTEDITOR_LABEL_CLASS","TEXTEDITOR_WITH_LABEL_CLASS","TEXTEDITOR_WITH_FLOATING_LABEL_CLASS","TEXTEDITOR_WITH_BEFORE_BUTTONS_CLASS","LABEL_BEFORE_CLASS","LABEL_CLASS","LABEL_AFTER_CLASS","mark","containsButtonsBefore","containerWidth","beforeWidth","_props","_id","_render","_toggleMarkupVisibility","_$before","_$labelSpan","_$label","_$after","_$root","_updateMark","_updateText","_updateBeforeWidth","_updateMaxWidth","_updateEditorBeforeButtonsClass","_updateEditorLabelClass","detach","labelClass","beforeButtonsClass","ResizeObserverMock","observe","unobserve","disconnect","ResizeObserver","_callbacksMap","Map","_observer","entry","_this$_callbacksMap$g","callback","set","resizeObserverSingleton","TEXTEDITOR_CLASS","TEXTEDITOR_INPUT_CONTAINER_CLASS","TEXTEDITOR_INPUT_CLASS","TEXTEDITOR_INPUT_SELECTOR","TEXTEDITOR_CONTAINER_CLASS","TEXTEDITOR_PLACEHOLDER_CLASS","TEXTEDITOR_EMPTY_INPUT_CLASS","TEXTEDITOR_PENDING_INDICATOR_CLASS","TEXTEDITOR_VALIDATION_PENDING_CLASS","TEXTEDITOR_VALID_CLASS","EVENTS_LIST","CONTROL_KEYS","TextEditorLabelCreator","checkButtonsOptionType","TextEditorBase","_buttonCollection","_getDefaultButtons","_$beforeButtonsContainer","_$afterButtonsContainer","_labelContainerElement","spellcheck","showClearButton","onFocusIn","onFocusOut","onKeyUp","onChange","onInput","onCut","onCopy","onPaste","onEnterKey","displayValueFormatter","editorStylingMode","showValidationMark","labelMark","device","themeName","_input","_isFocused","_inputWrapper","_buttonsContainer","_isControlKey","_updateButtonsStyling","_renderInput","_renderInputType","_renderPlaceholder","_renderProps","_renderValue","_renderLabel","_refreshValueChangeEvent","_renderEvents","_renderEnterKeyAction","_renderEmptinessEvent","_$buttonsContainer","_$textEditorContainer","_$textEditorInputContainer","_createInput","_renderButtonContainers","_renderPendingIndicator","$inputContainer","_getInputContainer","_pendingIndicator","_disposePendingIndicator","isPending","_showValidMark","renderBeforeButtons","renderAfterButtons","_cleanButtonContainers","_this$_$beforeButtons","_this$_$afterButtonsC","clean","_unobserveLabelContainerResize","$input","_applyInputAttributes","inputAttrName","customAttributes","inputAttributes","_getDefaultAttributes","defaultAttributes","autocomplete","_updateButtons","updateButtons","buttonInstance","getButton","renderInputPromise","_renderInputValue","val","_renderDisplayText","_toggleEmptinessEventHandler","_isValueValid","validity","valid","_toggleEmptiness","_togglePlaceholder","_toggleSpellcheckState","_toggleTabIndex","_toggleDisabledState","prop","_readOnlyPropValue","_getLabelContainer","_getLabelContainerWidth","_getLabelBeforeWidth","buttonsBeforeWidth","_updateLabelWidth","_label","updateBeforeWidth","_this$_$placeholder","labelId","getId","placeholderId","_$placeholder","aria","labelledby","_getFieldElement","labelConfig","_setFieldAria","_renderPlaceholderMarkup","_attachPlaceholderEvents","placeholderAttributes","$placeholder","startEvent","up","_placeholder","_clearValue","hasActionSubscription","_refreshEvents","_keyPressHandler","_keyDownHandler","isCtrlEnter","isNewValue","_getValueChangeEventOptionName","_renderValueChangeEvent","keyPressEvent","_renderValueEventName","keyDownEvent","_valueChangeEventHandler","_cleanValueChangeEvent","valueChangeNamespace","textChangeNamespace","_focusEventTarget","_isInput","_preventNestedFocusEvent","isDefaultPrevented","shouldPrevent","_isNestedTarget","relatedTarget","_focusClassTarget","_focusOutHandler","_hasFocusClass","_enterKeyAction","_enterKeyHandlerUp","_updateValue","silent","_refreshFocusEvent","updateText","updateMark","updateMode","updateContainsButtonsBefore","_setInputType","eventHandler","MASK_EVENT_NAMESPACE","BLUR_EVENT","DELETE_INPUT_TYPES","HISTORY_INPUT_TYPES","EVENT_NAMES","getEmptyString","repeat","newCaret","_caret","_editorOption","_editorInput","namespace","_changeHandler","_previousText","_prevCaret","_editorCaret","inputType","_handleHistoryInputEvent","_handleBackwardDeleteInputEvent","currentCaret","_clearSelectedText","_autoFillHandler","_handleInsertTextInputEvent","stopImmediatePropagation","_updateEditorMask","setForwardDirection","_adjustCaret","adjustedForwardCaret","setBackwardDirection","_this$_prevCaret","_this$_prevCaret2","_isAutoFill","_this$_prevCaret$star","_this$_prevCaret3","hasValidChars","textLength","processedCharsCount","_handleChain","_displayMask","correction","hasSkippedStub","_showMaskPlaceholder","_isValueEmpty","_maskRulesChain","_caretTimeout","_maskKeyHandler","_hasSelection","_handleKey","selectedText","_clearDragTimer","_dragTimer","_convertToValue","pastedText","restText","accepted","inputVal","_inputHandlerTimer","_validateMask","_input$matches","matches","handlerName","getHandler","_attachChangeEventHandler","stubCaret","ESCAPED_CHAR","TEXTEDITOR_MASKED_CLASS","FORWARD_DIRECTION","BACKWARD_DIRECTION","buildInMaskRules","0","9","L","isLiteralChar","l","isSpaceChar","C","c","A","isNumericChar","code","charCodeAt","TextEditorMask","mask","maskRules","maskInvalidMessage","useMaskedValue","showMaskMode","_supportedKeys","keyHandlerMap","del","_maskStrategy","enter","parentHandler","_$hiddenElement","_initMaskStrategy","_renderHiddenElement","_attachMouseWheelEventHandlers","hasMouseWheelHandler","_onMouseWheel","wheel","mouseWheelAction","_renderMask","_removeHiddenElement","detachEvents","attachEvents","_parseMask","_renderMaskedValue","_suppressCaretChanging","inputValue","_changedValue","changeEvent","_maskRules","_parseMaskRule","currentMaskChar","isEscapedChar","_getMaskRule","ruleConfig","rulePattern","_normalizeChainArguments","chainArgs","_isMaskedValueMode","_replaceSelectedText","textBefore","textAfter","edited","_shouldShowMask","submitElementValue","_getPreparedValue","_isControlKeyFired","handledCount","_textValue","_replaceMaskCharWithEmpty","keyHandler","_handleSelection","previousText","raiseInputEvent","then","_direction","_handleKeyChain","_moveCaret","emptyChars","chars","_tryMoveCaretBackward","caretStart","maskRuleIndex","_typingDirection","_clean","editorSpecific","_updateHiddenElement","_updateMaskOption","_processEmptyMask","ignoreKeys","TEXTBOX_CLASS","SEARCHBOX_CLASS","ICON_CLASS","SEARCH_ICON_CLASS","TextBox","_showClearButton","maxLength","_renderSearchMode","_useTemplates","_toggleMaxLengthProp","_getMaxLength","_renderSearchIcon","_$searchIcon","$searchIcon","labelBeforeWidth","_onKeyDownCutOffHandler","actualMaxLength","_cutOffExtraChar","getSelection","_onChangeCutOffHandler","textInput","isMaskSpecified","DataConverter","_dataStructure","_itemsCount","_visibleItemsCount","_indexByKey","_convertItemsToNodes","parentKey","parentId","_getParentId","node","_convertItemToNode","_checkForDuplicateId","internalFields","_itemHasChildren","_dataAccessors","getters","_dataType","_getUniqueKey","keyGetter","itemKey","isCorrectKey","getItemsCount","defaultValue","expanded","selected","_rootValue","_makeObjectFromPrimitive","childrenKeys","setChildrenKeys","getParentNode","setters","_convertToPublicNode","publicNode","convertToPublicNodes","publicNodes","_getByKey","setDataAccessors","accessors","getByKey","currentElementKey","getVisibleItemsCount","updateIndexByKey","updateChildrenKeys","removeChildrenKeys","createPlainStructure","rootValue","EXPANDED","SELECTED","DISABLED","DataAdapter","_defaultOptions","dataConverter","dataAccessors","_selectedNodesKeys","_expandedNodesKeys","_createInternalDataStructure","getTreeNodes","setOption","_updateSelection","multipleSelection","recursiveSelection","recursiveExpansion","onNodeChanged","_initialDataStructure","_updateExpansion","_setChildrenSelection","_setParentSelection","_updateNodesKeysArray","_updateOneBranch","_setParentExpansion","property","array","_getDataBySelectionMode","_isNodeVisible","toggleSelection","getData","getFullData","isSelected","_toggleChildrenSelection","_iterateParents","newParentState","_calculateSelectedState","_setFieldState","getNodeByKey","_iterateChildren","processedKeys","nodeKey","child","selectedItemsCount","invisibleItemsCount","childNode","isChildInvisible","childState","_markChildren","_removeNode","counter","_addNode","_updateFields","getSelectedNodesKeys","getExpandedNodesKeys","getNodeByItem","getNodesByItems","nodes","getRootNodes","getPublicNode","getChildrenNodes","addItem","removeItem","selectRecursive","isSingleModeUnselect","_isSingleModeUnselect","selectionState","toggleNodeDisabledState","toggleSelectAll","lastSelectedKey","dataStructure","selectionRequired","isAllSelected","toggleExpansion","isFiltered","_filterDataStructure","_createCriteria","operation","searchFilter","pop","criteria","lookForParents","queryByOptions","DISABLED_STATE_CLASS","HierarchicalCollectionWidget","selectedExpr","disabledExpr","itemsExpr","parentIdExpr","expandedExpr","deviceType","isSimulator","_initAccessors","_initDataAdapter","_initDynamicTemplates","_createDataAdapterAccessors","_dataAdapter","_getDataAdapterOptions","_getItemExtraPropNames","_templateManager","addDefaultTemplates","_addContent","_displayGetter","_itemsGetter","_getIconContainer","_getTextContainer","_getAccessors","accessor","_compileAccessor","_compileDisplayGetter","_getChildNodes","arr","_hasChildren","setter","optionExpr","obj","getterName","setterName","newAccessor","_addWidgetClass","_widgetClass","_renderItemFrame","$itemFrame","_disabledGetter","repaint","_collectionWidget","getMenuItems","_getTemplateString","DX_MENU_CLASS","DX_MENU_NO_ICONS_CLASS","DX_MENU_BASE_CLASS","ITEM_CLASS","DX_ITEM_CONTENT_CLASS","DX_MENU_SELECTED_ITEM_CLASS","DX_MENU_ITEM_WRAPPER_CLASS","DX_MENU_ITEMS_CONTAINER_CLASS","DX_MENU_ITEM_EXPANDED_CLASS","DX_MENU_SEPARATOR_CLASS","DX_MENU_ITEM_LAST_GROUP_ITEM","DX_ITEM_HAS_TEXT","DX_ITEM_HAS_ICON","DX_ITEM_HAS_SUBMENU","DX_MENU_ITEM_POPOUT_CLASS","DX_MENU_ITEM_POPOUT_CONTAINER_CLASS","DX_MENU_ITEM_CAPTION_CLASS","SINGLE_SELECTION_MODE","DEFAULT_DELAY","DX_MENU_ITEM_CAPTION_URL_CLASS","DX_ICON_WITH_URL_CLASS","DX_ITEM_URL_CLASS","showSubmenuMode","focusOnSelectedItem","_itemAttributes","useInkRipple","space","_isSelectionEnabled","selectItem","pageUp","pageDown","_activeStateUnit","_renderSelectedItem","_initActions","iconContainer","textContainer","linkAttr","url","linkAttributes","href","link","_getLinkContainer","_getPopoutContainer","_addContentClasses","$itemContainer","itemText","$popOutContainer","$popOutImage","selectedItem","nodeToSelect","selectedKeys","selectedKey","selectable","_selectByItem","_renderInkRipple","_inkRipple","_toggleActiveState","showWave","hideWave","_isDesktopDevice","Strategy","_editStrategy","$itemElement","_getItemElementByEventArgs","_isItemDisabled","_getShowSubmenuMode","_showSubmenusTimeout","_showSubmenu","_getSubmenuDelay","$itemElements","_getAvailableItems","_itemDataKey","_addExpandedClass","itemElement","eventArgs","_itemClass","_renderItems","submenuContainer","hasIcons","$nodeContainer","_renderContainer","firstVisibleIndex","nextGroupFirstIndex","isVisibleNode","isBeginGroup","beginGroup","_renderSeparator","_renderItem","$node","$nodeElement","_createDOMElement","_hasSubmenu","_itemIndexKey","hasText","hasIcon","hasSubmenu","$itemContent","_getItemContent","selectedIndex","_selectedGetter","_isItemSelectable","_selectedItemClass","_setAriaSelectionAttribute","$itemsContainer","_skipHandling","itemClickActionHandler","_updateSubmenuVisibilityOnClick","_itemDXEventHandler","beforeExecute","_itemClick","actionArgs","getElementsByClassName","click","_updateSelectedItemOnClick","_isItemSelectAllowed","selectedItemKey","selectedNode","_toggleItemSelection","_fireSelectionChangeEvent","isSelectByClickEnabled","_isContainerEmpty","_updateSelectedItems","_getElementByItem","_itemElements","oldSelection","newSelection","addedSelection","removedSelection","addedItems","removedItems","_getItemData","ItemClass","DX_MENU_ITEM_CLASS","DX_MENU_PHONE_CLASS","DX_SUBMENU_CLASS","DX_CONTEXT_MENU_CLASS","DX_HAS_CONTEXT_MENU_CLASS","DX_STATE_DISABLED_CLASS","DX_STATE_FOCUSED_CLASS","DX_STATE_HOVER_CLASS","OVERLAY_CONTENT_CLASS","ACTIONS","LOCAL_SUBMENU_DIRECTIONS","DEFAULT_SHOW_EVENT","showEventOption","showEvent","onSubmenuCreated","onPositioning","submenuDirection","onLeftFirstItem","onLeftLastItem","onCloseRootSubmenu","onExpandLastSubmenu","_setDeprecatedOptions","_deprecatedOptions","since","alias","_overlay","escape","$availableItems","$focusedItem","$hoveredItem","$hoveredItemContainer","_getActiveItem","$newTarget","$items","_getItemsByLocation","$oldTarget","itemsContainer","$activeItemHighlighted","_prevItem","_setFocusedElement","_nextItem","_hideSubmenuHandler","_expandSubmenuHandler","_moveFocus","$activeItem","_refreshActiveDescendant","$curItem","$parentItem","_hideSubmenusOnSameLevel","_hideSubmenu","isItemHasSubmenu","$submenu","_detachShowContextMenuEvents","_getTarget","_renderVisibility","_attachShowContextMenuEvents","_keyboardListenerId","overlayOptions","_getOverlayOptions","$overlayContent","_addCustomCssClass","_addPlatformDependentClass","_attachContextMenuEvent","_itemContextMenuHandler","current","phone","getShowEvent","_showContextMenuEventHandler","contextMenuAction","getShowDelay","_show","validatingTargetName","handler","_hoverEndHandler","$holder","submenuElement","innerOverlay","_hideOnOutsideClickHandler","_overlayShownActionHandler","_overlayHidingActionHandler","_overlayHiddenActionHandler","_hideAllShownSubmenus","_shouldHideOnOutsideClick","isDocument","$activeItemContainer","_getActiveItemsContainer","$itemContainers","_getItemsContainers","$clickedItem","_searchActiveItem","$rootItem","isRootItemClicked","isInnerOverlayClicked","_isIncludeOverlay","_hideAllShownChildSubmenus","$activeOverlay","$allOverlays","isSame","$overlay","$submenuElements","shownSubmenus","_shownSubmenus","$context","isSubmenuRendered","_renderSubmenuItems","_isSubmenuVisible","_drawSubmenu","$expandedItems","siblings","_hideSubmenuCore","submenuPosition","_getSubmenuPosition","fx","stop","setup","_animate","animate","$rootItemWrapper","shouldRenderSubmenu","notCloseMenuOnItemClick","closeMenuOnClick","$prevSubmenu","canceled","$curSubmenu","_stopAnimate","_renderContentImpl","showing","_hide","jQEvent","_event$originalEvent","_positionContextMenu","_renderContextMenuOverlay","_renderFocusState","_attachHoverEvents","_attachClickEvent","_setAriaAttributes","hold","preventShowingDefaultContextMenuAboveOverlay","_overlayContentId","_getContextMenuPosition","isInitialPosition","_isInitialOptionValue","positioningAction","lastPosition","_cleanAriaAttributes","CONTEXT_MENU","footerView","VIEW_NAMES","ContextMenuController","dxEvent","$targetRowElement","$targetCellElement","menuItems","view","targetElement","getContextMenuItems","_contextMenuPrepared","ContextMenuView","contextMenuInstance","contextMenuModule","contextMenu","contextMenuView","ERROR_MESSAGE_CLASS","ERROR_CLOSEBUTTON_CLASS","ACTION_CLASS","ErrorHandlingController","_columnHeadersView","_rowsView","$errorRow","$closeButton","$errorMessage","_renderErrorMessage","errorRowIndex","removeErrorRow","fireContentReadyAction","$message","$popupContent","$errorMessageElement","$firstErrorRow","_createErrorRow","resizingController","$columnHeaders","$rowsViewElement","errorHandlingModule","errorHandling","errorHandlingController","renderErrorRow","hasChanges","BORDERS_CLASS","IMPORTANT_MARGIN_CLASS","GRIDBASE_CONTAINER_CLASS","GROUP_ROW_SELECTOR","isPixelWidth","calculateFreeWidth","contentWidth","totalWidth","_getTotalWidth","calculateFreeWidthWithCurrentMinWidth","currentMinWidth","focusedElement","selectionRange","setSelectionRange","resizingControllerMembers","_refreshSizesHandler","_checkSize","_refreshSizes","resizeDeferred","resize","_waitAsyncTemplates","_setScrollerSpacing","_setAriaLabel","_fireContentReadyAction","_getWidgetAriaLabel","getColumnWidths","headersTableElement","columnId","getColumnId","isBestFit","$rowsTables","$viewTables","$tableBody","$rowsTable","$viewTable","$rowsFixedTable","idx","_toggleBestFitModeForView","_footerView","_needStretch","getContentHeightLimit","resetBestFitMode","hasUndefinedColumnWidth","needBestFit","_needBestFit","hasMinWidth","isColumnWidthsCorrected","resultWidths","_setVisibleWidths","getSelectionRange","_toggleBestFitMode","_toggleContentMinHeight","_maxWidth","_getBestFitWidths","isFocusOutsideWindow","bottom","_correctColumnWidths","expandColumnWidth","_processStretch","freeWidth","columnCountWithoutWidth","hasPercentWidth","hasAutoWidth","hasWidth","_hasWidth","isHiddenColumn","averageColumnsWidth","_getAverageColumnsWidth","realColumnWidth","_getRealColumnWidth","lastColumnIndex","getLastResizableColumnIndex","borderWidth","resultSizes","groupSize","tableSize","unusedIndexes","diff","diffElement","floor","onePixelElementsCount","groupWidth","ratio","percentTotalWidth","pixelTotalWidth","freeSpace","percentTotalWidthInPixel","importantMarginClass","$groupElement","updateDimensions","checkSize","_initPostRenderHandlers","prevResult","_resizeDeferred","_synchronizeColumns","_resetGroupElementHeight","_updateDimensionsCore","groupElement","_getGroupElement","scrollTop","isWidgetVisible","isGridSizeChanged","_lastWidth","_lastHeight","_devicePixelRatio","vScrollbarWidth","hScrollbarWidth","setScrollerSpacing","_setScrollerSpacingCore","editorFactory","rootElementHeight","isHeightSpecified","maxHeightHappened","isMaxHeightApplied","scrollHeight","updateSize","_updateLastSizes","_renderDimensions","ResizingController","SynchronizeScrollingController","_scrollChangedHandler","GridView","_resizingController","_groupElement","_getTableRoleName","isFirstRender","_rootElement","_renderViews","gridViewModule","resizing","synchronizeScrolling","gridView","AsyncCollectionWidget","_deferredItems","renderContentDeferred","itemDeferred","_onItemTemplateRendered","itemTemplate","renderArgs","_postProcessRenderItems","TOOLBAR_CLASS","TOOLBAR_BEFORE_CLASS","TOOLBAR_CENTER_CLASS","TOOLBAR_AFTER_CLASS","TOOLBAR_MINI_CLASS","TOOLBAR_ITEM_CLASS","TOOLBAR_LABEL_CLASS","TOOLBAR_BUTTON_CLASS","TOOLBAR_ITEMS_CONTAINER_CLASS","TOOLBAR_GROUP_CLASS","TOOLBAR_COMPACT_CLASS","TEXT_BUTTON_MODE","DEFAULT_BUTTON_TYPE","DEFAULT_DROPDOWNBUTTON_STYLING_MODE","TOOLBAR_ITEM_DATA_KEY","ANIMATION_TIMEOUT","_getSynchronizableOptionsForCreateComponent","_initTemplates","rawModel","_data$options","wrapInner","_data$options2","_data$options$styling","_data$options3","_data$options$type","menuItem","renderAs","useFlatButtons","useDefaultButtons","_$toolbarItemsContainer","_arrangeItems","_applyCompactMode","_renderToolbar","_renderSections","_renderItemsAsync","_updateDimensionsInMaterial","section","sectionClass","$section","elementWidth","_elementWidth","_$centerSection","margin","float","beforeRect","_$beforeSection","afterRect","_$afterSection","_alignCenterSection","$label","labelOffset","widthBeforeSection","widthAfterSection","elemsAtSectionWidth","each","sectionMaxWidth","_alignSection","labelPaddings","leftRect","rightRect","centerRect","right","marginLeft","marginRight","$labels","labels","_getCurrentLabelsPaddings","currentWidth","_getCurrentLabelsWidth","abs","_alignSectionLabels","expanding","getRealLabelWidth","currentLabelWidth","labelMaxWidth","possibleLabelWidth","_getSummaryItemsWidth","itemElements","padding","itemContainer","$after","_item$location","_item$text","itemHasText","_group$location","_renderGroupedItems","_getToolbarItems","_renderedItemsCount","_itemOptionChanged","_dimensionChanged","_waitParentAnimationTimeout","Promise","all","check","readyToResolve","isAnimating","runCheck","promises","fontWeight","BUTTON_GROUP_CLASS","TOOLBAR_ITEMS","getItemInstance","dxComponents","widgetName","toggleItemFocusableElementTabIndex","_itemData$options","_findItemElementByItem","isItemNotFocusable","$widget","_itemInstance$_focusT","_itemData$options2","itemInstance","_$focusTarget","$focusTarget","_toolbar","_this$_toolbar$option","LIST_ITEM_BADGE_CONTAINER_CLASS","LIST_ITEM_BADGE_CLASS","BADGE_CLASS","LIST_ITEM_CHEVRON_CONTAINER_CLASS","LIST_ITEM_CHEVRON_CLASS","ListItem","_renderWatchers","_startWatcher","_renderBadge","_renderShowChevron","badge","$badge","$chevron","showChevron","$chevronContainer","SCROLLVIEW_PULLDOWN_REFRESHING_CLASS","SCROLLVIEW_PULLDOWN_READY_CLASS","SCROLLVIEW_PULLDOWN_IMAGE_CLASS","SCROLLVIEW_PULLDOWN_INDICATOR_CLASS","SCROLLVIEW_PULLDOWN_TEXT_CLASS","SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS","STATE_RELEASED","STATE_READY","STATE_REFRESHING","STATE_LOADING","PULLDOWN_RELEASE_TIME","PullDownNativeScrollViewStrategy","scrollView","_$topPocket","_$pullDown","_$refreshingText","_$scrollViewContent","_$container","_initCallbacks","pullDownCallbacks","releaseCallbacks","reachBottomCallbacks","_renderPullDown","_releaseState","$image","$loadContainer","$loadIndicator","$text","_$pullDownText","_$pullingDownText","_$pulledDownText","_state","_refreshPullDownText","pullDownTextItems","visibleState","_setTopPocketOffset","_updateDimensions","_topPocketSize","contentEl","containerEl","_bottomBoundary","_allowedDirections","allowedDirections","vertical","_pullDownEnabled","handleEnd","_complete","handleStop","_setPullDownOffset","_pullDownRefreshTimeout","_pullDownRefreshing","handleScroll","currentLocation","scrollDelta","_location","_isPullDown","_pullDownReady","_isReachBottom","_reachBottom","_stateReleased","_reachBottomEnabled","pullDownEnable","reachBottomEnable","pendingRelease","release","_releaseTimeout","_updateAction","SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS","PULLDOWN_ICON_CLASS","STATE_TOUCHED","STATE_PULLED","SwipeDownNativeScrollViewStrategy","_$icon","_releasePullDown","handleInit","_startClientY","handleMove","_deltaY","_movePullDown","pullDownHeight","_getPullDownHeight","_getPullDownStartPosition","angle","transform","_pullDownRefreshHandler","_refreshPullDown","math","ScrollViewScroller","_bottomPocketSize","_updateBounds","considerPockets","_$bottomPocket","_$content","_updateScrollbar","_scrollbar","containerSize","_containerSize","contentSize","_contentSize","scaleRatio","_getScaleRatio","_moveContent","_reachBottomReady","_moveScrollbar","moveTo","_scrollComplete","_inBounds","_reachBottomLoading","_minOffset","_getMinOffset","_getMaxOffset","_maxOffset","_releaseHandler","_moveToBounds","_releaseTask","abort","_release","_reachBottomEnablingHandler","_pullDownEnablingHandler","_considerTopPocketChange","_updateHandler","_move","_pendingReleaseHandler","SimulatedScrollViewStrategy","_eventHandler","_createScroller","scroller","_scrollers","_scrollerOptions","$topPocket","$bottomPocket","$pullDown","$pullDownText","$pullingDownText","$pulledDownText","$refreshingText","SCROLLVIEW_CLASS","SCROLLVIEW_CONTENT_CLASS","SCROLLVIEW_TOP_POCKET_CLASS","SCROLLVIEW_BOTTOM_POCKET_CLASS","SCROLLVIEW_PULLDOWN_CLASS","SCROLLVIEW_REACHBOTTOM_CLASS","SCROLLVIEW_REACHBOTTOM_INDICATOR_CLASS","SCROLLVIEW_REACHBOTTOM_TEXT_CLASS","SCROLLVIEW_LOADPANEL","refreshStrategies","pullDown","swipeDown","simulated","isServerSide","scrollViewServerConfig","finishLoading","ScrollView","pullingDownText","pulledDownText","refreshingText","reachBottomText","onPullDown","onReachBottom","refreshStrategy","realDevice","platform","_loadingIndicatorEnabled","_initScrollableMarkup","_initContent","_initTopPocket","_initBottomPocket","_initLoadPanel","$reachBottom","_$reachBottom","_$reachBottomText","_updateReachBottomText","$loadPanelElement","_createStrategy","strategyName","strategyClass","_strategy","_pullDownHandler","_reachBottomHandler","_createActions","_pullDownAction","_reachBottomAction","_tryRefreshPocketState","_pullDownEnable","_reachBottomEnable","_loadingIndicator","_pullDownLoading","startLoading","preventReachBottom","toggleLoading","showOrHide","_lock","_unlock","isCorrectStructure","hasTwoFields","hasCorrectFields","_getSpecificDataSourceOption","hasSimpleItems","_getGroupedOption","accumulator","innerItem","keepInitialKeyOrder","toNumber","attribute","getElementStyle","el","_getWindow$getCompute","_getWindow","getComputedStyle","getElementMargin","side","_scrollView","LIST_CLASS","LIST_ITEM_CLASS","LIST_ITEM_SELECTOR","LIST_ITEM_ICON_CONTAINER_CLASS","LIST_ITEM_ICON_CLASS","LIST_GROUP_CLASS","LIST_GROUP_HEADER_CLASS","LIST_GROUP_BODY_CLASS","LIST_COLLAPSIBLE_GROUPS_CLASS","LIST_GROUP_COLLAPSED_CLASS","LIST_GROUP_HEADER_INDICATOR_CLASS","LIST_HAS_NEXT_CLASS","LIST_NEXT_BUTTON_CLASS","WRAP_ITEM_TEXT_CLASS","SELECT_ALL_ITEM_SELECTOR","LIST_ITEM_DATA_KEY","LIST_FEEDBACK_SHOW_TIMEOUT","groupItemsGetter","ListBase","moveFocusPerPage","getEdgeVisibleItem","isFocusedItem","resultPosition","scrollToItem","containerHeight","isItemVisible","$nextItem","nextItemLocation","leftArrow","rightArrow","pullRefreshEnabled","pageLoadingText","onPullRefresh","onPageLoading","pageLoadMode","nextButtonText","onItemSwipe","onGroupRendered","collapsibleGroups","groupTemplate","indicateLoading","wrapItemText","_swipeEnabled","showChevronExpr","badgeExpr","_device","_updateLoadingState","_saveSelectionChangeEvent","_selectionChangeEventInstance","_getSelectionChangeEvent","_refreshItemElements","_itemElementsCache","_itemSelector","_modifyByChanges","reorderItem","toItemElement","deleteItem","_itemSelectHandler","isItemSelected","_allowDynamicItemsAppend","resetDataSourcePageIndex","_initScrollView","_feedbackShowTimeout","_createGroupRenderAction","_scrollBottomMode","_nextButtonMode","_dataSourceOptions","scrollBottom","nextButton","_getGroupContainerByIndex","_dataSourceFromUrlLoadMode","autoPagingEnabled","getScrollView","_scrollHandler","_scrollBottomHandler","_createScrollViewActions","_scrollAction","_pullRefreshAction","_pageLoadingAction","_prepareDefaultItemTemplate","$icon","$iconContainer","_getBindableFields","tryLoadMore","shouldLoadNextPage","_shouldContinueLoading","_infiniteDataLoading","_toggleNextButton","_shouldRenderNextButton","_loadIndicationSuppressed","_isDataSourceFirstLoadCompleted","_isFirstLoadCompleted","_dataSourceLoadingChangedHandler","_showLoadingIndicatorTimer","_this$_scrollView","shouldIndicateLoading","_dataSourceChangedHandler","_shouldAppendItems","_refreshContent","_prepareContent","_hideLoadingIfLoadIndicationOff","_isLoadIndicationSuppressed","_scrollViewIsFull","_clearSelectedItems","_this$_scrollView$scr","_this$_scrollView$scr2","isBottomReached","isElementVisible","_loadNextPageTimer","_loadNextPage","_renderGroup","_attachGroupCollapseEvent","attachGroupHeaderInkRippleEvents","$group","_collapseGroupHandler","$groupBody","startHeight","endHeight","_dataSourceLoadErrorHandler","_forgetNextPageLoading","_initialized","roledescription","_setListAria","listArea","_inkRippleTimer","_postprocessRenderItem","_attachSwipeEvent","endEventName","swipe","_itemSwipeEndHandler","_nextButtonHandler","_$nextButton","groupAria","$groupHeaderElement","groupTemplateName","_createItemByTemplate","_renderingGroupIndex","_groupRenderAction","groupData","downInkRippleHandler","upInkRippleHandler","_downInkRippleHandler","_upInkRippleHandler","downArguments","upArguments","_holdTimer","$nextButton","_getNextButton","_createNextButton","$result","_extendActionArgs","expandGroup","resolveWith","collapseGroup","scrollBy","distance","getItemElement","include","TOOLBAR_MENU_ACTION_CLASS","TOOLBAR_HIDDEN_BUTTON_CLASS","TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS","TOOLBAR_MENU_SECTION_CLASS","TOOLBAR_MENU_CUSTOM_CLASS","TOOLBAR_MENU_LAST_SECTION_CLASS","_setMenuRole","_getSections","sectionName","_updateSections","$menuContainer","$sections","_getItemTemplateName","isAction","menuTemplate","_itemClickHandler","KEYBOARD_DRAG_STEP","draggableElement","positionController","_positionController","_draggableElement","_handle","_dragEnabled","unsubscribe","subscribe","_moveTo","eventNames","_getEventNames","startEventName","_dragStartHandler","updateEventName","_dragUpdateHandler","_dragEndHandler","drag","allowedOffsets","_getAllowedOffsets","_prevOffset","targetElements","maxTopOffset","maxBottomOffset","maxLeftOffset","maxRightOffset","targetOffset","_moveByOffset","dragHandled","detectVisualPositionChange","_fitOffsetIntoAllowedRange","$dragResizeContainer","containerDimensions","_getContainerDimensions","elementDimensions","_getElementDimensions","outsideDragFactor","fullDelta","_getInnerDelta","outerDelta","_getOuterDelta","_getFullDelta","isDragAllowed","elementPosition","_getElementPosition","containerPosition","_getContainerPosition","currentPosition","newPosition","RESIZABLE","RESIZABLE_CLASS","RESIZABLE_RESIZING_CLASS","RESIZABLE_HANDLE_CLASS","RESIZABLE_HANDLE_TOP_CLASS","RESIZABLE_HANDLE_BOTTOM_CLASS","RESIZABLE_HANDLE_LEFT_CLASS","RESIZABLE_HANDLE_RIGHT_CLASS","RESIZABLE_HANDLE_CORNER_CLASS","DRAGSTART_START_EVENT_NAME","DRAGSTART_EVENT_NAME","DRAGSTART_END_EVENT_NAME","SIDE_BORDER_WIDTH_STYLES","Resizable","handles","step","stepPrecision","area","roundStepValue","keepAspectRatio","_renderHandles","_renderActions","_resizeStartAction","_resizeEndAction","_resizeAction","_handles","directions","activeHandlesMap","handleName","_renderHandle","_attachEventHandlers","$handle","handlers","_dragHandler","handleElement","immediate","_detachEventHandlers","_toggleEventHandlers","shouldAttachEvents","_getElementSize","_toggleResizingClass","_movingSides","_getMovingSides","_elementLocation","_elementSize","_renderDragOffsets","_getArea","handleWidth","handleHeight","handleOffset","areaOffset","_getAreaScrollOffset","_leftMaxOffset","scrollX","_rightMaxOffset","_topMaxOffset","scrollY","_bottomMaxOffset","_getBorderWidth","_proportionate","factor","_getProportionalDelta","proportionalY","proportionalX","_getDirectionName","axis","sides","_fitIntoArea","directionName","_fitDeltaProportionally","delta","fittedDelta","getWidth","getHeight","isInArea","isFittedX","isFittedY","_fitDelta","_getDeltaByOffset","shouldKeepAspectRatio","_isCornerHandler","proportionalDelta","fittedProportionalDelta","roundedFittedDelta","_roundByStep","elementRect","offsetTop","offsetLeft","_getOffset","dimensions","_triggerResizeAction","isAbsoluteSize","isStepPrecisionStrict","elementStyle","shouldRenderWidth","shouldRenderHeight","xor","_roundStrict","_roundNotStrict","_getSteps","steps","xPos","yPos","newXShift","newYShift","separatorOffset","isSmallOffset","newOffsetX","newOffsetY","roundedOffset_x","roundedOffset_y","hasCornerTopLeftClass","hasCornerTopRightClass","hasCornerBottomLeftClass","hasCornerBottomRightClass","_getAreaFromObject","_getAreaFromElement","isElement","areaElement","pageXOffset","pageYOffset","_correctAreaGeometry","$area","areaBorderLeft","areaBorderTop","_renderWidth","_renderHeight","_excluded","forceApplyBindings","_$dragResizeContainer","_updateDragResizeContainer","_fullScreenEnabled","_fullScreenDisabled","containerProp","updateContainer","restorePositionOnNextRender","_this$_props$forceApp","_this$_props","positionContent","_getDragResizeContainer","isContainerDefined","_$markupContainer","_getVisualContainer","overflowManagerMock","setOverflow","restoreOverflow","createBodyOverflowManager","documentElement","isIosDevice","prevSettings","overflow","overflowX","overflowY","setBodyPaddingRight","scrollBarWidth","innerWidth","getPropertyValue","computedBodyPaddingRight","setProperty","restoreBodyPaddingRight","removeProperty","propertyInKebabCase","symbol","POPUP_CLASS","POPUP_WRAPPER_CLASS","POPUP_FULL_SCREEN_CLASS","POPUP_FULL_SCREEN_WIDTH_CLASS","POPUP_NORMAL_CLASS","POPUP_CONTENT_CLASS","POPUP_CONTENT_SCROLLABLE_CLASS","POPUP_DRAGGABLE_CLASS","POPUP_TITLE_CLASS","POPUP_TITLE_CLOSEBUTTON_CLASS","POPUP_BOTTOM_CLASS","POPUP_HAS_CLOSE_BUTTON_CLASS","TEMPLATE_WRAPPER_CLASS","POPUP_CONTENT_FLEX_HEIGHT_CLASS","POPUP_CONTENT_INHERIT_HEIGHT_CLASS","ALLOWED_TOOLBAR_ITEM_ALIASES","BUTTON_DEFAULT_TYPE","BUTTON_NORMAL_TYPE","BUTTON_TEXT_MODE","BUTTON_CONTAINED_MODE","IS_OLD_SAFARI","HEIGHT_STRATEGIES","static","flex","getButtonPlace","Popup","upArrow","_this$_drag","_drag","moveUp","downArrow","_this$_drag2","moveDown","_this$_drag3","moveLeft","_this$_drag4","moveRight","bottomTemplate","useDefaultToolbarButtons","useFlatToolbarButtons","autoResizeEnabled","_iosAnimation","_androidAnimation","popupWrapperClassExternal","popupWrapperClasses","_createBodyOverflowManager","_updateResizeCallbackSkipCondition","_$popupContent","_toggleContentScrollClass","isFullscreen","_toggleFullScreenClass","_bodyOverflowManager","_getActionsList","_contentResizeHandler","_shouldSkipContentResize","_renderGeometry","shouldOnlyReposition","_doesShowAnimationChangeDimensions","_animation$show","doesShowAnimationChangeDimensions","_showAnimationProcessing","_areContentDimensionsRendered","_observeContentResize","shouldObserve","_entry$contentBoxSize","_this$_renderedDimens3","_this$_renderedDimens4","_this$_renderedDimens","_this$_renderedDimens2","contentBox","contentBoxSize","inlineSize","_renderedDimensions","blockSize","contentRect","_renderTitle","_renderResize","_renderBottom","titleText","_$title","$title","_renderTemplateByType","_renderDrag","_executeTitleRenderAction","_hasCloseButton","additionalToolbarOptions","_getTemplateByOption","toolbarTemplate","toolbarOptions","_getToolbarName","$toolbar","_renderVisibilityAnimate","$titleElement","_getTitleRenderAction","titleElement","_titleRenderAction","_createTitleRenderAction","_getCloseButton","_getCloseButtonRenderer","__","_createToolbarItemAction","toolbarsItems","_toolbarItemClasses","currentPlatform","isShortcut","shortcut","_getToolbarItemByAlias","isLTROrder","_getLocalizationKey","itemConfig","itemClass","$toolbarItem","clickAction","_$bottom","$bottom","compactMode","_toggleClasses","aliases","_zIndex","zIndex","_zIndexInitValue","_$wrapper","isNativeScrollingEnabled","_getPositionControllerConfig","_getDragTarget","topToolbar","useResizeObserver","isAnimated","shouldRepeatAnimation","forceStopAnimation","_isAnimationPaused","_stopAnimation","_renderPosition","_renderGeometryImpl","isDimensionChange","_animateShowing","_cacheDimensions","_resetContentHeight","_setContentHeight","_getOptionValue","$dragTarget","_resizable","_resizeEndHandler","resizeHandled","overlayContent","currentHeightStrategyClass","_chooseHeightStrategy","_getHeightCssStyles","_setHeightClasses","_heightStrategyChangeOffset","popupVerticalPaddings","isAutoWidth","_isAutoHeight","cssStyles","contentMaxHeight","contentMinHeight","popupHeightParts","_splitPopupHeight","toolbarsAndVerticalOffsetsHeight","header","contentVerticalOffsets","popupVerticalOffsets","overlayHeight","innerHeight","$visualContainer","maxHeightValue","minHeightValue","currentClass","excessClasses","bottomToolbar","_isAllWindowCovered","_renderFullscreenWidthClass","_toggleBodyScroll","refreshPosition","_this$_resizable2","_this$_resizable","shouldRenderGeometry","_toggleSafariScrolling","DROP_DOWN_MENU_CLASS","DROP_DOWN_MENU_POPUP_CLASS","DROP_DOWN_MENU_POPUP_WRAPPER_CLASS","DROP_DOWN_MENU_LIST_CLASS","DROP_DOWN_MENU_BUTTON_CLASS","POPUP_BOUNDARY_VERTICAL_OFFSET","POPUP_VERTICAL_OFFSET","extension","_list","_button","tab","_popup","onButtonClick","opened","onItemRendered","closeOnClick","_initItemClickAction","_initButtonClickAction","_itemClickAction","_buttonClickAction","_renderButton","haspopup","_renderPopup","_cleanFocusState","_$popup","_renderList","_ignoreFunctionValueDeprecation","_getMaxHeight","_closeOutsideDropDownHandler","_fixWrapperPosition","windowHeight","isOutsideClick","_getListDataSource","_this$_list","_this$_list2","_deferRendering","_getKeyboardListeners","_toggleVisibility","_this$_list3","_this$_list4","_this$_list5","_setListDataSource","_toggleMenuVisibility","_updateFocusableItemsTabIndex","INVISIBLE_STATE_CLASS","TOOLBAR_DROP_DOWN_MENU_CONTAINER_CLASS","TOOLBAR_AUTO_HIDE_ITEM_CLASS","TOOLBAR_HIDDEN_ITEM","_renderOverflowMenu","_renderMenuItems","_hasVisibleMenuItems","_renderMenuButtonContainer","$menu","_overflowMenuContainer","itemClickAction","_menu","_updateMenuVisibility","_getMenuItems","_$overflowMenuContainer","isMenuVisible","renderMenuItems","_isMenuItem","_this$_toolbar$option2","_this$_restoreItems","$hiddenItems","_getHiddenItems","_restoreItems","overflowItems","hiddenItem","$itemMarkup","overflowGetter","itemVisible","itemOverflow","_this$_restoreItems2","_hideOverflowItems","itemsWidth","_getItemsWidth","_this$_menu","_this$_menu2","_this$_menu3","_this$_menu4","_this$_menu5","_this$_menu6","TOOLBAR_MULTILINE_CLASS","TOOLBAR_AUTO_HIDE_TEXT_CLASS","menuContainer","overflowMenuVisible","multiline","dimension","_layoutStrategy","_renderLayoutStrategy","_isMultiline","HEADER_PANEL_CLASS","TOOLBAR_ARIA_LABEL","DEFAULT_TOOLBAR_ITEM_NAMES","specificClass","secondClass","userToolbarOptions","itemRenderedCallback","userItems","_normalizeToolbarItems","defaultItems","defaultProps","defaultButtonsByNames","normalizedItems","_toolbarOptions","$headerPanel","_getToolbarOptions","normalizedItem","allowDragging","HeaderPanel","headerPanelModule","updateToolbarDimensions","DATAGRID_ROW_SELECTOR","DATAGRID_DEPRECATED_TEMPLATE_WARNING","registerModulesOrder","DataGrid","logHeaderFilterDeprecatedWarningIfNeed","templateName","warn","DATE_REGEX","parseDates","exec","StateStoringController","getStorage","storage","localStorage","getUniqueStorageKey","getItem","setItem","_isLoaded","_windowUnloadHandler","_savingTimeoutID","_saveState","_loadState","isEnabled","getDataState","pagerView","getPageSizes","processLoadState","selectionController","exportController","updateState","selectionChanged","_initialPageSize","_initialFilterValue","selectionOnlyChanged","exportSelectionOnly","selectionOnly","DEFAULT_FILTER_VALUE","filterSyncController","hasFilterState","getFilterValueFromColumns","stateStoringModule","stateLoaded","isStateLoading","applyState","oldState","newState","oldStateHash","newStateHash","save","isVirtualScrollingMode","setUserState","stateStoringController","_restoreStateTimeoutID","isDeferredSelection","EDITOR_CELL_CLASS","ROW_SELECTION_CLASS","SELECT_CHECKBOX_CLASS","CHECKBOXES_HIDDEN_CLASS","COMMAND_SELECT_CLASS","SELECTION_DISABLED_CLASS","SHOW_CHECKBOXES_MODE","SELECTION_MODE","processLongTap","isSelectionWithCheckboxes","stopSelectionWithCheckboxes","startSelectionWithCheckboxes","changeItemSelection","control","isSeveralRowsSelected","keyIndex","isComplexKey","selectionCellTemplate","isRowSelected","renderSelectCheckBoxContainer","selectionHeaderTemplate","_renderSelectAllCheckBox","_attachSelectAllCheckBoxClickEvent","_selectionMode","_isSelectionWithCheckboxes","_selection","_createSelection","_updateSelectColumn","_deselectRemovedOnPush","_updateSelectedOnPush","removedKeys","deselectRows","updateChanges","getSelectedRowsData","selectionOptions","virtualPaging","legacyScrollingMode","maxFilterLengthInRequest","ignoreDisabledItems","hasGroupColumns","select","plainItems","isSelectableItem","getItemData","oldData","loadItemIndex","focusedItemIndex","shiftItemIndex","minIndex","maxIndex","isSelectColumnVisible","_getSelectionConfig","argument","isDeferredMode","selectedItemKeys","removedItemKeys","selectionChangedOptions","changedItemIndexes","getChangedItemIndexes","visibleChangedItemIndexes","_updateCheckboxesState","itemIndexes","addedItemKeys","_selectedItemsInternalChange","selectedRowsData","selectedItems","currentSelectedRowKeys","currentDeselectedRowKeys","_fireSelectionChanged","isDataItem","oldSelectionMode","selectionMode","selectRows","getSelectAllState","_isOnePageSelectAll","selectAll","deselectAll","preserve","isDeselect","isSelectAll","getSelectedItemKeys","indexes","getSelectedItems","loadSelectedItemsWithFilter","visibleItemIndex","setFocusOnly","loadedItemIndex","_focusedItemIndex","selectionModule","hasSelectColumn","currentItem","isUpdateSelection","_updateSelectAllValue","selectAllValue","hasSelection","dxCheckBox","isEmptyData","createEditor","parentType","_attachCheckBoxClickEvent","_renderSelectCheckBox","_updateCheckboxesClass","isSelectionDisabled","isClickableElement","isCommandSelect","isCheckBoxesHidden","querySelectorInSameDocument","_el$getRootNode","_el$getRootNode2","querySelector","getProps","saveValueChangeEvent","_initializeComponent","innerWidget","optionsContainer","innerWidgetOptions","syncOptions","_silent","areValuesEmpty","_this$_valueChangeAct","_getActionConfigs","_addAction","_raiseValidation","prevIsEditor","newIsEditor","focusTarget","classList","defaultNotDeepCopyArrays","propsToIgnore","getDiffItem","resultPaths","fullPropName","notDeepCopyArrays","type1","type2","diffPaths","objectDiffs","notDeepCopy","_diffPaths","objectDiffsFiltered","propsEnumerator","oldProps","processItem","propName","reactProps","ref","objectDiffsWithoutReactProps","p","getUpdatedOptions","_excluded2","normalizeProps","viewFunction","componentProps","restAttributes","widgetRef","DomComponentWrapperProps","setupWidget","updateWidget","templateNames","_this$_effects$","_effects","componentType","properties","updatedOptions","prevProps","_this$config","normalizedProps","valueChange","restProps","_this$props","ValidationMessageProps","getOwnPropertyDescriptors","freeze","isReactComponentWrapper","getCssClasses","classes","classesMap","viewModel","cssClasses","isValidationMessageVisible","rootElementRef","validationMessageGuid","validationMessageTarget","EditorProps","EditorPropsType","__getterCache","updateValidationMessageVisibility","setState","__state_argument","shouldShowValidationMessage","_this$validationError","isEditorValid","readonly","invalid","describedBy","allValidationErrors","_this$rootElementRef","_this$props$value","nextProps","nextState","componentWillUpdate","getElementComputedStyle","_window$getComputedSt","defaultIconSizes","defaultFontSizes","getThemeType","theme","isMaterialTheme","isCompactTheme","getDefaultIconSize","getDefaultFontSize","isChecked","getFontSizeByIconSize","iconSize","defaultFontSize","defaultIconSize","fontToIconSizeRatio","elementRef","CheckBoxIconProps","updateFontSize","setIconFontSize","getIconSize","getComputedIconSize","newIconSize","newFontSize","fontSize","iconComputedStyle","computedIconSize","checked","indeterminate","editorRef","keyDown","onWidgetClick","CheckBoxProps","enableThreeStateBehavior","CheckBoxPropsType","__newValue","_newValue","which","twoWayProps","propValue","defaultPropName","_wrapKeyDownHandler","_this$viewRef","viewRef","_this$viewRef2","twoWay","allowNull","WIDGET_CLASS","NODE_CLASS","NODE_CONTAINER_CLASS","NODE_LOAD_INDICATOR_CLASS","OPENED_NODE_CONTAINER_CLASS","IS_LEAF","ITEM_WITH_CHECKBOX_CLASS","ITEM_WITH_CUSTOM_EXPANDER_ICON_CLASS","CUSTOM_EXPANDER_ICON_ITEM_CONTAINER_CLASS","ITEM_WITHOUT_CHECKBOX_CLASS","ITEM_DATA_KEY","TOGGLE_ITEM_VISIBILITY_CLASS","CUSTOM_COLLAPSE_ICON_CLASS","CUSTOM_EXPAND_ICON_CLASS","LOAD_INDICATOR_CLASS","LOAD_INDICATOR_WRAPPER_CLASS","TOGGLE_ITEM_VISIBILITY_OPENED_CLASS","SELECT_ALL_ITEM_CLASS","SELECTED_ITEM_CLASS","EXPAND_EVENT_NAMESPACE","DATA_ITEM_ID","TreeViewBase","expandEventName","_getEventNameByOption","expandByClick","_expandEventHandler","$focusedElement","checkboxInstance","_getCheckBoxInstance","currentState","_updateItemSelection","toggleExpandedNestedItems","rootItem","_toggleExpandedNestedItems","_showCheckboxes","asterisk","minus","len","_toggleExpandedState","_getNodeElement","_encodeString","$nodeByKey","animationEnabled","expandAllEnabled","hasItemsExpr","selectNodesRecursive","expandNodesRecursive","expandIcon","collapseIcon","selectAllText","onItemSelectionChanged","onItemExpanded","onItemCollapsed","scrollDirection","virtualModeEnabled","expandEvent","createChildren","onSelectAllValueChanged","useDeferUpdateForTemplates","_initSelectedItems","_syncSelectionOptions","selectionChangePromise","_selectionChangePromise","_createSelectAllValueChangedAction","_selectAllValueChangedAction","_fireSelectAllValueChanged","_checkBoxModeChange","selectAllExists","_$selectAllItem","_renderSelectAllItem","_removeSelection","_filter","_initExpandEvent","_useCustomChildrenLoader","_loadChildrenByCustomLoader","newItems","_isVirtualMode","_initVirtualMode","custom","internal","_isDataStructurePlain","parentNode","invocationResult","_combineFilter","_initStoreChangeHandlers","_removeTreeViewLoadIndicator","_treeViewLoadIndicator","_createTreeViewLoadIndicator","resultFilter","_updateLevel","_parentIdGetter","removedKey","_markChildrenItemsToRemove","_removeItems","_getContainerByParentKey","_getOldContainer","_renderNodeContainer","_isRootLevel","_renderScrollableContainer","_this$_dataSource","_this$_dataSource$loa","_this$_dataSource$loa2","_isSingleSelection","_isRecursiveSelection","_selectAllEnabled","skipContentReadyAction","_skipContentReadyAndItemExpanded","_expandedGetter","_node$internalFields","_node$internalFields$","attrs","level","_getLevel","hasChildNodes","_hasCustomExpanderIcons","nodeIndex","nodeData","showCheckBox","_renderCheckBox","_toggleSelectedClass","_renderChildren","_renderCustomExpanderIcons","_renderDefaultExpanderIcons","_loadSublevel","childNodes","_renderSublevel","_getActualNode","_addLeafClass","cachedNode","_hasItemsGetter","childrenNodes","_loadNestedItems","$nestedNodeContainer","childNodesByChildrenKeys","firstChild","_updateParentsState","_normalizeIconState","_executeItemRenderAction","_getNode","_getItemRenderAction","expandedEventName","itemSelector","isElementNode","_getNodeByElement","_decodeString","_nodeHasRenderedChildren","_createLoadIndicator","_updateExpandedItemsUI","_renderExpanderIcon","iconClass","_renderToggleItemVisibilityIconClick","$expandIcon","$collapseIcon","isNodeExpanded","_toggleCustomExpanderIcons","isHiddenNode","$childExpandIcons","$childCollapseIcons","nodeContainerExists","completionCallback","_animateNodeContainer","_loadNestedItemsWithUpdate","actualNodeData","_areNodesExists","_appendItems","keyOfRootItem","fullData","nodeHeight","_fireExpandedStateUpdatedEvent","_itemEventHandler","hasNewItems","_LoadIndicator$getIns","$toggleItem","_emptyMessageContainer","_contentAlreadyRendered","_onSelectAllCheckboxValueChanged","before","_toggleSelectAll","_updateItemsUI","$checkbox","_changeCheckboxValue","_toggleNodeDisabledState","checkbox","_isLastSelectedBranch","selectedNodesKeys","_isLastRequired","isSingleMode","getSelectedNodeKeys","_fireItemSelectionChanged","needFireSelectAllChanged","initiator","nodeSelection","selectAllCheckbox","$parentNode","parentValue","_itemEventHandlerImpl","_createEventHandler","_itemHoldHandler","clickSelector","pointerDownSelector","pointerDownEvent","_itemPointerDownHandler","_updateSelectionToFirstItem","startIndex","_updateSelectionToLastItem","isSelectAllItem","_setFocusedItemTimeout","_setFocusedItem","_findNonDisabledNodes","$nodes","FOCUS_UP","FOCUS_DOWN","FOCUS_FIRST","FOCUS_LAST","FOCUS_LEFT","FOCUS_RIGHT","_nodeElements","$prevItem","prevItemElement","_getNodeItemElement","nextItemElement","$firstItem","$lastItem","_expandFocusedContainer","_collapseFocusedContainer","$focusedNode","_getClosestNonDisabledNode","nodeElement","collapsedNode","encodeURI","decodeURI","unselectItem","expandItem","collapseItem","getNodes","getSelectedNodes","unselectAll","_allItemsExpandedHandler","expandAll","expandingPromises","allSettled","_this$_allItemsExpand","_allItemsExpanded","collapseAll","keyOrItemOrElement","nodeKeysToExpand","scrollCallback","_expandNodes","scrollToElementTopLeft","relativeOffset","containerElement","keysToExpand","resultCallback","callbacksByNodes","TreeViewSearch","_updateSearch","_repaintContainer","_updateDataAdapter","_getNodeContainer","rootNodes","_cleanItemContainer","isSearchMode","COLUMN_CHOOSER_CLASS","COLUMN_CHOOSER_BUTTON_CLASS","NOTOUCH_ACTION_CLASS","COLUMN_CHOOSER_LIST_CLASS","COLUMN_CHOOSER_PLAIN_CLASS","COLUMN_CHOOSER_DRAG_CLASS","COLUMN_CHOOSER_SELECT_CLASS","COLUMN_CHOOSER_ICON_NAME","COLUMN_CHOOSER_ITEM_CLASS","COLUMN_OPTIONS_USED_IN_ITEMS","processItems","chooserColumns","isSelectMode","isRecursive","isRecursiveWithColumns","columnChooserControllerMembers","$columnChooserButton","columnChooserButtonClass","columnChooserEnabled","$showColumnChooserButton","ColumnChooserController","columnChooserMembers","_isWinDevice","win","columnChooserClass","columnChooserOptions","isGenericTheme","isMaterial","dxPopupOptions","class","getPosition","_popupContainer","setPopupAttributes","isBandColumnsUsed","isDragMode","_columnChooserList","_updateItems","_renderTreeView","treeViewConfig","_prepareSelectModeConfig","_prepareDragModeConfig","isUpdatingSelection","addNodesToArray","flatNodesArray","_isUpdatingColumnVisibility","changedColumns","onlyVisibleChanged","needUpdate","_updateItemsSelection","_initializePopupContainer","isColumnHidden","isColumnChooserVisible","popupContainer","hiddenColumns","ColumnChooserView","columnChooserModule","_appendColumnChooserItem","hintText","_getToolbarButtonClass","isMoveColumnDisallowed","createGroupFilter","groups","createOffsetFilter","lastLevelOnly","filterElement","currentFilter","GroupingHelper","findGroupInfoByKey","groupsInfo","hash","getGroupInfoIndexByOffset","leftIndex","rightIndex","middleIndex","_groupsInfo","totalCountCorrection","_isVirtualPaging","calculateItemsCount","isGroupItemCountable","childrenAtFirst","foreachCollapsedGroups","updateOffsets","updateParentOffsets","foreachGroupsCore","callbackResults","executeCallback","callbackResult","currentParents","_updateGroupInfoOffsets","groupInfo","pathIndex","groupInfoData","allowCollapseAll","oldGroups","_group","cleanGroupsInfo","getContinuationGroupCount","groupOffset","pageOffset","foreachExpandedGroups","updateGroups","foreachGroups","processGroupItems","expandedInfo","isLastGroupExpanded","paths","lastCount","findGroupInfo","updateGroupInfoItem","isLastGroupLevel","addGroupInfo","_isGroupExpanded","updateGroupInfos","loadedGroupCount","remotePaging","isGroupExpanded","getTotalOffset","groupInfos","totalOffset","childrenTotalCount","applyContinuationToGroupItem","groupLevel","expandedItemIndex","isLastExpandedItem","isFirstExpandedItem","lastExpandedItemSkip","isItemsTruncatedByTake","isDataDeferred","makeDataDeferred","loadGroupItems","currentGroupCount","currentGroupIndex","currentGroup","requireGroupCount","groupSummary","expandedFilters","expandedPath","isPagingLocal","isLastLevelGroupItemsPagingLocal","sortLastLevelGroupItems","expandedItems","loadGroupTotalCount","isGrouping","isFinite","isVirtualPaging","skipChildrenTotalCount","takeCorrection","parentTakeCorrection","continuationGroupCount","skipContinuationGroupCount","groupInfoCount","childrenGroupInfoCount","remoteGroupPaging","isLastGroup","_updatePagingOptions","updateTotalItemsCount","_processPaging","firstItem","_processSkips","lastItem","maxTakeCount","_processTakes","handleGroup","groupCountQuery","groupOffsetQuery","loadTotalCount","correctSkipLoadOption","skipCorrection","resultSkip","pathEquals","path1","path2","updateGroupOffsets","additionalGroupInfo","getGroupCount","collapsedGroups","collapsedItemsCount","skipFirstItem","sorts","arrangeSortingInfo","appendCollapsedPath","collapsedGroup","keyValue","pathValue","_totalCountWasIncreasedByCollapsedItems","query","multiLevelGroup","enumerate","groupedData","removeLastItemsCount","needRemoveFirstItem","offsetInfo","itemsCountCorrection","beginPageIndex","dataSourceItems","DATAGRID_GROUP_PANEL_CLASS","DATAGRID_GROUP_PANEL_MESSAGE_CLASS","DATAGRID_GROUP_PANEL_ITEM_CLASS","DATAGRID_GROUP_PANEL_LABEL_CLASS","DATAGRID_GROUP_PANEL_CONTAINER_CLASS","DATAGRID_EXPAND_CLASS","DATAGRID_GROUP_ROW_CLASS","GroupingDataSourceAdapterExtender","_initGroupingHelper","_grouping","isAutoExpandAll","isFocusedRowEnabled","isODataRemoteOperations","_collapseExpandAll","isExpand","beginLoading","_changeRowExpandCore","endLoading","changeRowExpand","_hasGroupLevelsExpandState","resetCache","handleDataLoading","handleDataLoaded","handleDataLoadedCore","GroupingDataControllerExtender","_processGroupItems","_processGroupItem","groupedColumns","collectContinuationItems","resultItems","onGroupingMenuItemClick","clearGrouping","isGroupPanelVisible","canDrag","GroupingHeaderPanelExtender","_appendGroupingItem","_isGroupPanelVisible","isRendered","$groupPanel","_updateGroupPanelContent","_createGroupPanelItem","$groupPanelItem","$toolbarElement","_renderGroupPanelItems","$groupedColumnElement","isGroupingAllowed","isColumnGrouped","GroupingRowsViewExtender","isGroupRowStateChanged","isExpandButtonClicked","_changeGroupRowState","columnHeadersViewExtender","getExpandCellTemplate","_isProcessedItem","MASTER_DETAIL_CELL_CLASS","MASTER_DETAIL_ROW_CLASS","masterDetailModule","initMasterDetail","_expandedItems","_isExpandAll","expandIndex","_getRowIndicesForExpand","detailColumnIndex","isEnabledChanged","isAutoExpandAllChanged","_updateParentDataGrids","$masterDetailRow","_updateMasterDataGrid","$detailElement","masterRowOptions","masterDataGrid","_updateMasterDataGridCore","isFixedColumns","_updateFixedMasterDetailGrids","masterRowIndex","getRowElement","$tables","rowsNotEqual","tablesNotEqual","detailElementWidth","isDetailHorizontalScrollCanBeShown","isDetailGridWidthChanged","isEditRow","_isDetailRow","$detailCell","getRealSeparatorIndex","quoteBalance","separatorCount","occurrence","getNthOccurrence","n","splitByIndex","adjustPercentValue","getCaretBoundaries","signParts","getSign","prefixStubLength","postfixStubLength","_getDigitCountBeforeIndex","decimalSeparator","getDecimalSeparator","regExp","textBeforePosition","_reverseText","_getDigitPositionByIndex","digitIndex","_trimNonNumericCharsFromEnd","getCaretWithOffset","getCaretAfterFormat","formatted","point","isSeparatorBasedText","isSeparatorBasedString","realSeparatorOccurrenceIndex","pointPosition","newPointPosition","textParts","formattedParts","isCaretOnFloat","relativeIndex","digitsBefore","getCaretInBoundaries","formattedIntPart","positionFromEnd","digitsFromEnd","newPositionFromEnd","newPositionFromBegin","isCaretInBoundaries","boundaries","getCaretOffset","newText","previousBoundaries","newBoundaries","SPIN_CLASS","SPIN_BUTTON_CLASS","SPIN_HOLD_DELAY","NUMBER_BOX","POINTERUP_EVENT_NAME","POINTERCANCEL_EVENT_NAME","SpinButton","_spinIcon","_spinDownHandler","_spinChangeHandler","_clearTimer","_feedBackDeferred","setInterval","clearInterval","SPIN_CONTAINER_CLASS","SPIN_TOUCH_FRIENDLY_CLASS","$spinContainer","$spinContainerChildren","pointerDownAction","_spinButtonsPointerDownHandler","_spinUpChangeHandler","_spinDownChangeHandler","$spinUp","$spinDown","_getOptions","_isTouchFriendly","isTouchFriendly","shouldUpdate","$spinButtons","spinUp","spinDown","FIREFOX_CONTROL_KEYS","FORCE_VALUECHANGE_EVENT_NAMESPACE","NumberBoxBase","showSpinButtons","useLargeSpinButtons","invalidValueMessage","_isSupportInputMode","generic","_renderSubmitElement","inputmode","_validateValue","_$submitElement","_setSubmitValue","isInputCharValid","_keyPressed","_spinValueChange","_forceValueRender","valuenow","valuetext","_applyDisplayValueFormatter","valuemin","valuemax","_normalizeInputValue","_correctRounding","regex","isFloatValue","isFloatStep","valueAccuracy","stepAccuracy","accuracy","_round","multiplier","forceValueChangeEvent","_forceRefreshInputValue","_normalizeText","_parseValue","valueHasDigits","_applyValueBoundaries","isValueIncomplete","_isValueIncomplete","isValueCorrect","_isValueInRange","_replaceCommaWithPoint","_inputIsInvalid","isNumberMode","validityState","badInput","_isNumber","isValueValid","isNumber","NUMBER_FORMATTER_NAMESPACE","MOVE_FORWARD","MOVE_BACKWARD","MINUS","MINUS_KEY","INPUT_EVENT","CARET_TIMEOUT_DURATION","NumberBoxMask","useMaskBehavior","_isDeleteKey","_useMaskBehavior","_revertSign","_removeHandler","backspace","_arrowHandler","home","_moveCaretToBoundaryEventHandler","_updateFormattedValue","_getTextSeparatorIndex","clearCaretTimeout","_getInputVal","decimalSeparatorIndex","shouldHandleEvent","_focusOutOccurs","_getFormatPattern","_format","_hasValueBeenChanged","_updateParsedValue","_adjustParsedValue","_setTextByParsedValue","_parsedValue","nextCaret","_moveCaretToBoundary","_shouldMoveCaret","isDecimalSeparatorNext","moveToFloat","_lastKey","convertDigits","_keyboardHandler","_lastKeyName","_shouldHandleKey","normalizedText","enteredChar","_tryParse","isDeleteKey","isBackspaceKey","caretPosition","canDelete","_isStub","shouldTriggerInputEvent","editedText","noDigits","valueAfterRemoving","_isNonStubAfter","_isPercentFormat","noEscapedFormat","_parse","formatOption","isCustomParser","integerPartStartIndex","formatPointIndex","textPointIndex","formatIntegerPartLength","textIntegerPartLength","customFormatter","_currentFormat","_updateFormat","isLDMLPattern","isExponentialFormat","shouldUseFormatAsIs","_getFormatForSign","_sign","_removeStubs","excludeComma","thousandsSeparator","getThousandsSeparator","stubs","_getStubs","prefixStubs","postfixRegex","decoratorsRegex","regExpResult","stub","_truncateToPrecision","maxPrecision","strValue","isTextSelected","_getParsedValue","_getPrecisionLimits","isDecimalPointRestricted","isUselessCharRestricted","textWithoutStubs","parsedValueSign","parsedValueWithSign","pointIndex","floatLength","isPrecisionInRange","endsWithZero","_setInputText","_formattedValue","isNumberType","isDesktop","_isChar","isSpecialChar","altKey","isMinusKey","_renderFormatter","_clearCache","_detachFormatterEvents","_attachFormatterEvents","_isInputFromPaste","_isValuePasted","_formatValue","isString","escapedDecimalSeparator","regExpString","stubRegExp","currentFormat","realSeparatorIndex","floatPart","minPrecision","_applyRevertedSign","preserveSelectedText","currentText","caretInBoundaries","_removeMinusFromText","isMinusPressed","parsed","textWithoutMinus","wasMinusRemoved","textWasChanged","clearedText","DROP_DOWN_EDITOR_BUTTON_CLASS","DROP_DOWN_EDITOR_BUTTON_VISIBLE","BUTTON_MESSAGE","currentTemplate","_editor$_shouldCallOp","_shouldCallOpenHandler","_openHandler","_addTemplate","_isSameTemplate","getElementWidth","getSizeValue","DROP_DOWN_EDITOR_CLASS","DROP_DOWN_EDITOR_INPUT_WRAPPER","DROP_DOWN_EDITOR_BUTTON_ICON","DROP_DOWN_EDITOR_OVERLAY","DROP_DOWN_EDITOR_OVERLAY_FLIPPED","DROP_DOWN_EDITOR_ACTIVE","DROP_DOWN_EDITOR_FIELD_CLICKABLE","DROP_DOWN_EDITOR_FIELD_TEMPLATE_WRAPPER","isIOs","DropDownEditor","$focusableElement","_getLastPopupElement","_getFirstPopupElement","close","_validatedOpening","onOpened","onClosed","acceptCustomValue","applyValueMode","dropDownButtonTemplate","fieldTemplate","openOnFieldClick","showDropDownButton","dropDownOptions","popupPosition","_getDefaultPopupPosition","onPopupInitialized","applyButtonText","cancelButtonText","buttonsLocation","useHiddenSubmitElement","isRtlEnabled","isGeneric","_initVisibilityActions","_initPopupInitializedAction","_updatePopupPosition","_openAction","_closeAction","_popupInitializedAction","_renderOpenHandler","_attachFocusOutHandler","_renderOpenedState","_createPopup","_wrapInput","_setDefaultAria","_isEditable","_detachFocusEvents","_getFieldTemplate","_renderField","_renderTemplatedField","_fieldRenderData","hasFieldTemplate","_this$_fieldRenderQue","_fieldRenderQueueLength","_detachKeyboardEvents","_refreshButtonsContainer","_detachWrapperContent","$templateWrapper","_integrateInput","_attachWrapperContent","_this$_$submitElement","beforeButtonsContainerParent","afterButtonsContainerParent","removeChild","_this$_$submitElement2","_refreshEmptinessEvent","dropDownButton","$inputWrapper","_getInputClickHandler","_openOnFieldClickAction","_detachFocusOutEvents","newTarget","isNewTargetOutside","_isTargetOutOfComponent","popupWrapper","isTargetOutsidePopup","_executeOpenAction","_focusInput","_toggleOpenState","_resetCaretPosition","ignoreEditable","inputElement","_popupContentId","_setPopupOption","arias","controls","_getControlsAria","_renderPopupContent","popupConfig","_popupConfig","_popupShowingHandler","shown","_popupShownHandler","hiding","_popupHidingHandler","hidden","_popupHiddenHandler","contentReady","_contentReadyHandler","_setPopupContentId","_popupInitializedHandler","_getPopupToolbarItems","onPositioned","_popupPositionedHandler","_wrapperClassExternal","_ignorePreventScrollEventsDeprecation","_updatePopupWidth","popupWidth","_e$position","_e$position$v","$popupOverlayContent","isOverlayFlipped","flip","shouldIndentForLabel","_getValidationMessagePositionSide","myTop","popupTop","$dropDownButton","isInputClicked","isDropDownButtonClicked","_setWidgetOption","_popupToolbarItemsConfig","_popupElementTabHandler","_popupElementEscHandler","_popupButtonInitializedHandler","registerKeyHandler","buttonsConfig","_applyButtonHandler","_cancelButtonHandler","_applyButtonsLocation","resultConfig","_popupOptionChanged","getOptionsFromContainer","optionsKeys","_this$_popup","open","SELECTION_SHIFT","SELECTION_MASK","combineIndex","indices","splitIndex","combinedIndex","GroupedEditStrategy","_groupElements","_groupItemElements","getIndexByItemData","getItemDataByIndex","itemsGetter","deleteItemAtIndex","itemGroup","getKeysByItems","_equalKeys","_getGroups","getItemsByKeys","groupItemByKeyMap","getItemMeta","groupKey","itemMeta","selectedGroup","moveItemAtIndexToIndex","movingIndex","destinationIndex","movingIndices","destinationIndices","movingItemGroup","destinationItemGroup","movedItemData","_isItemIndex","_getNormalizedItemIndex","_normalizeItemIndex","_denormalizeItemIndex","_getItemByNormalizedIndex","_itemsFromSameParent","firstIndex","secondIndex","registry","register","decoratorClass","decoratorsRegistry","decoratorConfig","editOptionsRegistry","registerOption","enabledFunc","decoratorTypeFunc","decoratorSubTypeFunc","decoratorType","decoratorSubType","LIST_ITEM_BEFORE_BAG_CLASS","LIST_ITEM_AFTER_BAG_CLASS","DECORATOR_BEFORE_BAG_CREATE_METHOD","DECORATOR_AFTER_BAG_CREATE_METHOD","DECORATOR_MODIFY_ELEMENT_METHOD","DECORATOR_AFTER_RENDER_METHOD","DECORATOR_GET_EXCLUDED_SELECTORS_METHOD","EditProvider","list","_fetchRequiredDecorators","_decorators","decorator","optionEnabled","_createDecorator","subType","_findDecorator","_registry$type","foundDecorator","modifyItemElement","_prependBeforeBags","_appendAfterBags","_applyDecorators","afterItemsRendered","$beforeBags","_collectDecoratorsMarkup","$afterBags","method","containerClass","$collector","_handlerExists","decorators","response","handleClick","handleKeyboardEvents","currentFocusedIndex","moveFocusUp","handleEnterPressing","contextMenuHandlerExists","handleContextMenu","getExcludedItemSelectors","excludedSelectors","LIST_ITEM_SELECTED_CLASS","LIST_ITEM_RESPONSE_WAIT_CLASS","ListEdit","moveFocusedItem","editStrategy","getNormalizedIndex","isLastIndexFocused","_getLastItemIndex","nextItemIndex","editProvider","_editProvider","isInternalMoving","_isItemStrictEquals","privateKey","__dx_key__","showSelectionControls","menuMode","allowItemDeleting","itemDeleteMode","itemDragging","_initEditProvider","_isPageSelectAll","_disposeEditProvider","_refreshEditProvider","_itemResponseWaitClass","handledByEditProvider","_getItemContainer","changeData","_this$_editStrategy$g","_initEditStrategy","flatIndex","ListSearch","_getCombinedFilter","addSearchFilter","DataExpressionMixin","_dataExpressionDefaultOptions","_initDataExpressions","_compileValueGetter","_itemsToDataSource","_initDataController","_displayGetterExpr","_valueGetter","_valueGetterExpr","_loadValue","_unwrappedValue","_loadSingle","_isValueEquals","_loadValueDeferred","_rejectValueLoading","_this$_loadValueDefer","shouldSkipCallback","_getCurrentValue","_getItemKey","unwrap","value1","value2","dataSourceKey","_compareValues","_compareByCompositeKey","_compareByKey","isObject","unwrapObservable","valueKey1","valueKey2","_setCollectionWidgetItemTemplate","_setCollectionWidgetOption","_getCollectionKeyExpr","isValueExprField","_dataExpressionOptionChanged","DROPDOWNLIST_POPUP_WRAPPER_CLASS","SEARCH_EVENT","SEARCH_MODES","useCompositionEvents","DropDownList","_allowSelectItemByTab","_setSelectedElement","_setValue","minSearchLength","encodeNoDataText","showDataBeforeSearch","useItemTextAsTitle","_validateSearchMode","_clearSelectedItem","_initItems","_setListFocusedElementOptionChange","_updateParentActiveDescendant","_updateActiveDescendant","_initContentReadyAction","_initSelectionChangedAction","_contentReadyAction","_selectionChangedAction","_saveFocusOnWidget","initialOption","_fitIntoRange","_getPlainItems","availableItems","_calcNextItem","nextIndex","_getSelectedIndex","_updateCustomBoundaryContainer","_popupWrapperClass","customContainer","$containerWithParents","_$customBoundaryContainer","_loadInputValue","_setSelectedItem","_loadItem","_getItemFromPlain","itemByValue","listFocusedItemId","getFocusedItemId","isElementOnDom","_displayValue","_refreshSelected","_listItemElements","itemValue","_isSelectedValue","_setFocusPolicy","normalizedSearchMode","_processDataSourceChanging","_setListOption","_isCustomValueAllowed","_clearFilter","_$list","canListHaveFocus","_canListHaveFocus","_listId","$list","_listConfig","_refreshList","_renderPreventBlurOnListClick","_shouldRefreshDataSource","dataSourceProvided","_needPassDataSourceToList","_templates","templateProvider","_listContentReadyHandler","_listItemClickAction","_getDataSource","dxList","_updateListDimensions","_listItemClickHandler","_isMinSearchLengthExceeded","_searchValue","_needClearFilter","_canKeepDataSource","isMinSearchLengthExceeded","_isLastMinSearchLengthExceeded","_getSearchEvent","_getCompositionStartEvent","_getCompositionEndEvent","_getSetFocusPolicyEvent","_shouldRenderSearchEvent","_searchHandler","_isTextCompositionInProgress","_isTextComposition","_clearSearchTimer","_searchTimer","_searchDataSource","_searchCanceled","_filterDataSource","_dataSourceFiltered","_refreshPopupVisibility","_shouldOpenPopup","_hasItemsToShow","shouldOpenPopup","resultAmount","_needPopupRepaint","currentPageIndex","needRepaint","_pageIndex","$customBoundaryContainer","submitValue","_shouldUseDisplayValue","RADIO_BUTTON_CLASS","RADIO_BUTTON_ICON_CLASS","RADIO_BUTTON_ICON_DOT_CLASS","RADIO_BUTTON_CHECKED_CLASS","RADIO_BUTTON_ICON_CHECKED_CLASS","RadioButton","_clickAction","_renderIcon","_renderCheckedState","_renderClick","LIST_EDIT_DECORATOR","SWIPE_START_EVENT_NAME","SWIPE_UPDATE_EVENT_NAME","SWIPE_END_EVENT_NAME","EditDecorator","_shouldHandleSwipe","swipeConfig","itemSizeFunc","_clearSwipeCache","_itemWidthCache","_itemSwipeStartHandler","_itemSwipeUpdateHandler","_swipeStartHandler","_swipeUpdateHandler","_swipeEndHandler","beforeBag","afterBag","_commonOptions","modifyElement","afterRender","visibilityChange","getExcludedSelectors","SELECT_DECORATOR_ENABLED_CLASS","SELECT_DECORATOR_SELECT_ALL_CLASS","SELECT_DECORATOR_SELECT_ALL_CHECKBOX_CLASS","SELECT_DECORATOR_SELECT_ALL_LABEL_CLASS","SELECT_CHECKBOX_CONTAINER_CLASS","SELECT_RADIO_BUTTON_CONTAINER_CLASS","SELECT_RADIO_BUTTON_CLASS","FOCUSED_STATE_CLASS","CLICK_EVENT_NAME","_singleStrategy","_containerClass","_controlClass","_controlWidget","$control","_isSelected","_processCheckedState","_updateSelectAllState","_$selectAll","_selectAllCheckBox","_renderSelectAll","moveFocusDown","$selectAll","lastItemIndex","isFocusOutOfList","hasSelectAllItem","downArrowHandler","_attachSelectAllHandler","_selectAllHandler","_selectAllClickHandler","isSelectedAll","_selectAllItems","_unselectAllItems","_checkSelectAllCapability","_disposeSelectAll","DISABLED_STATE_SELECTOR","SELECTBOX_CLASS","SELECTBOX_POPUP_CLASS","SELECTBOX_CONTAINER_CLASS","SELECTBOX_POPUP_WRAPPER_CLASS","clearSelectBox","_valueSubstituted","_preventFiltering","_savedTextRemoveEvent","_preventSubstitution","searchIfNeeded","_cancelSearchIfNeed","_setNextValue","_cancelEditing","isOpened","inputText","isCustomText","isSearchEnabled","customItemCreateEvent","onCustomItemCreating","customItem","tooltipEnabled","displayCustomValue","_initCustomItemCreatingAction","_renderTooltip","_focusListElement","_updateField","_scrollToSelectedItem","_focusSelectedElement","_items$indexOf","$listItems","_isCustomItemSelected","_renderFocusedElement","_preventInputValueRender","isPaginate","_renderInputValueAsync","_renderInputValueImpl","_setNextItem","dataSourceIsLoaded","hasPages","isLastItem","isUnknownItem","_getSelectionChangeHandler","onFocusedItemChanged","_listFocusedItemChangeHandler","focusedItem","_selectionChangeHandler","addedItem","_getActualSearchValue","_shouldClearFilter","_restoreInputText","_wasSearch","showDataImmediately","_isValueEqualInputText","initialSelectedItem","_shouldCancelSearch","saveEditingValue","_loadItemDeferred","_isValueChanging","_createCustomItem","_clearTextValue","newSelectedItem","_valueChangeEventIncludesBlur","_isPreventedFocusOutEvent","isOverlayTarget","_isOverlayNestedTarget","shouldCancelSearch","isPopupVisible","_hideAnimationProcessing","_shouldCancelSearchValue","selectedItemText","shouldRestoreValue","activeElement","$listFocused","_shouldCloseOnItemClick","_completeSelection","_customItemAddedHandler","_customItemCreatingAction","actionResult","_setCustomItem","_wasSearchValue","_renderInputSubstitution","currentSearchLength","inputHasSelection","isLastSymbolSelected","_shouldSubstitutionBeRendered","valueLength","monthGetter","getMonth","monthSetter","getDate","monthLimits","getLimits","newDay","PATTERN_GETTERS","getHours","E","M","H","m","s","S","PATTERN_SETTERS","hours","setHours","lastDayInMonth","isPM","getDay","currentYear","getFullYear","maxLimitLength","getPatternGetter","patternChar","renderDateParts","regExpInfo","regexp","sections","patterns","isStub","limits","forcedPattern","dM","getAmPm","getDatePartIndexByPosition","dateParts","caretInGroup","DATE_COMPONENTS","TIME_COMPONENTS","ONE_MINUTE","ONE_DAY","ONE_YEAR","getStringFormat","formatType","dateUtils","SUPPORTED_FORMATS","MIN_DATEVIEW_DEFAULT_DATE","MAX_DATEVIEW_DEFAULT_DATE","FORMATS_INFO","getStandardPattern","components","time","standardPattern","FORMATS_MAP","SUBMIT_FORMATS_MAP","toStandardDateFormat","fromStandardDateFormat","getMaxMonthDay","mergeDates","getTime","formatInfo","componentInfo","DATE_COMPONENTS_INFO","getLongestCaptionIndex","captionArray","longestIndex","longestCaptionLength","formatUsesMonthName","formatUsesDayName","getLongestDate","monthNames","dayNames","stringFormat","longestDate","normalizeTime","setSeconds","setMilliseconds","formatDate","startValue","endValue","getMonthNames","minutes","seconds","milliseconds","CALENDAR_NAVIGATOR_CLASS","CALENDAR_NAVIGATOR_PREVIOUS_MONTH_CLASS","CALENDAR_NAVIGATOR_NEXT_MONTH_CLASS","CALENDAR_NAVIGATOR_PREVIOUS_VIEW_CLASS","CALENDAR_NAVIGATOR_NEXT_VIEW_CLASS","CALENDAR_NAVIGATOR_DISABLED_LINK_CLASS","CALENDAR_NAVIGATOR_CAPTION_BUTTON_CLASS","BUTTON_TEXT_CLASS","onCaptionClick","_captionClickAction","_renderCaption","_prevButton","$prevButton","_nextButton","_caption","viewCaptionTexts","captionText","$caption","buttonPrefix","abstract","CALENDAR_OTHER_VIEW_CLASS","CALENDAR_CELL_CLASS","CALENDAR_CELL_START_CLASS","CALENDAR_CELL_END_CLASS","CALENDAR_CELL_START_IN_ROW_CLASS","CALENDAR_CELL_END_IN_ROW_CLASS","CALENDAR_WEEK_NUMBER_CELL_CLASS","CALENDAR_EMPTY_CELL_CLASS","CALENDAR_TODAY_CLASS","CALENDAR_SELECTED_DATE_CLASS","CALENDAR_CELL_IN_RANGE_CLASS","CALENDAR_CELL_RANGE_HOVER_CLASS","CALENDAR_CELL_RANGE_HOVER_START_CLASS","CALENDAR_CELL_RANGE_HOVER_END_CLASS","CALENDAR_RANGE_START_DATE_CLASS","CALENDAR_RANGE_END_DATE_CLASS","CALENDAR_CONTOURED_DATE_CLASS","NOT_WEEK_CELL_SELECTOR","CALENDAR_DXCLICK_EVENT_NAME","CALENDAR_DXHOVERSTART_EVENT_NAME","hover","CALENDAR_DATE_VALUE_KEY","BaseView","_getViewName","disabledDates","onCellHover","allowValueSelection","_todayDate","_renderImpl","_createDisabledDatesHandler","_renderBody","_renderContouredDate","_renderRange","_$table","localizedWidgetName","localizedHotKeysInfo","$body","rowData","cellDate","_getFirstCellData","prevCellDate","colIndex","_renderWeekNumberCell","_getClassNameByDate","getShortDateFormat","getCellAriaLabel","fixTimezoneGap","_prepareCellTemplateData","_getCellText","_getNextCellData","_isTodayCell","_isDateOutOfRange","isDateDisabled","_isOtherView","_isStartDayOfMonth","_isEndDayOfMonth","isDateCell","_createCellClickAction","_cellClickAction","_createCellHoverAction","_cellHoverAction","_disabledDatesHandler","_getDefaultDisabledDatesHandler","contouredDate","$oldContouredCell","_getContouredCell","$newContouredCell","_getCellByDate","_updateSelectedClass","_this$_$selectedCells","_$selectedCells","_this$_$rangeCells","_this$_$hoveredRangeC","_this$_$rangeStartHov","_this$_$rangeEndHover","_this$_$rangeStartDat","_this$_$rangeEndDateC","_this$_$rangeStartDat2","_this$_$rangeEndDateC2","_$rangeCells","_$hoveredRangeCells","_$rangeStartHoverCell","_$rangeEndHoverCell","_$rangeStartDateCell","_$rangeEndDateCell","_this$_$hoveredRangeC2","_this$_$rangeStartHov2","_this$_$rangeEndHover2","_this$_$rangeStartHov3","_this$_$rangeEndHover3","hoveredRange","_getFirstAvailableDate","getViewFirstCellDate","isBoundary","_renderHoveredRange","CALENDAR_OTHER_MONTH_CLASS","Views","firstDayOfWeek","_renderHeader","_renderFocusTarget","$headerRow","$header","_renderHeaderCell","_renderWeekHeaderCell","fullCaption","abbreviated","abbrCaption","_getDayCaption","scope","abbr","$weekNumberHeaderCell","showWeekNumbers","weekNumber","_getWeekNumber","weekNumberRule","getWeekNumber","getNavigatorCaption","today","sameDate","minDate","maxDate","dateInRange","getFirstMonthDate","getLastMonthDate","daysInWeek","dayIndex","getDayNames","firstDay","firstMonthDayOffset","sameMonthAndYear","isDisabledDate","currentDate","foundDate","sameYear","decade","sameDecade","getFirstYearInDecade","createDateWithFullYear","firstYearInDecade","startDate","endDate","_isValueOnCurrentView","century","minDecade","maxDecade","sameCentury","getFirstDecadeInCentury","firstDecadeInCentury","CalendarSelectionStrategy","calendar","_dateOption","_dateValue","_skipNavigate","_updateAriaSelected","_updateAriaId","_previousValue","_convertToDate","_updateViewsValue","updateAriaSelected","_currentDateChanged","_initCurrentDate","dates","_isMaxZoomLevel","_updateViewsOption","dateOption","selectedValue","skipNavigate","dateValue","alreadySelectedIndex","toDateString","_updateCurrentDate","_getLowestDateInArray","DAY_INTERVAL","RANGE_OFFSET","_getValues","_getDaysInRange","_cellHoverHandler","_valueSelected","processValueChanged","_getRange","_allowChangeSelectionOrder","_currentSelection","rangeStartDate","rangeEndDate","getDatesOfInterval","isMaxZoomLevel","skipHoveredRange","CALENDAR_CLASS","CALENDAR_BODY_CLASS","CALENDAR_FOOTER_CLASS","CALENDAR_TODAY_BUTTON_CLASS","CALENDAR_HAS_FOOTER_CLASS","CALENDAR_VIEWS_WRAPPER_CLASS","CALENDAR_VIEW_CLASS","CALENDAR_MULTIVIEW_CLASS","CALENDAR_RANGE_CLASS","GESTURE_COVER_CLASS","ANIMATION_DURATION_SHOW_VIEW","POP_ANIMATION_FROM","POP_ANIMATION_TO","CALENDAR_INPUT_STANDARD_PATTERN","CALENDAR_DXHOVEREND_EVENT_NAME","LEVEL_COMPARE_MAP","ZOOM_LEVEL","MONTH","YEAR","DECADE","CENTURY","SELECTION_STRATEGIES","SingleSelection","MultiSelection","RangeSelection","elementHasFocus","Calendar","viewsCount","zoomLevel","maxZoomLevel","minZoomLevel","showTodayButton","onContouredChanged","skipFocusCheck","_waitRenderView","_moveCurrentDateByOffset","_getRtlCorrection","_navigateUp","_view","_navigateDown","sameView","_moveToClosestAvailableDate","getViewLastCellDate","_enterKeyHandler","_updateTimeComponent","_selectionStrategy","selectValue","_getSerializationFormat","serializedValue","_shiftDate","baseDate","_getMaxDate","_getMinDate","isDateForwardInNeighborView","_areDatesInNeighborView","isDateForwardInRange","dateForward","date1","date2","getYear","isDateForwardInStartView","isDateBackwardInStartView","isCurrentDateAvailable","_isDateNotAvailable","isDateForwardAvailable","isDateBackwardAvailable","dateBackward","_areDatesInSameView","_initSelectionStrategy","_correctZoomLevel","_getSelectionStrategyName","strategy","_refreshSelectionStrategy","_this$_getNormalizedD","_getNormalizedDate","getDefaultCurrentDate","normalizeDate","_getDate","_onContouredChanged","_$viewsWrapper","normalizedDate","_getViewsOffset","_isOtherViewCellClicked","_suppressNavigation","_additionalView","_refreshViews","_setViewContoured","_renderNavigator","_navigate","_getActiveView","_isAdditionalViewDate","_this$_additionalView","_rangeMin","_rangeMax","zoomCorrection","_getMonthsOffset","yearOffset","monthOffset","_alreadyViewRender","_getDateByOffset","_waitRenderViewTimeout","_date","currentDay","getDifferenceInMonth","lastDay","_navigator","_renderSwipeable","_renderFooter","_renderSpecificView","beforeDate","_beforeView","_isViewAvailable","afterDate","_afterView","_translateViews","specificView","$view","_viewConfig","_this$option2","_injectComponent","getViewOptions","firstDayOfWeekIndex","_cellClickHandler","func","getViewMinBoundaryDate","getViewMaxBoundaryDate","_moveViewElement","coefficient","_getViewPosition","rtlCorrection","nextView","getViewDown","currentValue","setMinutes","getMinutes","getSeconds","getMilliseconds","newCurrentDate","_animateShowView","_navigatorConfig","_getViewsCaption","_updateButtonsVisibility","_navigatorClickHandler","additionalViewActive","shouldDoubleOffset","getViewUp","_isMinZoomLevel","toggleButton","_swipeable","onStart","onUpdated","onEnd","_viewWidth","_toggleGestureCoverCursor","_getRequiredView","cursor","isRtl","_updateNavigatorCaption","moveOffset","isAdditionalViewActive","_isDateInInvalidRange","_animateWrapper","_viewWidthValue","additionalView","isMultiView","additionalViewCaption","$todayButton","_toTodayView","_$footer","_popAnimationView","newView","offsetSign","endPosition","viewsWrapperPosition","_preventViewChangeAnimation","_wrapperAnimationEndHandler","_rearrangeViews","_resetLocation","_this$viewToRemoveKey","viewOffset","viewToCreateKey","viewToRemoveKey","viewBeforeCreateKey","viewAfterRemoveKey","destinationDate","dateByOffset","_clearViewWidthCache","_disposeViews","_resetActiveState","_this$_additionalView2","_this$_additionalView3","_this$_beforeView","_this$_afterView","_setViewsMinOption","_restoreViewsMinMaxOptions","_setViewsMaxOption","ariaId","_suppressingNavigation","getContouredDate","DateBoxStrategy","dateBox","widgetOption","_widget","_renderWidget","_createWidget","_getWidgetContainer","_getWidgetName","widgetOptions","_getWidgetOptions","getDefaultOptions","getDisplayFormat","supportedKeys","getKeyboardListener","customizeButtons","getParsedText","renderInputMinMax","renderOpenedState","_this$_getPopup","_getPopup","renderPopupContent","_preventFocusOnPopup","getFirstPopupElement","getLastPopupElement","popupShowingHandler","popupHiddenHandler","dateBoxValue","useCurrentDateByDefault","getDefaultDate","textChangedHandler","renderValue","getValue","isAdaptivityChanged","CalendarStrategy","todayButtonText","homeEndHandler","viewValue","_getContouredValue","lastActionElement","shouldCloseDropDown","_closeDropDownByEnter","_valueChangedHandler","actionValue","isButtonsLocationDefault","_escapeHandler","_isCalendarVisible","calendarOptions","useButtons","shouldRenderTodayButton","todayButton","_getTodayButtonConfig","sameHoursAndMinutes","convertToLocation","isVertical","DATEVIEW_ROLLER_CLASS","DATEVIEW_ROLLER_ACTIVE_CLASS","DATEVIEW_ROLLER_CURRENT_CLASS","DATEVIEW_ROLLER_ITEM_CLASS","DATEVIEW_ROLLER_ITEM_SELECTED_CLASS","DATEVIEW_ROLLER_ITEM_SELECTED_FRAME_CLASS","DATEVIEW_ROLLER_ITEM_SELECTED_BORDER_CLASS","showOnClick","onSelectedIndexChanged","_visibilityChangedHandler","_endActionHandler","_renderSelectedItemFrame","_renderContainerClick","_renderSelectedValue","_renderItemsClick","_renderWheelEvent","_renderSelectedIndexChanged","_selectedIndexChanged","_isWheelScrolled","_$items","_fitIndex","_getItemPosition","_renderActiveStateItem","_itemHeight","_getItemSelector","_itemElementIndex","_prepareDirections","_animation","_shouldScrollToNeighborItem","_moveIsAllowed","currentSelectedIndex","locationTop","currentSelectedIndexPosition","dy","_isInNullNeighborhood","newSelectedIndex","_fitSelectedIndexInRange","_getSelectedIndexAfterScroll","_getNewSelectedIndex","_visibilityTimer","toggleActiveState","fitIndex","_fireSelectedIndexChanged","_refreshSelectedIndex","DATEVIEW_CLASS","DATEVIEW_COMPACT_CLASS","DATEVIEW_WRAPPER_CLASS","DATEVIEW_ROLLER_CONTAINER_CLASS","TYPE","ROLLER_TYPE","DateView","_valueOption","_getDefaultDate","applyCompactClass","_toggleFormatClasses","_toggleCompactClass","previousFormat","_wrapper","_renderRollers","_$rollersContainer","_createRollerConfigs","_rollers","_rollerConfigs","$roller","displayItems","roller","_toggleActive","_setActiveRoller","_setRollerState","getFormatParts","partName","_createRollerConfig","valueRange","_calculateRollerConfigValueRange","curDate","_getCurrentDate","setValue","valueItems","getIndex","currentRoller","activeRoller","_updateRollersPosition","correctIndex","rollerValue","_refreshRollers","_refreshRoller","rollerType","rollerConfig","minYear","minMonth","maxYear","maxMonth","minHour","maxHour","DateViewStrategy","defaultOptionsRules","_device2","_isNativeType","NativeStrategy","_getDateBoxType","android","BOX_CLASS","BOX_FLEX_CLASS","BOX_ITEM_CLASS","BOX_ITEM_DATA_KEY","SHRINK","MINSIZE_MAP","MAXSIZE_MAP","FLEX_JUSTIFY_CONTENT_MAP","center","FLEX_ALIGN_ITEMS_MAP","stretch","FLEX_DIRECTION_MAP","setFlexProp","cssName","styleExpr","_renderVisible","fireItemStateChangedAction","_option","justifyContent","_normalizedAlign","align","alignItems","_normalizedCrossAlign","crossAlign","flexPropPrefix","maxSize","minSize","baseSize","shrink","itemContent","flexBasis","flexDirection","onItemStateChanged","_queue","_initLayout","_initBoxQueue","_layout","renderBox","_renderAlign","_onItemStateChanged","renderAlign","renderCrossAlign","_queueIsNotEmpty","_shiftItemFromQueue","itemHoldTimeout","onItemHold","onItemContextMenu","renderItems","$itemNode","_renderItemContentByNode","_renderItemContent","boxConfig","box","_pushItemToQueue","_itemOptions","TIMEVIEW_CLASS","TIMEVIEW_CLOCK_CLASS","TIMEVIEW_FIELD_CLASS","TIMEVIEW_HOURARROW_CLASS","TIMEVIEW_TIME_SEPARATOR_CLASS","TIMEVIEW_FORMAT12_CLASS","TIMEVIEW_FORMAT12_AM","TIMEVIEW_FORMAT12_PM","TIMEVIEW_MINUTEARROW_CLASS","rotateArrow","$arrow","cssRotate","TimeView","use24HourFormat","_showClock","_arrowOffset","_getValue","_renderBox","_updateTime","$box","_renderClock","_$hourArrow","_$minuteArrow","_updateClock","hourArrowAngle","minuteArrowAngle","_getBoxItems","is12HourFormat","_hourBox","getTimeSeparator","_minuteBox","_format12","_createHourBox","_createMinuteBox","_createFormat12Box","_onHourBoxValueChanged","onKeyboardHandled","opts","_getNumberBoxConfig","_isPM","newHours","_convertMaxHourToMin","maxHoursValue","newMinutes","periodNames","getPeriodNames","_refreshFormat12","_silentEditorValueUpdate","_normalizeHours","SHRINK_VIEW_SCREEN_WIDTH","DATEBOX_ADAPTIVITY_MODE_CLASS","DATEBOX_TIMEVIEW_SIDE_CLASS","CalendarWithTimeStrategy","_is24HourFormat","is24HourFormat","viewDate","_updateDateTime","_timeView","_isShrinkView","_isSmallScreen","_repaintTimer","isAdaptiveMode","currentAdaptiveMode","_currentAdaptiveMode","preventDefaultValue","_box","_attachTabHandler","calendarPopupConfig","_this$_widget$option","_removeMinWidthTimer","DATE_FORMAT","BOUNDARY_VALUES","ListStrategy","_widgetItems","_getDateByItemData","_refreshItems","_timeListItemTemplate","_getTimeListItems","_setSelectedItemsByValue","_asyncScrollTimeout","dateIndex","_getDateIndex","_areDatesEqual","_getBoundaryDate","_getRangeItems","rangeDuration","rangeItems","interval","boundaryValue","_updatePopupHeight","dropDownOptionsHeight","popupHeight","_timeList","DATEBOX_CLASS","DX_AUTO_WIDTH_CLASS","DX_CLEAR_BUTTON_CLASS","DATEBOX_WRAPPER_CLASS","DROPDOWNEDITOR_OVERLAY_CLASS","PICKER_TYPE","rollers","native","STRATEGY_NAME","dateView","calendarWithTime","STRATEGY_CLASSES","Native","CalendarWithTime","List","DateBox","showAnalogClock","pickerType","invalidDateMessage","dateOutOfRangeMessage","adaptivityEnabled","_showValidationIcon","_userOptions","_updatePickerOptions","_pickerType","_initStrategy","_toLowerCaseFirstLetter","_getStrategyName","_getFormatType","isTime","isDate","_refreshFormatClass","_refreshPickerTypeClass","_formatValidationIcon","_this$_strategy$_upda","_this$_strategy","clearButtonWidth","_getClearButtonWidth","longestElementDimensions","_getLongestElementDimensions","curWidth","shouldHideValidationIcon","_storedPadding","leftPadding","rightPadding","clearButtonElement","longestValue","$longestValueElement","isPaddingStored","storedPadding","necessaryWidth","_renderPopupWrapper","_this$_strategy$_getP","_this$_strategy$_getP2","_this$_strategy2","_getPopupTitle","classPostfixes","isCustomValueDisabled","_getDisplayedText","submitFormat","displayedText","_getFormatByMode","parsedDate","_getParsedDate","_getDateByDefault","_applyInternalValidation","_recallInternalValidation","_applyCustomValidation","parsedText","isDateInRange","validationMessage","_updateInternalValidationState","_serializeDate","_isValueChanged","oldTime","newTime","_isTextChanged","oldText","_refreshStrategy","_this$_strategy3","_updatePopupTitle","FORWARD","BACKWARD","DateBoxMask","originalHandlers","callOriginalHandler","originalHandler","applyHandler","maskHandler","_shouldUseOriginalHandler","_revertPart","_isAllSelected","_selectFirstPart","_selectLastPart","_revertChanges","_enterHandler","_selectNextPart","_upDownArrowHandler","isNotDeletingInCalendar","_setNewDateIfEmpty","originalValue","_getActivePartValue","_initialMaskValue","_loadMaskValue","_partIncrease","emptyDateValue","alt","_e$originalEvent","_useBeforeInputEvent","oldInputValue","_processInputKey","_maskInputHandler","_renderSelectedPart","_isSingleCharKey","_keyInputHandler","isBackwardDeletion","isForwardDeletion","_isSingleDigitKey","_maskValue","_activePartIndex","_searchString","_searchNumber","_formatPattern","_getPatternByFormat","_renderDateParts","formatLength","_getActivePartProp","isShortFormat","maxSearchLength","isLengthExceeded","isValueOverflowed","_getActivePartLimits","_setActivePartValue","_partLimitsReached","startString","endLimit","_clearSearchValue","actual","_regExpInfo","quantifierRegexp","convertedSource","sourcePart","_prepareRegExpInfo","_detachMaskEvents","_clearMaskState","_attachMaskEvents","_initMaskState","_dateParts","_maskClickHandler","_maskPasteHandler","_maskCompositionEndHandler","_maskBeforeInputHandler","isBoundaryIndex","lockOtherParts","limitFunction","_getRealLimitsPattern","zeroes","_addLeadingZeroes","limitDelta","_applyLimits","limitBase","limitClosest","_isDateValid","_isValueDirty","_fireChangeEvent","shouldFireChangeEvent","_saveMaskValue","CHECKBOX_SIZE_CLASS","EDITOR_INLINE_BLOCK","EditorFactoryMixin","getResultConfig","checkEnterBug","getTextEditorConfig","isEnterBug","sharedData","needDelayedUpdate","isInputOrKeyUpEvent","updateValue","valueChangeTimeout","updateValueTimeout","prepareDateBox","prepareTextBox","isSearching","prepareNumberBox","prepareLookupEditor","displayGetter","postProcess","_options$editorType","selectBox","stopWatch","prepareCheckBox","prepareCustomEditor","prepareEditor","prepareDefaultEditor","dxDateBox","dxNumberBox","dxTextBox","_prepareDefaultEditor","editorElement","isOnForm","$editorElement","defaultEnterKeyHandler","dxTextArea","FOCUS_OVERLAY_CLASS","FOCUSED_ELEMENT_CLASS","MODULE_NAMESPACE","UPDATE_FOCUS_EVENTS","DX_HIDDEN","ViewControllerWithMixin","$dataGridElement","rowSelector","focusedElementSelector","elementIsInsideGrid","$focus","_getFocusedElement","isHideBorder","$focusCell","_getFocusCellSelector","_needHideBorder","loseFocus","isFocusOverlay","_isFocusOverlay","_updateFocusTimeoutID","_updateFocusCore","calculate","oversize","_$focusedElement","_focusTimeoutID","renderFocusOverlay","focused","isElementInCurrentGrid","_$focusOverlay","elemCoord","focusOverlayPosition","precise","_updateFocusOverlaySize","_updateFocusHandler","_updateFocus","_subscribedContainerRoot","_getContainerRoot","_attachContainerEventHandlers","Node","DOCUMENT_FRAGMENT_NODE","editorFactoryModule","DEFAULT_BUTTON","DX_DIALOG_CLASSNAME","DX_DIALOG_WRAPPER_CLASSNAME","DX_DIALOG_ROOT_CLASSNAME","DX_DIALOG_CONTENT_CLASSNAME","DX_DIALOG_MESSAGE_CLASSNAME","DX_DIALOG_BUTTONS_CLASSNAME","DX_DIALOG_BUTTON_CLASSNAME","DX_BUTTON_CLASSNAME","_options$title","isMessageDefined","isMessageHtmlDefined","messageHtml","popupToolbarItems","popupInstance","execute","ignoreChildEvents","$firstButton","popupOptions","isPortrait","CELL_MODIFIED_CLASS","ROW_SELECTED_CLASS","EDIT_FORM_CLASS","DATA_EDIT_DATA_INSERT_TYPE","DATA_EDIT_DATA_REMOVE_TYPE","EDITING_POPUP_OPTION_NAME","EDITING_FORM_OPTION_NAME","EDITING_EDITROWKEY_OPTION_NAME","EDITING_EDITCOLUMNNAME_OPTION_NAME","TARGET_COMPONENT_NAME","EDITORS_INPUT_SELECTOR","FOCUSABLE_ELEMENT_SELECTOR","EDIT_MODE_BATCH","EDIT_MODE_ROW","EDIT_MODE_CELL","EDIT_MODE_FORM","EDIT_MODE_POPUP","FIRST_NEW_ROW_POSITION","LAST_NEW_ROW_POSITION","PAGE_BOTTOM_NEW_ROW_POSITION","PAGE_TOP_NEW_ROW_POSITION","VIEWPORT_BOTTOM_NEW_ROW_POSITION","VIEWPORT_TOP_NEW_ROW_POSITION","EDIT_MODES","ROW_BASED_MODES","REQUIRED_EDITOR_LABELLEDBY_MODES","MODES_WITH_DELAYED_FOCUS","READONLY_CLASS","LINK_CLASS","LINK_ICON_CLASS","ROW_SELECTED","EDIT_BUTTON_CLASS","COMMAND_EDIT_CLASS","COMMAND_EDIT_WITH_ICONS_CLASS","INSERT_INDEX","ROW_INSERTED","ROW_MODIFIED","CELL_MODIFIED","EDITING_NAMESPACE","DATA_EDIT_DATA_UPDATE_TYPE","DEFAULT_START_EDIT_ACTION","EDIT_LINK_CLASS","edit","undelete","EDIT_ICON_CLASS","METHOD_NAMES","ACTION_OPTION_NAMES","BUTTON_NAMES","EDITING_CHANGES_OPTION_NAME","ADD_ROW_BUTTON_CLASS","DROPDOWN_EDITOR_OVERLAY_CLASS","ROW_REMOVED","isRenovatedScrollable","IS_RENOVATED_WIDGET","EDIT_FORM_ITEM_CLASS","EDIT_POPUP_CLASS","EDIT_POPUP_FORM_CLASS","FOCUSABLE_ELEMENT_CLASS","BUTTON_CLASS","FORM_BUTTONS_CONTAINER_CLASS","EDIT_ROW","NEW_ROW_TEMP_KEY_PREFIX","GUID_LENGTH","createFailureHandler","isEditingOrShowEditorAlwaysDataCell","isCommandCell","isEditorCell","getEditingTexts","addRowToNode","generateNewRowTempKey","isNewRowTempKey","getButtonIndex","getButtonName","getEditorType","isCustomEditorType","forEachFormItems","callBack","tabs","_lastOperation","_deferreds","_saveEditorHandler","_updateEditColumn","_updateEditButtons","_internalState","editMode","needLabel","getEditMode","getChanges","needReset","_silentOption","internalData","_getInternalData","editIndex","_getOldData","getPopupContent","_isDefaultButtonVisible","editingOptions","allowAction","buttonIndex","haveCustomButtons","_getButtonConfig","_isButtonVisible","_getEditingButtons","_renderEditingButtons","_isButtonDisabled","getFirstEditableColumnIndex","getFirstEditableCellInRow","_inputFocusTimeoutID","_pointerUpEditorHandler","_pointerDownEditorHandler","_handleEditRowKeyChange","isEqual","_handleChangesChange","resetChanges","_resetEditColumnName","_resetEditRowKey","oldRowIndexCorrection","_getEditRowIndexCorrection","oldRowIndex","_editRowFromOptionChanged","cancelEditData","_addInsertInfo","_addInternalData","isOptionChanged","_refreshCore","isEditRowKeyDefined","_refocusEditCell","_focusEditingCell","getKeyByRowIndex","_setEditRowKey","_getVisibleEditRowIndex","isKeyEqual","isEditRowByIndex","_getVisibleEditColumnIndex","isProcessedItems","_getInsertAfterOrBeforeKey","isProcessedItem","nextItem","insertInfo","loadedRowIndex","_getInsertRowIndex","_getNewRowPosition","insertAfterOrBeforeKey","isLastPageLoaded","isInsert","_getLoadedRowIndex","_generateNewItem","_processDataItemCore","modified","removed","_fireDataErrorOccurred","_getInsertIndex","getChangeKeyValue","_createInsertInfo","_setInsertAfterOrBeforeKey","allItems","isViewportBottom","getBottomVisibleItemIndex","insertKey","maxInsertIndex","editItem","insertChange","lastPageIndex","_addRow","param","oldEditRowIndex","allowCancelEditing","_allowRowAdding","__KEY__","_initNewRow","_addRowCore","_navigateToNewRow","insertIndex","initialOldEditRowIndex","editRowIndex","_addChange","focusController","pageIndexToInsertRow","_getPageIndexToInsertRow","navigateToRowByKey","navigateToRow","_showAddedRow","_afterInsertRow","_focusFirstEditableCellInRow","$firstCell","_editCellInProgress","_delayedInputFocus","_beforeFocusElementInRow","_setEditColumnName","_getColumnByName","editColumn","columnName","_getEditColumn","_isEditingStart","_beforeUpdateItems","_editRowFromOptionChangedCore","preventRendering","_needFocusEditor","repaintForm","saveEditData","removeChange","_removeInternalData","_updateInsertAfterOrBeforeKeys","_resetEditIndices","waitForDeferredOperations","oldColumn","beforeFocusCallback","callBeforeFocusCallbackAlways","inputFocus","focusAndSelectElement","_beforeFocusCallback","$editCell","editColumnIndex","_checkAndDeleteRow","showDialogTitle","confirmResult","_deleteRowCore","_removeChange","_afterDeleteRow","onSavingParams","results","dataChanges","changeCopy","_beforeSaveEditData","_executeEditingAction","insert","newData","doneDeferred","_processRemoveCore","processIfBatch","hasSavedData","changesLength","isError","_processRemoveIfError","_processRemove","isSaving","_resolveAfterSave","_saving","_saveEditDataInner","_afterSaveEditData","_fireOnSaving","_processChanges","_processSaveEditDataResult","_endSaving","_cancelSaving","_beforeEndSaving","_refreshDataAfterSave","isFullRefresh","_fireSaveEditDataEvents","isEditColumnVisible","_isEditColumnVisible","_getEditCommandCellTemplate","isEditRowDefined","isButtonDisabled","_isEditButtonDisabled","setToolbarItemDisabled","_cancelEditDataCore","_beforeCancelEditData","_afterCancelEditData","isPageChanged","skipCurrentRow","rowKey","setCellValueResult","_updateRowValues","addDeferred","forceUpdateRow","_prepareChange","hasEditData","isEditCell","_updateEditRow","isCustomSetCellValue","isCustomCalculateCellValue","changeOptions","_applyChangeCore","_getRowIndicesForCascadeUpdating","_updateRowImmediately","_updateRowWithDelay","_updateEditRowCore","_validateEditFormAfterUpdate","elementContainer","_editForm","changeParams","_getDefaultEditorTemplate","editingStartOptions","isRowMode","isRowBasedEditMode","isRowEditing","getEditFormTemplate","updateFieldValue","useLegacyColumnButtonTemplate","iconType","localizationName","getButtonLocalizationNames","titleButtonTextByClassNames","revert","buttonItems","prepareButtonItem","shouldHighlightCell","allowEditAction","needCallback","_allowEditAction","visibleEditRowIndex","cellModified","editingModule","_editingController","_updateEditItem","processDataItem","isParasiteChange","dataSourceKeys","newChanges","isEditNewItem","getColumnTemplate","isRowRemoved","isRowInserted","isRowModified","_getColumnIndexByElementCore","_getColumnIndexByElement","isEditedCell","isShowEditorAlways","editCell","withoutSaveEditData","closeEditCell","_pointerDownTimeout","_editCellByClick","isEditForm","isEditableCell","_editCellPrepared","hasTemplate","highlightDataCell","_formItemPrepared","getCellOptions","_focusEditorIfNeed","editButtonItems","prepareEditButtons","excludedOptions","shouldInvalidate","editingControllerExtender","Base","hasUpdateChanges","it","isRowEditMode","isVisibleInRowEditMode","$editingCell","getFocusedCellInRow","editingRowBasedModule","_map","condition","guid","widgetInstance","itemsRunTimeInfo","getItems","removeItemByKey","itemRunTimeInfo","_findWidgetInstance","storedItem","targetPath","_findFieldByCondition","targetItem","filteredKeys","_itemsRunTimeInfo","findWidgetInstanceByItem","findItemContainerByItem","findPreparedItemByItem","createItemPathByIndex","isTabs","concatPaths","getTextWithoutSpaces","isEqualToDataFieldOrNameOrTitleOrCaption","getFullOptionName","getOptionNameFromFullName","tryGetTabPath","fullPath","pathParts","resultPathParts","isFullPathContainsTabs","getItemPath","tabOrGroupItems","itemPath","convertToLayoutManagerOptions","$formElement","formOptions","extendedLayoutManagerOptions","onFieldItemRendered","baseOptions","layoutData","isRoot","cssItemClass","onLayoutChanged","findInstance","tabPanel","findItemIndexByItem","preparedItem","findPreparedItem","_prepareGroupItemTemplate","_renderGroupContentTemplate","validator","filterRequired","oldContainsRequired","newContainsRequired","findItemContainer","tryCreateItemOptionAction","itemActionOptions","_itemActionOptions$it","_itemActionOptions$it2","_itemActionOptions$it3","RESPONSIVE_BOX_CLASS","SCREEN_SIZE_CLASS_PREFIX","HD_SCREEN_WIDTH","ResponsiveBox","cols","singleColumnScreen","currentScreenFactor","_initLayoutChangedAction","_layoutChangedAction","_setScreenSize","_screenItems","_itemsByScreen","_prepareGrid","_spreadItems","_layoutItems","_linkNodeToItem","_refreshItem","_clearItemNodeTemplates","currentScreen","_getCurrentScreen","_removeScreenSizeClass","grid","_grid","_prepareRowsAndCols","_rows","_cols","_createEmptyCell","getSingleColumnRows","screenItemsLength","filteredRows","_filterByScreen","sizeConfig","_defaultSizeConfig","_isSingleColumnScreen","_prepareSingleColumnScreenItems","_sizesByScreen","_screenRegExp","sizeConfigs","_createDefaultSizeConfig","defaultSizeConfig","screenRegExp","screen","_screenWidth","itemInfo","itemCol","itemRow","itemCell","_occupyCells","locations","_isItemCellOccupied","_markSpanningCell","_loopOverSpanning","rowEnd","colEnd","boundRowEnd","boundColEnd","spanningCell","itemNode","rowsCount","colsCount","_layoutBlock","rootBox","_prepareBoxConfig","_rootBoxConfig","rootItems","_needApplyAutoBaseSize","_isSingleItem","_itemByCell","_layoutDirection","firstCellLocation","isItemRowSpanned","isItemColSpanned","block","crossDirection","_crossDirection","_nextBlock","_isBlockIndivisible","prevBlockOptions","_blockSize","endIndex","crossStartIndex","crossSpan","crossIndex","lineCrossSpan","_cellByDirection","lineCrossEndIndex","crossEndIndex","defaultMinSize","forceRemoveRoot","$existingRoot","_saveAssistantRoot","_assistantRoots","_cleanUnusedRoots","FORM_CLASS","FORM_GROUP_CLASS","FORM_GROUP_CAPTION_CLASS","FORM_FIELD_ITEM_COL_CLASS","FIELD_ITEM_CLASS","LAYOUT_MANAGER_ONE_COLUMN","FIELD_ITEM_LABEL_CONTENT_CLASS","FORM_LAYOUT_MANAGER_CLASS","FIELD_ITEM_LABEL_CLASS","FIELD_ITEM_CONTENT_CLASS","SINGLE_COLUMN_ITEM_CONTENT","ROOT_SIMPLE_ITEM_CLASS","FORM_GROUP_CONTENT_CLASS","FIELD_ITEM_CONTENT_HAS_GROUP_CLASS","FIELD_ITEM_CONTENT_HAS_TABS_CLASS","FORM_GROUP_WITH_CAPTION_CLASS","FIELD_ITEM_TAB_CLASS","GROUP_COL_COUNT_CLASS","GROUP_COL_COUNT_ATTR","FORM_VALIDATION_SUMMARY","FORM_UNDERLINED_CLASS","SIMPLE_ITEM_TYPE","DefaultAdapter","validationRequestsCallbacks","brokenRules","status","VALIDATOR_CLASS","VALIDATION_STATUS_PENDING","Validator","_initGroupRegistration","_initAdapter","_validationInfo","skipValidation","_findGroup","_groupWasInit","removeRegisteredValidator","_validationGroup","registerValidatorInGroup","dxStandardEditor","_getEditor","adapter","validate","callbacks","_this$option$editor$o","_this$option$editor","_toggleAccessibilityAttributes","rules","_resetValidationRules","_validationRules","findGroup","_modelByElement","bypass","currentError","getCurrentValidationError","_getValidationRules","currentResult","brokenRule","_applyValidationResult","res","pendingRules","validatedAction","_updateValidationResult","applyValidationResults","EDITORS_WITH_ARRAY_VALUE","EDITORS_WITHOUT_LABELS","convertToRenderFieldItemOptions","rootElementCssClassList","formOrLayoutManager","createComponentCallback","labelTemplate","formLabelLocation","requiredMessageTemplate","editorValue","canAssignUndefinedValueToEditor","editorValidationBoundary","managerLabelLocation","itemId","managerMarkOptions","onLabelTemplateRendered","_hasRequiredRuleInSet","isSimpleItem","helpID","labelOptions","_convertToLabelOptions","formLabelMode","needRenderLabel","labelID","labelNeedBaselineAlign","_convertToEditorOptions","defaultEditorName","externalEditorOptions","editorInputId","labelText","textWithoutColon","markOptions","fromCharCode","needRenderOptionalMarkAsHelpText","getLabelMarkText","convertToLabelMarkOptions","editorOptionsWithValue","hasRequiredRule","isEditorWithoutLabels","FIELD_ITEM_REQUIRED_MARK_CLASS","FIELD_ITEM_LABEL_LOCATION_CLASS","FIELD_ITEM_OPTIONAL_MARK_CLASS","FIELD_ITEM_LABEL_TEXT_CLASS","renderLabel","labelTemplateData","$labelContainer","$labelContent","_renderLabelMark","markText","setLabelWidthByMaxLabelWidth","$targetContainer","labelsSelector","labelMarkOptions","labelWidth","FIELD_ITEM_LABEL_CONTENT_CLASS_Selector","$FIELD_ITEM_LABEL_CONTENT_CLASS_Items","FIELD_ITEM_LABEL_CONTENT_CLASS_Length","getLabelWidthByHTML","labelContent","FLEX_LAYOUT_CLASS","FIELD_ITEM_OPTIONAL_CLASS","FIELD_ITEM_REQUIRED_CLASS","FIELD_ITEM_CONTENT_WRAPPER_CLASS","FIELD_ITEM_CONTENT_LOCATION_CLASS","FIELD_ITEM_LABEL_ALIGN_CLASS","FIELD_ITEM_HELP_TEXT_CLASS","LABEL_VERTICAL_ALIGNMENT_CLASS","LABEL_HORIZONTAL_ALIGNMENT_CLASS","TOGGLE_CONTROLS_PADDING_CLASS","VALIDATION_TARGET_CLASS","renderFieldItem","$fieldEditorContainer","getTemplateData","isToggleControls","labelAlignment","isLabelAlignmentLeft","hasNotTemplate","isLabelOnTop","$validationTarget","getValidationTarget","validationTargetInstance","tryGetValidationTargetInstance","subscribeWrapperInvalidClassToggle","$div","isItemHaveCustomLabel","itemName","dataGetter","$editorParent","_$validationTarget$pa","_$validationTarget$pa2","wrapperClass","toggleInvalidClass","FIELD_BUTTON_ITEM_CLASS","renderButtonItem","convertAlignmentToTextAlign","horizontalAlignment","convertAlignmentToJustifyContent","verticalAlignment","buttonOptions","FIELD_EMPTY_ITEM_CLASS","renderEmptyItem","FORM_EDITOR_BY_DEFAULT","LAYOUT_MANAGER_FIRST_ROW_CLASS","LAYOUT_MANAGER_LAST_ROW_CLASS","LAYOUT_MANAGER_FIRST_COL_CLASS","LAYOUT_MANAGER_LAST_COL_CLASS","LayoutManager","getFormatter","_itemWatchers","_updateReferencedOptions","_initDataAndItems","_cleanItemWatchers","initialData","_syncDataWithItems","_getDataByField","_updateFieldValue","_isCheckboxUndefinedStateEnabled","allowIndeterminateState","nameParts","propertyName","isWritableWrapped","_triggerOnFieldDataChanged","isUserItemsExist","_generateItemsByData","processedItems","_isAcceptableItem","_updateItemWatchers","_setItems","_sortItems","_getWatch","itemField","_getEditorTypeByDataType","_item$allowIndetermin","_sortIndexes","itemA","itemB","indexA","indexB","_renderResponsiveBox","templatesInfo","_getColCount","_prepareItemsWithMerging","layoutItems","_generateLayoutItems","_responsiveBox","_getResponsiveBoxConfig","_renderTemplates","_itemStateChangedHandler","itemsWithLabelTemplateCount","_item$label","_renderButtonItem","_renderFieldItem","xsColCount","isSingleColumnMode","itemRenderedCountInPreviousRows","itemCssClassList","isLastColumn","_getRowsCount","isLastRow","_generateRatio","screenFactor","getTargetScreenFactor","_cashedColCount","_getMaxColCount","maxColCount","isCachedColCountObsolete","itemsMergedByCol","_getColByIndex","merged","generatedItem","rowSpan","_renderEmptyItem","_item$label2","_getFormOrThis","getItemID","_getMarkOptions","_incTemplateRenderedCallCount","_shouldAlignLabelsOnTemplateRendered","_alignLabels","_bindDataField","_this$_labelTemplateR","_labelTemplateRenderedCallCount","totalItemsWithLabelTemplate","editorInstance","formOrThis","_createWatcher","linkEditorToDataField","fieldValue","array1","array2","_watch","formInstance","readOnlyState","hasEditorReadOnly","hasOwn","isChangeByForm","isAutoSize","newLayoutData","getOwnPropertyNames","_disableEditorValueChangedHandler","_cashedRequiredConfig","valueGetter","dataValue","_resetWidget","_resetColCount","isValueReferenceType","updateData","getEditor","findWidgetInstanceByDataField","findWidgetInstanceByName","responsiveBox","getItemsRunTimeInfo","VALIDATION_SUMMARY_CLASS","ValidationSummary","groupConfig","addGroup","_unsubscribeGroup","groupSubscription","_groupValidationHandler","getGroupConfig","validators","orderedItems","foundItems","_getOrderedItems","_validationSummary","_itemValidationHandler","itemsChanged","foundRule","foundItem","VALIDATION_ENGINE_CLASS","validatorContainer","summaryContainer","refreshValidationGroup","validateGroup","resetGroup","removeGroup","ITEM_OPTIONS_FOR_VALIDATION_UPDATING","Form","_cachedColCountOptions","_groupsColCount","_attachSyncSubscriptions","formID","alignRootItemLabels","_getGroupColCount","_applyLabelsWidthByCol","fieldItemClass","inOneColumn","cssExcludeTabbedSelector","excludeTabbed","_applyLabelsWidth","applyLabelsOptions","_getGroupElementsInColumn","cssColCountSelector","groupSelector","_applyLabelsWidthWithGroups","$rootSimpleItems","_applyLabelsWidthWithNestedGroups","$groups","groupsColIndex","groupColIndex","$groupsByCol","groupColCount","_labelLocation","_alignLabelsInColumn","layoutManager","_checkGrouping","_prepareFormData","_setStylingModeClass","_getValidationGroup","_clearCachedInstances","_renderLayout","_renderValidationSummary","_lastMarkupScreenFactor","_targetScreenFactor","_getCurrentScreenFactor","_attachResizeObserverSubscription","formRootElement","_resizeHandler","_cachedLayoutManagers","_layoutManager$option","_clearValidationSummary","_this$_$validationSum","_$validationSummary","dxValidationSummary","parentIsTabbedItem","currentPath","_tryPrepareGroupItem","_tryPrepareTabbedItem","_tryPrepareItemTemplate","_prepareItems","groupContentTemplate","_itemGroupTemplate","_itemTabbedTemplate","_rootLayoutManager","_renderLayoutManager","_createLayoutManagerOptions","_tryGetItemsForTemplate","_item$tabs","$tabPanel","tabPanelOptions","_item$tabPanelOptions","_item$tabPanelOptions2","extendRunTimeItemInfoByKey","tryUpdateTabPanelInstance","$groupContent","_isDataUpdating","addItemsOrExtendFrom","nestedItemsRunTimeInfo","removeItemsByItems","_this$_validationSumm","layoutManagerOptions","baseColCountByScreen","_clearAutoColCountChangedTimeout","autoColCountChangedTimeoutId","_extendConfig","optionFullName","_triggerOnFieldDataChangedByDataSet","splitFullName","_itemsOptionChangedHandler","_formDataOptionChangedHandler","_defaultOptionChangedHandler","_resetValues","_getItemPath","optionNameWithoutPath","simpleOptionName","itemAction","_tryCreateItemOptionAction","_tryExecuteItemOptionAction","_tryChangeLayoutManagerItemOption","_changeItemOption","_generateItemsFromData","removeItemsByPathStartWith","tryExecute","_updateValidationGroupAndSummaryIfNeeded","_this$_validationSumm2","findKeyByPath","postponedOperations","contentReadyHandler","tabPath","tabLayoutManager","findGroupOrTabLayoutManagerByPath","_setLayoutManagerItemOption","endPartIndex","_itemPath","_layoutManager","formItems","layoutManagerItems","layoutItem","_getItemByField","resultItem","fieldParts","_getFieldParts","fieldPath","_getItemByFieldPath","subItemsField","_getSubItemField","separatorIndex","resultPath","isItemWithSubItems","isGroupWithName","nameWithoutSpaces","pathNode","_searchItemInEverySubItem","_isColCountChanged","oldScreenSize","newScreenSize","isChanged","editorSelector","_updateData","isComplexData","_data","resetValues","itemOption","allowUpdateItems","_tryChangeLayoutManagerItemOptions","_updateEditFormDeferred","isPopupEditMode","isFormEditMode","firstFormItem","_firstFormItem","$editFormElements","_getEditFormEditorVisibleIndex","isFormOrPopupEditMode","getEditFormRowIndex","hasEditRow","onlyInsertChanges","_repaintEditPopup","popupVisible","_editPopup","_showEditPopup","_hideEditPopup","editForm","isMobileDevice","editPopupClass","_getSaveButtonConfig","_getCancelButtonConfig","_getPopupEditFormTemplate","$popupContainer","_getEditPopupHiddenHandler","formTemplate","isPopupForm","localize","defaultAnimation","_handleFormOptionChange","_handlePopupOptionChange","editPopup","popupOptionName","detailCellOptions","formTemplateOptions","_getFormEditItemTemplate","validatorOptions","contents","renderFormEditorTemplate","dxValidator","detailOptions","editFormOptions","_getValidationGroupsInForm","userCustomizeItem","editFormItemClass","getFormEditorTemplate","baseEditFormOptions","getEditFormOptions","$formContainer","editingFormBasedModule","getEditForm","editFormRowIndex","isPopupEditing","_isFormItem","$pointerDownTarget","needCreateHandlers","targetComponent","isCellOrBatchEditMode","isEditorPopup","checkEditorPopup","isAnotherComponent","isAddRowButton","isCellEditMode","_closeEditItem","$dropDownEditorOverlay","$componentElement","isBatchEditMode","isCurrentComponentElement","$targetCell","isEditingCell","_needToCloseEditableCell","isEditColumnNameDefined","oldColumnIndex","_editCellFromOptionChanged","_editCell","coreResult","executeOperation","_editCellCore","isEditByOptionChanged","_getNormalizedEditCellOptions","_beforeEditCell","_prepareEditCell","_processCanceledEditingCell","_setEditColumnNameByIndex","_closeEditCellCore","_beforeCloseEditCellInBatchMode","columnsCount","_applyModified","_handleEditColumnNameChange","_repaintEditCell","needResetIndexes","isBatchMode","callBaseResult","_isRowDeleteAllowed","_resetModifiedClassCells","needEditingButtons","getEditRowIndex","isUpdateInCellMode","focusPreviousEditingCell","_needUpdateRow","editingCellBasedModule","INVALIDATE_CLASS","REVERT_TOOLTIP_CLASS","INVALID_MESSAGE_CLASS","WIDGET_INVALID_MESSAGE_CLASS","INVALID_MESSAGE_ALWAYS_CLASS","REVERT_BUTTON_CLASS","PENDING_INDICATOR_CLASS","VALIDATION_PENDING_CLASS","PADDING_BETWEEN_TOOLTIPS","FORM_BASED_MODES","COMMAND_TRANSPARENT","VALIDATION_STATUS","pending","EDIT_DATA_INSERT_TYPE","EDIT_DATA_REMOVE_TYPE","VALIDATION_CANCELLED","validationResultIsValid","cellValueShouldBeValidated","ValidatingController","_validationState","initValidationState","_validationStateCache","validationData","_getValidationData","validated","keyHash","isObjectKeyHash","validationResults","getChangeByKey","_getBrokenRules","errorText","getHiddenValidatorsErrorText","brokenRulesMessages","isGroupExpandColumn","isVisibleColumn","isFull","completeList","_isValidationInProgress","validationResult","_currentCellValidator","resetRowValidationResults","_rowValidating","isRowDataModified","setDisableApplyValidationResults","updateCellValidationResult","validationStatusChanged","getCellValidationResult","cancelCellValidationResult","requestIsDisabled","disabledPendingId","_disableApplyValidationResults","getEditorInstance","renderCellPendingIndicator","disposeCellPendingIndicator","oldDataFromState","needCreateValidator","isCellOrBatchEditingAllowed","_syncInternalEditingData","useDefaultValidator","applyValidationResult","validatorInitialized","validatorDisposing","originBypass","defaultAdapterBypass","flag","cellParams","stateRestored","currentCellValue","_ref8","validatingModule","validating","validatingController","updateValidationState","startInsertIndex","_ref9","isNotCanceled","addInValidItem","isInserted","invisibleColumns","invisibleColumnValidators","isCellVisible","createValidator","disposeValidators","_createInvisibleColumnValidators","isFullValid","_updateRowAndPageIndices","validateCell","_showErrorRow","shouldResetValidationState","columnsWithValidatingEditors","validationState","resetRowAndPageIndices","removeCellValidationResult","currentValidator","getCellValidator","refocus","setCellValidationStatus","isValidated","needValidation","isCellInvalid","isInvalidCell","_rowIsValidated","$tooltipElement","_revertTooltip","$overlayContainer","revertTooltipClass","tooltipOptions","$buttonElement","_positionedHandler","$nextFixedRowElement","$groupCellElement","nextRowOptions","visibility","isOverlayVisible","__skipPositionProcessing","isRevertButton","normalizedPosition","_normalizeValidationMessagePositionAndMaxWidth","messages","editorPopup","myPosition","atPosition","hasFixedColumns","errorMessageText","invalidMessageClass","$overlayElement","_shiftValidationMessageIfNeed","_hideFixedGroupCell","validationMessages","_getValidationMessagesSelector","fixedColumns","visibleTableWidth","w1","w2","$overlayContentElement","validationMessageWidth","needMaxWidth","boundaryNonFixedColumnsInfo","firstNonFixedColumnIndex","lastNonFixedColumnIndex","startColumnIndex","endColumnIndex","$revertContent","contentOffset","revertContentOffset","skipValidator","setValidator","_showRevertButton","showValidationMessage","errorMessages","_hideValidationMessage","isCurrentValidatorProcessing","updateCellState","getWidgetInstance","oldValidationStatus","_getValidationStatus","newValidationStatus","rowIsModified","cellIsMarkedAsInvalid","hasValidationRules","rowEditStateChanged","cellValidationStateChanged","$freeSpaceRowElements","$tooltipContent","isEditorDisposed","contentTable","LEGACY_SCROLLING_MODE","needTwoPagesLoading","_controller","isVirtual","getViewportItemIndex","getBeginPageIndex","_cache","getEndPageIndex","fireChanged","_isChangedFiring","processDelayChanged","_isDelayChanged","getViewportPageCount","_dataOptions","preventPreload","realViewportSize","viewportSize","viewportItemSize","getContentOffset","getViewportPosition","virtualItemsCount","begin","itemSize","getItemSizes","getPreloadPageCount","previous","isAppendMode","getPageIndexForLoad","dataOptions","needToLoadPageBeforeLast","needToLoadPrevPage","needToLoadNextPage","_loadingPageIndexes","loadCore","processChanged","isDelayChanged","removeCacheItem","isPrepend","viewportItems","removeCount","correctCount","removeItemCount","itemsLength","updateLoading","_lastPageIndex","controller","newPageIndex","lastPageSize","maxPageIndex","defaultPageIndex","endPageIndex","pageIndexForLoad","delayDeferred","_delayDeferred","onChanged","_setViewportPositionCore","removeInvisiblePages","lastCacheLength","beginItemsCount","endItemsCount","SCROLLING_MODE_INFINITE","SCROLLING_MODE_VIRTUAL","_isVirtual","subscribeToExternalScrollers","scrollChangedHandler","$scrollElement","scrollableArray","scrollToArray","disposeArray","getElementOffset","$scrollableElement","scrollableOffset","widgetScrollStrategy","subscribeToScrollEvents","ELEMENT_NODE","eventsStrategy","topOffset","scrollMethod","getScrollElementParent","VirtualScrollController","_viewportSize","_viewportItemSize","_viewportItemIndex","_position","_isScrollingBack","_itemSizes","_sizeRatio","positionChanged","_dataLoader","viewportParams","getViewportParams","loadedOffset","loadedItemCount","scrollingTimeout","changingDuration","getScrollingTimeout","_scrollTimeoutID","viewportItemIndex","defaultItemSize","getItemSize","itemOffset","itemOffsetsWithSize","itemOffsetWithSize","itemOffsetDiff","prevPosition","getItemIndexByPosition","setViewportItemIndex","sizes","virtualContentSize","contentHeightLimit","isEnd","currentItemIndex","getItemOffset","viewportItemIndexChanged","isRefresh","_windowScroll","setViewportPosition","topIndex","bottomIndex","maxGap","isScrollingBack","minGap","topMinGap","bottomMinGap","remainedItems","BOTTOM_LOAD_PANEL_CLASS","FREESPACE_CLASS","VIRTUAL_ROW_CLASS","LOAD_TIMEOUT","VISIBLE_PAGE_INDEX","isItemCountableFunc","isItemCountableByDataSource","updateItemIndices","VirtualScrollingDataSourceAdapterExtender","_virtualScrollController","_totalCount","_loadPageCount","_getVirtualScrollDataOptions","_renderTime","_startLoadTime","handleDataChanged","newMode","virtualScrollController","r","getDelayDeferred","loadPageCount","takeIsDefined","VirtualScrollingRowsViewExtender","removeEmptyRows","$emptyRows","scrollToPage","updateViewport","_scrollToCurrentPageOnResize","resizeHandler","scrollPosition","itemSizes","_updateContentPosition","startRenderTime","_removeRowsElements","_restoreErrorRow","_updateBottomLoading","$virtualRow","rowHeights","_getRowHeights","correctedRowHeights","_correctRowHeights","setContentItemSizes","viewportHeight","visibleRows","firstCountableItem","lastLoadIndex","isRender","rowHeight","_updateContentItemSizes","$virtualRows","prevFixed","_isFixedTableRendering","_addVirtualRow","table","hasColumnLines","$columns","$virtualColumns","isExpandColumn","$bottomLoadPanel","showBottomLoading","bottomLoadPanelElement","_findBottomLoadPanel","zeroTopPosition","isScrollTopChanged","hasScrolled","isValidScrollTarget","_updateViewportSize","hasBottomLoadPanel","isViewportChanging","scrollPos","loadIfNeed","virtualScrollingModule","updateTimeout","minTimeout","renderingThreshold","rowPageSize","prerenderedRowChunkSize","loadTwoPagesOnStart","legacyMode","prerenderedRowCount","baseResult","initVirtualRows","_rowsScrollController","_loadViewportParams","getLoadPageParams","rowsScrollController","isSortingOperation","allowedTopOffset","virtualRowsRendering","_allItems","_visibleItems","_rowPageIndex","getRowPageSize","_viewportChanging","_needUpdateViewportAfterLoading","_getRowsScrollDataOptions","loadViewport","_updateLoadViewportParams","isItemCountable","_itemCount","isNextAfterLast","countableOnly","cancelEmptyChanges","prevCountable","prevRowType","isPrevRowNew","currentIndex","wasCountableItem","newRows","itemCountable","isNextGroupItem","isNextDataItem","isPrevNewRowFirst","skipForCurrentPage","isNewRowInEmptyData","isLoadIndexGreaterStart","isLoadIndexLessEnd","firstLoadIndex","preloadCount","byLoadedPage","loadedPageIndex","loadedTake","topPreloadCount","getPreloadedRowCount","bottomPreloadCount","skipWithPreload","loadingTake","viewPortItemIndex","loadedPageParams","pageIndexIsValid","_pageIndexIsValid","checkLoading","viewportIsFilled","changedParams","_getChangedLoadParams","currentLoadPageCount","lastRequiredItemCount","pageIndexNotChanged","allLoadedInAppendMode","isRepaintMode","pageIndexIncreased","viewportChanging","_updateVisiblePageIndex","checkLoadedParamsOnly","viewportIsNotFilled","loadingItemsStarted","_loadItems","needToUpdateItems","noPendingChangesInEditing","currentTake","newTake","proxyMethod","masterDataGridUpdated","isNewVirtualMode","_resizeTimeout","_lastTime","WINDOW_HEIGHT_PERCENT","getElementMaxHeightByWindow","startLocation","actualOffset","$window","elementOffset","offsetBottom","DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS","orientation","onHoverStart","_renderDelimiter","$contentDelimiter","_overlayPositionedActionHandler","_showDelimiter","hoverStartAction","_hoverStartHandler","submenu","containerOffset","vLocation","hLocation","rootOffset","rootWidth","rootHeight","submenuWidth","submenuHeight","_isMenuHorizontal","DX_MENU_VERTICAL_CLASS","DX_MENU_HORIZONTAL_CLASS","DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS","DX_STATE_ACTIVE_CLASS","DX_ADAPTIVE_MODE_CLASS","DX_ADAPTIVE_HAMBURGER_BUTTON_CLASS","DX_ADAPTIVE_MODE_OVERLAY_WRAPPER_CLASS","SHOW_SUBMENU_OPERATION","NEXTITEM_OPERATION","PREVITEM_OPERATION","showFirstSubmenuMode","hideSubmenuOnMouseLeave","onSubmenuShowing","onSubmenuShown","onSubmenuHiding","onSubmenuHidden","rootMenuElements","submenuElements","_submenuItemElements","currentSubmenu","_submenus","navigationAction","isMenuHorizontal","_getItemsNavigationOperation","_getKeyboardNavigationAction","navOperation","_resizeEventTimer","_menuItemsWidth","_updateItemsWidthCache","$menuItems","_isAdaptivityEnabled","_toggleAdaptiveMode","_visibleSubmenu","_initAdaptivity","_hamburger","_toggleTreeView","_toggleHamburgerActiveState","$menuItemsContainer","$adaptiveElements","_hideVisibleSubmenu","_treeView","_$adaptiveContainer","rtl","menuOptions","_treeviewItemClickHandler","$hamburger","_renderHamburgerButton","_getTreeViewOptions","_getAdaptiveOverlayOptions","delayType","_createSubmenu","_renderBorderElement","$submenuContainer","subMenu","_getSubmenuOptions","_parentKey","_clearTimeouts","getSubmenuPosition","_attachSubmenuHandlers","$submenuTarget","_nestedItemOnSelectionChangedHandler","_nestedItemOnItemClickHandler","_nestedItemOnItemRenderedHandler","_moveMainMenuFocus","$currentItem","$newItem","_clearSelectionInSubmenus","_clearRootSelection","targetSubmenu","cleanAllSubmenus","isOtherItem","$selectedItem","selectedItemData","$prevSelectedItem","prevSelectedItemData","$submenuOverlayContent","getOverlayContent","submenus","submenuMouseLeaveName","_submenuOnShowingHandler","_submenuOnShownHandler","_submenuOnHidingHandler","_submenuOnHiddenHandler","_submenuMouseLeaveHandler","$border","_getSubmenuByRootElement","_hideSubmenuAfterTimeout","_getDelay","isRootItemHovered","isSubmenuItemHovered","hoveredElementFromSubMenu","isHorizontalMenu","$closestItem","mouseMoveEventName","move","isSelectionActive","_getShowFirstSubmenuMode","_getSubmenuByElement","_itemMouseMoveHandler","_showSubmenuTimer","eventArg","_hideSubmenuTimer","_hoveredRootItem","pointers","_changeSubmenusOption","_removeAdaptivity","OPERATION_ICONS","notcontains","startswith","endswith","OPERATION_DESCRIPTORS","FILTERING_TIMEOUT","CORRECT_FILTER_RANGE_OVERLAY_WIDTH","FILTER_RANGE_OVERLAY_CLASS","FILTER_RANGE_START_CLASS","FILTER_RANGE_END_CLASS","MENU_CLASS","EDITOR_WITH_MENU_CLASS","EDITOR_CONTAINER_CLASS","FILTER_MENU","APPLY_BUTTON_CLASS","HIGHLIGHT_OUTLINE_CLASS","FOCUSED_CLASS","FILTER_RANGE_CONTENT_CLASS","FILTER_MODIFIED_CLASS","BETWEEN_OPERATION_DATA_TYPES","ARIA_SEARCH_BOX","isOnClickApplyFilterMode","$editorContainer","componentNames","ColumnHeadersViewFilterRowExtender","getRangeTextByFilterValue","rangeEnd","getColumnFilterValue","formatOptions","getFormatOptionsByColumn","getColumnSelectedFilterOperation","bufferedSelectedFilterOperation","getFilterValue","isFilterRange","isRangeStart","updateFilterValue","_applyFilterViewController","setHighLight","normalizedValue","columnFilterValue","isBetween","$editorRangeElements","_updateEditorValue","overlayInstance","_updateFilterRangeContent","_updateFilterOperationChooser","_renderFilterRangeContent","_renderEditor","_getEditorOptions","_hideFilterRange","_filterRangeOverlayInstance","isFilterRowVisible","filterRangeOverlayClass","$prevElement","prev","_initFilterRangeOverlay","_updateFilterRangeOverlay","_renderFilterOperationChooser","_renderFilterCell","accessibilityOptions","_getFilterInputAccessibilityAttributes","columnAriaLabel","editorController","filterRowController","setCurrentColumnForFiltering","lookupDataSource","getWrappedLookupDataSource","lookupOptions","$filterRangeContent","_showFilterRange","isCellWasFocused","restoreFocus","menu","_focusEditor","_getFilterOperationMenuItems","columnSelectedFilterOperation","notFocusEditor","isOnClickMode","_isEditorFocused","filterRowOptions","availableFilterOperations","descriptionName","updateLookupDataSource","filterChanged","applyFilterViewController","editorDataSource","shouldUpdateFilter","__dataGridSourceFilter","DataControllerFilterRowExtender","skipCalculateColumnFilters","filters","shouldSkip","getCurrentColumnForFiltering","ApplyFilterViewController","_headerPanel","_getHeaderPanel","enableApplyButton","removeHighLights","columnHeadersViewElement","_currentColumn","filterRowModule","columnsResizer","getFilterRangeOverlayInstance","_targetPoint","_needUpdateLookupDataSource","filterItem","_prepareFilterItem","_isShowApplyFilterButton","HEADER_FILTER_CLASS","HEADER_FILTER_MENU_CLASS","DEFAULT_SEARCH_EXPRESSION","resetChildrenItemSelection","getSelectAllCheckBox","listComponent","updateListSelectAllState","selectAllCheckBox","updateHeaderFilterItemSelectionState","filterValuesMatch","isExcludeFilter","HeaderFilterView","_listComponent","getListComponent","isFilterBuilder","fillSelectedItemKeys","isExclude","hasChildren","hasChildrenWithSelection","hideHeaderFilterMenu","$columnElement","getPopupContainer","updatePopup","headerFilterMenu","_cleanPopupContent","headerFilterOptions","useDefaultSearchExpr","headerFilterDataSource","filterSearchExpr","_normalizeHeaderFilterOptions","applyHeaderFilter","_initializeListContainer","needShowSelectAllCheckbox","_getSearchExpr","_selectedItemsUpdating","oldSelected","filterValueIndex","isExcludeFilterType","generalHeaderFilter","specificHeaderFilter","generalDeprecated","specificDeprecated","headerFilterMixin","$headerFilterIndicator","_isHeaderFilterEmpty","indicatorLabel","DATE_INTERVAL_FORMATS","quarter","ungroupUTCDates","isMonthPart","convertDataFromUTCToLocal","getHeaderFilterGroupParameters","isUTCFormat","HeaderFilterController","_headerFilterView","_updateSelectedState","currentLevel","valueSelector","displaySelector","getHeaderItemText","getGroupInterval","firstValueText","secondValue","secondValueText","_normalizeGroupItem","remoteGrouping","isLookup","normalizeLookupDataSource","cutoffLevel","useDefaultSearch","convertUTCDates","origPostProcess","isGroupPanel","showHeaderFilterMenuBase","columnElement","dxResizableInstance","dxResizable","headerFilterByColumn","ColumnHeadersViewHeaderFilterExtender","_subscribeToIndicatorEvent","_needUpdateFilterIndicators","_updateHeaderFilterIndicators","HeaderPanelHeaderFilterExtender","getCurrentColumn","headerFilterModule","headerFilterView","FILTER_BUILDER_RANGE_CLASS","FILTER_BUILDER_RANGE_START_CLASS","FILTER_BUILDER_RANGE_END_CLASS","FILTER_BUILDER_RANGE_SEPARATOR_CLASS","SEPARATOR","conditionInfo","$editorStart","$editorEnd","getStartValue","getEndValue","_editorFactory","getConfig","valueSeparator","notForLookup","isblank","isnotblank","OPERATION_NAME","getIconByFilterOperation","filterOperation","getNameByFilterOperation","DEFAULT_DATA_TYPE","EMPTY_MENU_ICON","AND_GROUP_OPERATION","EQUAL_OPERATION","NOT_EQUAL_OPERATION","boolean","object","DEFAULT_FORMAT","LOOKUP_OPERATIONS","AVAILABLE_FIELD_PROPERTIES","FILTER_BUILDER_CLASS","FILTER_BUILDER_ITEM_TEXT_CLASS","FILTER_BUILDER_ITEM_TEXT_PART_CLASS","FILTER_BUILDER_ITEM_TEXT_SEPARATOR_CLASS","FILTER_BUILDER_ITEM_TEXT_SEPARATOR_EMPTY_CLASS","getFormattedValueText","fieldFormat","isNegationGroup","isCondition","getGroupCriteria","setGroupCriteria","convertGroupToNewStructure","setGroupValue","getGroupMenuItem","availableGroups","groupValue","getGroupValue","getCriteriaOperation","getDefaultFilterOperations","containItems","entity","getFilterOperations","getCaptionByOperation","getOperationFromAvailable","availableOperations","getCustomOperation","filteredOperations","getAvailableOperations","isLookupField","isOperationForbidden","isCustom","getDefaultOperation","createCondition","updateConditionByOperation","createEmptyGroup","isNegation","isNegationGroupOperation","groupOperation","getGroupOperationFromNegationOperation","getField","extendedFields","convertToInnerGroup","defaultGroupOperation","innerGroup","convertToInnerStructure","appendGroupOperationToGroup","convertToInnerCondition","conditionHasCustomOperation","appendGroupOperationToCriteria","getNormalizedFields","normalizedField","getConditionFilterExpression","filterExpression","getFilterExpression","_filterExpression","getNormalizedFilter","itemsForRemove","normalizedGroupValue","isValidCondition","getCurrentLookupValueText","loadSingle","getPrimitiveValueText","getArrayValueText","checkDefaultValue","getCurrentValueText","itemExists","pushItemAndCheckParent","originalItems","hasParent","getParentIdFromItemDataField","generateCaptionByDataField","lastIndexOf","getCaptionWithParents","getOperationValue","getMergedOperations","betweenCaption","betweenIndex","isMatchedCondition","addedFilterDataField","removeFieldConditionsFromFilter","hasMatchedCondition","syncConditionIntoGroup","addedFilter","canPush","syncFilters","getMatchedConditions","filterHasField","renderValueText","t","baseOperation","getFullText","parentText","lastIndex","div","closeEditor","fieldInfo","itemsDeferred","_values","getSelectedItemsTexts","selectedItemsTexts","anyOf","noneOf","baseOp","baseFilter","FILTER_ROW_OPERATIONS","FILTER_TYPES_INCLUDE","FILTER_TYPES_EXCLUDE","getColumnIdentifier","checkForErrors","FilterSyncController","getEmptyFilterValues","canSyncHeaderFilterWithFilterRow","getConditionFromFilterRow","getConditionFromHeaderFilter","selectedOperation","updateHeaderFilterCondition","headerFilterCondition","hasArrayValue","updateFilterRowCondition","getFilteringColumns","_skipSyncColumnOptions","filterConditions","filterCondition","filteringColumns","syncFilterValue","isFilterSyncActive","_initSync","_getSyncFilterRow","_getSyncHeaderFilter","filterBuilderCustomOperations","DataControllerFilterSyncExtender","filterSyncEnabledValue","getCustomFilterOperations","calculatedFilterValue","matched","_parseColumnPropertyName","syncHeaderFilter","syncFilterRow","ColumnHeadersViewFilterSyncExtender","filterSyncModule","filterSync","FILTER_BUILDER_GROUP_CLASS","FILTER_BUILDER_GROUP_ITEM_CLASS","FILTER_BUILDER_GROUP_CONTENT_CLASS","FILTER_BUILDER_GROUP_OPERATIONS_CLASS","FILTER_BUILDER_GROUP_OPERATION_CLASS","FILTER_BUILDER_ACTION_CLASS","FILTER_BUILDER_IMAGE_CLASS","FILTER_BUILDER_IMAGE_ADD_CLASS","FILTER_BUILDER_IMAGE_REMOVE_CLASS","FILTER_BUILDER_ITEM_FIELD_CLASS","FILTER_BUILDER_ITEM_OPERATION_CLASS","FILTER_BUILDER_ITEM_VALUE_CLASS","FILTER_BUILDER_ITEM_VALUE_TEXT_CLASS","FILTER_BUILDER_OVERLAY_CLASS","FILTER_BUILDER_FILTER_OPERATIONS_CLASS","FILTER_BUILDER_FIELDS_CLASS","FILTER_BUILDER_ADD_CONDITION_CLASS","ACTIVE_CLASS","FILTER_BUILDER_MENU_CUSTOM_OPERATION_CLASS","SOURCE","TAB_KEY","ENTER_KEY","ESCAPE_KEY","OPERATORS","FilterBuilder","closePopupOnTargetScroll","_initCustomOperations","disableInvalidateForValue","_disableInvalidateForValue","_initModel","_getNormalizedFields","_model","_customOperations","_updateFilter","_getModel","_initEditorFactory","_getDefaultGroupOperation","_this$option$","actionConfig","_createGroupElementByCriteria","_createConditionElement","_createConditionItem","_createGroupElement","groupCriteria","innerCriteria","$groupItem","_createRemoveButton","_createGroupOperationButton","_createAddButton","newGroup","newCondition","_getGroupOperations","groupMenuItem","$operationButton","_createButtonWithMenu","removeMenu","treeViewElement","treeView","dxTreeView","_subscribeOnClickAndEnterKey","_createPopupWithTreeView","_hasValueButton","_createOperationButtonWithMenu","currentOperation","$valueButton","_createValueButton","_createOperationAndValueButtons","_createFieldButtonWithMenu","getFullCaption","$fieldButton","isSingleChild","$removeButton","addGroupHandler","addConditionHandler","_createValueText","_createValueEditorWithEvents","_updateConditionValue","areValuesDifferent","_addDocumentKeyUp","isComposing","hasCompositionJustEnded","documentKeyUpHandler","_documentKeyUpHandler","_addDocumentClick","closeEditorFunc","documentClickHandler","_isFocusOnEditorParts","_documentClickHandler","_removeEvents","createValueText","_createValueEditor","$popup","FilterBuilderView","_updatePopupOptions","_initPopup","_filterBuilderPopup","_filterBuilder","_disposePopup","_getPopupContentTemplate","$filterBuilderContainer","filterBuilderModule","filterBuilderView","FILTER_PANEL_CLASS","FILTER_PANEL_TEXT_CLASS","FILTER_PANEL_CHECKBOX_CLASS","FILTER_PANEL_CLEAR_FILTER_CLASS","FILTER_PANEL_LEFT_CONTAINER","FILTER_PANEL_TARGET","FilterPanelView","isColumnsDefined","$leftContainer","_renderFilterBuilderText","$filterElement","_getFilterElement","$textElement","_getTextElement","_filterValueBuffer","$checkElement","_getCheckElement","$removeButtonElement","_getRemoveButtonElement","_showFilterBuilder","_addTabIndexToElement","filterText","getFilterText","customText","clearFilterValue","tabindex","fieldText","operationText","_getValueMaskedText","hasCustomOperation","_getValueText","_getConditionText","isInnerGroup","getConditionText","getGroupText","groupText","filterPanelModule","filterPanelView","SEARCH_PANEL_CLASS","SEARCH_TEXT_CLASS","parseValue","searchModule","onQueryDone","getSearchPanelOptions","_prepareSearchItem","searchPanelOptions","$search","$searchPanel","getSearchTextEditor","_searchParams","isCaseSensitive","stringNormalizer","_getStringNormalizer","normalizedSearchText","resultTextNodes","$contents","$textNode","$searchTextSpan","firstContentElement","after","_highlightSearchTextCore","isEquals","_getFormattedSearchText","textNodes","_findHighlightingTextNodes","textNode","_highlightTimer","_highlightSearchText","pageIndexChanged","pageSizeChanged","_getElementComputedSt","computedStyle","getElementContentWidth","getElementMinWidth","contentAttributes","infoTextRef","infoTextVisible","isLargeDisplayMode","pageSizesRef","pagesRef","parentRef","Content","calculateLargeDisplayMode","pageSizes","pageSizesWidth","pages","pagesWidth","parentWidth","calculateInfoTextVisible","infoWidth","minimalWidth","getElementsWidth","pagesHtmlWidth","ResizableContainerProps","TemplateProp","actualIsLargeDisplayMode","actualInfoTextVisible","subscribeToResize","effectUpdateChildProps","updateAdaptivityProps","pagerProps","_this$_effects$2","gridCompatibility","lightModeEnabled","maxPagesCount","pageIndexChange","pageSizeChange","pagesCountText","pagesNavigatorVisible","showPageSizes","currentElementsWidth","elementsWidth","BasePagerProps","PagerProps","defaultPageSize","InternalPagerProps","PAGER_INFO_CLASS","InfoTextPropsType","_this$props$infoText","KeyboardActionContext","LightButtonProps","keyboardEffect","subscribeToClick","keyboardContext","PAGER_CLASS","LIGHT_MODE_CLASS","PAGER_PAGES_CLASS","PAGER_PAGE_INDEXES_CLASS","PAGER_PAGE_CLASS","PAGER_SELECTION_CLASS","PAGER_PAGE_SIZE_CLASS","PAGER_PAGE_SIZES_CLASS","PAGER_SELECTED_PAGE_SIZE_CLASS","FIRST_CHILD_CLASS","PageProps","PAGER_PAGE_SEPARATOR_CLASS","PagesMarkup","pageProps","PAGES_LIMITER","getDelimiterType","slidingWindowSize","createPageIndexesBySlidingWindowIndexes","slidingWindowIndexes","delimiter","pageIndexes","indexesForReuse","createPageIndexes","PagesLargePropsType","canReuseSlidingWindow","generatePageIndexes","isSlidingWindowMode","onPageClick","slidingWindowState","slidingWindowStateHolder","currentPageCount","lastPageIsFartherThanWindow","pageIndexExistInIndexes","_createPageIndexes","createPage","rtlPageIndexes","EditorStateProps","EditorLabelProps","DEFAULT_VALUE","NumberBoxProps","NumberBoxPropsType","oneDigitWidth","calculateValuesFittedWidth","PAGER_INFO_TEXT_CLASS","PAGER_PAGE_INDEX_CLASS","LIGHT_PAGES_CLASS","PAGER_PAGES_COUNT_CLASS","pageIndexRef","selectLastPageIndex","PagerSmallProps","PagerSmallPropsType","updateWidth","_this$pageIndexRef$cu","_this$props$pagesCoun","PAGER_NAVIGATE_BUTTON","PAGER_PREV_BUTTON_CLASS","PAGER_NEXT_BUTTON_CLASS","PAGER_BUTTON_DISABLE_CLASS","getNextButtonLabel","getPrevButtonLabel","classNames","nextEnabledClass","prevEnabledClass","nextDisabledClass","prevDisabledClass","reverseDirections","nextButtonProps","prevButtonProps","renderNextButton","renderPrevButton","navigate","getIncrement","PageIndexSelectorProps","PageIndexSelectorPropsType","getButtonProps","canNavigateToPage","getNextPageIndex","canNavigateTo","navigateToPage","rtlAwareDirection","canNavigate","SelectBoxProps","SelectBoxPropsType","PageSizeSmallProps","PageSizeSmallPropsType","pageSizesText","PageSizeLargePropsType","onPageSizeChange","processedPageSize","htmlRef","normalizedPageSizes","getAllText","PageSizeSelectorProps","PageSizeSelectorPropsType","setRootElementRef","infoVisible","pageIndexSelectorVisible","pagesContainerVisibility","pagesContainerVisible","widgetRootElementRef","PagerContentProps","createFakeInstance","keyboardAction","_this$props$onKeyDown","fakePagerInstance","normalizedDisplayMode","_this$props2","newPageSize","_this$props$pageSize$","MAX_PAGES_COUNT","getPageIndex","PagerView","_pager","pagerOptions","useLegacyKeyboardNavigation","_pageSizes","pagerVisible","isPager","isPaging","isDataSource","isScrolling","skipProcessingPagingChange","pagerModule","COLUMNS_SEPARATOR_CLASS","COLUMNS_SEPARATOR_TRANSPARENT","DRAGGING_HEADER_CLASS","HEADERS_DRAG_ACTION_CLASS","TRACKER_CLASS","HEADERS_DROP_HIGHLIGHT_CLASS","BLOCK_SEPARATOR_CLASS","DRAGGING_COMMAND_CELL_CLASS","COLUMNS_SEPARATOR_TOUCH_TRACKER_WIDTH","DRAGGING_DELTA","COLUMN_OPACITY","_positionChanged","_tablePositionController","_unsubscribeFromCallback","_subscribeToCallback","_isShown","_isTransparent","columnsSeparatorTransparent","outerX","_parentElement","cursorName","startAnimate","toOptions","_isDragging","_dragOptions","draggingPanels","draggingPanel","boundingRect","getBoundingRect","_dropOptions","targetColumnIndex","targetColumnElement","posX","posY","_columnsResizerViewController","isCommandColumn","sourceIndex","sourceColumnIndex","_getVisibleIndexObject","sourceColumnElement","_onSelectStart","onselectstart","whiteSpace","getSwatchContainer","eventData","dragOptions","moveDeltaX","deltaX","moveDeltaY","deltaY","newLeft","newTop","dockHeader","targetDraggingPanel","_getDraggingPanelByPos","isVerticalOrientation","axisName","pointsByTarget","pointsByColumns","_generatePointsByColumns","centerPosition","dock","_resetTargetColumnOptions","drop","isNextColumnResizingMode","headersRowHeight","getHeadersRowHeight","_$parentContainer","cellsLength","isNextColumnMode","isRtlParentStyle","_isRtlParentStyle","firstPointColumnIndex","nextColumn","currentX","columnsSeparatorWidth","_columnsSeparatorView","parentOffset","parentOffsetLeft","isDragging","_draggingHeaderView","_isResizing","_resizingInfo","_updateColumnsWidthIfNeeded","currentColumnIndex","outerWidth","moveByX","_isHeadersRowArea","_previousParentOffset","_getTargetPoint","_isReadyResizing","changeCursor","_trackerView","nextColumnIndex","_getNextColumnIndex","currentHeader","getHeaderElement","nextHeader","startPosX","currentColumnWidth","nextColumnWidth","_setupResizingInfo","getPointsByColumns","_pointCreated","_pointsByColumns","_moveSeparatorHandler","_startResizingHandler","_endResizingHandler","_moveSeparator","_startResizing","_endResizing","resizingInfo","isPercentWidth","setColumnWidth","oldColumnWidth","cellWidth","nextCellWidth","nextMinWidth","needCorrectionNextCellWidth","allColumnsHaveWidth","totalPercent","hasScroll","_subscribesToCallbacks","_unsubscribeFromEvents","_unsubscribeFromCallbacks","generatePointsByColumnsHandler","generatePointsByColumnsScrollHandler","_subscribeToEvents","previousScrollbarVisibility","previousTableHeight","scrollbarVisibility","_unsubscribes","diffOffsetTop","columnsHeadersHeight","columnsResizerController","draggingHeaderView","isDraggingOrResizing","_pagerView","targetPoint","isCustomGroupColumnPosition","checkIsCustomGroupColumnPosition","wasOnlyCommandColumns","isColumnAfterExpandColumn","isFirstExpandColumn","sourceColumnReorderingDisabled","otherColumnReorderingDisabled","draggingHeader","nameDraggingPanel","subscribeToEvents","dragHeader","moveHeader","dropHeader","_blockSeparatorView","blockSeparator","columnsSeparator","_animationColumnIndex","_headerPanelView","_columnChooserView","allowMoveColumn","headersView","_getSeparator","hasTargetVisibleIndex","allowDrop","hideSeparators","moveColumn","columnsResizingReorderingModule","columnsSeparatorView","blockSeparatorView","trackerView","tablePosition","compareByReference","lastArgs","compareByValue","createCacheFunc","firstArgs","firstResult","originFunc","compareFunc","lastResult","argsEquals","MEMOIZE_DEFAULT_OPTIONS","compareType","memoize","cachedFunc","_len2","_key2","ATTRIBUTES","dragCell","FREESPACE_ROW_CLASS","COMMAND_CELL_SELECTOR","DATEBOX_WIDGET_NAME","FAST_EDITING_DELETE_KEY","INTERACTIVE_ELEMENTS_SELECTOR","NON_FOCUSABLE_ELEMENTS_SELECTOR","FOCUS_TYPE_ROW","FOCUS_TYPE_CELL","COLUMN_HEADERS_VIEW","FUNCTIONAL_KEYS","getCellToFocus","GridCoreKeyboardNavigationDom","isDragCell","DATAGRID_GROUP_FOOTER_CLASS","isGroupFooterRow","isNotFocusedRow","_isRowEditMode","isElementDefined","isMobile","isCellInHeaderRow","isFixedColumnIndexOffsetRequired","shouldPreventScroll","_isVirtualScrolling","_selectionController","_focusController","_memoFireFocusedCellChanged","_memoFireFocusedRowChanged","focusedHandlerWithContext","focusedHandler","renderCompletedWithContext","rowsViewFocusHandlerContext","rowsViewFocusHandler","_updateFocusTimeout","_fastEditingStarted","_focusedCellPosition","_canceledCellPosition","initViewHandlers","initDocumentHandlers","setupFocusedView","_isNeedScroll","_focusedView","_scrollToElement","isRelatedTargetInRowsView","isLink","_isEventInCurrentGrid","$focusedCell","_getFocusedCell","isCell","needSetFocusPosition","_updateFocusedCellPosition","$rowsView","isFocusedViewCorrect","needUpdateFocus","isFocusedElementCorrect","unsubscribeFromRowsViewFocusEvent","subscribeToRowsViewFocusEvent","initPointerEventHandler","initKeyDownHandler","_setRowsViewAttributes","_isNeedFocus","_isHiddenFocus","unsubscribeFromPointerEvent","unsubscribeFromKeyDownEvent","isCurrentRowsViewClick","isEditorOverlay","isColumnResizing","targetInsideFocusedView","_resetFocusedCell","_resetFocusedView","_getRowsViewElement","isGridEmpty","_applyTabIndexToElement","pointerEventName","_pointerEventAction","_pointerEventHandler","subscribeToPointerEvent","_keyDownListener","subscribeToKeyDownEvent","focusType","needStopPropagation","_processOnKeyDown","_updateFocusedCellPositionByTarget","_leftRightKeysHandler","ctrl","_upDownKeysHandler","_pageUpDownKeyHandler","_spaceKeyHandler","_ctrlAKeyHandler","_beginFastEditing","_tabKeyHandler","_escapeKeyHandler","_ctrlFKeyHandler","_f2KeyHandler","_isFastEditingAllowed","_isFastEditingStarted","getVisibleRowIndex","$event","getRow","directionCode","_getDirectionCodeByKey","isEditingNavigationMode","allowNavigate","setCellFocusType","_closeEditCell","_isVirtualColumnRender","_processVirtualHorizontalPosition","_getNextCell","_arrowKeysHandlerFocusCell","isUpArrow","isRowEditingInCurrentRow","_navigateNextCell","_isVirtualRowRender","_scrollBy","isPageUp","pageStep","isFocusedRowElement","_getElementType","isRowFocusType","isFocusedSelectionCell","isCellPositionDefined","isOriginalHandlerRequired","_isLastValidCell","_isFirstValidCell","eventTarget","focusedViewElement","_handleTabKeyOnMasterDetailCell","_editingCellTabHandler","_targetCellTabHandler","allVisibleColumns","renderedVisibleColumns","localColumnIndex","getColumnIndex","horizontalScrollPosition","needToScroll","_getVisibleColumnCount","_getMaxHorizontalOffset","_isFixedColumn","_isColumnRendered","leftEdgePosition","_isColumnVirtual","_getHorizontalScrollPositionOffset","positionOffset","$currentCell","_getCell","currentCellWidth","rtlMultiplier","isEditingAllowed","_getCellElementFromTarget","elementType","nextCellInfo","_getNextCellByTabKey","_getRowIndex","_isDataRow","_focusCell","isHighlighted","_editFocusedCell","_focusInteractiveElement","$lastInteractiveElement","_getInteractiveElement","getFirstValidCellInRow","_checkNewLineTransition","_fireFocusedCellChanging","$newCellElement","_getCellPosition","_fireFocusedRowChanging","rowIndexChanged","setFocusedColumnIndex","_processEnterKeyForDataCell","_getEnterKeyDirection","allowEditingOnEnterKey","_allowEditingOnEnterKey","_handleEnterKeyEditingCell","_startEditing","isShift","_focusEditFormCell","searchTextEditor","keyCode","isCellValid","_isCellValid","$nextCell","isVerticalDirection","_fireFocusChangingEvents","_focus","isDeleting","fastEditingKey","isInteractiveElement","isExpandCommandCell","_isInsideEditForm","_focusView","_isMasterDetailCell","_clickTargetCellHandler","_isCellEditMode","setRowFocusType","setFocusedRowIndex","prevRowIndex","resetFocusedRow","_resetFocusedRow","_allowRowUpdating","skipFocusEvent","isDisabled","activeElementSelector","_isCellElement","_focusElement","rowsViewElement","$focusedView","getFocusedView","disableFocus","$focusElement","focusedView","isRowFocus","one","isRenderView","_needFocusEditingCell","_hasSkipRow","$focusedElementInsideCell","isFocusedElementDefined","cellEditModeHasChanges","isNewRowBatchEditMode","isNewRowInEditMode","setFocusedCellPosition","_getFixedColumnIndexOffset","_getFocusedColumnIndexOffset","_applyColumnIndexBoundaries","renderFocusState","newRowIndex","visibleColumnsCount","_hasValidCellAfterPosition","_isLastRow","_hasValidCellBeforePosition","getMaxRowIndex","isFirstValidCell","hasValidCells","checkingPosition","_isCellByPositionValid","visibleColumnCount","isClick","isShowWhenGrouped","isDataCell","rowItems","_isLegacyNavigation","focusedCellPosition","includeCommandCells","newFocusedCellPosition","_getNewPositionByCode","isLastCellOnDirection","_isCellInRow","visibleColumnIndex","_isAllowEditing","_startEditCell","editResult","isEditResultDeferred","isFastEditingStarted","editResultDeferred","waitTemplatesDeferred","_editingCellHandler","$inputElement","inputEvent","$widgetContainer","fireRowEvent","isCellFocusType","newColumnIndex","prevColumnIndex","localRowIndex","$newFocusedRow","prevFocusedRowIndex","getFocusedRowIndexByKey","getCell","restoreFocusableElement","$editForm","$masterDetailCell","_$cell","_processNextCellInMasterDetail","isCanceled","lastVisibleIndex","keyboardNavigationModule","needTriggerPointerEventHandler","_triggerPointerDownEventHandler","updateFocusedRowIndex","updateFocusElementTabIndex","_updateFocusedCellTabIndex","cellElementsLength","updateCellTabIndex","isMasterDetailCell","isValidCell","_renderFocusByChange","_getEditorInstance","_handleEditingNavigationMode","originalKeyHandler","isDropDownOpened","isDateBoxWithMask","_processCanceledEditCellPosition","keyboardNavigationController","_keyboardNavigationController","getRowIndexCorrection","focusedRowIndexCorrection","adaptiveColumns","depthFirstSearch","depth","isCount","aggregator","normalizeAggregate","aggregate","errors","_groupLevel","_totalAggregates","totalAggregates","_groupAggregates","groupAggregates","_totals","_calculateTotals","_calculateGroups","aggregates","_accumulate","_seed","_aggregate","_finalize","maxLevel","seedFn","stepFn","finalizeFn","innerNode","seed","NaN","aggregateIndex","fin","finalize","DATAGRID_TOTAL_FOOTER_CLASS","DATAGRID_SUMMARY_ITEM_CLASS","DATAGRID_TEXT_CONTENT_CLASS","DATAGRID_GROUP_TEXT_CONTENT_CLASS","DATAGRID_NOWRAP_CLASS","DATAGRID_FOOTER_ROW_CLASS","DATAGRID_GROUP_FOOTER_ROW_TYPE","DATAGRID_TOTAL_FOOTER_ROW_TYPE","renderSummaryCell","$summaryItems","getSummaryText","getSummaryCellOptions","getGroupAggregates","FooterView","footerItems","needUpdateScrollLeft","_updateScrollLeftPosition","$newTable","$newRow","totalColumnIndices","SummaryDataSourceAdapterExtender","_summaryGetter","summaryGetter","sortByGroupsInfo","sortByGroups","groupedItems","forEachGroup","itemsPath","SummaryDataSourceAdapterClientExtender","calculateAggregates","calculator","insertedData","getInsertedData","applyAddedData","removedData","getRemovedData","applyRemovedData","updatedData","updatedItems","sortGroupsBySummary","sortGroupsBySummaryCore","sortBy","thenBy","sortedItems","totalSummary","hasOperations","_isDataColumn","isGroupFooterVisible","_isGroupFooterVisible","summaryGroupItems","afterGroupColumnIndex","_calculateSummaryCells","calculateTargetColumnIndex","summaryCellsByColumns","summaryIndex","columnCaption","summaryTotalItems","_footerItems","oldSummaryCells","_getSummaryCells","summaryCell","getUpdatedData","_prepareUnsavedDataSelector","commonSkipEmptyValues","_prepareAggregateSelector","summaryProcess","totalValue","summaryItemIndex","groupSummaryItems","_findSummaryItem","_addSortInfo","currentRemoteOperations","_getSummaryOptions","totalSummaryItems","_getAggregates","_getSummarySortByGroups","methods","summaryItemName","_refreshSummary","_renderGroupSummaryCells","_hasAlignByColumnSummaryItems","groupCellColSpan","alignByColumnCellCount","$groupCell","_getAlignByColumnCellCount","_renderGroupSummaryCellsCore","_getSummaryCellIndex","FIRST_CELL_CLASS","LAST_CELL_CLASS","HOVER_STATE_CLASS","FIXED_COL_CLASS","FIXED_COLUMNS_CLASS","POINTER_EVENTS_NONE_CLASS","getTransparentColumnIndex","normalizeColumnWidths","fixedWidths","fixedColumnIndex","baseFixedColumns","_isFixedColumns","fixedTableElement","_fixedTableElement","_partialUpdateFixedRow","needUpdateColspan","$fixedTable","$fixedDataRows","needPartialUpdate","_partialUpdateFixedTable","_correctColumnIndicesForFixedColumns","fixedCorrection","fixedCells","prevFixedColumn","columnCommand","isRowAltStyle","isSelectAllCell","isEmptyCell","isGroupCell","alignByFixedColumnCellCount","headerRowIndex","fixedCellElements","fixedColumn","getVisibleIndexByColumn","$transparentColumn","getTransparentColumnElement","positionTransparentColumn","synchronizeRows","isColumnWidthsSynced","isColumnWidthChanged","needVisibleColumns","setFixedTableColumnWidths","needSynchronizeRows","boundingClientRectElement","$fixedRowElements","fixedRowHeights","heightTable","_getClientHeight","heightFixedTable","fixedRowHeight","ColumnHeadersViewFixedColumnsExtender","columnFixingOptions","$transparentColumnElement","$fixedColumnElements","getFixedColumnElements","RowsViewFixedColumnsExtender","isHover","hasResizeTimeout","contentClass","scrollDelay","_getScrollDelay","_fixedScrollTimeout","$nearestScrollable","shouldScroll","nearestScrollableInstance","nearestScrollableHasVerticalScrollbar","scrollableTop","scrollableHeight","isPreventDefault","_updateFixedTablePosition","_detachHoverEvents","needFocus","vWidth","hWidth","styles","$fixedContent","elasticScrollTop","reachedBottom","$scrollableContent","$scrollableContainer","maxScrollTop","_getElasticScrollTop","_applyElasticScrolling","getFixedColumnsOffset","FooterViewFixedColumnsExtender","columnFixingModule","_pointsByFixedColumns","ROWS_VIEW","FOOTER_VIEW","COLUMN_VIEWS","ADAPTIVE_NAMESPACE","ADAPTIVE_ROW_TYPE","FORM_ITEM_CONTENT_CLASS","FORM_ITEM_MODIFIED","HIDDEN_COLUMN_CLASS","ADAPTIVE_COLUMN_BUTTON_CLASS","ADAPTIVE_COLUMN_NAME_CLASS","COMMAND_ADAPTIVE_HIDDEN_CLASS","ADAPTIVE_DETAIL_ROW_CLASS","ADAPTIVE_ITEM_TEXT_CLASS","LAST_DATA_CELL_CLASS","ADAPTIVE_COLUMN_NAME","EXPAND_ARIA_NAME","COLLAPSE_ARIA_NAME","getDataCellElements","adaptiveCellTemplate","$adaptiveColumnButton","adaptiveColumnsController","toggleExpandAdaptiveDetailRow","focusCellHandler","adaptiveColumnsControllerMembers","_getEditMode","focusAction","_isItemModified","renderFormTemplate","isItemEdited","_isItemEdited","_renderFormViewTemplate","percentWidths","_getItemPercentWidth","_isPercentWidth","_hiddenColumns","hiddenColumn","columnsCanFit","fixedColumnsWidth","columnsWithoutFixedWidthCount","_isColumnHidden","_calculatePercentWidth","contentColumns","widthOption","columnFitted","partialWidth","resultWidth","_calculateColumnWidth","adaptiveExpandedKey","_getAdaptiveColumnVisibleIndex","_hideVisibleColumn","cssClassNameToRemove","$hiddenCommandCells","_showHiddenCellsInView","$hiddenCells","_hideVisibleColumnInView","getRowsCount","cancelClassAdding","currentVisibleIndex","_findCellElementInRow","_hideVisibleCellInView","$rowCells","cellIsInsideGroup","groupCellLength","endGroupIndex","cssClassNameToAdd","hiddenQueue","_isVisibleColumnsValid","needHideColumn","rootElementWidth","_getCommandColumnsWidth","getVisibleContentColumns","visibleContentColumns","contentColumnsCount","_calculatePercentWidths","_getNotTruncatedColumnWidth","columnBestFitWidth","_hideAdaptiveColumn","_$itemContents","alwaysExpanded","userFormOptions","_getFormItemsByHiddenColumns","defaultFormOptions","_form","updateForm","hasAdaptiveDetailRowExpanded","columnsHasHidingPriority","hideableColumns","_hidingColumnsQueue","adaptiveHidden","isAdaptiveVisible","updateHidingQueue","setCommandAdaptiveAriaLabel","labelName","$adaptiveCommand","AdaptiveColumnsController","isCellOrBatchMode","_adaptiveController","adaptivityModule","_adaptiveColumnsController","createFormByHiddenColumns","hidingColumnsQueueLength","getHidingColumnsQueue","hiddenColumnsLength","getHiddenColumns","$adaptiveDetailItems","getAdaptiveDetailItems","getItemContentByColumnIndex","isClickable","hasHiddenColumnsOnly","hasAdaptiveHiddenWidth","$itemContents","oldExpandRowIndex","_isForceRowAdaptiveExpand","collapseAdaptiveDetailRow","_collapseAdaptiveDetailRow","_cancelEditAdaptiveDetailRow","isAdaptiveDetailRowExpanded","expandedKey","_adaptiveExpandedKey","adaptiveController","oldHiddenColumns","hidingColumnsQueue","hideRedundantColumns","_showHiddenColumns","_updateScrollableTimeoutID","expandRowIndex","lastRowIndex","oldExpandLoadedRowIndex","newExpandLoadedRowIndex","oldKey","updateCommandAdaptiveAriaLabel","foreachColumnInfo","offsets","lastProcessedIndexes","processedColumnCount","createColumnsInfo","newInfo","columnInfo","cellColspan","DEFAULT_COLUMN_WIDTH","setScrollPosition","_restoreScrollTop","HeaderViewExtender","ColumnsControllerExtender","getWidths","_beginPageIndex","_endPageIndex","_virtualVisibleColumns","getColumnPageSize","getTotalWidth","_changedTimeout","_setScrollPositionCore","needColumnsChanged","_fireColumnsChanged","visibleColumnsHash","beginFixedColumnCount","beginFixedColumns","beginColumns","beginWidth","endFixedColumnCount","endFixedColumns","endColumns","endWidth","columnsInfo","leftFixedColumnCount","virtualColumnsModule","columnPageSize","columnRenderingThreshold","BUTTON_GROUP_WRAPPER_CLASS","BUTTON_GROUP_ITEM_CLASS","BUTTON_GROUP_FIRST_ITEM_CLASS","BUTTON_GROUP_LAST_ITEM_CLASS","BUTTON_GROUP_ITEM_HAS_WIDTH","SHAPE_STANDARD_CLASS","ButtonCollection","_prepareItemStyles","_getBasicButtonOptions","_templateData","_hasCustomTemplate","itemTemplateProperty","ButtonGroup","buttonTemplate","_createItemClickAction","$buttons","_buttonsCollection","DROP_DOWN_BUTTON_CLASS","DROP_DOWN_BUTTON_CONTENT","DROP_DOWN_BUTTON_ACTION_CLASS","DROP_DOWN_BUTTON_TOGGLE_CLASS","DROP_DOWN_BUTTON_HAS_ARROW_CLASS","DROP_DOWN_BUTTON_POPUP_WRAPPER_CLASS","DROP_DOWN_EDITOR_OVERLAY_CLASS","DX_BUTTON_CLASS","DX_BUTTON_TEXT_CLASS","DX_ICON_RIGHT_CLASS","useSelectMode","splitButton","showArrowIcon","dropDownContentTemplate","buttonGroupOptions","_createActionClickAction","_createSelectionChangedAction","_compileKeyGetter","$listContainer","_listOptions","_escHandler","_getKey","storeKey","_keyGetter","_renderButtonGroup","_updateArrowClass","_loadSelectedItem","_updateActionButton","_this$_loadSingleDefe","_loadSingleDeferred","_lastSelectedItemData","cachedResult","_actionClickAction","previousItem","_actionItem","_actionButtonConfig","isActionButton","isToggleButton","buttonContent","$firstIcon","$textContainer","$secondIcon","_getButtonGroupItems","_buttonGroupItemClick","$buttonClicked","_fireItemClickAction","_buttonGroup","_popupOptions","_updateAriaAttributes","elementAria","owns","commonButtonAria","firstButtonAria","_getButtons","_setElementAria","_setButtonsAria","$buttonGroup","_buttonGroupOptions","_upDownKeyHandler","_tabHandler","hasArrow","isPrimitiveItem","_getDisplayValue","_fireSelectionChangedAction","newConfig","_updateButtonGroup","_selectedItemKeyChanged","_actionButtonOptionChanged","_updateDataSource","_updateKeyExpr","_selectModeChanged","_updateItemCollection","prepareItems","emptyCell","defaultSetter","DATAGRID_EXPORT_MENU_CLASS","DATAGRID_EXPORT_BUTTON_CLASS","DATAGRID_EXPORT_TOOLBAR_BUTTON_NAME","DATAGRID_EXPORT_ICON","DATAGRID_EXPORT_EXCEL_ICON","DATAGRID_EXPORT_SELECTED_ICON","DATAGRID_PDF_EXPORT_ICON","initialColumnWidthsByColumnIndex","selectedRowsOnly","_exportController","_initialColumnWidthsByColumnIndex","_selectedRowsOnly","_getColumns","_selectionOnly","_getSelectedItems","_getAllItems","isHeadersVisible","bold","columnStyles","getHeaderStyles","getColumnStyles","getGroupRowStyle","getHeaderRowCount","isTotalCell","_getTotalCellStyleId","getColumnsByAllRows","_correctCellIndex","gridGroupSummaryItems","isExcelJS","cellSourceData","correctedCellIndex","columnsRow","gridColumn","itemValues","totalSummaryItemName","_convertFromGridGroupSummaryItems","_getGroupValue","correctCellIndex","isSummaryAlignByColumn","exportColspan","currentHeaderRow","columnWidthsByColumnIndex","_getColumnWidths","_headersView","_needColumnExporting","currentColspan","_calculateExportColspan","_updateColumnWidth","_getEmptyCell","childColumns","childColumn","isTotal","estimatedItemsCount","sourceItems","beforeGroupFooterItems","groupFooterItems","_getFooterSummaryItems","summaryValues","groupColumnCount","k","loadAll","_updateGroupValuesWithSummaryByColumn","_hasSummaryGroupFooters","_getItemsWithSummaryGroupFooters","_processUnExportedItems","needLoadItemsOnExportingSelectedItems","columnsLastRowVisibleColumns","getAction","fileName","_isSelectedRows","callbackList","editingButtonsUpdated","exportButton","_getExportToolbarButton","_correctItemsPosition","_getExportToolbarItems","_needDisableExportButton","toolbarButtonOptions","_widgetOptions","_index","exportOptions","formatName","exportAllIcon","exportSelectedIcon","hasUnsavedChanges","isColumnLocationChanged","_isExportButtonVisible","getSortFilterValue","sortInfo","getSelector","safeValue","UiGridCoreFocusUtils","ROW_FOCUSED_CLASS","TABLE_POSTFIX_CLASS","FocusController","_keyboardController","_focusRowByIndex","_fireFocusedRowChanged","_focusRowByKey","isAutoNavigateToFocusedRow","_focusRowByIndexCore","setKeyByIndex","_isValidFocusedRowIndex","isRowFocused","_isLocalRowIndex","waitReady","isVirtualScrolling","virtualItems","virtualItemsBegin","visibleRowsCount","visiblePagesCount","_navigateToRow","isFocusedRowKeyDefined","needFocusRow","isAutoNavigate","rowIndexByKey","_navigateTo","getPageIndexByKey","isVirtualRowRenderingMode","_navigateToVirtualRow","_navigateToVisibleRow","_triggerUpdateFocusedRow","scrollToRowElement","triggerUpdateFocusedRow","scrollTopPosition","currentFocusedRowIndex","$mainRow","isMainTable","_clearPreviousFocusedRow","_prepareFocusedRow","changedItem","scrollToElementVertically","$prevRowFocusedElement","focusedRow","$focusedRowTable","$firstRow","focusModule","_fireFocusedCellChanged","isRowElement","sortByKey","notSortedKeys","getDataIndexGetter","notSortedKey","isPartialUpdate","isPartialUpdateWithDeleting","_updatePageIndexes","_updateFocusedRow","prevRenderingPageIndex","_lastRenderingPageIndex","renderingPageIndex","_isPagingByRendering","pagingWithoutVirtualScrolling","isReload","isValidRowIndexByKey","isValidFocusedRowIndex","isSameRowIndex","_focusRowByKeyOrIndex","getGlobalRowIndexByKey","_calculateGlobalRowIndexByGroupedData","_calculateGlobalRowIndexByFlatData","groupFilter","useGroup","_generateFilterByKey","_concatWithCombinedFilter","_generateOperationFilterByKey","booleanFilter","_generateBooleanFilter","sortFilter","keyPart","updateFocusedRow","_setFocusedRowElementTabIndex","_findRowElementForTabIndex","_scrollToFocusOnResize","isPagingByRendering","getScrollElementPosition","currentScrollTop","resetFilterApplying","isRowClick","_isFocusedRowInsideGroup","groupPath","expandRow","_expandGroupByPath","isGroupKey","_getGroupPath","_calculateExpandedRowGlobalIndex","dataOffset","groupContinuationCount","currentPageOffset","KEYDOWN_EVENT","DRAGGABLE","DRAG_EVENT_NAME","DRAGEND_EVENT_NAME","DRAG_ENTER_EVENT_NAME","DRAGEND_LEAVE_EVENT_NAME","POINTERDOWN_EVENT_NAME","KEYDOWN_EVENT_NAME","CLONE_CLASS","ANONYMOUS_TEMPLATE_NAME","getMousePosition","pageX","pageY","OVERLAY_WRAPPER_CLASS","_$scrollableAtPointer","_preventScroll","_component","_scrollValue","_overFlowAttr","_sizeAttr","_scrollSizeProp","_clientSizeProp","_limitProps","mousePosition","isScrollableFound","isTargetOverOverlayWrapper","isTargetOverOverlayContent","_trySetScrollable","_scrollSpeed","distanceToBorders","sensitivity","isScrollable","_calculateDistanceToBorders","_calculateScrollSpeed","areaBoundingRect","maxSpeed","$scrollable","nextScrollPosition","_nextScrollPosition","dragMoveArgs","_dragMoveArgs","_dragMoveHandler","scrollableSize","ScrollAnimator","horizontalScrollHelper","_horizontalScrollHelper","verticalScrollHelper","_verticalScrollHelper","scrollByStep","Draggable","dragMove","dragEnter","dragLeave","sourceEvent","sourceDraggable","_getSourceDraggable","_fireRemoveEvent","onDragEnter","onDragLeave","onDragCancel","onCancelByEsc","onDrop","boundOffset","allowMoveByClick","_scrollAnimator","_initScrollTop","_initScrollLeft","_normalizeCursorOffset","dragElementOffset","$dragElement","dragElement","isCloned","_dragElementIsCloned","normalizedCursorOffset","currentLocate","_initialLocate","initialOffset","_getNormalizedCursorOffset","_calculateElementOffset","_startPosition","inProgress","itemsSelector","_getItemsSelector","checkDropTarget","targetGroup","sourceGroup","_getScrollable","isOutsideScrollable","_pointerDownHandler","_dragEnterHandler","_dragLeaveHandler","_keydownHandler","_$dragElement","_getContainer","_getDragTemplateArgs","_toggleDraggingClass","_toggleDragSourceClass","_$sourceElement","$sourceElement","_getSourceElement","draggable","_getAction","_getEventArgs","_getDraggableElement","dragInProgress","_isValidElement","dragStartArgs","_getDragStartArgs","_setSourceDraggable","_hasClonedDraggable","_getScrollableScrollTop","_getScrollableScrollLeft","_getDraggableElementOffset","_createDragElement","_setGestureCoverCursor","isFixedPosition","_initPosition","_getAreaOffset","_getBoundOffset","areaWidth","areaHeight","elementHeight","startOffset_left","startOffset_top","_startAnimator","initialOffsetX","initialOffsetY","initScrollTop","initScrollLeft","targetDraggable","_getTargetDraggable","allObjects","elementsFromPoint","updateScrollable","fromComponent","toComponent","fromData","toData","dragEndEventArgs","dropEventArgs","needRevertPosition","dragEnd","_revertItemToInitialPosition","_resetDragOptions","$sourceDraggableElement","$targetDraggableElement","firstWidgetElement","isTargetOverItself","isTargetOverNestedDraggable","_fireDragEnterEvent","_isTargetOverAnotherDraggable","_setTargetDraggable","_fireDragLeaveEvent","_resetTargetDraggable","_keydownEscapeHandler","dragCancelEventArgs","_getAnonymousTemplateName","transclude","anonymousTemplateName","_resetDragElement","_stopAnimator","_resetSourceElement","_resetSourceDraggable","SORTABLE","PLACEHOLDER_CLASS","transition","stopAnimation","getScrollableBoundary","paddingTop","Sortable","_sourceScrollHandler","_handleSourceScroll","_sourceScrollableInfo","itemOrientation","moveItemOnDrop","onPlaceholderPrepared","dropInsideItem","itemPoints","fromIndexOffset","autoUpdate","draggableElementSize","_$placeholderElement","_isIndicateMode","_$modifiedItem","_modifiedItemMargin","_getPrevVisibleItem","_updateItemPoints","_subscribeToSourceScroll","_getElementIndex","sourceScrollableInfo","scrollProp","_correctItemPoints","_movePlaceholder","lastItemPoint","_isVerticalOrientation","sourceElementSize","scrollSize","positionProp","lastPointPosition","freeSize","_getItems","$sortable","sortable","_unsubscribeFromSourceScroll","$targetDraggable","itemPoint","cancelAdd","cancelRemove","isSourceDraggable","_allowDrop","_fireAddEvent","_moveItem","_fireReorderEvent","cursorPosition","_updatePlaceholderPosition","$placeholderContainer","draggableVisibleIndex","_allowReordering","itemWidth","visibleItemElements","visibleItemCount","$draggableItem","needCorrectLeftPosition","needCorrectTopPosition","_isValidPoint","points","forceUpdate","_getItemPoints","positionPropName","skipOffsetting","isAnotherDraggable","_getActualFromIndex","_normalizeToIndex","placeholderElement","_$scrollable","scrollableWidth","overflowLeft","overflowRight","$placeholderElement","_makeWidthCorrection","$prevTargetItemElement","$targetItemElement","_moveItemCore","$targetItem","prevItem","isDragSource","$fromElement","_optionChangedDropInsideItem","_optionChangedToIndex","scrollContainer","clientRect","showPlaceholder","_moveItems","fullUpdate","_updateDragSourceClass","_createPlaceholder","prevVisibleItemElement","_updatePlaceholderSizes","_isPositionVisible","isLastVerticalPosition","outerPlaceholderHeight","_makeLeftCorrection","elementSize","prevToIndex","_getDraggableElementSize","prevPositions","_getPositions","animationConfig","CLASSES","cellFocusDisabled","handleIcon","commandDrag","sortableWithoutHandle","createHandleTemplateFunc","GridCoreRowDraggingDom","RowDraggingExtender","_updateHandleColumn","isHandleColumnVisible","_getHandleTemplate","currentSortableName","anotherSortableName","togglePointerEventsStyle","_sortableFixed","rowsViewOffset","onDraggableElementShown","gridInstance","_synchronizeScrollLeftPosition","_getDraggableRowTemplate","hasFixedSortable","_updateSortable","_sortable","gridOptions","$dataGridContainer","_getDraggableGridOptions","rowDraggingModule"],"mappings":"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","file":"js/chunk-5e6be5ce.a004cf86.js","sourcesContent":["/*!\n * devextreme-vue\n * Version: 23.1.5\n * Build date: Wed Aug 30 2023\n *\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DxHide = exports.DxHeaderFilter = exports.DxGroupPanel = exports.DxGroupOperationDescriptions = exports.DxGroupItem = exports.DxGroupingTexts = exports.DxGrouping = exports.DxFrom = exports.DxFormItem = exports.DxFormat = exports.DxForm = exports.DxFilterRow = exports.DxFilterPanelTexts = exports.DxFilterPanel = exports.DxFilterOperationDescriptions = exports.DxFilterBuilderPopup = exports.DxFilterBuilder = exports.DxFieldLookup = exports.DxField = exports.DxExportTexts = exports.DxExport = exports.DxEmailRule = exports.DxEditingTexts = exports.DxEditing = exports.DxDataGridSelection = exports.DxDataGridHeaderFilterTexts = exports.DxDataGridHeaderFilterSearch = exports.DxDataGridHeaderFilter = exports.DxCustomRule = exports.DxCustomOperation = exports.DxCursorOffset = exports.DxCompareRule = exports.DxColumnLookup = exports.DxColumnHeaderFilterSearch = exports.DxColumnHeaderFilter = exports.DxColumnFixingTexts = exports.DxColumnFixing = exports.DxColumnChooserSelection = exports.DxColumnChooserSearch = exports.DxColumnChooser = exports.DxColumn = exports.DxCollision = exports.DxColCountByScreen = exports.DxChange = exports.DxButton = exports.DxBoundaryOffset = exports.DxAt = exports.DxAsyncRule = exports.DxAnimation = exports.DxDataGrid = void 0;\nexports.DxValueFormat = exports.DxValidationRule = exports.DxTotalItem = exports.DxToolbarItem = exports.DxToolbar = exports.DxTo = exports.DxTexts = exports.DxSummaryTexts = exports.DxSummary = exports.DxStringLengthRule = exports.DxStateStoring = exports.DxSorting = exports.DxSortByGroupSummaryInfo = exports.DxShow = exports.DxSelection = exports.DxSearchPanel = exports.DxSearch = exports.DxScrolling = exports.DxRowDragging = exports.DxRequiredRule = exports.DxRemoteOperations = exports.DxRangeRule = exports.DxPosition = exports.DxPopup = exports.DxPatternRule = exports.DxPaging = exports.DxPager = exports.DxOperationDescriptions = exports.DxOffset = exports.DxNumericRule = exports.DxMy = exports.DxMasterDetail = exports.DxLookup = exports.DxLoadPanel = exports.DxLabel = exports.DxKeyboardNavigation = exports.DxItem = void 0;\nvar data_grid_1 = __importDefault(require(\"devextreme/ui/data_grid\"));\nvar index_1 = require(\"./core/index\");\nvar index_2 = require(\"./core/index\");\nvar DxDataGrid = (0, index_1.createComponent)({\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n allowColumnReordering: Boolean,\n allowColumnResizing: Boolean,\n autoNavigateToFocusedRow: Boolean,\n cacheEnabled: Boolean,\n cellHintEnabled: Boolean,\n columnAutoWidth: Boolean,\n columnChooser: Object,\n columnFixing: Object,\n columnHidingEnabled: Boolean,\n columnMinWidth: Number,\n columnResizingMode: String,\n columns: Array,\n columnWidth: [Number, String],\n customizeColumns: Function,\n dataRowTemplate: {},\n dataSource: {},\n dateSerializationFormat: String,\n disabled: Boolean,\n editing: Object,\n elementAttr: Object,\n errorRowEnabled: Boolean,\n export: Object,\n filterBuilder: Object,\n filterBuilderPopup: Object,\n filterPanel: Object,\n filterRow: Object,\n filterSyncEnabled: [Boolean, String],\n filterValue: [Array, Function, String],\n focusedColumnIndex: Number,\n focusedRowEnabled: Boolean,\n focusedRowIndex: Number,\n focusedRowKey: {},\n grouping: Object,\n groupPanel: Object,\n headerFilter: Object,\n height: [Function, Number, String],\n highlightChanges: Boolean,\n hint: String,\n hoverStateEnabled: Boolean,\n keyboardNavigation: Object,\n keyExpr: [Array, String],\n loadPanel: Object,\n masterDetail: Object,\n noDataText: String,\n onAdaptiveDetailRowPreparing: Function,\n onCellClick: Function,\n onCellDblClick: Function,\n onCellHoverChanged: Function,\n onCellPrepared: Function,\n onContentReady: Function,\n onContextMenuPreparing: Function,\n onDataErrorOccurred: Function,\n onDisposing: Function,\n onEditCanceled: Function,\n onEditCanceling: Function,\n onEditingStart: Function,\n onEditorPrepared: Function,\n onEditorPreparing: Function,\n onExporting: Function,\n onFocusedCellChanged: Function,\n onFocusedCellChanging: Function,\n onFocusedRowChanged: Function,\n onFocusedRowChanging: Function,\n onInitialized: Function,\n onInitNewRow: Function,\n onKeyDown: Function,\n onOptionChanged: Function,\n onRowClick: Function,\n onRowCollapsed: Function,\n onRowCollapsing: Function,\n onRowDblClick: Function,\n onRowExpanded: Function,\n onRowExpanding: Function,\n onRowInserted: Function,\n onRowInserting: Function,\n onRowPrepared: Function,\n onRowRemoved: Function,\n onRowRemoving: Function,\n onRowUpdated: Function,\n onRowUpdating: Function,\n onRowValidating: Function,\n onSaved: Function,\n onSaving: Function,\n onSelectionChanged: Function,\n onToolbarPreparing: Function,\n pager: Object,\n paging: Object,\n remoteOperations: [Boolean, Object, String],\n renderAsync: Boolean,\n repaintChangesOnly: Boolean,\n rowAlternationEnabled: Boolean,\n rowDragging: Object,\n rowTemplate: {},\n rtlEnabled: Boolean,\n scrolling: Object,\n searchPanel: Object,\n selectedRowKeys: Array,\n selection: Object,\n selectionFilter: [Array, Function, String],\n showBorders: Boolean,\n showColumnHeaders: Boolean,\n showColumnLines: Boolean,\n showRowLines: Boolean,\n sortByGroupSummaryInfo: Array,\n sorting: Object,\n stateStoring: Object,\n summary: Object,\n syncLookupFilterValues: Boolean,\n tabIndex: Number,\n toolbar: Object,\n twoWayBindingEnabled: Boolean,\n visible: Boolean,\n width: [Function, Number, String],\n wordWrapEnabled: Boolean\n },\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:allowColumnReordering\": null,\n \"update:allowColumnResizing\": null,\n \"update:autoNavigateToFocusedRow\": null,\n \"update:cacheEnabled\": null,\n \"update:cellHintEnabled\": null,\n \"update:columnAutoWidth\": null,\n \"update:columnChooser\": null,\n \"update:columnFixing\": null,\n \"update:columnHidingEnabled\": null,\n \"update:columnMinWidth\": null,\n \"update:columnResizingMode\": null,\n \"update:columns\": null,\n \"update:columnWidth\": null,\n \"update:customizeColumns\": null,\n \"update:dataRowTemplate\": null,\n \"update:dataSource\": null,\n \"update:dateSerializationFormat\": null,\n \"update:disabled\": null,\n \"update:editing\": null,\n \"update:elementAttr\": null,\n \"update:errorRowEnabled\": null,\n \"update:export\": null,\n \"update:filterBuilder\": null,\n \"update:filterBuilderPopup\": null,\n \"update:filterPanel\": null,\n \"update:filterRow\": null,\n \"update:filterSyncEnabled\": null,\n \"update:filterValue\": null,\n \"update:focusedColumnIndex\": null,\n \"update:focusedRowEnabled\": null,\n \"update:focusedRowIndex\": null,\n \"update:focusedRowKey\": null,\n \"update:grouping\": null,\n \"update:groupPanel\": null,\n \"update:headerFilter\": null,\n \"update:height\": null,\n \"update:highlightChanges\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:keyboardNavigation\": null,\n \"update:keyExpr\": null,\n \"update:loadPanel\": null,\n \"update:masterDetail\": null,\n \"update:noDataText\": null,\n \"update:onAdaptiveDetailRowPreparing\": null,\n \"update:onCellClick\": null,\n \"update:onCellDblClick\": null,\n \"update:onCellHoverChanged\": null,\n \"update:onCellPrepared\": null,\n \"update:onContentReady\": null,\n \"update:onContextMenuPreparing\": null,\n \"update:onDataErrorOccurred\": null,\n \"update:onDisposing\": null,\n \"update:onEditCanceled\": null,\n \"update:onEditCanceling\": null,\n \"update:onEditingStart\": null,\n \"update:onEditorPrepared\": null,\n \"update:onEditorPreparing\": null,\n \"update:onExporting\": null,\n \"update:onFocusedCellChanged\": null,\n \"update:onFocusedCellChanging\": null,\n \"update:onFocusedRowChanged\": null,\n \"update:onFocusedRowChanging\": null,\n \"update:onInitialized\": null,\n \"update:onInitNewRow\": null,\n \"update:onKeyDown\": null,\n \"update:onOptionChanged\": null,\n \"update:onRowClick\": null,\n \"update:onRowCollapsed\": null,\n \"update:onRowCollapsing\": null,\n \"update:onRowDblClick\": null,\n \"update:onRowExpanded\": null,\n \"update:onRowExpanding\": null,\n \"update:onRowInserted\": null,\n \"update:onRowInserting\": null,\n \"update:onRowPrepared\": null,\n \"update:onRowRemoved\": null,\n \"update:onRowRemoving\": null,\n \"update:onRowUpdated\": null,\n \"update:onRowUpdating\": null,\n \"update:onRowValidating\": null,\n \"update:onSaved\": null,\n \"update:onSaving\": null,\n \"update:onSelectionChanged\": null,\n \"update:onToolbarPreparing\": null,\n \"update:pager\": null,\n \"update:paging\": null,\n \"update:remoteOperations\": null,\n \"update:renderAsync\": null,\n \"update:repaintChangesOnly\": null,\n \"update:rowAlternationEnabled\": null,\n \"update:rowDragging\": null,\n \"update:rowTemplate\": null,\n \"update:rtlEnabled\": null,\n \"update:scrolling\": null,\n \"update:searchPanel\": null,\n \"update:selectedRowKeys\": null,\n \"update:selection\": null,\n \"update:selectionFilter\": null,\n \"update:showBorders\": null,\n \"update:showColumnHeaders\": null,\n \"update:showColumnLines\": null,\n \"update:showRowLines\": null,\n \"update:sortByGroupSummaryInfo\": null,\n \"update:sorting\": null,\n \"update:stateStoring\": null,\n \"update:summary\": null,\n \"update:syncLookupFilterValues\": null,\n \"update:tabIndex\": null,\n \"update:toolbar\": null,\n \"update:twoWayBindingEnabled\": null,\n \"update:visible\": null,\n \"update:width\": null,\n \"update:wordWrapEnabled\": null,\n },\n computed: {\n instance: function () {\n return this.$_instance;\n }\n },\n beforeCreate: function () {\n this.$_WidgetClass = data_grid_1.default;\n this.$_hasAsyncTemplate = false;\n this.$_expectedChildren = {\n column: { isCollectionItem: true, optionName: \"columns\" },\n columnChooser: { isCollectionItem: false, optionName: \"columnChooser\" },\n columnFixing: { isCollectionItem: false, optionName: \"columnFixing\" },\n dataGridHeaderFilter: { isCollectionItem: false, optionName: \"headerFilter\" },\n dataGridSelection: { isCollectionItem: false, optionName: \"selection\" },\n editing: { isCollectionItem: false, optionName: \"editing\" },\n export: { isCollectionItem: false, optionName: \"export\" },\n filterBuilder: { isCollectionItem: false, optionName: \"filterBuilder\" },\n filterBuilderPopup: { isCollectionItem: false, optionName: \"filterBuilderPopup\" },\n filterPanel: { isCollectionItem: false, optionName: \"filterPanel\" },\n filterRow: { isCollectionItem: false, optionName: \"filterRow\" },\n grouping: { isCollectionItem: false, optionName: \"grouping\" },\n groupPanel: { isCollectionItem: false, optionName: \"groupPanel\" },\n headerFilter: { isCollectionItem: false, optionName: \"headerFilter\" },\n keyboardNavigation: { isCollectionItem: false, optionName: \"keyboardNavigation\" },\n loadPanel: { isCollectionItem: false, optionName: \"loadPanel\" },\n masterDetail: { isCollectionItem: false, optionName: \"masterDetail\" },\n pager: { isCollectionItem: false, optionName: \"pager\" },\n paging: { isCollectionItem: false, optionName: \"paging\" },\n remoteOperations: { isCollectionItem: false, optionName: \"remoteOperations\" },\n rowDragging: { isCollectionItem: false, optionName: \"rowDragging\" },\n scrolling: { isCollectionItem: false, optionName: \"scrolling\" },\n searchPanel: { isCollectionItem: false, optionName: \"searchPanel\" },\n selection: { isCollectionItem: false, optionName: \"selection\" },\n sortByGroupSummaryInfo: { isCollectionItem: true, optionName: \"sortByGroupSummaryInfo\" },\n sorting: { isCollectionItem: false, optionName: \"sorting\" },\n stateStoring: { isCollectionItem: false, optionName: \"stateStoring\" },\n summary: { isCollectionItem: false, optionName: \"summary\" },\n toolbar: { isCollectionItem: false, optionName: \"toolbar\" }\n };\n }\n});\nexports.DxDataGrid = DxDataGrid;\nvar DxAnimation = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:hide\": null,\n \"update:show\": null,\n },\n props: {\n hide: [Object, Number, String],\n show: [Object, Number, String]\n }\n});\nexports.DxAnimation = DxAnimation;\nDxAnimation.$_optionName = \"animation\";\nDxAnimation.$_expectedChildren = {\n hide: { isCollectionItem: false, optionName: \"hide\" },\n show: { isCollectionItem: false, optionName: \"show\" }\n};\nvar DxAsyncRule = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:message\": null,\n \"update:reevaluate\": null,\n \"update:type\": null,\n \"update:validationCallback\": null,\n },\n props: {\n ignoreEmptyValue: Boolean,\n message: String,\n reevaluate: Boolean,\n type: String,\n validationCallback: Function\n }\n});\nexports.DxAsyncRule = DxAsyncRule;\nDxAsyncRule.$_optionName = \"validationRules\";\nDxAsyncRule.$_isCollectionItem = true;\nDxAsyncRule.$_predefinedProps = {\n type: \"async\"\n};\nvar DxAt = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: String,\n y: String\n }\n});\nexports.DxAt = DxAt;\nDxAt.$_optionName = \"at\";\nvar DxBoundaryOffset = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: Number,\n y: Number\n }\n});\nexports.DxBoundaryOffset = DxBoundaryOffset;\nDxBoundaryOffset.$_optionName = \"boundaryOffset\";\nvar DxButton = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:cssClass\": null,\n \"update:disabled\": null,\n \"update:hint\": null,\n \"update:icon\": null,\n \"update:name\": null,\n \"update:onClick\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:visible\": null,\n },\n props: {\n cssClass: String,\n disabled: [Boolean, Function],\n hint: String,\n icon: String,\n name: String,\n onClick: Function,\n template: {},\n text: String,\n visible: [Boolean, Function]\n }\n});\nexports.DxButton = DxButton;\nDxButton.$_optionName = \"buttons\";\nDxButton.$_isCollectionItem = true;\nvar DxChange = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:data\": null,\n \"update:insertAfterKey\": null,\n \"update:insertBeforeKey\": null,\n \"update:type\": null,\n },\n props: {\n data: {},\n insertAfterKey: {},\n insertBeforeKey: {},\n type: String\n }\n});\nexports.DxChange = DxChange;\nDxChange.$_optionName = \"changes\";\nDxChange.$_isCollectionItem = true;\nvar DxColCountByScreen = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:lg\": null,\n \"update:md\": null,\n \"update:sm\": null,\n \"update:xs\": null,\n },\n props: {\n lg: Number,\n md: Number,\n sm: Number,\n xs: Number\n }\n});\nexports.DxColCountByScreen = DxColCountByScreen;\nDxColCountByScreen.$_optionName = \"colCountByScreen\";\nvar DxCollision = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: String,\n y: String\n }\n});\nexports.DxCollision = DxCollision;\nDxCollision.$_optionName = \"collision\";\nvar DxColumn = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:alignment\": null,\n \"update:allowEditing\": null,\n \"update:allowExporting\": null,\n \"update:allowFiltering\": null,\n \"update:allowFixing\": null,\n \"update:allowGrouping\": null,\n \"update:allowHeaderFiltering\": null,\n \"update:allowHiding\": null,\n \"update:allowReordering\": null,\n \"update:allowResizing\": null,\n \"update:allowSearch\": null,\n \"update:allowSorting\": null,\n \"update:autoExpandGroup\": null,\n \"update:buttons\": null,\n \"update:calculateCellValue\": null,\n \"update:calculateDisplayValue\": null,\n \"update:calculateFilterExpression\": null,\n \"update:calculateGroupValue\": null,\n \"update:calculateSortValue\": null,\n \"update:caption\": null,\n \"update:cellTemplate\": null,\n \"update:columns\": null,\n \"update:cssClass\": null,\n \"update:customizeText\": null,\n \"update:dataField\": null,\n \"update:dataType\": null,\n \"update:editCellTemplate\": null,\n \"update:editorOptions\": null,\n \"update:encodeHtml\": null,\n \"update:falseText\": null,\n \"update:filterOperations\": null,\n \"update:filterType\": null,\n \"update:filterValue\": null,\n \"update:filterValues\": null,\n \"update:fixed\": null,\n \"update:fixedPosition\": null,\n \"update:format\": null,\n \"update:formItem\": null,\n \"update:groupCellTemplate\": null,\n \"update:groupIndex\": null,\n \"update:headerCellTemplate\": null,\n \"update:headerFilter\": null,\n \"update:hidingPriority\": null,\n \"update:isBand\": null,\n \"update:lookup\": null,\n \"update:minWidth\": null,\n \"update:name\": null,\n \"update:ownerBand\": null,\n \"update:renderAsync\": null,\n \"update:selectedFilterOperation\": null,\n \"update:setCellValue\": null,\n \"update:showEditorAlways\": null,\n \"update:showInColumnChooser\": null,\n \"update:showWhenGrouped\": null,\n \"update:sortIndex\": null,\n \"update:sortingMethod\": null,\n \"update:sortOrder\": null,\n \"update:trueText\": null,\n \"update:type\": null,\n \"update:validationRules\": null,\n \"update:visible\": null,\n \"update:visibleIndex\": null,\n \"update:width\": null,\n },\n props: {\n alignment: String,\n allowEditing: Boolean,\n allowExporting: Boolean,\n allowFiltering: Boolean,\n allowFixing: Boolean,\n allowGrouping: Boolean,\n allowHeaderFiltering: Boolean,\n allowHiding: Boolean,\n allowReordering: Boolean,\n allowResizing: Boolean,\n allowSearch: Boolean,\n allowSorting: Boolean,\n autoExpandGroup: Boolean,\n buttons: Array,\n calculateCellValue: Function,\n calculateDisplayValue: [Function, String],\n calculateFilterExpression: Function,\n calculateGroupValue: [Function, String],\n calculateSortValue: [Function, String],\n caption: String,\n cellTemplate: {},\n columns: Array,\n cssClass: String,\n customizeText: Function,\n dataField: String,\n dataType: String,\n editCellTemplate: {},\n editorOptions: {},\n encodeHtml: Boolean,\n falseText: String,\n filterOperations: Array,\n filterType: String,\n filterValue: {},\n filterValues: Array,\n fixed: Boolean,\n fixedPosition: String,\n format: [Object, Function, String],\n formItem: Object,\n groupCellTemplate: {},\n groupIndex: Number,\n headerCellTemplate: {},\n headerFilter: Object,\n hidingPriority: Number,\n isBand: Boolean,\n lookup: Object,\n minWidth: Number,\n name: String,\n ownerBand: Number,\n renderAsync: Boolean,\n selectedFilterOperation: String,\n setCellValue: Function,\n showEditorAlways: Boolean,\n showInColumnChooser: Boolean,\n showWhenGrouped: Boolean,\n sortIndex: Number,\n sortingMethod: Function,\n sortOrder: String,\n trueText: String,\n type: String,\n validationRules: Array,\n visible: Boolean,\n visibleIndex: Number,\n width: [Number, String]\n }\n});\nexports.DxColumn = DxColumn;\nDxColumn.$_optionName = \"columns\";\nDxColumn.$_isCollectionItem = true;\nDxColumn.$_expectedChildren = {\n AsyncRule: { isCollectionItem: true, optionName: \"validationRules\" },\n button: { isCollectionItem: true, optionName: \"buttons\" },\n columnHeaderFilter: { isCollectionItem: false, optionName: \"headerFilter\" },\n columnLookup: { isCollectionItem: false, optionName: \"lookup\" },\n CompareRule: { isCollectionItem: true, optionName: \"validationRules\" },\n CustomRule: { isCollectionItem: true, optionName: \"validationRules\" },\n EmailRule: { isCollectionItem: true, optionName: \"validationRules\" },\n format: { isCollectionItem: false, optionName: \"format\" },\n formItem: { isCollectionItem: false, optionName: \"formItem\" },\n headerFilter: { isCollectionItem: false, optionName: \"headerFilter\" },\n lookup: { isCollectionItem: false, optionName: \"lookup\" },\n NumericRule: { isCollectionItem: true, optionName: \"validationRules\" },\n PatternRule: { isCollectionItem: true, optionName: \"validationRules\" },\n RangeRule: { isCollectionItem: true, optionName: \"validationRules\" },\n RequiredRule: { isCollectionItem: true, optionName: \"validationRules\" },\n StringLengthRule: { isCollectionItem: true, optionName: \"validationRules\" },\n validationRule: { isCollectionItem: true, optionName: \"validationRules\" }\n};\nvar DxColumnChooser = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowSearch\": null,\n \"update:emptyPanelText\": null,\n \"update:enabled\": null,\n \"update:height\": null,\n \"update:mode\": null,\n \"update:position\": null,\n \"update:search\": null,\n \"update:searchTimeout\": null,\n \"update:selection\": null,\n \"update:sortOrder\": null,\n \"update:title\": null,\n \"update:width\": null,\n },\n props: {\n allowSearch: Boolean,\n emptyPanelText: String,\n enabled: Boolean,\n height: Number,\n mode: String,\n position: Object,\n search: Object,\n searchTimeout: Number,\n selection: Object,\n sortOrder: String,\n title: String,\n width: Number\n }\n});\nexports.DxColumnChooser = DxColumnChooser;\nDxColumnChooser.$_optionName = \"columnChooser\";\nDxColumnChooser.$_expectedChildren = {\n columnChooserSearch: { isCollectionItem: false, optionName: \"search\" },\n columnChooserSelection: { isCollectionItem: false, optionName: \"selection\" },\n position: { isCollectionItem: false, optionName: \"position\" },\n search: { isCollectionItem: false, optionName: \"search\" },\n selection: { isCollectionItem: false, optionName: \"selection\" }\n};\nvar DxColumnChooserSearch = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:editorOptions\": null,\n \"update:enabled\": null,\n \"update:timeout\": null,\n },\n props: {\n editorOptions: {},\n enabled: Boolean,\n timeout: Number\n }\n});\nexports.DxColumnChooserSearch = DxColumnChooserSearch;\nDxColumnChooserSearch.$_optionName = \"search\";\nvar DxColumnChooserSelection = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowSelectAll\": null,\n \"update:recursive\": null,\n \"update:selectByClick\": null,\n },\n props: {\n allowSelectAll: Boolean,\n recursive: Boolean,\n selectByClick: Boolean\n }\n});\nexports.DxColumnChooserSelection = DxColumnChooserSelection;\nDxColumnChooserSelection.$_optionName = \"selection\";\nvar DxColumnFixing = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:enabled\": null,\n \"update:texts\": null,\n },\n props: {\n enabled: Boolean,\n texts: Object\n }\n});\nexports.DxColumnFixing = DxColumnFixing;\nDxColumnFixing.$_optionName = \"columnFixing\";\nDxColumnFixing.$_expectedChildren = {\n columnFixingTexts: { isCollectionItem: false, optionName: \"texts\" },\n texts: { isCollectionItem: false, optionName: \"texts\" }\n};\nvar DxColumnFixingTexts = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:fix\": null,\n \"update:leftPosition\": null,\n \"update:rightPosition\": null,\n \"update:unfix\": null,\n },\n props: {\n fix: String,\n leftPosition: String,\n rightPosition: String,\n unfix: String\n }\n});\nexports.DxColumnFixingTexts = DxColumnFixingTexts;\nDxColumnFixingTexts.$_optionName = \"texts\";\nvar DxColumnHeaderFilter = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowSearch\": null,\n \"update:allowSelectAll\": null,\n \"update:dataSource\": null,\n \"update:groupInterval\": null,\n \"update:height\": null,\n \"update:search\": null,\n \"update:searchMode\": null,\n \"update:width\": null,\n },\n props: {\n allowSearch: Boolean,\n allowSelectAll: Boolean,\n dataSource: {},\n groupInterval: [Number, String],\n height: Number,\n search: Object,\n searchMode: String,\n width: Number\n }\n});\nexports.DxColumnHeaderFilter = DxColumnHeaderFilter;\nDxColumnHeaderFilter.$_optionName = \"headerFilter\";\nDxColumnHeaderFilter.$_expectedChildren = {\n columnHeaderFilterSearch: { isCollectionItem: false, optionName: \"search\" },\n search: { isCollectionItem: false, optionName: \"search\" }\n};\nvar DxColumnHeaderFilterSearch = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:editorOptions\": null,\n \"update:enabled\": null,\n \"update:mode\": null,\n \"update:searchExpr\": null,\n \"update:timeout\": null,\n },\n props: {\n editorOptions: {},\n enabled: Boolean,\n mode: String,\n searchExpr: [Array, Function, String],\n timeout: Number\n }\n});\nexports.DxColumnHeaderFilterSearch = DxColumnHeaderFilterSearch;\nDxColumnHeaderFilterSearch.$_optionName = \"search\";\nvar DxColumnLookup = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowClearing\": null,\n \"update:calculateCellValue\": null,\n \"update:dataSource\": null,\n \"update:displayExpr\": null,\n \"update:valueExpr\": null,\n },\n props: {\n allowClearing: Boolean,\n calculateCellValue: Function,\n dataSource: {},\n displayExpr: [Function, String],\n valueExpr: String\n }\n});\nexports.DxColumnLookup = DxColumnLookup;\nDxColumnLookup.$_optionName = \"lookup\";\nvar DxCompareRule = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:comparisonTarget\": null,\n \"update:comparisonType\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:message\": null,\n \"update:type\": null,\n },\n props: {\n comparisonTarget: Function,\n comparisonType: String,\n ignoreEmptyValue: Boolean,\n message: String,\n type: String\n }\n});\nexports.DxCompareRule = DxCompareRule;\nDxCompareRule.$_optionName = \"validationRules\";\nDxCompareRule.$_isCollectionItem = true;\nDxCompareRule.$_predefinedProps = {\n type: \"compare\"\n};\nvar DxCursorOffset = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: Number,\n y: Number\n }\n});\nexports.DxCursorOffset = DxCursorOffset;\nDxCursorOffset.$_optionName = \"cursorOffset\";\nvar DxCustomOperation = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:calculateFilterExpression\": null,\n \"update:caption\": null,\n \"update:customizeText\": null,\n \"update:dataTypes\": null,\n \"update:editorTemplate\": null,\n \"update:hasValue\": null,\n \"update:icon\": null,\n \"update:name\": null,\n },\n props: {\n calculateFilterExpression: Function,\n caption: String,\n customizeText: Function,\n dataTypes: Array,\n editorTemplate: {},\n hasValue: Boolean,\n icon: String,\n name: String\n }\n});\nexports.DxCustomOperation = DxCustomOperation;\nDxCustomOperation.$_optionName = \"customOperations\";\nDxCustomOperation.$_isCollectionItem = true;\nvar DxCustomRule = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:message\": null,\n \"update:reevaluate\": null,\n \"update:type\": null,\n \"update:validationCallback\": null,\n },\n props: {\n ignoreEmptyValue: Boolean,\n message: String,\n reevaluate: Boolean,\n type: String,\n validationCallback: Function\n }\n});\nexports.DxCustomRule = DxCustomRule;\nDxCustomRule.$_optionName = \"validationRules\";\nDxCustomRule.$_isCollectionItem = true;\nDxCustomRule.$_predefinedProps = {\n type: \"custom\"\n};\nvar DxDataGridHeaderFilter = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowSearch\": null,\n \"update:allowSelectAll\": null,\n \"update:height\": null,\n \"update:search\": null,\n \"update:searchTimeout\": null,\n \"update:texts\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n allowSearch: Boolean,\n allowSelectAll: Boolean,\n height: Number,\n search: Object,\n searchTimeout: Number,\n texts: Object,\n visible: Boolean,\n width: Number\n }\n});\nexports.DxDataGridHeaderFilter = DxDataGridHeaderFilter;\nDxDataGridHeaderFilter.$_optionName = \"headerFilter\";\nDxDataGridHeaderFilter.$_expectedChildren = {\n dataGridHeaderFilterSearch: { isCollectionItem: false, optionName: \"search\" },\n dataGridHeaderFilterTexts: { isCollectionItem: false, optionName: \"texts\" },\n search: { isCollectionItem: false, optionName: \"search\" },\n texts: { isCollectionItem: false, optionName: \"texts\" }\n};\nvar DxDataGridHeaderFilterSearch = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:editorOptions\": null,\n \"update:enabled\": null,\n \"update:mode\": null,\n \"update:timeout\": null,\n },\n props: {\n editorOptions: {},\n enabled: Boolean,\n mode: String,\n timeout: Number\n }\n});\nexports.DxDataGridHeaderFilterSearch = DxDataGridHeaderFilterSearch;\nDxDataGridHeaderFilterSearch.$_optionName = \"search\";\nvar DxDataGridHeaderFilterTexts = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:cancel\": null,\n \"update:emptyValue\": null,\n \"update:ok\": null,\n },\n props: {\n cancel: String,\n emptyValue: String,\n ok: String\n }\n});\nexports.DxDataGridHeaderFilterTexts = DxDataGridHeaderFilterTexts;\nDxDataGridHeaderFilterTexts.$_optionName = \"texts\";\nvar DxDataGridSelection = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowSelectAll\": null,\n \"update:deferred\": null,\n \"update:mode\": null,\n \"update:selectAllMode\": null,\n \"update:showCheckBoxesMode\": null,\n },\n props: {\n allowSelectAll: Boolean,\n deferred: Boolean,\n mode: String,\n selectAllMode: String,\n showCheckBoxesMode: String\n }\n});\nexports.DxDataGridSelection = DxDataGridSelection;\nDxDataGridSelection.$_optionName = \"selection\";\nvar DxEditing = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowAdding\": null,\n \"update:allowDeleting\": null,\n \"update:allowUpdating\": null,\n \"update:changes\": null,\n \"update:confirmDelete\": null,\n \"update:editColumnName\": null,\n \"update:editRowKey\": null,\n \"update:form\": null,\n \"update:mode\": null,\n \"update:newRowPosition\": null,\n \"update:popup\": null,\n \"update:refreshMode\": null,\n \"update:selectTextOnEditStart\": null,\n \"update:startEditAction\": null,\n \"update:texts\": null,\n \"update:useIcons\": null,\n },\n props: {\n allowAdding: Boolean,\n allowDeleting: [Boolean, Function],\n allowUpdating: [Boolean, Function],\n changes: Array,\n confirmDelete: Boolean,\n editColumnName: String,\n editRowKey: {},\n form: Object,\n mode: String,\n newRowPosition: String,\n popup: Object,\n refreshMode: String,\n selectTextOnEditStart: Boolean,\n startEditAction: String,\n texts: {},\n useIcons: Boolean\n }\n});\nexports.DxEditing = DxEditing;\nDxEditing.$_optionName = \"editing\";\nDxEditing.$_expectedChildren = {\n change: { isCollectionItem: true, optionName: \"changes\" },\n editingTexts: { isCollectionItem: false, optionName: \"texts\" },\n form: { isCollectionItem: false, optionName: \"form\" },\n popup: { isCollectionItem: false, optionName: \"popup\" },\n texts: { isCollectionItem: false, optionName: \"texts\" }\n};\nvar DxEditingTexts = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:addRow\": null,\n \"update:cancelAllChanges\": null,\n \"update:cancelRowChanges\": null,\n \"update:confirmDeleteMessage\": null,\n \"update:confirmDeleteTitle\": null,\n \"update:deleteRow\": null,\n \"update:editRow\": null,\n \"update:saveAllChanges\": null,\n \"update:saveRowChanges\": null,\n \"update:undeleteRow\": null,\n \"update:validationCancelChanges\": null,\n },\n props: {\n addRow: String,\n cancelAllChanges: String,\n cancelRowChanges: String,\n confirmDeleteMessage: String,\n confirmDeleteTitle: String,\n deleteRow: String,\n editRow: String,\n saveAllChanges: String,\n saveRowChanges: String,\n undeleteRow: String,\n validationCancelChanges: String\n }\n});\nexports.DxEditingTexts = DxEditingTexts;\nDxEditingTexts.$_optionName = \"texts\";\nvar DxEmailRule = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:message\": null,\n \"update:type\": null,\n },\n props: {\n ignoreEmptyValue: Boolean,\n message: String,\n type: String\n }\n});\nexports.DxEmailRule = DxEmailRule;\nDxEmailRule.$_optionName = \"validationRules\";\nDxEmailRule.$_isCollectionItem = true;\nDxEmailRule.$_predefinedProps = {\n type: \"email\"\n};\nvar DxExport = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowExportSelectedData\": null,\n \"update:enabled\": null,\n \"update:formats\": null,\n \"update:texts\": null,\n },\n props: {\n allowExportSelectedData: Boolean,\n enabled: Boolean,\n formats: Array,\n texts: Object\n }\n});\nexports.DxExport = DxExport;\nDxExport.$_optionName = \"export\";\nDxExport.$_expectedChildren = {\n exportTexts: { isCollectionItem: false, optionName: \"texts\" },\n texts: { isCollectionItem: false, optionName: \"texts\" }\n};\nvar DxExportTexts = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:exportAll\": null,\n \"update:exportSelectedRows\": null,\n \"update:exportTo\": null,\n },\n props: {\n exportAll: String,\n exportSelectedRows: String,\n exportTo: String\n }\n});\nexports.DxExportTexts = DxExportTexts;\nDxExportTexts.$_optionName = \"texts\";\nvar DxField = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:calculateFilterExpression\": null,\n \"update:caption\": null,\n \"update:customizeText\": null,\n \"update:dataField\": null,\n \"update:dataType\": null,\n \"update:editorOptions\": null,\n \"update:editorTemplate\": null,\n \"update:falseText\": null,\n \"update:filterOperations\": null,\n \"update:format\": null,\n \"update:lookup\": null,\n \"update:name\": null,\n \"update:trueText\": null,\n },\n props: {\n calculateFilterExpression: Function,\n caption: String,\n customizeText: Function,\n dataField: String,\n dataType: String,\n editorOptions: {},\n editorTemplate: {},\n falseText: String,\n filterOperations: Array,\n format: [Object, Function, String],\n lookup: Object,\n name: String,\n trueText: String\n }\n});\nexports.DxField = DxField;\nDxField.$_optionName = \"fields\";\nDxField.$_isCollectionItem = true;\nDxField.$_expectedChildren = {\n fieldLookup: { isCollectionItem: false, optionName: \"lookup\" },\n format: { isCollectionItem: false, optionName: \"format\" },\n lookup: { isCollectionItem: false, optionName: \"lookup\" }\n};\nvar DxFieldLookup = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowClearing\": null,\n \"update:dataSource\": null,\n \"update:displayExpr\": null,\n \"update:valueExpr\": null,\n },\n props: {\n allowClearing: Boolean,\n dataSource: [Array, Object],\n displayExpr: [Function, String],\n valueExpr: [Function, String]\n }\n});\nexports.DxFieldLookup = DxFieldLookup;\nDxFieldLookup.$_optionName = \"lookup\";\nvar DxFilterBuilder = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:allowHierarchicalFields\": null,\n \"update:bindingOptions\": null,\n \"update:customOperations\": null,\n \"update:disabled\": null,\n \"update:elementAttr\": null,\n \"update:fields\": null,\n \"update:filterOperationDescriptions\": null,\n \"update:focusStateEnabled\": null,\n \"update:groupOperationDescriptions\": null,\n \"update:groupOperations\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:maxGroupLevel\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onEditorPrepared\": null,\n \"update:onEditorPreparing\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:onValueChanged\": null,\n \"update:rtlEnabled\": null,\n \"update:tabIndex\": null,\n \"update:value\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n allowHierarchicalFields: Boolean,\n bindingOptions: Object,\n customOperations: Array,\n disabled: Boolean,\n elementAttr: Object,\n fields: Array,\n filterOperationDescriptions: Object,\n focusStateEnabled: Boolean,\n groupOperationDescriptions: Object,\n groupOperations: Array,\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n maxGroupLevel: Number,\n onContentReady: Function,\n onDisposing: Function,\n onEditorPrepared: Function,\n onEditorPreparing: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n onValueChanged: Function,\n rtlEnabled: Boolean,\n tabIndex: Number,\n value: [Array, Function, String],\n visible: Boolean,\n width: [Function, Number, String]\n }\n});\nexports.DxFilterBuilder = DxFilterBuilder;\nDxFilterBuilder.$_optionName = \"filterBuilder\";\nDxFilterBuilder.$_expectedChildren = {\n customOperation: { isCollectionItem: true, optionName: \"customOperations\" },\n field: { isCollectionItem: true, optionName: \"fields\" },\n filterOperationDescriptions: { isCollectionItem: false, optionName: \"filterOperationDescriptions\" },\n groupOperationDescriptions: { isCollectionItem: false, optionName: \"groupOperationDescriptions\" }\n};\nvar DxFilterBuilderPopup = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:animation\": null,\n \"update:bindingOptions\": null,\n \"update:closeOnOutsideClick\": null,\n \"update:container\": null,\n \"update:contentTemplate\": null,\n \"update:copyRootClassesToWrapper\": null,\n \"update:deferRendering\": null,\n \"update:disabled\": null,\n \"update:dragAndResizeArea\": null,\n \"update:dragEnabled\": null,\n \"update:dragOutsideBoundary\": null,\n \"update:elementAttr\": null,\n \"update:enableBodyScroll\": null,\n \"update:focusStateEnabled\": null,\n \"update:fullScreen\": null,\n \"update:height\": null,\n \"update:hideOnOutsideClick\": null,\n \"update:hideOnParentScroll\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:maxHeight\": null,\n \"update:maxWidth\": null,\n \"update:minHeight\": null,\n \"update:minWidth\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onHidden\": null,\n \"update:onHiding\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:onResize\": null,\n \"update:onResizeEnd\": null,\n \"update:onResizeStart\": null,\n \"update:onShowing\": null,\n \"update:onShown\": null,\n \"update:onTitleRendered\": null,\n \"update:position\": null,\n \"update:resizeEnabled\": null,\n \"update:restorePosition\": null,\n \"update:rtlEnabled\": null,\n \"update:shading\": null,\n \"update:shadingColor\": null,\n \"update:showCloseButton\": null,\n \"update:showTitle\": null,\n \"update:tabIndex\": null,\n \"update:title\": null,\n \"update:titleTemplate\": null,\n \"update:toolbarItems\": null,\n \"update:visible\": null,\n \"update:width\": null,\n \"update:wrapperAttr\": null,\n },\n props: {\n accessKey: String,\n animation: Object,\n bindingOptions: Object,\n closeOnOutsideClick: [Boolean, Function],\n container: {},\n contentTemplate: {},\n copyRootClassesToWrapper: Boolean,\n deferRendering: Boolean,\n disabled: Boolean,\n dragAndResizeArea: {},\n dragEnabled: Boolean,\n dragOutsideBoundary: Boolean,\n elementAttr: {},\n enableBodyScroll: Boolean,\n focusStateEnabled: Boolean,\n fullScreen: Boolean,\n height: [Function, Number, String],\n hideOnOutsideClick: [Boolean, Function],\n hideOnParentScroll: Boolean,\n hint: String,\n hoverStateEnabled: Boolean,\n maxHeight: [Function, Number, String],\n maxWidth: [Function, Number, String],\n minHeight: [Function, Number, String],\n minWidth: [Function, Number, String],\n onContentReady: Function,\n onDisposing: Function,\n onHidden: Function,\n onHiding: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n onResize: Function,\n onResizeEnd: Function,\n onResizeStart: Function,\n onShowing: Function,\n onShown: Function,\n onTitleRendered: Function,\n position: [Function, Object, String],\n resizeEnabled: Boolean,\n restorePosition: Boolean,\n rtlEnabled: Boolean,\n shading: Boolean,\n shadingColor: String,\n showCloseButton: Boolean,\n showTitle: Boolean,\n tabIndex: Number,\n title: String,\n titleTemplate: {},\n toolbarItems: Array,\n visible: Boolean,\n width: [Function, Number, String],\n wrapperAttr: {}\n }\n});\nexports.DxFilterBuilderPopup = DxFilterBuilderPopup;\nDxFilterBuilderPopup.$_optionName = \"filterBuilderPopup\";\nvar DxFilterOperationDescriptions = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:between\": null,\n \"update:contains\": null,\n \"update:endsWith\": null,\n \"update:equal\": null,\n \"update:greaterThan\": null,\n \"update:greaterThanOrEqual\": null,\n \"update:isBlank\": null,\n \"update:isNotBlank\": null,\n \"update:lessThan\": null,\n \"update:lessThanOrEqual\": null,\n \"update:notContains\": null,\n \"update:notEqual\": null,\n \"update:startsWith\": null,\n },\n props: {\n between: String,\n contains: String,\n endsWith: String,\n equal: String,\n greaterThan: String,\n greaterThanOrEqual: String,\n isBlank: String,\n isNotBlank: String,\n lessThan: String,\n lessThanOrEqual: String,\n notContains: String,\n notEqual: String,\n startsWith: String\n }\n});\nexports.DxFilterOperationDescriptions = DxFilterOperationDescriptions;\nDxFilterOperationDescriptions.$_optionName = \"filterOperationDescriptions\";\nvar DxFilterPanel = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:customizeText\": null,\n \"update:filterEnabled\": null,\n \"update:texts\": null,\n \"update:visible\": null,\n },\n props: {\n customizeText: Function,\n filterEnabled: Boolean,\n texts: Object,\n visible: Boolean\n }\n});\nexports.DxFilterPanel = DxFilterPanel;\nDxFilterPanel.$_optionName = \"filterPanel\";\nDxFilterPanel.$_expectedChildren = {\n filterPanelTexts: { isCollectionItem: false, optionName: \"texts\" },\n texts: { isCollectionItem: false, optionName: \"texts\" }\n};\nvar DxFilterPanelTexts = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:clearFilter\": null,\n \"update:createFilter\": null,\n \"update:filterEnabledHint\": null,\n },\n props: {\n clearFilter: String,\n createFilter: String,\n filterEnabledHint: String\n }\n});\nexports.DxFilterPanelTexts = DxFilterPanelTexts;\nDxFilterPanelTexts.$_optionName = \"texts\";\nvar DxFilterRow = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:applyFilter\": null,\n \"update:applyFilterText\": null,\n \"update:betweenEndText\": null,\n \"update:betweenStartText\": null,\n \"update:operationDescriptions\": null,\n \"update:resetOperationText\": null,\n \"update:showAllText\": null,\n \"update:showOperationChooser\": null,\n \"update:visible\": null,\n },\n props: {\n applyFilter: String,\n applyFilterText: String,\n betweenEndText: String,\n betweenStartText: String,\n operationDescriptions: Object,\n resetOperationText: String,\n showAllText: String,\n showOperationChooser: Boolean,\n visible: Boolean\n }\n});\nexports.DxFilterRow = DxFilterRow;\nDxFilterRow.$_optionName = \"filterRow\";\nDxFilterRow.$_expectedChildren = {\n operationDescriptions: { isCollectionItem: false, optionName: \"operationDescriptions\" }\n};\nvar DxForm = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:alignItemLabels\": null,\n \"update:alignItemLabelsInAllGroups\": null,\n \"update:bindingOptions\": null,\n \"update:colCount\": null,\n \"update:colCountByScreen\": null,\n \"update:customizeItem\": null,\n \"update:disabled\": null,\n \"update:elementAttr\": null,\n \"update:focusStateEnabled\": null,\n \"update:formData\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:items\": null,\n \"update:labelLocation\": null,\n \"update:labelMode\": null,\n \"update:minColWidth\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onEditorEnterKey\": null,\n \"update:onFieldDataChanged\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:optionalMark\": null,\n \"update:readOnly\": null,\n \"update:requiredMark\": null,\n \"update:requiredMessage\": null,\n \"update:rtlEnabled\": null,\n \"update:screenByWidth\": null,\n \"update:scrollingEnabled\": null,\n \"update:showColonAfterLabel\": null,\n \"update:showOptionalMark\": null,\n \"update:showRequiredMark\": null,\n \"update:showValidationSummary\": null,\n \"update:tabIndex\": null,\n \"update:validationGroup\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n alignItemLabels: Boolean,\n alignItemLabelsInAllGroups: Boolean,\n bindingOptions: Object,\n colCount: [Number, String],\n colCountByScreen: Object,\n customizeItem: Function,\n disabled: Boolean,\n elementAttr: Object,\n focusStateEnabled: Boolean,\n formData: {},\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n items: Array,\n labelLocation: String,\n labelMode: String,\n minColWidth: Number,\n onContentReady: Function,\n onDisposing: Function,\n onEditorEnterKey: Function,\n onFieldDataChanged: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n optionalMark: String,\n readOnly: Boolean,\n requiredMark: String,\n requiredMessage: String,\n rtlEnabled: Boolean,\n screenByWidth: Function,\n scrollingEnabled: Boolean,\n showColonAfterLabel: Boolean,\n showOptionalMark: Boolean,\n showRequiredMark: Boolean,\n showValidationSummary: Boolean,\n tabIndex: Number,\n validationGroup: String,\n visible: Boolean,\n width: [Function, Number, String]\n }\n});\nexports.DxForm = DxForm;\nDxForm.$_optionName = \"form\";\nDxForm.$_expectedChildren = {\n colCountByScreen: { isCollectionItem: false, optionName: \"colCountByScreen\" }\n};\nvar DxFormat = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:currency\": null,\n \"update:formatter\": null,\n \"update:parser\": null,\n \"update:precision\": null,\n \"update:type\": null,\n \"update:useCurrencyAccountingStyle\": null,\n },\n props: {\n currency: String,\n formatter: Function,\n parser: Function,\n precision: Number,\n type: String,\n useCurrencyAccountingStyle: Boolean\n }\n});\nexports.DxFormat = DxFormat;\nDxFormat.$_optionName = \"format\";\nvar DxFormItem = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:colSpan\": null,\n \"update:cssClass\": null,\n \"update:dataField\": null,\n \"update:editorOptions\": null,\n \"update:editorType\": null,\n \"update:helpText\": null,\n \"update:isRequired\": null,\n \"update:itemType\": null,\n \"update:label\": null,\n \"update:name\": null,\n \"update:template\": null,\n \"update:validationRules\": null,\n \"update:visible\": null,\n \"update:visibleIndex\": null,\n },\n props: {\n colSpan: Number,\n cssClass: String,\n dataField: String,\n editorOptions: {},\n editorType: String,\n helpText: String,\n isRequired: Boolean,\n itemType: String,\n label: Object,\n name: String,\n template: {},\n validationRules: Array,\n visible: Boolean,\n visibleIndex: Number\n }\n});\nexports.DxFormItem = DxFormItem;\nDxFormItem.$_optionName = \"formItem\";\nDxFormItem.$_expectedChildren = {\n AsyncRule: { isCollectionItem: true, optionName: \"validationRules\" },\n CompareRule: { isCollectionItem: true, optionName: \"validationRules\" },\n CustomRule: { isCollectionItem: true, optionName: \"validationRules\" },\n EmailRule: { isCollectionItem: true, optionName: \"validationRules\" },\n label: { isCollectionItem: false, optionName: \"label\" },\n NumericRule: { isCollectionItem: true, optionName: \"validationRules\" },\n PatternRule: { isCollectionItem: true, optionName: \"validationRules\" },\n RangeRule: { isCollectionItem: true, optionName: \"validationRules\" },\n RequiredRule: { isCollectionItem: true, optionName: \"validationRules\" },\n StringLengthRule: { isCollectionItem: true, optionName: \"validationRules\" },\n validationRule: { isCollectionItem: true, optionName: \"validationRules\" }\n};\nvar DxFrom = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:left\": null,\n \"update:opacity\": null,\n \"update:position\": null,\n \"update:scale\": null,\n \"update:top\": null,\n },\n props: {\n left: Number,\n opacity: Number,\n position: Object,\n scale: Number,\n top: Number\n }\n});\nexports.DxFrom = DxFrom;\nDxFrom.$_optionName = \"from\";\nDxFrom.$_expectedChildren = {\n position: { isCollectionItem: false, optionName: \"position\" }\n};\nvar DxGrouping = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowCollapsing\": null,\n \"update:autoExpandAll\": null,\n \"update:contextMenuEnabled\": null,\n \"update:expandMode\": null,\n \"update:texts\": null,\n },\n props: {\n allowCollapsing: Boolean,\n autoExpandAll: Boolean,\n contextMenuEnabled: Boolean,\n expandMode: String,\n texts: Object\n }\n});\nexports.DxGrouping = DxGrouping;\nDxGrouping.$_optionName = \"grouping\";\nDxGrouping.$_expectedChildren = {\n groupingTexts: { isCollectionItem: false, optionName: \"texts\" },\n texts: { isCollectionItem: false, optionName: \"texts\" }\n};\nvar DxGroupingTexts = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:groupByThisColumn\": null,\n \"update:groupContinuedMessage\": null,\n \"update:groupContinuesMessage\": null,\n \"update:ungroup\": null,\n \"update:ungroupAll\": null,\n },\n props: {\n groupByThisColumn: String,\n groupContinuedMessage: String,\n groupContinuesMessage: String,\n ungroup: String,\n ungroupAll: String\n }\n});\nexports.DxGroupingTexts = DxGroupingTexts;\nDxGroupingTexts.$_optionName = \"texts\";\nvar DxGroupItem = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:alignByColumn\": null,\n \"update:column\": null,\n \"update:customizeText\": null,\n \"update:displayFormat\": null,\n \"update:name\": null,\n \"update:showInColumn\": null,\n \"update:showInGroupFooter\": null,\n \"update:skipEmptyValues\": null,\n \"update:summaryType\": null,\n \"update:valueFormat\": null,\n },\n props: {\n alignByColumn: Boolean,\n column: String,\n customizeText: Function,\n displayFormat: String,\n name: String,\n showInColumn: String,\n showInGroupFooter: Boolean,\n skipEmptyValues: Boolean,\n summaryType: String,\n valueFormat: [Object, Function, String]\n }\n});\nexports.DxGroupItem = DxGroupItem;\nDxGroupItem.$_optionName = \"groupItems\";\nDxGroupItem.$_isCollectionItem = true;\nDxGroupItem.$_expectedChildren = {\n valueFormat: { isCollectionItem: false, optionName: \"valueFormat\" }\n};\nvar DxGroupOperationDescriptions = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:and\": null,\n \"update:notAnd\": null,\n \"update:notOr\": null,\n \"update:or\": null,\n },\n props: {\n and: String,\n notAnd: String,\n notOr: String,\n or: String\n }\n});\nexports.DxGroupOperationDescriptions = DxGroupOperationDescriptions;\nDxGroupOperationDescriptions.$_optionName = \"groupOperationDescriptions\";\nvar DxGroupPanel = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowColumnDragging\": null,\n \"update:emptyPanelText\": null,\n \"update:visible\": null,\n },\n props: {\n allowColumnDragging: Boolean,\n emptyPanelText: String,\n visible: [Boolean, String]\n }\n});\nexports.DxGroupPanel = DxGroupPanel;\nDxGroupPanel.$_optionName = \"groupPanel\";\nvar DxHeaderFilter = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowSearch\": null,\n \"update:allowSelectAll\": null,\n \"update:dataSource\": null,\n \"update:groupInterval\": null,\n \"update:height\": null,\n \"update:search\": null,\n \"update:searchMode\": null,\n \"update:searchTimeout\": null,\n \"update:texts\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n allowSearch: Boolean,\n allowSelectAll: Boolean,\n dataSource: {},\n groupInterval: [Number, String],\n height: Number,\n search: Object,\n searchMode: String,\n searchTimeout: Number,\n texts: Object,\n visible: Boolean,\n width: Number\n }\n});\nexports.DxHeaderFilter = DxHeaderFilter;\nDxHeaderFilter.$_optionName = \"headerFilter\";\nvar DxHide = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:complete\": null,\n \"update:delay\": null,\n \"update:direction\": null,\n \"update:duration\": null,\n \"update:easing\": null,\n \"update:from\": null,\n \"update:staggerDelay\": null,\n \"update:start\": null,\n \"update:to\": null,\n \"update:type\": null,\n },\n props: {\n complete: Function,\n delay: Number,\n direction: String,\n duration: Number,\n easing: String,\n from: Object,\n staggerDelay: Number,\n start: Function,\n to: Object,\n type: String\n }\n});\nexports.DxHide = DxHide;\nDxHide.$_optionName = \"hide\";\nDxHide.$_expectedChildren = {\n from: { isCollectionItem: false, optionName: \"from\" },\n to: { isCollectionItem: false, optionName: \"to\" }\n};\nvar DxItem = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:cssClass\": null,\n \"update:disabled\": null,\n \"update:html\": null,\n \"update:locateInMenu\": null,\n \"update:location\": null,\n \"update:menuItemTemplate\": null,\n \"update:name\": null,\n \"update:options\": null,\n \"update:showText\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:visible\": null,\n \"update:widget\": null,\n },\n props: {\n cssClass: String,\n disabled: Boolean,\n html: String,\n locateInMenu: String,\n location: String,\n menuItemTemplate: {},\n name: String,\n options: {},\n showText: String,\n template: {},\n text: String,\n visible: Boolean,\n widget: String\n }\n});\nexports.DxItem = DxItem;\nDxItem.$_optionName = \"items\";\nDxItem.$_isCollectionItem = true;\nvar DxKeyboardNavigation = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:editOnKeyPress\": null,\n \"update:enabled\": null,\n \"update:enterKeyAction\": null,\n \"update:enterKeyDirection\": null,\n },\n props: {\n editOnKeyPress: Boolean,\n enabled: Boolean,\n enterKeyAction: String,\n enterKeyDirection: String\n }\n});\nexports.DxKeyboardNavigation = DxKeyboardNavigation;\nDxKeyboardNavigation.$_optionName = \"keyboardNavigation\";\nvar DxLabel = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:alignment\": null,\n \"update:location\": null,\n \"update:showColon\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:visible\": null,\n },\n props: {\n alignment: String,\n location: String,\n showColon: Boolean,\n template: {},\n text: String,\n visible: Boolean\n }\n});\nexports.DxLabel = DxLabel;\nDxLabel.$_optionName = \"label\";\nvar DxLoadPanel = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:enabled\": null,\n \"update:height\": null,\n \"update:indicatorSrc\": null,\n \"update:shading\": null,\n \"update:shadingColor\": null,\n \"update:showIndicator\": null,\n \"update:showPane\": null,\n \"update:text\": null,\n \"update:width\": null,\n },\n props: {\n enabled: [Boolean, String],\n height: Number,\n indicatorSrc: String,\n shading: Boolean,\n shadingColor: String,\n showIndicator: Boolean,\n showPane: Boolean,\n text: String,\n width: Number\n }\n});\nexports.DxLoadPanel = DxLoadPanel;\nDxLoadPanel.$_optionName = \"loadPanel\";\nvar DxLookup = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowClearing\": null,\n \"update:calculateCellValue\": null,\n \"update:dataSource\": null,\n \"update:displayExpr\": null,\n \"update:valueExpr\": null,\n },\n props: {\n allowClearing: Boolean,\n calculateCellValue: Function,\n dataSource: {},\n displayExpr: [Function, String],\n valueExpr: [String, Function]\n }\n});\nexports.DxLookup = DxLookup;\nDxLookup.$_optionName = \"lookup\";\nvar DxMasterDetail = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:autoExpandAll\": null,\n \"update:enabled\": null,\n \"update:template\": null,\n },\n props: {\n autoExpandAll: Boolean,\n enabled: Boolean,\n template: {}\n }\n});\nexports.DxMasterDetail = DxMasterDetail;\nDxMasterDetail.$_optionName = \"masterDetail\";\nvar DxMy = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: String,\n y: String\n }\n});\nexports.DxMy = DxMy;\nDxMy.$_optionName = \"my\";\nvar DxNumericRule = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:message\": null,\n \"update:type\": null,\n },\n props: {\n ignoreEmptyValue: Boolean,\n message: String,\n type: String\n }\n});\nexports.DxNumericRule = DxNumericRule;\nDxNumericRule.$_optionName = \"validationRules\";\nDxNumericRule.$_isCollectionItem = true;\nDxNumericRule.$_predefinedProps = {\n type: \"numeric\"\n};\nvar DxOffset = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: Number,\n y: Number\n }\n});\nexports.DxOffset = DxOffset;\nDxOffset.$_optionName = \"offset\";\nvar DxOperationDescriptions = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:between\": null,\n \"update:contains\": null,\n \"update:endsWith\": null,\n \"update:equal\": null,\n \"update:greaterThan\": null,\n \"update:greaterThanOrEqual\": null,\n \"update:lessThan\": null,\n \"update:lessThanOrEqual\": null,\n \"update:notContains\": null,\n \"update:notEqual\": null,\n \"update:startsWith\": null,\n },\n props: {\n between: String,\n contains: String,\n endsWith: String,\n equal: String,\n greaterThan: String,\n greaterThanOrEqual: String,\n lessThan: String,\n lessThanOrEqual: String,\n notContains: String,\n notEqual: String,\n startsWith: String\n }\n});\nexports.DxOperationDescriptions = DxOperationDescriptions;\nDxOperationDescriptions.$_optionName = \"operationDescriptions\";\nvar DxPager = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowedPageSizes\": null,\n \"update:displayMode\": null,\n \"update:infoText\": null,\n \"update:label\": null,\n \"update:showInfo\": null,\n \"update:showNavigationButtons\": null,\n \"update:showPageSizeSelector\": null,\n \"update:visible\": null,\n },\n props: {\n allowedPageSizes: [Array, String],\n displayMode: String,\n infoText: String,\n label: String,\n showInfo: Boolean,\n showNavigationButtons: Boolean,\n showPageSizeSelector: Boolean,\n visible: [Boolean, String]\n }\n});\nexports.DxPager = DxPager;\nDxPager.$_optionName = \"pager\";\nvar DxPaging = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:enabled\": null,\n \"update:pageIndex\": null,\n \"update:pageSize\": null,\n },\n props: {\n enabled: Boolean,\n pageIndex: Number,\n pageSize: Number\n }\n});\nexports.DxPaging = DxPaging;\nDxPaging.$_optionName = \"paging\";\nvar DxPatternRule = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:message\": null,\n \"update:pattern\": null,\n \"update:type\": null,\n },\n props: {\n ignoreEmptyValue: Boolean,\n message: String,\n pattern: {},\n type: String\n }\n});\nexports.DxPatternRule = DxPatternRule;\nDxPatternRule.$_optionName = \"validationRules\";\nDxPatternRule.$_isCollectionItem = true;\nDxPatternRule.$_predefinedProps = {\n type: \"pattern\"\n};\nvar DxPopup = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:animation\": null,\n \"update:bindingOptions\": null,\n \"update:closeOnOutsideClick\": null,\n \"update:container\": null,\n \"update:contentTemplate\": null,\n \"update:copyRootClassesToWrapper\": null,\n \"update:deferRendering\": null,\n \"update:disabled\": null,\n \"update:dragAndResizeArea\": null,\n \"update:dragEnabled\": null,\n \"update:dragOutsideBoundary\": null,\n \"update:elementAttr\": null,\n \"update:enableBodyScroll\": null,\n \"update:focusStateEnabled\": null,\n \"update:fullScreen\": null,\n \"update:height\": null,\n \"update:hideOnOutsideClick\": null,\n \"update:hideOnParentScroll\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:maxHeight\": null,\n \"update:maxWidth\": null,\n \"update:minHeight\": null,\n \"update:minWidth\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onHidden\": null,\n \"update:onHiding\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:onResize\": null,\n \"update:onResizeEnd\": null,\n \"update:onResizeStart\": null,\n \"update:onShowing\": null,\n \"update:onShown\": null,\n \"update:onTitleRendered\": null,\n \"update:position\": null,\n \"update:resizeEnabled\": null,\n \"update:restorePosition\": null,\n \"update:rtlEnabled\": null,\n \"update:shading\": null,\n \"update:shadingColor\": null,\n \"update:showCloseButton\": null,\n \"update:showTitle\": null,\n \"update:tabIndex\": null,\n \"update:title\": null,\n \"update:titleTemplate\": null,\n \"update:toolbarItems\": null,\n \"update:visible\": null,\n \"update:width\": null,\n \"update:wrapperAttr\": null,\n },\n props: {\n accessKey: String,\n animation: Object,\n bindingOptions: Object,\n closeOnOutsideClick: [Boolean, Function],\n container: {},\n contentTemplate: {},\n copyRootClassesToWrapper: Boolean,\n deferRendering: Boolean,\n disabled: Boolean,\n dragAndResizeArea: {},\n dragEnabled: Boolean,\n dragOutsideBoundary: Boolean,\n elementAttr: {},\n enableBodyScroll: Boolean,\n focusStateEnabled: Boolean,\n fullScreen: Boolean,\n height: [Function, Number, String],\n hideOnOutsideClick: [Boolean, Function],\n hideOnParentScroll: Boolean,\n hint: String,\n hoverStateEnabled: Boolean,\n maxHeight: [Function, Number, String],\n maxWidth: [Function, Number, String],\n minHeight: [Function, Number, String],\n minWidth: [Function, Number, String],\n onContentReady: Function,\n onDisposing: Function,\n onHidden: Function,\n onHiding: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n onResize: Function,\n onResizeEnd: Function,\n onResizeStart: Function,\n onShowing: Function,\n onShown: Function,\n onTitleRendered: Function,\n position: [Function, Object, String],\n resizeEnabled: Boolean,\n restorePosition: Boolean,\n rtlEnabled: Boolean,\n shading: Boolean,\n shadingColor: String,\n showCloseButton: Boolean,\n showTitle: Boolean,\n tabIndex: Number,\n title: String,\n titleTemplate: {},\n toolbarItems: Array,\n visible: Boolean,\n width: [Function, Number, String],\n wrapperAttr: {}\n }\n});\nexports.DxPopup = DxPopup;\nDxPopup.$_optionName = \"popup\";\nDxPopup.$_expectedChildren = {\n animation: { isCollectionItem: false, optionName: \"animation\" },\n position: { isCollectionItem: false, optionName: \"position\" },\n toolbarItem: { isCollectionItem: true, optionName: \"toolbarItems\" }\n};\nvar DxPosition = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:at\": null,\n \"update:boundary\": null,\n \"update:boundaryOffset\": null,\n \"update:collision\": null,\n \"update:my\": null,\n \"update:of\": null,\n \"update:offset\": null,\n },\n props: {\n at: [Object, String],\n boundary: {},\n boundaryOffset: [Object, String],\n collision: [Object, String],\n my: [Object, String],\n of: {},\n offset: [Object, String]\n }\n});\nexports.DxPosition = DxPosition;\nDxPosition.$_optionName = \"position\";\nvar DxRangeRule = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:max\": null,\n \"update:message\": null,\n \"update:min\": null,\n \"update:reevaluate\": null,\n \"update:type\": null,\n },\n props: {\n ignoreEmptyValue: Boolean,\n max: {},\n message: String,\n min: {},\n reevaluate: Boolean,\n type: String\n }\n});\nexports.DxRangeRule = DxRangeRule;\nDxRangeRule.$_optionName = \"validationRules\";\nDxRangeRule.$_isCollectionItem = true;\nDxRangeRule.$_predefinedProps = {\n type: \"range\"\n};\nvar DxRemoteOperations = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:filtering\": null,\n \"update:grouping\": null,\n \"update:groupPaging\": null,\n \"update:paging\": null,\n \"update:sorting\": null,\n \"update:summary\": null,\n },\n props: {\n filtering: Boolean,\n grouping: Boolean,\n groupPaging: Boolean,\n paging: Boolean,\n sorting: Boolean,\n summary: Boolean\n }\n});\nexports.DxRemoteOperations = DxRemoteOperations;\nDxRemoteOperations.$_optionName = \"remoteOperations\";\nvar DxRequiredRule = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:message\": null,\n \"update:trim\": null,\n \"update:type\": null,\n },\n props: {\n message: String,\n trim: Boolean,\n type: String\n }\n});\nexports.DxRequiredRule = DxRequiredRule;\nDxRequiredRule.$_optionName = \"validationRules\";\nDxRequiredRule.$_isCollectionItem = true;\nDxRequiredRule.$_predefinedProps = {\n type: \"required\"\n};\nvar DxRowDragging = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowDropInsideItem\": null,\n \"update:allowReordering\": null,\n \"update:autoScroll\": null,\n \"update:boundary\": null,\n \"update:container\": null,\n \"update:cursorOffset\": null,\n \"update:data\": null,\n \"update:dragDirection\": null,\n \"update:dragTemplate\": null,\n \"update:dropFeedbackMode\": null,\n \"update:filter\": null,\n \"update:group\": null,\n \"update:handle\": null,\n \"update:onAdd\": null,\n \"update:onDragChange\": null,\n \"update:onDragEnd\": null,\n \"update:onDragMove\": null,\n \"update:onDragStart\": null,\n \"update:onRemove\": null,\n \"update:onReorder\": null,\n \"update:scrollSensitivity\": null,\n \"update:scrollSpeed\": null,\n \"update:showDragIcons\": null,\n },\n props: {\n allowDropInsideItem: Boolean,\n allowReordering: Boolean,\n autoScroll: Boolean,\n boundary: {},\n container: {},\n cursorOffset: [Object, String],\n data: {},\n dragDirection: String,\n dragTemplate: {},\n dropFeedbackMode: String,\n filter: String,\n group: String,\n handle: String,\n onAdd: Function,\n onDragChange: Function,\n onDragEnd: Function,\n onDragMove: Function,\n onDragStart: Function,\n onRemove: Function,\n onReorder: Function,\n scrollSensitivity: Number,\n scrollSpeed: Number,\n showDragIcons: Boolean\n }\n});\nexports.DxRowDragging = DxRowDragging;\nDxRowDragging.$_optionName = \"rowDragging\";\nDxRowDragging.$_expectedChildren = {\n cursorOffset: { isCollectionItem: false, optionName: \"cursorOffset\" }\n};\nvar DxScrolling = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:columnRenderingMode\": null,\n \"update:mode\": null,\n \"update:preloadEnabled\": null,\n \"update:renderAsync\": null,\n \"update:rowRenderingMode\": null,\n \"update:scrollByContent\": null,\n \"update:scrollByThumb\": null,\n \"update:showScrollbar\": null,\n \"update:useNative\": null,\n },\n props: {\n columnRenderingMode: String,\n mode: String,\n preloadEnabled: Boolean,\n renderAsync: Boolean,\n rowRenderingMode: String,\n scrollByContent: Boolean,\n scrollByThumb: Boolean,\n showScrollbar: String,\n useNative: [Boolean, String]\n }\n});\nexports.DxScrolling = DxScrolling;\nDxScrolling.$_optionName = \"scrolling\";\nvar DxSearch = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:editorOptions\": null,\n \"update:enabled\": null,\n \"update:mode\": null,\n \"update:searchExpr\": null,\n \"update:timeout\": null,\n },\n props: {\n editorOptions: {},\n enabled: Boolean,\n mode: String,\n searchExpr: [Array, Function, String],\n timeout: Number\n }\n});\nexports.DxSearch = DxSearch;\nDxSearch.$_optionName = \"search\";\nvar DxSearchPanel = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:highlightCaseSensitive\": null,\n \"update:highlightSearchText\": null,\n \"update:placeholder\": null,\n \"update:searchVisibleColumnsOnly\": null,\n \"update:text\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n highlightCaseSensitive: Boolean,\n highlightSearchText: Boolean,\n placeholder: String,\n searchVisibleColumnsOnly: Boolean,\n text: String,\n visible: Boolean,\n width: [Number, String]\n }\n});\nexports.DxSearchPanel = DxSearchPanel;\nDxSearchPanel.$_optionName = \"searchPanel\";\nvar DxSelection = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowSelectAll\": null,\n \"update:deferred\": null,\n \"update:mode\": null,\n \"update:recursive\": null,\n \"update:selectAllMode\": null,\n \"update:selectByClick\": null,\n \"update:showCheckBoxesMode\": null,\n },\n props: {\n allowSelectAll: Boolean,\n deferred: Boolean,\n mode: String,\n recursive: Boolean,\n selectAllMode: String,\n selectByClick: Boolean,\n showCheckBoxesMode: String\n }\n});\nexports.DxSelection = DxSelection;\nDxSelection.$_optionName = \"selection\";\nvar DxShow = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:complete\": null,\n \"update:delay\": null,\n \"update:direction\": null,\n \"update:duration\": null,\n \"update:easing\": null,\n \"update:from\": null,\n \"update:staggerDelay\": null,\n \"update:start\": null,\n \"update:to\": null,\n \"update:type\": null,\n },\n props: {\n complete: Function,\n delay: Number,\n direction: String,\n duration: Number,\n easing: String,\n from: Object,\n staggerDelay: Number,\n start: Function,\n to: Object,\n type: String\n }\n});\nexports.DxShow = DxShow;\nDxShow.$_optionName = \"show\";\nvar DxSortByGroupSummaryInfo = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:groupColumn\": null,\n \"update:sortOrder\": null,\n \"update:summaryItem\": null,\n },\n props: {\n groupColumn: String,\n sortOrder: String,\n summaryItem: [Number, String]\n }\n});\nexports.DxSortByGroupSummaryInfo = DxSortByGroupSummaryInfo;\nDxSortByGroupSummaryInfo.$_optionName = \"sortByGroupSummaryInfo\";\nDxSortByGroupSummaryInfo.$_isCollectionItem = true;\nvar DxSorting = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ascendingText\": null,\n \"update:clearText\": null,\n \"update:descendingText\": null,\n \"update:mode\": null,\n \"update:showSortIndexes\": null,\n },\n props: {\n ascendingText: String,\n clearText: String,\n descendingText: String,\n mode: String,\n showSortIndexes: Boolean\n }\n});\nexports.DxSorting = DxSorting;\nDxSorting.$_optionName = \"sorting\";\nvar DxStateStoring = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:customLoad\": null,\n \"update:customSave\": null,\n \"update:enabled\": null,\n \"update:savingTimeout\": null,\n \"update:storageKey\": null,\n \"update:type\": null,\n },\n props: {\n customLoad: Function,\n customSave: Function,\n enabled: Boolean,\n savingTimeout: Number,\n storageKey: String,\n type: String\n }\n});\nexports.DxStateStoring = DxStateStoring;\nDxStateStoring.$_optionName = \"stateStoring\";\nvar DxStringLengthRule = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:max\": null,\n \"update:message\": null,\n \"update:min\": null,\n \"update:trim\": null,\n \"update:type\": null,\n },\n props: {\n ignoreEmptyValue: Boolean,\n max: Number,\n message: String,\n min: Number,\n trim: Boolean,\n type: String\n }\n});\nexports.DxStringLengthRule = DxStringLengthRule;\nDxStringLengthRule.$_optionName = \"validationRules\";\nDxStringLengthRule.$_isCollectionItem = true;\nDxStringLengthRule.$_predefinedProps = {\n type: \"stringLength\"\n};\nvar DxSummary = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:calculateCustomSummary\": null,\n \"update:groupItems\": null,\n \"update:recalculateWhileEditing\": null,\n \"update:skipEmptyValues\": null,\n \"update:texts\": null,\n \"update:totalItems\": null,\n },\n props: {\n calculateCustomSummary: Function,\n groupItems: Array,\n recalculateWhileEditing: Boolean,\n skipEmptyValues: Boolean,\n texts: Object,\n totalItems: Array\n }\n});\nexports.DxSummary = DxSummary;\nDxSummary.$_optionName = \"summary\";\nDxSummary.$_expectedChildren = {\n groupItem: { isCollectionItem: true, optionName: \"groupItems\" },\n summaryTexts: { isCollectionItem: false, optionName: \"texts\" },\n texts: { isCollectionItem: false, optionName: \"texts\" },\n totalItem: { isCollectionItem: true, optionName: \"totalItems\" }\n};\nvar DxSummaryTexts = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:avg\": null,\n \"update:avgOtherColumn\": null,\n \"update:count\": null,\n \"update:max\": null,\n \"update:maxOtherColumn\": null,\n \"update:min\": null,\n \"update:minOtherColumn\": null,\n \"update:sum\": null,\n \"update:sumOtherColumn\": null,\n },\n props: {\n avg: String,\n avgOtherColumn: String,\n count: String,\n max: String,\n maxOtherColumn: String,\n min: String,\n minOtherColumn: String,\n sum: String,\n sumOtherColumn: String\n }\n});\nexports.DxSummaryTexts = DxSummaryTexts;\nDxSummaryTexts.$_optionName = \"texts\";\nvar DxTexts = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:addRow\": null,\n \"update:avg\": null,\n \"update:avgOtherColumn\": null,\n \"update:cancel\": null,\n \"update:cancelAllChanges\": null,\n \"update:cancelRowChanges\": null,\n \"update:clearFilter\": null,\n \"update:confirmDeleteMessage\": null,\n \"update:confirmDeleteTitle\": null,\n \"update:count\": null,\n \"update:createFilter\": null,\n \"update:deleteRow\": null,\n \"update:editRow\": null,\n \"update:emptyValue\": null,\n \"update:exportAll\": null,\n \"update:exportSelectedRows\": null,\n \"update:exportTo\": null,\n \"update:filterEnabledHint\": null,\n \"update:fix\": null,\n \"update:groupByThisColumn\": null,\n \"update:groupContinuedMessage\": null,\n \"update:groupContinuesMessage\": null,\n \"update:leftPosition\": null,\n \"update:max\": null,\n \"update:maxOtherColumn\": null,\n \"update:min\": null,\n \"update:minOtherColumn\": null,\n \"update:ok\": null,\n \"update:rightPosition\": null,\n \"update:saveAllChanges\": null,\n \"update:saveRowChanges\": null,\n \"update:sum\": null,\n \"update:sumOtherColumn\": null,\n \"update:undeleteRow\": null,\n \"update:unfix\": null,\n \"update:ungroup\": null,\n \"update:ungroupAll\": null,\n \"update:validationCancelChanges\": null,\n },\n props: {\n addRow: String,\n avg: String,\n avgOtherColumn: String,\n cancel: String,\n cancelAllChanges: String,\n cancelRowChanges: String,\n clearFilter: String,\n confirmDeleteMessage: String,\n confirmDeleteTitle: String,\n count: String,\n createFilter: String,\n deleteRow: String,\n editRow: String,\n emptyValue: String,\n exportAll: String,\n exportSelectedRows: String,\n exportTo: String,\n filterEnabledHint: String,\n fix: String,\n groupByThisColumn: String,\n groupContinuedMessage: String,\n groupContinuesMessage: String,\n leftPosition: String,\n max: String,\n maxOtherColumn: String,\n min: String,\n minOtherColumn: String,\n ok: String,\n rightPosition: String,\n saveAllChanges: String,\n saveRowChanges: String,\n sum: String,\n sumOtherColumn: String,\n undeleteRow: String,\n unfix: String,\n ungroup: String,\n ungroupAll: String,\n validationCancelChanges: String\n }\n});\nexports.DxTexts = DxTexts;\nDxTexts.$_optionName = \"texts\";\nvar DxTo = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:left\": null,\n \"update:opacity\": null,\n \"update:position\": null,\n \"update:scale\": null,\n \"update:top\": null,\n },\n props: {\n left: Number,\n opacity: Number,\n position: Object,\n scale: Number,\n top: Number\n }\n});\nexports.DxTo = DxTo;\nDxTo.$_optionName = \"to\";\nvar DxToolbar = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:disabled\": null,\n \"update:items\": null,\n \"update:visible\": null,\n },\n props: {\n disabled: Boolean,\n items: Array,\n visible: Boolean\n }\n});\nexports.DxToolbar = DxToolbar;\nDxToolbar.$_optionName = \"toolbar\";\nDxToolbar.$_expectedChildren = {\n item: { isCollectionItem: true, optionName: \"items\" }\n};\nvar DxToolbarItem = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:cssClass\": null,\n \"update:disabled\": null,\n \"update:html\": null,\n \"update:locateInMenu\": null,\n \"update:location\": null,\n \"update:menuItemTemplate\": null,\n \"update:options\": null,\n \"update:showText\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:toolbar\": null,\n \"update:visible\": null,\n \"update:widget\": null,\n },\n props: {\n cssClass: String,\n disabled: Boolean,\n html: String,\n locateInMenu: String,\n location: String,\n menuItemTemplate: {},\n options: {},\n showText: String,\n template: {},\n text: String,\n toolbar: String,\n visible: Boolean,\n widget: String\n }\n});\nexports.DxToolbarItem = DxToolbarItem;\nDxToolbarItem.$_optionName = \"toolbarItems\";\nDxToolbarItem.$_isCollectionItem = true;\nvar DxTotalItem = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:alignment\": null,\n \"update:column\": null,\n \"update:cssClass\": null,\n \"update:customizeText\": null,\n \"update:displayFormat\": null,\n \"update:name\": null,\n \"update:showInColumn\": null,\n \"update:skipEmptyValues\": null,\n \"update:summaryType\": null,\n \"update:valueFormat\": null,\n },\n props: {\n alignment: String,\n column: String,\n cssClass: String,\n customizeText: Function,\n displayFormat: String,\n name: String,\n showInColumn: String,\n skipEmptyValues: Boolean,\n summaryType: String,\n valueFormat: [Object, Function, String]\n }\n});\nexports.DxTotalItem = DxTotalItem;\nDxTotalItem.$_optionName = \"totalItems\";\nDxTotalItem.$_isCollectionItem = true;\nDxTotalItem.$_expectedChildren = {\n valueFormat: { isCollectionItem: false, optionName: \"valueFormat\" }\n};\nvar DxValidationRule = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:comparisonTarget\": null,\n \"update:comparisonType\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:max\": null,\n \"update:message\": null,\n \"update:min\": null,\n \"update:pattern\": null,\n \"update:reevaluate\": null,\n \"update:trim\": null,\n \"update:type\": null,\n \"update:validationCallback\": null,\n },\n props: {\n comparisonTarget: Function,\n comparisonType: String,\n ignoreEmptyValue: Boolean,\n max: {},\n message: String,\n min: {},\n pattern: {},\n reevaluate: Boolean,\n trim: Boolean,\n type: String,\n validationCallback: Function\n }\n});\nexports.DxValidationRule = DxValidationRule;\nDxValidationRule.$_optionName = \"validationRules\";\nDxValidationRule.$_isCollectionItem = true;\nDxValidationRule.$_predefinedProps = {\n type: \"required\"\n};\nvar DxValueFormat = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:currency\": null,\n \"update:formatter\": null,\n \"update:parser\": null,\n \"update:precision\": null,\n \"update:type\": null,\n \"update:useCurrencyAccountingStyle\": null,\n },\n props: {\n currency: String,\n formatter: Function,\n parser: Function,\n precision: Number,\n type: String,\n useCurrencyAccountingStyle: Boolean\n }\n});\nexports.DxValueFormat = DxValueFormat;\nDxValueFormat.$_optionName = \"valueFormat\";\nexports.default = DxDataGrid;\n","/**\r\n * DevExtreme (esm/ui/shared/accessibility.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 {\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar FOCUS_STATE_CLASS = \"dx-state-focused\";\r\nvar FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar FOCUSED_ROW_SELECTOR = \".dx-row-focused\";\r\nvar GRID_ROW_SELECTOR = \".dx-datagrid-rowsview .dx-row\";\r\nvar GRID_CELL_SELECTOR = \"\".concat(GRID_ROW_SELECTOR, \" > td\");\r\nvar TREELIST_ROW_SELECTOR = \".dx-treelist-rowsview .dx-row\";\r\nvar TREELIST_CELL_SELECTOR = \"\".concat(TREELIST_ROW_SELECTOR, \" > td\");\r\nvar viewItemSelectorMap = {\r\n groupPanel: [\".dx-datagrid-group-panel .dx-group-panel-item[tabindex]\"],\r\n columnHeaders: [\".dx-datagrid-headers .dx-header-row > td.dx-datagrid-action\", \".dx-treelist-headers .dx-header-row > td.dx-treelist-action\"],\r\n filterRow: [\".dx-datagrid-headers .dx-datagrid-filter-row .dx-editor-cell .dx-texteditor-input\", \".dx-treelist-headers .dx-treelist-filter-row .dx-editor-cell .dx-texteditor-input\"],\r\n rowsView: [\"\".concat(FOCUSED_ROW_SELECTOR), \"\".concat(GRID_ROW_SELECTOR, \"[tabindex]\"), \"\".concat(GRID_CELL_SELECTOR, \"[tabindex]\"), \"\".concat(GRID_CELL_SELECTOR), \"\".concat(TREELIST_ROW_SELECTOR, \"[tabindex]\"), \"\".concat(TREELIST_CELL_SELECTOR, \"[tabindex]\"), \"\".concat(TREELIST_CELL_SELECTOR)],\r\n footer: [\".dx-datagrid-total-footer .dx-datagrid-summary-item\", \".dx-treelist-total-footer .dx-treelist-summary-item\"],\r\n filterPanel: [\".dx-datagrid-filter-panel .dx-icon-filter\", \".dx-treelist-filter-panel .dx-icon-filter\"],\r\n pager: [\".dx-datagrid-pager [tabindex]\", \".dx-treelist-pager [tabindex]\"]\r\n};\r\nvar isMouseDown = false;\r\nvar isHiddenFocusing = false;\r\nvar focusedElementInfo = null;\r\n\r\nfunction processKeyDown(viewName, instance, event, action, $mainElement, executeKeyDown) {\r\n var isHandled = fireKeyDownEvent(instance, event.originalEvent, executeKeyDown);\r\n if (isHandled) {\r\n return\r\n }\r\n var keyName = normalizeKeyName(event);\r\n if (\"enter\" === keyName || \"space\" === keyName) {\r\n saveFocusedElementInfo(event.target, instance);\r\n action && action({\r\n event: event\r\n })\r\n } else if (\"tab\" === keyName) {\r\n $mainElement.addClass(FOCUS_STATE_CLASS)\r\n } else {\r\n selectView(viewName, instance, event)\r\n }\r\n}\r\nexport function saveFocusedElementInfo(target, instance) {\r\n var $target = $(target);\r\n var ariaLabel = $target.attr(\"aria-label\");\r\n var $activeElements = getActiveAccessibleElements(ariaLabel, instance.element());\r\n var targetIndex = $activeElements.index($target);\r\n focusedElementInfo = extend({}, {\r\n ariaLabel: ariaLabel,\r\n index: targetIndex\r\n }, {\r\n viewInstance: instance\r\n })\r\n}\r\n\r\nfunction getActiveAccessibleElements(ariaLabel, viewElement) {\r\n var $viewElement = $(viewElement);\r\n var $activeElements;\r\n if (ariaLabel) {\r\n $activeElements = $viewElement.find('[aria-label=\"'.concat(ariaLabel, '\"][tabindex]'))\r\n } else {\r\n $activeElements = $viewElement.find(\"[tabindex]\")\r\n }\r\n return $activeElements\r\n}\r\n\r\nfunction findFocusedViewElement(viewSelectors, element) {\r\n var root = (null === element || void 0 === element ? void 0 : element.getRootNode()) || domAdapter.getDocument();\r\n for (var index in viewSelectors) {\r\n var selector = viewSelectors[index];\r\n var $focusViewElement = $(root).find(selector).first();\r\n if ($focusViewElement.length) {\r\n return $focusViewElement\r\n }\r\n }\r\n}\r\n\r\nfunction fireKeyDownEvent(instance, event, executeAction) {\r\n var args = {\r\n event: event,\r\n handled: false\r\n };\r\n if (executeAction) {\r\n executeAction(args)\r\n } else {\r\n instance._createActionByOption(\"onKeyDown\")(args)\r\n }\r\n return args.handled\r\n}\r\n\r\nfunction onDocumentVisibilityChange() {\r\n isHiddenFocusing = \"visible\" === domAdapter.getDocument().visibilityState\r\n}\r\nexport function subscribeVisibilityChange() {\r\n eventsEngine.on(domAdapter.getDocument(), \"visibilitychange\", onDocumentVisibilityChange)\r\n}\r\nexport function unsubscribeVisibilityChange() {\r\n eventsEngine.off(domAdapter.getDocument(), \"visibilitychange\", onDocumentVisibilityChange)\r\n}\r\nexport function hiddenFocus(element, preventScroll) {\r\n isHiddenFocusing = true;\r\n element.focus({\r\n preventScroll: preventScroll\r\n });\r\n isHiddenFocusing = false\r\n}\r\nexport function registerKeyboardAction(viewName, instance, $element, selector, action, executeKeyDown) {\r\n if (instance.option(\"useLegacyKeyboardNavigation\")) {\r\n return noop\r\n }\r\n var getMainElement = () => $(instance.element());\r\n var keyDownHandler = e => processKeyDown(viewName, instance, e, action, getMainElement(), executeKeyDown);\r\n var mouseDownHandler = () => {\r\n isMouseDown = true;\r\n getMainElement().removeClass(FOCUS_STATE_CLASS)\r\n };\r\n var focusinHandler = () => {\r\n var needShowOverlay = !isMouseDown && !isHiddenFocusing;\r\n if (needShowOverlay) {\r\n getMainElement().addClass(FOCUS_STATE_CLASS)\r\n }\r\n isMouseDown = false\r\n };\r\n eventsEngine.on($element, \"keydown\", selector, keyDownHandler);\r\n eventsEngine.on($element, \"mousedown\", selector, mouseDownHandler);\r\n eventsEngine.on($element, \"focusin\", selector, focusinHandler);\r\n return () => {\r\n eventsEngine.off($element, \"keydown\", selector, keyDownHandler);\r\n eventsEngine.off($element, \"mousedown\", selector, mouseDownHandler);\r\n eventsEngine.off($element, \"focusin\", selector, focusinHandler)\r\n }\r\n}\r\nexport function restoreFocus(instance) {\r\n if (!instance.option(\"useLegacyKeyboardNavigation\") && focusedElementInfo) {\r\n var viewInstance = focusedElementInfo.viewInstance;\r\n if (viewInstance) {\r\n var $activeElements = getActiveAccessibleElements(focusedElementInfo.ariaLabel, viewInstance.element());\r\n var $targetElement = $activeElements.eq(focusedElementInfo.index);\r\n focusedElementInfo = null;\r\n eventsEngine.trigger($targetElement, \"focus\")\r\n }\r\n }\r\n}\r\nexport function selectView(viewName, instance, event) {\r\n var keyName = normalizeKeyName(event);\r\n if (event.ctrlKey && (\"upArrow\" === keyName || \"downArrow\" === keyName)) {\r\n var viewNames = Object.keys(viewItemSelectorMap);\r\n var viewItemIndex = viewNames.indexOf(viewName);\r\n while (viewItemIndex >= 0 && viewItemIndex < viewNames.length) {\r\n viewItemIndex = \"upArrow\" === keyName ? --viewItemIndex : ++viewItemIndex;\r\n var _viewName = viewNames[viewItemIndex];\r\n var viewSelectors = viewItemSelectorMap[_viewName];\r\n var $focusViewElement = findFocusedViewElement(viewSelectors, event.target);\r\n if ($focusViewElement && $focusViewElement.length) {\r\n $focusViewElement.attr(\"tabindex\", instance.option(\"tabindex\") || 0);\r\n eventsEngine.trigger($focusViewElement, \"focus\");\r\n $focusViewElement.removeClass(FOCUS_DISABLED_CLASS);\r\n break\r\n }\r\n }\r\n }\r\n}\r\nexport function setTabIndex(instance, $element) {\r\n if (!instance.option(\"useLegacyKeyboardnavigation\")) {\r\n $element.attr(\"tabindex\", instance.option(\"tabindex\") || 0)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/m_accessibility.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport * as accessibility from \"../../../ui/shared/accessibility\";\r\nexport var registerKeyboardAction = function(viewName, instance, $element, selector, action) {\r\n var keyboardController = instance.getController(\"keyboardNavigation\");\r\n if (instance.option(\"useLegacyKeyboardNavigation\") || keyboardController && !keyboardController.isKeyboardEnabled()) {\r\n return\r\n }\r\n instance.createAction(\"onKeyDown\");\r\n accessibility.registerKeyboardAction(viewName, instance, $element, selector, action, args => {\r\n instance.executeAction(\"onKeyDown\", args)\r\n })\r\n};\r\n","/**\r\n * DevExtreme (esm/events/double_click.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n closestCommonParent\r\n} from \"../core/utils/dom\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport Class from \"../core/class\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport {\r\n name as clickEventName\r\n} from \"./click\";\r\nimport {\r\n addNamespace,\r\n fireEvent\r\n} from \"./utils/index\";\r\nvar DBLCLICK_EVENT_NAME = \"dxdblclick\";\r\nvar DBLCLICK_NAMESPACE = \"dxDblClick\";\r\nvar NAMESPACED_CLICK_EVENT = addNamespace(clickEventName, DBLCLICK_NAMESPACE);\r\nvar DBLCLICK_TIMEOUT = 300;\r\nvar DblClick = Class.inherit({\r\n ctor: function() {\r\n this._handlerCount = 0;\r\n this._forgetLastClick()\r\n },\r\n _forgetLastClick: function() {\r\n this._firstClickTarget = null;\r\n this._lastClickTimeStamp = -DBLCLICK_TIMEOUT\r\n },\r\n add: function() {\r\n if (this._handlerCount <= 0) {\r\n eventsEngine.on(domAdapter.getDocument(), NAMESPACED_CLICK_EVENT, this._clickHandler.bind(this))\r\n }\r\n this._handlerCount++\r\n },\r\n _clickHandler: function(e) {\r\n var timeStamp = e.timeStamp || Date.now();\r\n var timeBetweenClicks = timeStamp - this._lastClickTimeStamp;\r\n var isSimulated = timeBetweenClicks < 0;\r\n var isDouble = !isSimulated && timeBetweenClicks < DBLCLICK_TIMEOUT;\r\n if (isDouble) {\r\n fireEvent({\r\n type: DBLCLICK_EVENT_NAME,\r\n target: closestCommonParent(this._firstClickTarget, e.target),\r\n originalEvent: e\r\n });\r\n this._forgetLastClick()\r\n } else {\r\n this._firstClickTarget = e.target;\r\n this._lastClickTimeStamp = timeStamp\r\n }\r\n },\r\n remove: function() {\r\n this._handlerCount--;\r\n if (this._handlerCount <= 0) {\r\n this._forgetLastClick();\r\n eventsEngine.off(domAdapter.getDocument(), NAMESPACED_CLICK_EVENT)\r\n }\r\n }\r\n});\r\nregisterEvent(DBLCLICK_EVENT_NAME, new DblClick);\r\nexport {\r\n DBLCLICK_EVENT_NAME as name\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/column_state_mixin/m_column_state_mixin.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 noop\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../../../../core/utils/position\";\r\nvar COLUMN_INDICATORS_CLASS = \"dx-column-indicators\";\r\nvar GROUP_PANEL_ITEM_CLASS = \"dx-group-panel-item\";\r\nexport default {\r\n _applyColumnState(options) {\r\n var _a;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var columnAlignment = this._getColumnAlignment(options.column.alignment, rtlEnabled);\r\n var parameters = extend(true, {\r\n columnAlignment: columnAlignment\r\n }, options);\r\n var isGroupPanelItem = parameters.rootElement.hasClass(GROUP_PANEL_ITEM_CLASS);\r\n var $indicatorsContainer = this._createIndicatorContainer(parameters, isGroupPanelItem);\r\n var $span = $(\"\").addClass(this._getIndicatorClassName(options.name));\r\n var columnsController = null === (_a = this.component) || void 0 === _a ? void 0 : _a.getController(\"columns\");\r\n var indicatorAlignment = (null === columnsController || void 0 === columnsController ? void 0 : columnsController.getHeaderContentAlignment(columnAlignment)) || columnAlignment;\r\n parameters.container = $indicatorsContainer;\r\n parameters.indicator = $span;\r\n this._renderIndicator(parameters);\r\n $indicatorsContainer[(isGroupPanelItem || !options.showColumnLines) && \"left\" === indicatorAlignment ? \"appendTo\" : \"prependTo\"](options.rootElement);\r\n return $span\r\n },\r\n _getIndicatorClassName: noop,\r\n _getColumnAlignment(alignment, rtlEnabled) {\r\n rtlEnabled = rtlEnabled || this.option(\"rtlEnabled\");\r\n return alignment && \"center\" !== alignment ? alignment : getDefaultAlignment(rtlEnabled)\r\n },\r\n _createIndicatorContainer(options, ignoreIndicatorAlignment) {\r\n var $indicatorsContainer = this._getIndicatorContainer(options.rootElement);\r\n var indicatorAlignment = \"left\" === options.columnAlignment ? \"right\" : \"left\";\r\n if (!$indicatorsContainer.length) {\r\n $indicatorsContainer = $(\"
\").addClass(COLUMN_INDICATORS_CLASS)\r\n }\r\n this.setAria(\"role\", \"presentation\", $indicatorsContainer);\r\n return $indicatorsContainer.css(\"float\", options.showColumnLines && !ignoreIndicatorAlignment ? indicatorAlignment : null)\r\n },\r\n _getIndicatorContainer: $cell => $cell && $cell.find(\".\".concat(COLUMN_INDICATORS_CLASS)),\r\n _getIndicatorElements($cell) {\r\n var $indicatorContainer = this._getIndicatorContainer($cell);\r\n return $indicatorContainer && $indicatorContainer.children()\r\n },\r\n _renderIndicator(options) {\r\n var $container = options.container;\r\n var $indicator = options.indicator;\r\n $container && $indicator && $container.append($indicator)\r\n },\r\n _updateIndicators(indicatorName) {\r\n var columns = this.getColumns();\r\n var $cells = this.getColumnElements();\r\n var $cell;\r\n if (!$cells || columns.length !== $cells.length) {\r\n return\r\n }\r\n for (var i = 0; i < columns.length; i++) {\r\n $cell = $cells.eq(i);\r\n this._updateIndicator($cell, columns[i], indicatorName);\r\n var rowOptions = $cell.parent().data(\"options\");\r\n if (rowOptions && rowOptions.cells) {\r\n rowOptions.cells[$cell.index()].column = columns[i]\r\n }\r\n }\r\n },\r\n _updateIndicator($cell, column, indicatorName) {\r\n if (!column.command) {\r\n return this._applyColumnState({\r\n name: indicatorName,\r\n rootElement: $cell,\r\n column: column,\r\n showColumnLines: this.option(\"showColumnLines\")\r\n })\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/m_modules.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 Class from \"../../../core/class\";\r\nimport $ from \"../../../core/renderer\";\r\nimport Callbacks from \"../../../core/utils/callbacks\";\r\nimport {\r\n grep\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n isFunction\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport errors from \"../../../ui/widget/ui.errors\";\r\nvar WIDGET_WITH_LEGACY_CONTAINER_NAME = \"dxDataGrid\";\r\nvar ModuleItem = Class.inherit({\r\n _endUpdateCore() {},\r\n ctor(component) {\r\n var that = this;\r\n that._updateLockCount = 0;\r\n that.component = component;\r\n that._actions = {};\r\n that._actionConfigs = {};\r\n each(this.callbackNames() || [], (function(index, name) {\r\n var flags = that.callbackFlags(name) || {};\r\n flags.unique = true;\r\n flags.syncStrategy = true;\r\n that[this] = Callbacks(flags)\r\n }))\r\n },\r\n init() {},\r\n callbackNames() {},\r\n callbackFlags() {},\r\n publicMethods() {},\r\n beginUpdate() {\r\n this._updateLockCount++\r\n },\r\n endUpdate() {\r\n if (this._updateLockCount > 0) {\r\n this._updateLockCount--;\r\n if (!this._updateLockCount) {\r\n this._endUpdateCore()\r\n }\r\n }\r\n },\r\n option(name) {\r\n var {\r\n component: component\r\n } = this;\r\n var optionCache = component._optionCache;\r\n if (1 === arguments.length && optionCache) {\r\n if (!(name in optionCache)) {\r\n optionCache[name] = component.option(name)\r\n }\r\n return optionCache[name]\r\n }\r\n return component.option.apply(component, arguments)\r\n },\r\n _silentOption(name, value) {\r\n var {\r\n component: component\r\n } = this;\r\n var optionCache = component._optionCache;\r\n if (optionCache) {\r\n optionCache[name] = value\r\n }\r\n return component._setOptionWithoutOptionChange(name, value)\r\n },\r\n localize(name) {\r\n var optionCache = this.component._optionCache;\r\n if (optionCache) {\r\n if (!(name in optionCache)) {\r\n optionCache[name] = messageLocalization.format(name)\r\n }\r\n return optionCache[name]\r\n }\r\n return messageLocalization.format(name)\r\n },\r\n on() {\r\n return this.component.on.apply(this.component, arguments)\r\n },\r\n off() {\r\n return this.component.off.apply(this.component, arguments)\r\n },\r\n optionChanged(args) {\r\n if (args.name in this._actions) {\r\n this.createAction(args.name, this._actionConfigs[args.name]);\r\n args.handled = true\r\n }\r\n },\r\n getAction(actionName) {\r\n return this._actions[actionName]\r\n },\r\n setAria(name, value, $target) {\r\n var target = $target.get(0);\r\n var prefix = \"role\" !== name && \"id\" !== name ? \"aria-\" : \"\";\r\n if (target.setAttribute) {\r\n target.setAttribute(prefix + name, value)\r\n } else {\r\n $target.attr(prefix + name, value)\r\n }\r\n },\r\n _createComponent() {\r\n return this.component._createComponent.apply(this.component, arguments)\r\n },\r\n getController(name) {\r\n return this.component._controllers[name]\r\n },\r\n createAction(actionName, config) {\r\n if (isFunction(actionName)) {\r\n var action = this.component._createAction(actionName.bind(this), config);\r\n return function(e) {\r\n action({\r\n event: e\r\n })\r\n }\r\n }\r\n this._actions[actionName] = this.component._createActionByOption(actionName, config);\r\n this._actionConfigs[actionName] = config;\r\n return\r\n },\r\n executeAction(actionName, options) {\r\n var action = this._actions[actionName];\r\n return action && action(options)\r\n },\r\n dispose() {\r\n var that = this;\r\n each(that.callbackNames() || [], (function() {\r\n that[this].empty()\r\n }))\r\n },\r\n addWidgetPrefix(className) {\r\n var componentName = this.component.NAME;\r\n return \"dx-\".concat(componentName.slice(2).toLowerCase()).concat(className ? \"-\".concat(className) : \"\")\r\n },\r\n getWidgetContainerClass() {\r\n var containerName = this.component.NAME === WIDGET_WITH_LEGACY_CONTAINER_NAME ? null : \"container\";\r\n return this.addWidgetPrefix(containerName)\r\n },\r\n elementIsInsideGrid($element) {\r\n var $gridElement = $element.closest(\".\".concat(this.getWidgetContainerClass())).parent();\r\n return $gridElement.is(this.component.$element())\r\n }\r\n});\r\nvar Controller = ModuleItem;\r\nvar ViewController = Controller.inherit({\r\n getView(name) {\r\n return this.component._views[name]\r\n },\r\n getViews() {\r\n return this.component._views\r\n }\r\n});\r\nvar View = ModuleItem.inherit({\r\n _isReady() {\r\n return this.component.isReady()\r\n },\r\n _endUpdateCore() {\r\n this.callBase();\r\n if (!this._isReady() && this._requireReady) {\r\n this._requireRender = false;\r\n this.component._requireResize = false\r\n }\r\n if (this._requireRender) {\r\n this._requireRender = false;\r\n this.render(this._$parent)\r\n }\r\n },\r\n _invalidate(requireResize, requireReady) {\r\n this._requireRender = true;\r\n this.component._requireResize = hasWindow() && (this.component._requireResize || requireResize);\r\n this._requireReady = this._requireReady || requireReady\r\n },\r\n _renderCore() {},\r\n _resizeCore() {},\r\n _parentElement() {\r\n return this._$parent\r\n },\r\n ctor(component) {\r\n this.callBase(component);\r\n this.renderCompleted = Callbacks();\r\n this.resizeCompleted = Callbacks()\r\n },\r\n element() {\r\n return this._$element\r\n },\r\n getElementHeight() {\r\n var $element = this.element();\r\n if (!$element) {\r\n return 0\r\n }\r\n var marginTop = parseFloat($element.css(\"marginTop\")) || 0;\r\n var marginBottom = parseFloat($element.css(\"marginBottom\")) || 0;\r\n var {\r\n offsetHeight: offsetHeight\r\n } = $element.get(0);\r\n return offsetHeight + marginTop + marginBottom\r\n },\r\n isVisible: () => true,\r\n getTemplate(name) {\r\n return this.component._getTemplate(name)\r\n },\r\n render($parent, options) {\r\n var $element = this._$element;\r\n var isVisible = this.isVisible();\r\n if (!$element && !$parent) {\r\n return\r\n }\r\n this._requireReady = false;\r\n if (!$element) {\r\n $element = this._$element = $(\"
\").appendTo($parent);\r\n this._$parent = $parent\r\n }\r\n $element.toggleClass(\"dx-hidden\", !isVisible);\r\n if (isVisible) {\r\n this.component._optionCache = {};\r\n var deferred = this._renderCore(options);\r\n this.component._optionCache = void 0;\r\n if (deferred) {\r\n deferred.done(() => {\r\n this.renderCompleted.fire(options)\r\n })\r\n } else {\r\n this.renderCompleted.fire(options)\r\n }\r\n }\r\n },\r\n resize() {\r\n this.isResizing = true;\r\n this._resizeCore();\r\n this.resizeCompleted.fire();\r\n this.isResizing = false\r\n },\r\n focus(preventScroll) {\r\n this.element().get(0).focus({\r\n preventScroll: preventScroll\r\n })\r\n }\r\n});\r\nvar MODULES_ORDER_MAX_INDEX = 1e6;\r\n\r\nfunction getExtendedTypes(types) {\r\n var moduleExtenders = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n var extendTypes = {};\r\n Object.entries(moduleExtenders).forEach(_ref => {\r\n var [name, extender] = _ref;\r\n var currentType = types[name];\r\n if (currentType) {\r\n if (isFunction(extender)) {\r\n extendTypes[name] = extender(currentType)\r\n } else {\r\n var classType = currentType;\r\n extendTypes[name] = classType.inherit(extender)\r\n }\r\n }\r\n });\r\n return extendTypes\r\n}\r\n\r\nfunction registerPublicMethods(componentInstance, name, moduleItem) {\r\n var publicMethods = moduleItem.publicMethods();\r\n if (publicMethods) {\r\n each(publicMethods, (_, methodName) => {\r\n if (moduleItem[methodName]) {\r\n if (!componentInstance[methodName]) {\r\n componentInstance[methodName] = function() {\r\n return moduleItem[methodName](...arguments)\r\n }\r\n } else {\r\n throw errors.Error(\"E1005\", methodName)\r\n }\r\n } else {\r\n throw errors.Error(\"E1006\", name, methodName)\r\n }\r\n })\r\n }\r\n}\r\nexport function processModules(componentInstance, componentClass) {\r\n var {\r\n modules: modules\r\n } = componentClass;\r\n var {\r\n modulesOrder: modulesOrder\r\n } = componentClass;\r\n\r\n function createModuleItems(moduleTypes) {\r\n var moduleItems = {};\r\n each(moduleTypes, (name, moduleType) => {\r\n var moduleItem = new moduleType(componentInstance);\r\n moduleItem.name = name;\r\n registerPublicMethods(componentInstance, name, moduleItem);\r\n moduleItems[name] = moduleItem\r\n });\r\n return moduleItems\r\n }\r\n if (modulesOrder) {\r\n modules.sort((module1, module2) => {\r\n var orderIndex1 = modulesOrder.indexOf(module1.name);\r\n var orderIndex2 = modulesOrder.indexOf(module2.name);\r\n if (orderIndex1 < 0) {\r\n orderIndex1 = MODULES_ORDER_MAX_INDEX\r\n }\r\n if (orderIndex2 < 0) {\r\n orderIndex2 = MODULES_ORDER_MAX_INDEX\r\n }\r\n return orderIndex1 - orderIndex2\r\n })\r\n }\r\n var rootControllerTypes = {};\r\n var rootViewTypes = {};\r\n modules.forEach(_ref2 => {\r\n var {\r\n name: moduleName,\r\n controllers: controllers = {},\r\n views: views = {}\r\n } = _ref2;\r\n Object.entries(controllers).forEach(_ref3 => {\r\n var [name, type] = _ref3;\r\n var _a;\r\n if (rootControllerTypes[name]) {\r\n throw errors.Error(\"E1001\", moduleName, name)\r\n } else if (!(null === (_a = null === type || void 0 === type ? void 0 : type.subclassOf) || void 0 === _a ? void 0 : _a.call(type, Controller))) {\r\n throw errors.Error(\"E1002\", moduleName, name)\r\n }\r\n rootControllerTypes[name] = type\r\n });\r\n Object.entries(views).forEach(_ref4 => {\r\n var [name, type] = _ref4;\r\n var _a;\r\n if (rootViewTypes[name]) {\r\n throw errors.Error(\"E1003\", moduleName, name)\r\n } else if (!(null === (_a = null === type || void 0 === type ? void 0 : type.subclassOf) || void 0 === _a ? void 0 : _a.call(type, View))) {\r\n throw errors.Error(\"E1004\", moduleName, name)\r\n }\r\n rootViewTypes[name] = type\r\n })\r\n });\r\n var moduleExtenders = modules.filter(_ref5 => {\r\n var {\r\n extenders: extenders\r\n } = _ref5;\r\n return !!extenders\r\n });\r\n var controllerTypes = moduleExtenders.reduce((types, _ref6) => {\r\n var {\r\n extenders: extenders\r\n } = _ref6;\r\n return _extends(_extends({}, types), getExtendedTypes(types, null === extenders || void 0 === extenders ? void 0 : extenders.controllers))\r\n }, rootControllerTypes);\r\n var viewTypes = moduleExtenders.reduce((types, _ref7) => {\r\n var {\r\n extenders: extenders\r\n } = _ref7;\r\n return _extends(_extends({}, types), getExtendedTypes(types, null === extenders || void 0 === extenders ? void 0 : extenders.views))\r\n }, rootViewTypes);\r\n componentInstance._controllers = createModuleItems(controllerTypes);\r\n componentInstance._views = createModuleItems(viewTypes)\r\n}\r\nvar callModuleItemsMethod = function(that, methodName, args) {\r\n args = args || [];\r\n if (that._controllers) {\r\n each(that._controllers, (function() {\r\n this[methodName] && this[methodName].apply(this, args)\r\n }))\r\n }\r\n if (that._views) {\r\n each(that._views, (function() {\r\n this[methodName] && this[methodName].apply(this, args)\r\n }))\r\n }\r\n};\r\nexport default {\r\n modules: [],\r\n View: View,\r\n ViewController: ViewController,\r\n Controller: Controller,\r\n registerModule(name, module) {\r\n var {\r\n modules: modules\r\n } = this;\r\n for (var i = 0; i < modules.length; i++) {\r\n if (modules[i].name === name) {\r\n return\r\n }\r\n }\r\n module.name = name;\r\n modules.push(module)\r\n },\r\n registerModulesOrder(moduleNames) {\r\n this.modulesOrder = moduleNames\r\n },\r\n unregisterModule(name) {\r\n this.modules = grep(this.modules, module => module.name !== name)\r\n },\r\n processModules: processModules,\r\n callModuleItemsMethod: callModuleItemsMethod\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/views/m_columns_view.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 getPublicElement\r\n} from \"../../../../core/element\";\r\nimport {\r\n data as elementData\r\n} from \"../../../../core/element_data\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport browser from \"../../../../core/utils/browser\";\r\nimport {\r\n noop\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport * as iteratorUtils from \"../../../../core/utils/iterator\";\r\nimport {\r\n getBoundingRect,\r\n getDefaultAlignment\r\n} from \"../../../../core/utils/position\";\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getOuterWidth,\r\n getWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n setWidth\r\n} from \"../../../../core/utils/style\";\r\nimport {\r\n nativeScrolling\r\n} from \"../../../../core/utils/support\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isNumeric,\r\n isRenderer,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../../../core/utils/window\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport {\r\n name as dblclickEvent\r\n} from \"../../../../events/double_click\";\r\nimport pointerEvents from \"../../../../events/pointer\";\r\nimport {\r\n removeEvent\r\n} from \"../../../../events/remove\";\r\nimport columnStateMixin from \"../../../grids/grid_core/column_state_mixin/m_column_state_mixin\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nvar SCROLL_CONTAINER_CLASS = \"scroll-container\";\r\nvar SCROLLABLE_SIMULATED_CLASS = \"scrollable-simulated\";\r\nvar GROUP_SPACE_CLASS = \"group-space\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar TABLE_CLASS = \"table\";\r\nvar TABLE_FIXED_CLASS = \"table-fixed\";\r\nvar CONTENT_FIXED_CLASS = \"content-fixed\";\r\nvar ROW_CLASS = \"dx-row\";\r\nvar GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar GROUP_CELL_CLASS = \"dx-group-cell\";\r\nvar DETAIL_ROW_CLASS = \"dx-master-detail-row\";\r\nvar FILTER_ROW_CLASS = \"filter-row\";\r\nvar ERROR_ROW_CLASS = \"dx-error-row\";\r\nvar CELL_UPDATED_ANIMATION_CLASS = \"cell-updated-animation\";\r\nvar HIDDEN_COLUMNS_WIDTH = \"0.0001px\";\r\nvar CELL_HINT_VISIBLE = \"dxCellHintVisible\";\r\nvar FORM_FIELD_ITEM_CONTENT_CLASS = \"dx-field-item-content\";\r\nvar appendElementTemplate = {\r\n render(options) {\r\n options.container.append(options.content)\r\n }\r\n};\r\nvar subscribeToRowEvents = function(that, $table) {\r\n var touchTarget;\r\n var touchCurrentTarget;\r\n var timeoutId;\r\n\r\n function clearTouchTargets(timeout) {\r\n return setTimeout(() => {\r\n touchTarget = touchCurrentTarget = null\r\n }, timeout)\r\n }\r\n eventsEngine.on($table, \"touchstart touchend\", \".dx-row\", e => {\r\n clearTimeout(timeoutId);\r\n if (\"touchstart\" === e.type) {\r\n touchTarget = e.target;\r\n touchCurrentTarget = e.currentTarget;\r\n timeoutId = clearTouchTargets(1e3)\r\n } else {\r\n timeoutId = clearTouchTargets()\r\n }\r\n });\r\n eventsEngine.on($table, [clickEventName, dblclickEvent, pointerEvents.down].join(\" \"), \".dx-row\", that.createAction(e => {\r\n var {\r\n event: event\r\n } = e;\r\n if (touchTarget) {\r\n event.target = touchTarget;\r\n event.currentTarget = touchCurrentTarget\r\n }\r\n if (!$(event.target).closest(\"a\").length) {\r\n e.rowIndex = that.getRowIndex(event.currentTarget);\r\n if (e.rowIndex >= 0) {\r\n e.rowElement = getPublicElement($(event.currentTarget));\r\n e.columns = that.getColumns();\r\n if (event.type === pointerEvents.down) {\r\n that._rowPointerDown(e)\r\n } else if (event.type === clickEventName) {\r\n that._rowClick(e)\r\n } else {\r\n that._rowDblClick(e)\r\n }\r\n }\r\n }\r\n }))\r\n};\r\nvar getWidthStyle = function(width) {\r\n if (\"auto\" === width) {\r\n return \"\"\r\n }\r\n return isNumeric(width) ? \"\".concat(width, \"px\") : width\r\n};\r\nvar setCellWidth = function(cell, column, width) {\r\n cell.style.width = cell.style.maxWidth = \"auto\" === column.width ? \"\" : width\r\n};\r\nvar copyAttributes = function(element, newElement) {\r\n if (!element || !newElement) {\r\n return\r\n }\r\n var oldAttributes = element.attributes;\r\n var newAttributes = newElement.attributes;\r\n var i;\r\n for (i = 0; i < oldAttributes.length; i++) {\r\n var name = oldAttributes[i].nodeName;\r\n if (!newElement.hasAttribute(name)) {\r\n element.removeAttribute(name)\r\n }\r\n }\r\n for (i = 0; i < newAttributes.length; i++) {\r\n element.setAttribute(newAttributes[i].nodeName, newAttributes[i].nodeValue)\r\n }\r\n};\r\nvar removeHandler = function(templateDeferred) {\r\n templateDeferred.resolve()\r\n};\r\nexport var normalizeWidth = width => {\r\n if (\"number\" === typeof width) {\r\n return \"\".concat(width.toFixed(3), \"px\")\r\n }\r\n if (\"adaptiveHidden\" === width) {\r\n return HIDDEN_COLUMNS_WIDTH\r\n }\r\n return width\r\n};\r\nvar viewWithColumnStateMixin = modules.View.inherit(columnStateMixin);\r\nexport class ColumnsView extends viewWithColumnStateMixin {\r\n setTableRole($tableElement) {}\r\n _createScrollableOptions() {\r\n var scrollingOptions = this.option(\"scrolling\");\r\n var useNativeScrolling = this.option(\"scrolling.useNative\");\r\n var options = extend({}, scrollingOptions, {\r\n direction: \"both\",\r\n bounceEnabled: false,\r\n useKeyboard: false\r\n });\r\n if (void 0 === useNativeScrolling) {\r\n useNativeScrolling = true\r\n }\r\n if (\"auto\" === useNativeScrolling) {\r\n delete options.useNative;\r\n delete options.useSimulatedScrollbar\r\n } else {\r\n options.useNative = !!useNativeScrolling;\r\n options.useSimulatedScrollbar = !useNativeScrolling\r\n }\r\n return options\r\n }\r\n _updateCell($cell, parameters) {\r\n if (parameters.rowType) {\r\n this._cellPrepared($cell, parameters)\r\n }\r\n }\r\n _createCell(options) {\r\n var {\r\n column: column\r\n } = options;\r\n var alignment = column.alignment || getDefaultAlignment(this.option(\"rtlEnabled\"));\r\n var cell = domAdapter.createElement(\"td\");\r\n cell.style.textAlign = alignment;\r\n var $cell = $(cell);\r\n if (\"data\" === options.rowType && column.headerId && !column.type) {\r\n if (this.component.option(\"showColumnHeaders\")) {\r\n this.setAria(\"describedby\", column.headerId, $cell)\r\n }\r\n }\r\n if (column.cssClass) {\r\n $cell.addClass(column.cssClass)\r\n }\r\n if (Array.isArray(column.elementAttr)) {\r\n column.elementAttr.forEach(_ref => {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n $cell.attr(name, value)\r\n })\r\n }\r\n if (\"expand\" === column.command) {\r\n $cell.addClass(column.cssClass);\r\n $cell.addClass(this.addWidgetPrefix(GROUP_SPACE_CLASS))\r\n }\r\n if (column.colspan > 1) {\r\n $cell.attr(\"colSpan\", column.colspan)\r\n } else if (!column.isBand && \"auto\" !== column.visibleWidth && this.option(\"columnAutoWidth\")) {\r\n if (column.width || column.minWidth) {\r\n cell.style.minWidth = getWidthStyle(column.minWidth || column.width)\r\n }\r\n if (column.width) {\r\n setCellWidth(cell, column, getWidthStyle(column.width))\r\n }\r\n }\r\n return $cell\r\n }\r\n _createRow(rowObject, tagName) {\r\n tagName = tagName || \"tr\";\r\n var $element = $(\"<\".concat(tagName, \">\")).addClass(ROW_CLASS);\r\n this.setAria(\"role\", \"row\", $element);\r\n return $element\r\n }\r\n _isAltRow(row) {\r\n return row && row.dataIndex % 2 === 1\r\n }\r\n _createTable(columns, isAppend) {\r\n var $table = $(\"\").addClass(this.addWidgetPrefix(TABLE_CLASS)).addClass(this.addWidgetPrefix(TABLE_FIXED_CLASS));\r\n if (columns && !isAppend) {\r\n $table.append(this._createColGroup(columns));\r\n if (browser.safari) {\r\n $table.append($(\"\").append(\"\"))\r\n }\r\n this.setTableRole($table)\r\n } else {\r\n this.setAria(\"hidden\", true, $table)\r\n }\r\n this.setAria(\"role\", \"presentation\", $(\"\").appendTo($table));\r\n if (isAppend) {\r\n return $table\r\n }\r\n if (browser.mozilla) {\r\n eventsEngine.on($table, \"mousedown\", \"td\", e => {\r\n if (e.ctrlKey) {\r\n e.preventDefault()\r\n }\r\n })\r\n }\r\n if (this.option(\"cellHintEnabled\")) {\r\n eventsEngine.on($table, \"mousemove\", \".dx-row > td\", this.createAction(args => {\r\n var e = args.event;\r\n var $element = $(e.target);\r\n var $cell = $(e.currentTarget);\r\n var $row = $cell.parent();\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var rowOptions = $row.data(\"options\");\r\n var columnIndex = $cell.index();\r\n var cellOptions = rowOptions && rowOptions.cells && rowOptions.cells[columnIndex];\r\n var column = cellOptions ? cellOptions.column : visibleColumns[columnIndex];\r\n var isHeaderRow = $row.hasClass(\"dx-header-row\");\r\n var isDataRow = $row.hasClass(\"dx-data-row\");\r\n var isMasterDetailRow = $row.hasClass(DETAIL_ROW_CLASS);\r\n var isGroupRow = $row.hasClass(GROUP_ROW_CLASS);\r\n var isFilterRow = $row.hasClass(this.addWidgetPrefix(FILTER_ROW_CLASS));\r\n var isDataRowWithTemplate = isDataRow && (!column || column.cellTemplate);\r\n var isEditorShown = isDataRow && cellOptions && (rowOptions.isEditing || cellOptions.isEditing || (null === column || void 0 === column ? void 0 : column.showEditorAlways));\r\n var isHeaderRowWithTemplate = isHeaderRow && (!column || column.headerCellTemplate);\r\n var isGroupCellWithTemplate = isGroupRow && (!column || column.groupIndex && column.groupCellTemplate);\r\n var shouldShowHint = !isMasterDetailRow && !isFilterRow && !isEditorShown && !isDataRowWithTemplate && !isHeaderRowWithTemplate && !isGroupCellWithTemplate;\r\n if (shouldShowHint) {\r\n if ($element.data(CELL_HINT_VISIBLE)) {\r\n $element.removeAttr(\"title\");\r\n $element.data(CELL_HINT_VISIBLE, false)\r\n }\r\n var difference = $element[0].scrollWidth - $element[0].clientWidth;\r\n if (difference > 0 && !isDefined($element.attr(\"title\"))) {\r\n $element.attr(\"title\", $element.text());\r\n $element.data(CELL_HINT_VISIBLE, true)\r\n }\r\n }\r\n }))\r\n }\r\n var getOptions = event => {\r\n var $cell = $(event.currentTarget);\r\n var $fieldItemContent = $(event.target).closest(\".\".concat(FORM_FIELD_ITEM_CONTENT_CLASS));\r\n var $row = $cell.parent();\r\n var rowOptions = $row.data(\"options\");\r\n var options = rowOptions && rowOptions.cells && rowOptions.cells[$cell.index()];\r\n if (!$cell.closest(\"table\").is(event.delegateTarget)) {\r\n return\r\n }\r\n var resultOptions = extend({}, options, {\r\n cellElement: getPublicElement($cell),\r\n event: event,\r\n eventType: event.type\r\n });\r\n resultOptions.rowIndex = this.getRowIndex($row);\r\n if ($fieldItemContent.length) {\r\n var formItemOptions = $fieldItemContent.data(\"dx-form-item\");\r\n if (formItemOptions.column) {\r\n resultOptions.column = formItemOptions.column;\r\n resultOptions.columnIndex = this._columnsController.getVisibleIndex(resultOptions.column.index)\r\n }\r\n }\r\n return resultOptions\r\n };\r\n eventsEngine.on($table, \"mouseover\", \".dx-row > td\", e => {\r\n var options = getOptions(e);\r\n options && this.executeAction(\"onCellHoverChanged\", options)\r\n });\r\n eventsEngine.on($table, \"mouseout\", \".dx-row > td\", e => {\r\n var options = getOptions(e);\r\n options && this.executeAction(\"onCellHoverChanged\", options)\r\n });\r\n eventsEngine.on($table, clickEventName, \".dx-row > td\", e => {\r\n var options = getOptions(e);\r\n options && this.executeAction(\"onCellClick\", options)\r\n });\r\n eventsEngine.on($table, dblclickEvent, \".dx-row > td\", e => {\r\n var options = getOptions(e);\r\n options && this.executeAction(\"onCellDblClick\", options)\r\n });\r\n subscribeToRowEvents(this, $table);\r\n return $table\r\n }\r\n _rowPointerDown() {}\r\n _rowClick() {}\r\n _rowDblClick() {}\r\n _createColGroup(columns) {\r\n var colgroupElement = $(\"\");\r\n for (var i = 0; i < columns.length; i++) {\r\n var colspan = columns[i].colspan || 1;\r\n for (var j = 0; j < colspan; j++) {\r\n colgroupElement.append(this._createCol(columns[i]))\r\n }\r\n }\r\n return colgroupElement\r\n }\r\n _createCol(column) {\r\n var width = column.visibleWidth || column.width;\r\n if (\"adaptiveHidden\" === width) {\r\n width = HIDDEN_COLUMNS_WIDTH\r\n }\r\n var col = $(\"\");\r\n setWidth(col, width);\r\n return col\r\n }\r\n renderDelayedTemplates(change) {\r\n var delayedTemplates = this._delayedTemplates;\r\n var syncTemplates = delayedTemplates.filter(template => !template.async);\r\n var asyncTemplates = delayedTemplates.filter(template => template.async);\r\n this._delayedTemplates = [];\r\n this._renderDelayedTemplatesCore(syncTemplates, false, change);\r\n this._renderDelayedTemplatesCoreAsync(asyncTemplates)\r\n }\r\n _renderDelayedTemplatesCoreAsync(templates) {\r\n if (templates.length) {\r\n var templateTimeout = getWindow().setTimeout(() => {\r\n this._templateTimeouts.delete(templateTimeout);\r\n this._renderDelayedTemplatesCore(templates, true)\r\n });\r\n this._templateTimeouts.add(templateTimeout)\r\n }\r\n }\r\n _renderDelayedTemplatesCore(templates, isAsync, change) {\r\n var date = new Date;\r\n while (templates.length) {\r\n var templateParameters = templates.shift();\r\n var {\r\n options: options\r\n } = templateParameters;\r\n var doc = domAdapter.getRootNode($(options.container).get(0));\r\n var needWaitAsyncTemplates = this.needWaitAsyncTemplates();\r\n if (!isAsync || $(options.container).closest(doc).length || needWaitAsyncTemplates) {\r\n if (change) {\r\n options.change = change\r\n }\r\n templateParameters.template.render(options)\r\n }\r\n if (isAsync && new Date - date > 30) {\r\n this._renderDelayedTemplatesCoreAsync(templates);\r\n break\r\n }\r\n }\r\n if (!templates.length && this._delayedTemplates.length) {\r\n this.renderDelayedTemplates()\r\n }\r\n }\r\n _processTemplate(template, options) {\r\n var renderingTemplate;\r\n if (template && template.render && !isRenderer(template)) {\r\n renderingTemplate = {\r\n allowRenderToDetachedContainer: template.allowRenderToDetachedContainer,\r\n render(options) {\r\n template.render(options.container, options.model, options.change);\r\n options.deferred && options.deferred.resolve()\r\n }\r\n }\r\n } else if (isFunction(template)) {\r\n renderingTemplate = {\r\n render(options) {\r\n var renderedTemplate = template(getPublicElement(options.container), options.model, options.change);\r\n if (renderedTemplate && (renderedTemplate.nodeType || isRenderer(renderedTemplate))) {\r\n options.container.append(renderedTemplate)\r\n }\r\n options.deferred && options.deferred.resolve()\r\n }\r\n }\r\n } else {\r\n var templateID = isString(template) ? template : $(template).attr(\"id\");\r\n if (!templateID) {\r\n renderingTemplate = this.getTemplate(template)\r\n } else {\r\n if (!this._templatesCache[templateID]) {\r\n this._templatesCache[templateID] = this.getTemplate(template)\r\n }\r\n renderingTemplate = this._templatesCache[templateID]\r\n }\r\n }\r\n return renderingTemplate\r\n }\r\n renderTemplate(container, template, options, allowRenderToDetachedContainer, change) {\r\n var _a;\r\n var renderingTemplate = this._processTemplate(template, options);\r\n var {\r\n column: column\r\n } = options;\r\n var isDataRow = \"data\" === options.rowType;\r\n var templateDeferred = new Deferred;\r\n var templateOptions = {\r\n container: container,\r\n model: options,\r\n deferred: templateDeferred,\r\n onRendered: () => {\r\n if (this.isDisposed()) {\r\n templateDeferred.reject()\r\n } else {\r\n templateDeferred.resolve()\r\n }\r\n }\r\n };\r\n if (renderingTemplate) {\r\n options.component = this.component;\r\n var columnAsync = column && (column.renderAsync && isDataRow || this.option(\"renderAsync\") && (false !== column.renderAsync && (column.command || column.showEditorAlways) && isDataRow || \"filter\" === options.rowType));\r\n var async = null !== (_a = options.renderAsync) && void 0 !== _a ? _a : columnAsync;\r\n if ((renderingTemplate.allowRenderToDetachedContainer || allowRenderToDetachedContainer) && !async) {\r\n renderingTemplate.render(templateOptions)\r\n } else {\r\n this._delayedTemplates.push({\r\n template: renderingTemplate,\r\n options: templateOptions,\r\n async: async\r\n })\r\n }\r\n this._templateDeferreds.add(templateDeferred);\r\n eventsEngine.on(container, removeEvent, removeHandler.bind(null, templateDeferred))\r\n } else {\r\n templateDeferred.reject()\r\n }\r\n return templateDeferred.promise().always(() => {\r\n this._templateDeferreds.delete(templateDeferred)\r\n })\r\n }\r\n _getBodies(tableElement) {\r\n return $(tableElement).children(\"tbody\").not(\".dx-header\").not(\".dx-footer\")\r\n }\r\n _needWrapRow($tableElement) {\r\n var _a;\r\n var hasRowTemplate = !!this.option().rowTemplate;\r\n return hasRowTemplate && !!(null === (_a = this._getBodies($tableElement)) || void 0 === _a ? void 0 : _a.filter(\".\".concat(ROW_CLASS)).length)\r\n }\r\n _wrapRowIfNeed($table, $row, isRefreshing) {\r\n var $tableElement = isRefreshing ? $table || this._tableElement : this._tableElement || $table;\r\n var needWrapRow = this._needWrapRow($tableElement);\r\n if (needWrapRow) {\r\n var $tbody = $(\"\").addClass($row.attr(\"class\"));\r\n this.setAria(\"role\", \"presentation\", $tbody);\r\n return $tbody.append($row)\r\n }\r\n return $row\r\n }\r\n _appendRow($table, $row, appendTemplate) {\r\n appendTemplate = appendTemplate || appendElementTemplate;\r\n appendTemplate.render({\r\n content: $row,\r\n container: $table\r\n })\r\n }\r\n _resizeCore() {\r\n var scrollLeft = this._scrollLeft;\r\n if (scrollLeft >= 0) {\r\n this._scrollLeft = 0;\r\n this.scrollTo({\r\n left: scrollLeft\r\n })\r\n }\r\n }\r\n _renderCore(e) {\r\n var $root = this.element().parent();\r\n if (!$root || $root.parent().length) {\r\n this.renderDelayedTemplates(e)\r\n }\r\n }\r\n _renderTable(options) {\r\n options = options || {};\r\n options.columns = this._columnsController.getVisibleColumns();\r\n var changeType = options.change && options.change.changeType;\r\n var $table = this._createTable(options.columns, \"append\" === changeType || \"prepend\" === changeType || \"update\" === changeType);\r\n this._renderRows($table, options);\r\n return $table\r\n }\r\n _renderRows($table, options) {\r\n var rows = this._getRows(options.change);\r\n var columnIndices = options.change && options.change.columnIndices || [];\r\n var changeTypes = options.change && options.change.changeTypes || [];\r\n for (var i = 0; i < rows.length; i++) {\r\n this._renderRow($table, extend({\r\n row: rows[i],\r\n columnIndices: columnIndices[i],\r\n changeType: changeTypes[i]\r\n }, options))\r\n }\r\n }\r\n _renderRow($table, options) {\r\n if (!options.columnIndices) {\r\n options.row.cells = []\r\n }\r\n var $row = this._createRow(options.row);\r\n var $wrappedRow = this._wrapRowIfNeed($table, $row);\r\n if (\"remove\" !== options.changeType) {\r\n this._renderCells($row, options)\r\n }\r\n this._appendRow($table, $wrappedRow);\r\n var rowOptions = extend({\r\n columns: options.columns\r\n }, options.row);\r\n this._addWatchMethod(rowOptions, options.row);\r\n this._rowPrepared($wrappedRow, rowOptions, options.row)\r\n }\r\n _needRenderCell(columnIndex, columnIndices) {\r\n return !columnIndices || columnIndices.indexOf(columnIndex) >= 0\r\n }\r\n _renderCells($row, options) {\r\n var columnIndex = 0;\r\n var {\r\n row: row\r\n } = options;\r\n var {\r\n columns: columns\r\n } = options;\r\n for (var i = 0; i < columns.length; i++) {\r\n if (this._needRenderCell(i, options.columnIndices)) {\r\n this._renderCell($row, extend({\r\n column: columns[i],\r\n columnIndex: columnIndex,\r\n value: row.values && row.values[columnIndex],\r\n oldValue: row.oldValues && row.oldValues[columnIndex]\r\n }, options))\r\n }\r\n if (columns[i].colspan > 1) {\r\n columnIndex += columns[i].colspan\r\n } else {\r\n columnIndex++\r\n }\r\n }\r\n }\r\n _updateCells($rowElement, $newRowElement, columnIndices) {\r\n var $cells = $rowElement.children();\r\n var $newCells = $newRowElement.children();\r\n var highlightChanges = this.option(\"highlightChanges\");\r\n var cellUpdatedClass = this.addWidgetPrefix(CELL_UPDATED_ANIMATION_CLASS);\r\n columnIndices.forEach((columnIndex, index) => {\r\n var $cell = $cells.eq(columnIndex);\r\n var $newCell = $newCells.eq(index);\r\n $cell.replaceWith($newCell);\r\n if (highlightChanges && !$newCell.hasClass(\"dx-command-expand\")) {\r\n $newCell.addClass(cellUpdatedClass)\r\n }\r\n });\r\n copyAttributes($rowElement.get(0), $newRowElement.get(0))\r\n }\r\n _setCellAriaAttributes($cell, cellOptions) {\r\n if (\"freeSpace\" !== cellOptions.rowType) {\r\n this.setAria(\"role\", \"gridcell\", $cell);\r\n var columnIndexOffset = this._columnsController.getColumnIndexOffset();\r\n var ariaColIndex = cellOptions.columnIndex + columnIndexOffset + 1;\r\n this.setAria(\"colindex\", ariaColIndex, $cell)\r\n }\r\n }\r\n _renderCell($row, options) {\r\n var cellOptions = this._getCellOptions(options);\r\n if (options.columnIndices) {\r\n if (options.row.cells) {\r\n var cellIndex = options.row.cells.findIndex(cell => cell.columnIndex === cellOptions.columnIndex);\r\n options.row.cells[cellIndex] = cellOptions\r\n }\r\n } else {\r\n options.row.cells.push(cellOptions)\r\n }\r\n var $cell = this._createCell(cellOptions);\r\n this._setCellAriaAttributes($cell, cellOptions);\r\n this._renderCellContent($cell, cellOptions, options);\r\n $row.get(0).appendChild($cell.get(0));\r\n return $cell\r\n }\r\n _renderCellContent($cell, options, renderOptions) {\r\n var template = this._getCellTemplate(options);\r\n when(!template || this.renderTemplate($cell, template, options, void 0, renderOptions.change)).done(() => {\r\n this._updateCell($cell, options)\r\n })\r\n }\r\n _getCellTemplate(options) {}\r\n _getRows(change) {\r\n return []\r\n }\r\n _getCellOptions(options) {\r\n var cellOptions = {\r\n column: options.column,\r\n columnIndex: options.columnIndex,\r\n rowType: options.row.rowType,\r\n isAltRow: this._isAltRow(options.row)\r\n };\r\n this._addWatchMethod(cellOptions);\r\n return cellOptions\r\n }\r\n _addWatchMethod(options, source) {\r\n if (!this.option(\"repaintChangesOnly\")) {\r\n return\r\n }\r\n var watchers = [];\r\n source = source || options;\r\n source.watch = source.watch || function(getter, updateValueFunc, updateRowFunc) {\r\n var oldValue = getter(source.data);\r\n var watcher = function(row) {\r\n if (row && updateRowFunc) {\r\n updateRowFunc(row)\r\n }\r\n var newValue = getter(source.data);\r\n if (JSON.stringify(oldValue) !== JSON.stringify(newValue)) {\r\n if (row) {\r\n updateValueFunc(newValue)\r\n }\r\n oldValue = newValue\r\n }\r\n };\r\n watchers.push(watcher);\r\n return function() {\r\n var index = watchers.indexOf(watcher);\r\n if (index >= 0) {\r\n watchers.splice(index, 1)\r\n }\r\n }\r\n };\r\n source.update = source.update || function(row, keepRow) {\r\n if (row) {\r\n this.data = options.data = row.data;\r\n this.rowIndex = options.rowIndex = row.rowIndex;\r\n this.dataIndex = options.dataIndex = row.dataIndex;\r\n this.isExpanded = options.isExpanded = row.isExpanded;\r\n if (options.row && !keepRow) {\r\n options.row = row\r\n }\r\n }\r\n watchers.forEach(watcher => {\r\n watcher(row)\r\n })\r\n };\r\n if (source !== options) {\r\n options.watch = source.watch.bind(source)\r\n }\r\n return options\r\n }\r\n _cellPrepared(cell, options) {\r\n options.cellElement = getPublicElement($(cell));\r\n this.executeAction(\"onCellPrepared\", options)\r\n }\r\n _rowPrepared($row, options, row) {\r\n elementData($row.get(0), \"options\", options);\r\n options.rowElement = getPublicElement($row);\r\n this.executeAction(\"onRowPrepared\", options)\r\n }\r\n _columnOptionChanged(e) {\r\n var {\r\n optionNames: optionNames\r\n } = e;\r\n if (gridCoreUtils.checkChanges(optionNames, [\"width\", \"visibleWidth\"])) {\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var widths = visibleColumns.map(column => column.visibleWidth || column.width);\r\n this.setColumnWidths({\r\n widths: widths,\r\n optionNames: optionNames\r\n });\r\n return\r\n }\r\n if (!this._requireReady) {\r\n this.render()\r\n }\r\n }\r\n getCellIndex($cell) {\r\n var cellIndex = $cell.length ? $cell[0].cellIndex : -1;\r\n return cellIndex\r\n }\r\n getTableElements() {\r\n return this._tableElement || $()\r\n }\r\n getTableElement(isFixedTableRendering) {\r\n return this._tableElement\r\n }\r\n setTableElement(tableElement, isFixedTableRendering) {\r\n this._tableElement = tableElement\r\n }\r\n optionChanged(args) {\r\n super.optionChanged(args);\r\n switch (args.name) {\r\n case \"cellHintEnabled\":\r\n case \"onCellPrepared\":\r\n case \"onRowPrepared\":\r\n case \"onCellHoverChanged\":\r\n case \"keyboardNavigation\":\r\n this._invalidate(true, true);\r\n args.handled = true\r\n }\r\n }\r\n init() {\r\n this._scrollLeft = -1;\r\n this._columnsController = this.getController(\"columns\");\r\n this._dataController = this.getController(\"data\");\r\n this._delayedTemplates = [];\r\n this._templateDeferreds = new Set;\r\n this._templatesCache = {};\r\n this._templateTimeouts = new Set;\r\n this.createAction(\"onCellClick\");\r\n this.createAction(\"onRowClick\");\r\n this.createAction(\"onCellDblClick\");\r\n this.createAction(\"onRowDblClick\");\r\n this.createAction(\"onCellHoverChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onCellPrepared\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n });\r\n this.createAction(\"onRowPrepared\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\",\r\n afterExecute: e => {\r\n this._afterRowPrepared(e)\r\n }\r\n });\r\n this._columnsController.columnsChanged.add(this._columnOptionChanged.bind(this));\r\n this._dataController && this._dataController.changed.add(this._handleDataChanged.bind(this))\r\n }\r\n _afterRowPrepared(e) {}\r\n _handleDataChanged() {}\r\n callbackNames() {\r\n return [\"scrollChanged\"]\r\n }\r\n _updateScrollLeftPosition() {\r\n var scrollLeft = this._scrollLeft;\r\n if (scrollLeft >= 0) {\r\n this._scrollLeft = 0;\r\n this.scrollTo({\r\n left: scrollLeft\r\n })\r\n }\r\n }\r\n scrollTo(pos) {\r\n var $element = this.element();\r\n var $scrollContainer = $element && $element.children(\".\".concat(this.addWidgetPrefix(SCROLL_CONTAINER_CLASS))).not(\".\".concat(this.addWidgetPrefix(CONTENT_FIXED_CLASS)));\r\n if (isDefined(pos) && isDefined(pos.left) && this._scrollLeft !== pos.left) {\r\n this._scrollLeft = pos.left;\r\n $scrollContainer && $scrollContainer.scrollLeft(pos.left)\r\n }\r\n }\r\n _getContent(isFixedTableRendering) {\r\n var _a;\r\n return null === (_a = this._tableElement) || void 0 === _a ? void 0 : _a.parent()\r\n }\r\n _removeContent(isFixedTableRendering) {\r\n var $scrollContainer = this._getContent(isFixedTableRendering);\r\n if (null === $scrollContainer || void 0 === $scrollContainer ? void 0 : $scrollContainer.length) {\r\n $scrollContainer.remove()\r\n }\r\n }\r\n _wrapTableInScrollContainer($table, isFixedTableRendering) {\r\n var $scrollContainer = $(\"
\");\r\n var useNative = this.option(\"scrolling.useNative\");\r\n if (false === useNative || \"auto\" === useNative && !nativeScrolling) {\r\n $scrollContainer.addClass(this.addWidgetPrefix(SCROLLABLE_SIMULATED_CLASS))\r\n }\r\n eventsEngine.on($scrollContainer, \"scroll\", () => {\r\n var scrollLeft = $scrollContainer.scrollLeft();\r\n if (scrollLeft !== this._scrollLeft) {\r\n this.scrollChanged.fire({\r\n left: scrollLeft\r\n }, this.name)\r\n }\r\n });\r\n $scrollContainer.addClass(this.addWidgetPrefix(CONTENT_CLASS)).addClass(this.addWidgetPrefix(SCROLL_CONTAINER_CLASS)).append($table).appendTo(this.element());\r\n this.setAria(\"role\", \"presentation\", $scrollContainer);\r\n return $scrollContainer\r\n }\r\n needWaitAsyncTemplates() {\r\n return this.option(\"templatesRenderAsynchronously\") && false === this.option(\"renderAsync\")\r\n }\r\n waitAsyncTemplates() {\r\n var forceWaiting = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : false;\r\n var result = new Deferred;\r\n var needWaitAsyncTemplates = forceWaiting || this.needWaitAsyncTemplates();\r\n if (!needWaitAsyncTemplates) {\r\n return result.resolve()\r\n }\r\n var waitTemplatesRecursion = () => when.apply(this, Array.from(this._templateDeferreds)).done(() => {\r\n if (this.isDisposed()) {\r\n result.reject()\r\n } else if (this._templateDeferreds.size > 0) {\r\n waitTemplatesRecursion()\r\n } else {\r\n result.resolve()\r\n }\r\n }).fail(result.reject);\r\n waitTemplatesRecursion();\r\n return result.promise()\r\n }\r\n _updateContent($newTableElement, change, isFixedTableRendering) {\r\n return this.waitAsyncTemplates().done(() => {\r\n this._removeContent(isFixedTableRendering);\r\n this.setTableElement($newTableElement, isFixedTableRendering);\r\n this._wrapTableInScrollContainer($newTableElement, isFixedTableRendering)\r\n })\r\n }\r\n _findContentElement() {}\r\n _getWidths($cellElements) {\r\n if (!$cellElements) {\r\n return []\r\n }\r\n var result = [];\r\n var cellElements = $cellElements.toArray();\r\n cellElements.forEach(cell => {\r\n var width = cell.offsetWidth;\r\n if (cell.getBoundingClientRect) {\r\n var rect = getBoundingRect(cell);\r\n if (rect.width > cell.offsetWidth - 1) {\r\n width = rect.width\r\n }\r\n }\r\n result.push(width)\r\n });\r\n return result\r\n }\r\n getColumnWidths($tableElement) {\r\n (this.option(\"forceApplyBindings\") || noop)();\r\n $tableElement = null !== $tableElement && void 0 !== $tableElement ? $tableElement : this.getTableElement();\r\n if ($tableElement) {\r\n var $rows = $tableElement.children(\"tbody:not(.dx-header)\").children();\r\n for (var i = 0; i < $rows.length; i++) {\r\n var $row = $rows.eq(i);\r\n var isGroupRow = $row.hasClass(GROUP_ROW_CLASS);\r\n var isDetailRow = $row.hasClass(DETAIL_ROW_CLASS);\r\n var isErrorRow = $row.hasClass(ERROR_ROW_CLASS);\r\n var isRowVisible = \"none\" !== $row.get(0).style.display && !$row.hasClass(\"dx-state-invisible\");\r\n var isRelevantRow = !isGroupRow && !isDetailRow && !isErrorRow;\r\n if (isRowVisible && isRelevantRow) {\r\n var $cells = $row.children(\"td\");\r\n var result = this._getWidths($cells);\r\n return result\r\n }\r\n }\r\n }\r\n return []\r\n }\r\n getVisibleColumnIndex(columnIndex, rowIndex) {\r\n return columnIndex\r\n }\r\n setColumnWidths(_ref2) {\r\n var {\r\n widths: widths,\r\n optionNames: optionNames\r\n } = _ref2;\r\n var $tableElement = this.getTableElement();\r\n if (!(null === $tableElement || void 0 === $tableElement ? void 0 : $tableElement.length) || !widths) {\r\n return\r\n }\r\n var columns = this.getColumns();\r\n var columnAutoWidth = this.option(\"columnAutoWidth\");\r\n var $cols = $tableElement.children(\"colgroup\").children(\"col\");\r\n $cols.toArray().forEach(col => col.removeAttribute(\"style\"));\r\n columns.forEach((column, columnIndex) => {\r\n if (columnAutoWidth && column.width && !column.command) {\r\n var width = getWidthStyle(column.visibleWidth || column.width);\r\n var minWidth = getWidthStyle(column.minWidth || width);\r\n var $rows = $tableElement.children().children(\".dx-row\").not(\".\".concat(DETAIL_ROW_CLASS));\r\n for (var rowIndex = 0; rowIndex < $rows.length; rowIndex++) {\r\n var $row = $rows.eq(rowIndex);\r\n var visibleIndex = this.getVisibleColumnIndex(columnIndex, rowIndex);\r\n var $cell = $row.hasClass(GROUP_ROW_CLASS) ? $row.find(\"td[aria-colindex='\".concat(visibleIndex + 1, \"']:not(.\").concat(GROUP_CELL_CLASS, \")\")) : $row.find(\"td\").eq(visibleIndex);\r\n var cell = $cell.get(0);\r\n if (cell) {\r\n setCellWidth(cell, column, width);\r\n cell.style.minWidth = minWidth\r\n }\r\n }\r\n }\r\n var colWidth = normalizeWidth(widths[columnIndex]);\r\n if (isDefined(colWidth)) {\r\n setWidth($cols.eq(columnIndex), colWidth)\r\n }\r\n })\r\n }\r\n getCellElements(rowIndex) {\r\n return this._getCellElementsCore(rowIndex)\r\n }\r\n _getCellElementsCore(rowIndex) {\r\n if (rowIndex < 0) {\r\n return\r\n }\r\n var $row = this._getRowElements().eq(rowIndex);\r\n return $row.children()\r\n }\r\n _getCellElement(rowIndex, columnIdentifier) {\r\n var $cells = this.getCellElements(rowIndex);\r\n var columnVisibleIndex = this._getVisibleColumnIndex($cells, rowIndex, columnIdentifier);\r\n if (!(null === $cells || void 0 === $cells ? void 0 : $cells.length) || columnVisibleIndex < 0) {\r\n return\r\n }\r\n var $cell = $cells.eq(columnVisibleIndex);\r\n return $cell.length > 0 ? $cell : void 0\r\n }\r\n _getRowElement(rowIndex) {\r\n var that = this;\r\n var $rowElement = $();\r\n var $tableElements = that.getTableElements();\r\n iteratorUtils.each($tableElements, (_, tableElement) => {\r\n $rowElement = $rowElement.add(that._getRowElements($(tableElement)).eq(rowIndex))\r\n });\r\n if ($rowElement.length) {\r\n return $rowElement\r\n }\r\n return\r\n }\r\n getCellElement(rowIndex, columnIdentifier) {\r\n var $cell = this._getCellElement(rowIndex, columnIdentifier);\r\n if ($cell) {\r\n return getPublicElement($cell)\r\n }\r\n return\r\n }\r\n getRowElement(rowIndex) {\r\n var $rows = this._getRowElement(rowIndex);\r\n var elements = [];\r\n if ($rows && !getPublicElement($rows).get) {\r\n for (var i = 0; i < $rows.length; i++) {\r\n elements.push($rows[i])\r\n }\r\n } else {\r\n elements = $rows\r\n }\r\n return elements\r\n }\r\n _getVisibleColumnIndex($cells, rowIndex, columnIdentifier) {\r\n if (isString(columnIdentifier)) {\r\n var columnIndex = this._columnsController.columnOption(columnIdentifier, \"index\");\r\n return this._columnsController.getVisibleIndex(columnIndex)\r\n }\r\n return columnIdentifier\r\n }\r\n getColumnElements() {}\r\n getColumns(rowIndex) {\r\n return this._columnsController.getVisibleColumns(rowIndex)\r\n }\r\n getCell(cellPosition, rows, cells) {\r\n var $rows = rows || this._getRowElements();\r\n var $cells;\r\n if ($rows.length > 0 && cellPosition.rowIndex >= 0) {\r\n if (\"virtual\" !== this.option(\"scrolling.mode\") && \"virtual\" !== this.option(\"scrolling.rowRenderingMode\")) {\r\n cellPosition.rowIndex = cellPosition.rowIndex < $rows.length ? cellPosition.rowIndex : $rows.length - 1\r\n }\r\n $cells = cells || this.getCellElements(cellPosition.rowIndex);\r\n if ((null === $cells || void 0 === $cells ? void 0 : $cells.length) > 0) {\r\n return $cells.eq($cells.length > cellPosition.columnIndex ? cellPosition.columnIndex : $cells.length - 1)\r\n }\r\n }\r\n }\r\n getRowsCount() {\r\n var tableElement = this.getTableElement();\r\n if (tableElement && 1 === tableElement.length) {\r\n return tableElement[0].rows.length\r\n }\r\n return 0\r\n }\r\n _getRowElementsCore(tableElement) {\r\n tableElement = tableElement || this.getTableElement();\r\n if (tableElement) {\r\n var hasRowTemplate = this.option().rowTemplate || this.option(\"dataRowTemplate\");\r\n var tBodies = hasRowTemplate && tableElement.find(\"> tbody.\".concat(ROW_CLASS));\r\n return tBodies && tBodies.length ? tBodies : tableElement.find(\"> tbody > \" + \".\".concat(ROW_CLASS, \", > .\").concat(ROW_CLASS))\r\n }\r\n return $()\r\n }\r\n _getRowElements(tableElement) {\r\n return this._getRowElementsCore(tableElement)\r\n }\r\n getRowIndex($row) {\r\n return this._getRowElements().index($row)\r\n }\r\n getBoundingRect() {}\r\n getName() {}\r\n setScrollerSpacing(width) {\r\n var $element = this.element();\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n $element && $element.css({\r\n paddingLeft: rtlEnabled ? width : \"\",\r\n paddingRight: !rtlEnabled ? width : \"\"\r\n })\r\n }\r\n isScrollbarVisible(isHorizontal) {\r\n var $element = this.element();\r\n var $tableElement = this._tableElement;\r\n if ($element && $tableElement) {\r\n return isHorizontal ? getOuterWidth($tableElement) - getWidth($element) > 0 : getOuterHeight($tableElement) - getHeight($element) > 0\r\n }\r\n return false\r\n }\r\n isDisposed() {\r\n var _a;\r\n return null === (_a = this.component) || void 0 === _a ? void 0 : _a._disposed\r\n }\r\n dispose() {\r\n var _a, _b;\r\n if (hasWindow()) {\r\n var window = getWindow();\r\n null === (_a = this._templateTimeouts) || void 0 === _a ? void 0 : _a.forEach(templateTimeout => window.clearTimeout(templateTimeout));\r\n null === (_b = this._templateTimeouts) || void 0 === _b ? void 0 : _b.clear()\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/column_headers/m_column_headers.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 $ from \"../../../../core/renderer\";\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} from \"../../../../core/utils/size\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport {\r\n registerKeyboardAction\r\n} from \"../m_accessibility\";\r\nimport {\r\n ColumnsView\r\n} from \"../views/m_columns_view\";\r\nvar CELL_CONTENT_CLASS = \"text-content\";\r\nvar HEADERS_CLASS = \"headers\";\r\nvar NOWRAP_CLASS = \"nowrap\";\r\nvar ROW_CLASS_SELECTOR = \".dx-row\";\r\nvar HEADER_ROW_CLASS = \"dx-header-row\";\r\nvar COLUMN_LINES_CLASS = \"dx-column-lines\";\r\nvar CONTEXT_MENU_SORT_ASC_ICON = \"context-menu-sort-asc\";\r\nvar CONTEXT_MENU_SORT_DESC_ICON = \"context-menu-sort-desc\";\r\nvar CONTEXT_MENU_SORT_NONE_ICON = \"context-menu-sort-none\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar VISIBILITY_HIDDEN_CLASS = \"dx-visibility-hidden\";\r\nvar TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX = \"dx-text-content-alignment-\";\r\nvar SORT_INDICATOR_CLASS = \"dx-sort-indicator\";\r\nvar SORT_INDEX_INDICATOR_CLASS = \"dx-sort-index-indicator\";\r\nvar HEADER_FILTER_CLASS_SELECTOR = \".dx-header-filter\";\r\nvar HEADER_FILTER_INDICATOR_CLASS = \"dx-header-filter-indicator\";\r\nvar MULTI_ROW_HEADER_CLASS = \"dx-header-multi-row\";\r\nvar LINK = \"dx-link\";\r\nexport var columnHeadersModule = {\r\n defaultOptions: () => ({\r\n showColumnHeaders: true,\r\n cellHintEnabled: true\r\n }),\r\n views: {\r\n columnHeadersView: ColumnsView.inherit(function() {\r\n var createCellContent = function(that, $cell, options) {\r\n var $cellContent = $(\"
\").addClass(that.addWidgetPrefix(CELL_CONTENT_CLASS));\r\n that.setAria(\"role\", \"presentation\", $cellContent);\r\n addCssClassesToCellContent(that, $cell, options.column, $cellContent);\r\n var showColumnLines = that.option(\"showColumnLines\");\r\n var contentAlignment = that.getController(\"columns\").getHeaderContentAlignment(options.column.alignment);\r\n return $cellContent[showColumnLines || \"right\" === contentAlignment ? \"appendTo\" : \"prependTo\"]($cell)\r\n };\r\n\r\n function addCssClassesToCellContent(that, $cell, column, $cellContent) {\r\n var $indicatorElements = that._getIndicatorElements($cell, true);\r\n var $visibleIndicatorElements = that._getIndicatorElements($cell);\r\n var indicatorCount = $indicatorElements && $indicatorElements.length;\r\n var columnAlignment = that._getColumnAlignment(column.alignment);\r\n var sortIndicatorClassName = \".\".concat(that._getIndicatorClassName(\"sort\"));\r\n var sortIndexIndicatorClassName = \".\".concat(that._getIndicatorClassName(\"sortIndex\"));\r\n var $sortIndicator = $visibleIndicatorElements.filter(sortIndicatorClassName);\r\n var $sortIndexIndicator = $visibleIndicatorElements.children().filter(sortIndexIndicatorClassName);\r\n $cellContent = $cellContent || $cell.children(\".\".concat(that.addWidgetPrefix(CELL_CONTENT_CLASS)));\r\n $cellContent.toggleClass(TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX + columnAlignment, indicatorCount > 0).toggleClass(TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX + (\"left\" === columnAlignment ? \"right\" : \"left\"), indicatorCount > 0 && \"center\" === column.alignment).toggleClass(SORT_INDICATOR_CLASS, !!$sortIndicator.length).toggleClass(SORT_INDEX_INDICATOR_CLASS, !!$sortIndexIndicator.length).toggleClass(HEADER_FILTER_INDICATOR_CLASS, !!$visibleIndicatorElements.filter(\".\".concat(that._getIndicatorClassName(\"headerFilter\"))).length)\r\n }\r\n var members = {\r\n _createTable() {\r\n var $table = this.callBase.apply(this, arguments);\r\n eventsEngine.on($table, \"mousedown selectstart\", this.createAction(e => {\r\n var {\r\n event: event\r\n } = e;\r\n if (event.shiftKey) {\r\n event.preventDefault()\r\n }\r\n }));\r\n return $table\r\n },\r\n _isLegacyKeyboardNavigation() {\r\n return this.option(\"useLegacyKeyboardNavigation\")\r\n },\r\n _getDefaultTemplate(column) {\r\n var that = this;\r\n return function($container, options) {\r\n var {\r\n caption: caption\r\n } = column;\r\n var needCellContent = !column.command || caption && \"expand\" !== column.command;\r\n if (\"empty\" === column.command) {\r\n that._renderEmptyMessage($container, options)\r\n } else if (needCellContent) {\r\n var $content = createCellContent(that, $container, options);\r\n $content.text(caption)\r\n } else if (column.command) {\r\n $container.html(\" \")\r\n }\r\n }\r\n },\r\n _renderEmptyMessage($container, options) {\r\n var textEmpty = this._getEmptyHeaderText();\r\n if (!textEmpty) {\r\n $container.html(\" \");\r\n return\r\n }\r\n var $cellContent = createCellContent(this, $container, options);\r\n var needSplit = textEmpty.includes(\"{0}\");\r\n if (needSplit) {\r\n var [leftPart, rightPart] = textEmpty.split(\"{0}\");\r\n var columnChooserTitle = messageLocalization.format(\"dxDataGrid-emptyHeaderColumnChooserText\");\r\n var columnChooserView = this.component.getView(\"columnChooserView\");\r\n var $link = $(\"\").text(columnChooserTitle).addClass(LINK);\r\n eventsEngine.on($link, \"click\", this.createAction(() => columnChooserView.showColumnChooser()));\r\n $cellContent.append(domAdapter.createTextNode(leftPart)).append($link).append(domAdapter.createTextNode(rightPart))\r\n } else {\r\n $cellContent.text(textEmpty)\r\n }\r\n },\r\n _getEmptyHeaderText() {\r\n var hasHiddenColumns = !!this.component.getView(\"columnChooserView\").hasHiddenColumns();\r\n var hasGroupedColumns = !!this.component.getView(\"headerPanel\").hasGroupedColumns();\r\n switch (true) {\r\n case hasHiddenColumns && hasGroupedColumns:\r\n return messageLocalization.format(\"dxDataGrid-emptyHeaderWithColumnChooserAndGroupPanelText\");\r\n case hasGroupedColumns:\r\n return messageLocalization.format(\"dxDataGrid-emptyHeaderWithGroupPanelText\");\r\n case hasHiddenColumns:\r\n return messageLocalization.format(\"dxDataGrid-emptyHeaderWithColumnChooserText\");\r\n default:\r\n return \"\"\r\n }\r\n },\r\n _getHeaderTemplate(column) {\r\n return column.headerCellTemplate || {\r\n allowRenderToDetachedContainer: true,\r\n render: this._getDefaultTemplate(column)\r\n }\r\n },\r\n _processTemplate(template, options) {\r\n var that = this;\r\n var resultTemplate;\r\n var {\r\n column: column\r\n } = options;\r\n var renderingTemplate = that.callBase(template);\r\n if (\"header\" === options.rowType && renderingTemplate && column.headerCellTemplate && !column.command) {\r\n resultTemplate = {\r\n render(options) {\r\n var $content = createCellContent(that, options.container, options.model);\r\n renderingTemplate.render(extend({}, options, {\r\n container: $content\r\n }))\r\n }\r\n }\r\n } else {\r\n resultTemplate = renderingTemplate\r\n }\r\n return resultTemplate\r\n },\r\n _handleDataChanged(e) {\r\n if (\"refresh\" !== e.changeType) {\r\n return\r\n }\r\n if (this._isGroupingChanged || this._requireReady) {\r\n this._isGroupingChanged = false;\r\n this.render()\r\n }\r\n },\r\n _renderCell($row, options) {\r\n var $cell = this.callBase($row, options);\r\n if (\"header\" === options.row.rowType) {\r\n $cell.addClass(CELL_FOCUS_DISABLED_CLASS);\r\n if (!this._isLegacyKeyboardNavigation()) {\r\n if (options.column && !options.column.type) {\r\n $cell.attr(\"tabindex\", this.option(\"tabindex\") || 0)\r\n }\r\n }\r\n }\r\n return $cell\r\n },\r\n _setCellAriaAttributes($cell, cellOptions) {\r\n this.callBase($cell, cellOptions);\r\n if (\"header\" === cellOptions.rowType) {\r\n if (!cellOptions.column.type) {\r\n this.setAria(\"role\", \"columnheader\", $cell)\r\n }\r\n if (cellOptions.column && !cellOptions.column.command && !cellOptions.column.isBand) {\r\n $cell.attr(\"id\", cellOptions.column.headerId);\r\n this.setAria(\"label\", \"\".concat(messageLocalization.format(\"dxDataGrid-ariaColumn\"), \" \").concat(cellOptions.column.caption), $cell)\r\n }\r\n }\r\n },\r\n _createRow(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n $row.toggleClass(COLUMN_LINES_CLASS, this.option(\"showColumnLines\"));\r\n if (\"header\" === row.rowType) {\r\n $row.addClass(HEADER_ROW_CLASS);\r\n if (!this._isLegacyKeyboardNavigation()) {\r\n registerKeyboardAction(\"columnHeaders\", this, $row, \"td\", this._handleActionKeyDown.bind(this))\r\n }\r\n }\r\n return $row\r\n },\r\n _handleActionKeyDown(args) {\r\n var {\r\n event: event\r\n } = args;\r\n var $target = $(event.target);\r\n this._lastActionElement = event.target;\r\n if ($target.is(HEADER_FILTER_CLASS_SELECTOR)) {\r\n var headerFilterController = this.getController(\"headerFilter\");\r\n var $column = $target.closest(\"td\");\r\n var columnIndex = this.getColumnIndexByElement($column);\r\n if (columnIndex >= 0) {\r\n headerFilterController.showHeaderFilterMenu(columnIndex, false)\r\n }\r\n } else {\r\n var $row = $target.closest(ROW_CLASS_SELECTOR);\r\n this._processHeaderAction(event, $row)\r\n }\r\n event.preventDefault()\r\n },\r\n _renderCore() {\r\n var $container = this.element();\r\n var change = {};\r\n if (this._tableElement && !this._dataController.isLoaded() && !this._hasRowElements) {\r\n return\r\n }\r\n $container.addClass(this.addWidgetPrefix(HEADERS_CLASS)).toggleClass(this.addWidgetPrefix(NOWRAP_CLASS), !this.option(\"wordWrapEnabled\")).empty();\r\n this.setAria(\"role\", \"presentation\", $container);\r\n var deferred = this._updateContent(this._renderTable({\r\n change: change\r\n }), change);\r\n if (this.getRowCount() > 1) {\r\n $container.addClass(MULTI_ROW_HEADER_CLASS)\r\n }\r\n this.callBase.apply(this, arguments);\r\n return deferred\r\n },\r\n _renderRows() {\r\n if (this._dataController.isLoaded() || this._hasRowElements) {\r\n this.callBase.apply(this, arguments);\r\n this._hasRowElements = true\r\n }\r\n },\r\n _renderRow($table, options) {\r\n var rowIndex = 1 === this.getRowCount() ? null : options.row.rowIndex;\r\n options.columns = this.getColumns(rowIndex);\r\n this.callBase($table, options)\r\n },\r\n _createCell(options) {\r\n var {\r\n column: column\r\n } = options;\r\n var $cellElement = this.callBase.apply(this, arguments);\r\n column.rowspan > 1 && \"header\" === options.rowType && $cellElement.attr(\"rowSpan\", column.rowspan);\r\n return $cellElement\r\n },\r\n _getRows() {\r\n var result = [];\r\n var rowCount = this.getRowCount();\r\n if (this.option(\"showColumnHeaders\")) {\r\n for (var i = 0; i < rowCount; i++) {\r\n result.push({\r\n rowType: \"header\",\r\n rowIndex: i\r\n })\r\n }\r\n }\r\n return result\r\n },\r\n _getCellTemplate(options) {\r\n if (\"header\" === options.rowType) {\r\n return this._getHeaderTemplate(options.column)\r\n }\r\n },\r\n _columnOptionChanged(e) {\r\n var {\r\n changeTypes: changeTypes\r\n } = e;\r\n var {\r\n optionNames: optionNames\r\n } = e;\r\n if (changeTypes.grouping || changeTypes.groupExpanding) {\r\n if (changeTypes.grouping) {\r\n this._isGroupingChanged = true\r\n }\r\n return\r\n }\r\n this.callBase(e);\r\n if (optionNames.width || optionNames.visible) {\r\n this.resizeCompleted.fire()\r\n }\r\n },\r\n _isElementVisible: elementOptions => elementOptions && elementOptions.visible,\r\n _alignCaptionByCenter($cell) {\r\n var $indicatorsContainer = this._getIndicatorContainer($cell, true);\r\n if ($indicatorsContainer && $indicatorsContainer.length) {\r\n $indicatorsContainer.filter(\".\".concat(VISIBILITY_HIDDEN_CLASS)).remove();\r\n $indicatorsContainer = this._getIndicatorContainer($cell);\r\n $indicatorsContainer.clone().addClass(VISIBILITY_HIDDEN_CLASS).css(\"float\", \"\").insertBefore($cell.children(\".\".concat(this.addWidgetPrefix(CELL_CONTENT_CLASS))))\r\n }\r\n },\r\n _updateCell($cell, options) {\r\n if (\"header\" === options.rowType && \"center\" === options.column.alignment) {\r\n this._alignCaptionByCenter($cell)\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _updateIndicator($cell, column, indicatorName) {\r\n var $indicatorElement = this.callBase.apply(this, arguments);\r\n if (\"center\" === column.alignment) {\r\n this._alignCaptionByCenter($cell)\r\n }\r\n addCssClassesToCellContent(this, $cell, column);\r\n return $indicatorElement\r\n },\r\n _getIndicatorContainer($cell, returnAll) {\r\n var $indicatorsContainer = this.callBase($cell);\r\n return returnAll ? $indicatorsContainer : $indicatorsContainer.filter(\":not(.\".concat(VISIBILITY_HIDDEN_CLASS, \")\"))\r\n },\r\n _isSortableElement: () => true,\r\n getHeadersRowHeight() {\r\n var $tableElement = this.getTableElement();\r\n var $headerRows = $tableElement && $tableElement.find(\".\".concat(HEADER_ROW_CLASS));\r\n return $headerRows && $headerRows.toArray().reduce((sum, headerRow) => sum + getHeight(headerRow), 0) || 0\r\n },\r\n getHeaderElement(index) {\r\n var columnElements = this.getColumnElements();\r\n return columnElements && columnElements.eq(index)\r\n },\r\n getColumnElements(index, bandColumnIndex) {\r\n var that = this;\r\n var $cellElement;\r\n var columnsController = that._columnsController;\r\n var rowCount = that.getRowCount();\r\n if (that.option(\"showColumnHeaders\")) {\r\n if (rowCount > 1 && (!isDefined(index) || isDefined(bandColumnIndex))) {\r\n var result = [];\r\n var visibleColumns = isDefined(bandColumnIndex) ? columnsController.getChildrenByBandColumn(bandColumnIndex, true) : columnsController.getVisibleColumns();\r\n each(visibleColumns, (_, column) => {\r\n var rowIndex = isDefined(index) ? index : columnsController.getRowIndex(column.index);\r\n $cellElement = that._getCellElement(rowIndex, columnsController.getVisibleIndex(column.index, rowIndex));\r\n $cellElement && result.push($cellElement.get(0))\r\n });\r\n return $(result)\r\n }\r\n if (!index || index < rowCount) {\r\n return that.getCellElements(index || 0)\r\n }\r\n }\r\n },\r\n getColumnIndexByElement($cell) {\r\n var cellIndex = this.getCellIndex($cell);\r\n var $row = $cell.closest(\".dx-row\");\r\n var {\r\n rowIndex: rowIndex\r\n } = $row[0];\r\n var column = this.getColumns(rowIndex)[cellIndex];\r\n return column ? column.index : -1\r\n },\r\n getVisibleColumnIndex(columnIndex, rowIndex) {\r\n var column = this.getColumns()[columnIndex];\r\n return column ? this._columnsController.getVisibleIndex(column.index, rowIndex) : -1\r\n },\r\n getColumnWidths() {\r\n var $columnElements = this.getColumnElements();\r\n if ($columnElements && $columnElements.length) {\r\n return this._getWidths($columnElements)\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n allowDragging(column) {\r\n var rowIndex = column && this._columnsController.getRowIndex(column.index);\r\n var columns = this.getColumns(rowIndex);\r\n var isReorderingEnabled = this.option(\"allowColumnReordering\") || this._columnsController.isColumnOptionUsed(\"allowReordering\");\r\n return isReorderingEnabled && column.allowReordering && columns.length > 1\r\n },\r\n getBoundingRect() {\r\n var $columnElements = this.getColumnElements();\r\n if ($columnElements && $columnElements.length) {\r\n var offset = this.getTableElement().offset();\r\n return {\r\n top: offset.top\r\n }\r\n }\r\n return null\r\n },\r\n getName: () => \"headers\",\r\n getColumnCount() {\r\n var $columnElements = this.getColumnElements();\r\n return $columnElements ? $columnElements.length : 0\r\n },\r\n isVisible() {\r\n return this.option(\"showColumnHeaders\")\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"showColumnHeaders\":\r\n case \"wordWrapEnabled\":\r\n case \"showColumnLines\":\r\n this._invalidate(true, true);\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n getHeight() {\r\n return this.getElementHeight()\r\n },\r\n getContextMenuItems(options) {\r\n var that = this;\r\n var {\r\n column: column\r\n } = options;\r\n if (options.row && (\"header\" === options.row.rowType || \"detailAdaptive\" === options.row.rowType)) {\r\n var sortingOptions = that.option(\"sorting\");\r\n if (sortingOptions && \"none\" !== sortingOptions.mode && column && column.allowSorting) {\r\n var onItemClick = function(params) {\r\n setTimeout(() => {\r\n that._columnsController.changeSortOrder(column.index, params.itemData.value)\r\n })\r\n };\r\n return [{\r\n text: sortingOptions.ascendingText,\r\n value: \"asc\",\r\n disabled: \"asc\" === column.sortOrder,\r\n icon: CONTEXT_MENU_SORT_ASC_ICON,\r\n onItemClick: onItemClick\r\n }, {\r\n text: sortingOptions.descendingText,\r\n value: \"desc\",\r\n disabled: \"desc\" === column.sortOrder,\r\n icon: CONTEXT_MENU_SORT_DESC_ICON,\r\n onItemClick: onItemClick\r\n }, {\r\n text: sortingOptions.clearText,\r\n value: \"none\",\r\n disabled: !column.sortOrder,\r\n icon: CONTEXT_MENU_SORT_NONE_ICON,\r\n onItemClick: onItemClick\r\n }]\r\n }\r\n }\r\n return\r\n },\r\n getRowCount() {\r\n return this._columnsController && this._columnsController.getRowCount()\r\n },\r\n setRowsOpacity(columnIndex, value, rowIndex) {\r\n var i;\r\n var columnElements;\r\n var rowCount = this.getRowCount();\r\n var columns = this._columnsController.getColumns();\r\n var column = columns && columns[columnIndex];\r\n var columnID = column && column.isBand && column.index;\r\n var setColumnOpacity = (column, index) => {\r\n if (column.ownerBand === columnID) {\r\n columnElements.eq(index).css({\r\n opacity: value\r\n });\r\n if (column.isBand) {\r\n this.setRowsOpacity(column.index, value, i + 1)\r\n }\r\n }\r\n };\r\n if (isDefined(columnID)) {\r\n rowIndex = rowIndex || 0;\r\n for (i = rowIndex; i < rowCount; i++) {\r\n columnElements = this.getCellElements(i);\r\n if (columnElements) {\r\n var rowColumns = this.getColumns(i);\r\n rowColumns.forEach(setColumnOpacity)\r\n }\r\n }\r\n }\r\n }\r\n };\r\n return members\r\n }())\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/m_core.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 modules from \"../../grids/grid_core/m_modules\";\r\nimport gridCoreUtils from \"../../grids/grid_core/m_utils\";\r\nexport default _extends(_extends(_extends({}, modules), gridCoreUtils), {\r\n modules: []\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/column_headers.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n columnHeadersModule\r\n} from \"../../../grids/grid_core/column_headers/m_column_headers\";\r\nimport gridCore from \"../m_core\";\r\nexport var ColumnHeadersView = columnHeadersModule.views.columnHeadersView;\r\ngridCore.registerModule(\"columnHeaders\", columnHeadersModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/columns_controller/const.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var USER_STATE_FIELD_NAMES_15_1 = [\"filterValues\", \"filterType\", \"fixed\", \"fixedPosition\"];\r\nexport var USER_STATE_FIELD_NAMES = [\"visibleIndex\", \"dataField\", \"name\", \"dataType\", \"width\", \"visible\", \"sortOrder\", \"lastSortOrder\", \"sortIndex\", \"groupIndex\", \"filterValue\", \"bufferedFilterValue\", \"selectedFilterOperation\", \"bufferedSelectedFilterOperation\", \"added\"].concat(USER_STATE_FIELD_NAMES_15_1);\r\nexport var IGNORE_COLUMN_OPTION_NAMES = {\r\n visibleWidth: true,\r\n bestFitWidth: true,\r\n bufferedFilterValue: true\r\n};\r\nexport var COMMAND_EXPAND_CLASS = \"dx-command-expand\";\r\nexport var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;\r\nexport var GROUP_COMMAND_COLUMN_NAME = \"groupExpand\";\r\nexport var DETAIL_COMMAND_COLUMN_NAME = \"detailExpand\";\r\nexport var COLUMN_OPTION_REGEXP = /columns\\[(\\d+)\\]\\.?/gi;\r\nexport var DEFAULT_COLUMN_OPTIONS = {\r\n visible: true,\r\n showInColumnChooser: true\r\n};\r\nexport var DATATYPE_OPERATIONS = {\r\n number: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"between\"],\r\n string: [\"contains\", \"notcontains\", \"startswith\", \"endswith\", \"=\", \"<>\"],\r\n date: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"between\"],\r\n datetime: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"between\"]\r\n};\r\nexport var COLUMN_INDEX_OPTIONS = {\r\n visibleIndex: true,\r\n groupIndex: true,\r\n grouped: true,\r\n sortIndex: true,\r\n sortOrder: true\r\n};\r\nexport var GROUP_LOCATION = \"group\";\r\nexport var COLUMN_CHOOSER_LOCATION = \"columnChooser\";\r\n","/**\r\n * DevExtreme (esm/core/utils/date_serialization.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport config from \"../config\";\r\nimport {\r\n getFormatter as getLDMLFormatter\r\n} from \"../../localization/ldml/date.formatter\";\r\nimport defaultDateNames from \"../../localization/default_date_names\";\r\nimport {\r\n isString,\r\n isDate,\r\n isNumeric as isNumber\r\n} from \"./type\";\r\nvar NUMBER_SERIALIZATION_FORMAT = \"number\";\r\nvar DATE_SERIALIZATION_FORMAT = \"yyyy/MM/dd\";\r\nvar DATETIME_SERIALIZATION_FORMAT = \"yyyy/MM/dd HH:mm:ss\";\r\nvar ISO8601_PATTERN = /^(\\d{4,})(-)?(\\d{2})(-)?(\\d{2})(?:T(\\d{2})(:)?(\\d{2})?(:)?(\\d{2}(?:\\.(\\d{1,3})\\d*)?)?)?(Z|([+-])(\\d{2})(:)?(\\d{2})?)?$/;\r\nvar ISO8601_TIME_PATTERN = /^(\\d{2}):(\\d{2})(:(\\d{2}))?$/;\r\nvar ISO8601_PATTERN_PARTS = [\"\", \"yyyy\", \"\", \"MM\", \"\", \"dd\", \"THH\", \"\", \"mm\", \"\", \"ss\", \".SSS\"];\r\nvar DATE_SERIALIZATION_PATTERN = /^(\\d{4})\\/(\\d{2})\\/(\\d{2})$/;\r\nvar MILLISECOND_LENGHT = 3;\r\nvar dateParser = function(text, skipISO8601Parsing) {\r\n var result;\r\n if (isString(text) && !skipISO8601Parsing) {\r\n result = parseISO8601String(text)\r\n }\r\n return result || parseDate(text)\r\n};\r\n\r\nfunction getTimePart(part) {\r\n return +part || 0\r\n}\r\n\r\nfunction parseDate(text) {\r\n var isDefaultSerializationFormat = getDateSerializationFormat(text) === DATE_SERIALIZATION_FORMAT;\r\n var parsedValue = !isDate(text) && Date.parse(text);\r\n if (!parsedValue && isDefaultSerializationFormat) {\r\n var parts = text.match(DATE_SERIALIZATION_PATTERN);\r\n if (parts) {\r\n var newDate = new Date(getTimePart(parts[1]), getTimePart(parts[2]), getTimePart(parts[3]));\r\n newDate.setFullYear(getTimePart(parts[1]));\r\n newDate.setMonth(getTimePart(parts[2]) - 1);\r\n newDate.setDate(getTimePart(parts[3]));\r\n return newDate\r\n }\r\n }\r\n return isNumber(parsedValue) ? new Date(parsedValue) : text\r\n}\r\n\r\nfunction parseISO8601String(text) {\r\n var parts = text.match(ISO8601_PATTERN);\r\n if (!parts) {\r\n parts = text.match(ISO8601_TIME_PATTERN);\r\n if (parts) {\r\n return new Date(0, 0, 0, getTimePart(parts[1]), getTimePart(parts[2]), getTimePart(parts[4]))\r\n }\r\n return\r\n }\r\n var year = getTimePart(parts[1]);\r\n var month = --parts[3];\r\n var day = parts[5];\r\n var timeZoneHour = 0;\r\n var timeZoneMinute = 0;\r\n var correctYear = d => {\r\n year < 100 && d.setFullYear(year);\r\n return d\r\n };\r\n timeZoneHour = getTimePart(parts[14]);\r\n timeZoneMinute = getTimePart(parts[16]);\r\n if (\"-\" === parts[13]) {\r\n timeZoneHour = -timeZoneHour;\r\n timeZoneMinute = -timeZoneMinute\r\n }\r\n var hour = getTimePart(parts[6]) - timeZoneHour;\r\n var minute = getTimePart(parts[8]) - timeZoneMinute;\r\n var second = getTimePart(parts[10]);\r\n var millisecond = function(part) {\r\n part = part || \"\";\r\n return getTimePart(part) * Math.pow(10, MILLISECOND_LENGHT - part.length)\r\n }(parts[11]);\r\n if (parts[12]) {\r\n return correctYear(new Date(Date.UTC(year, month, day, hour, minute, second, millisecond)))\r\n }\r\n return correctYear(new Date(year, month, day, hour, minute, second, millisecond))\r\n}\r\nvar getIso8601Format = function(text, useUtc) {\r\n var parts = text.match(ISO8601_PATTERN);\r\n var result = \"\";\r\n if (!parts) {\r\n parts = text.match(ISO8601_TIME_PATTERN);\r\n if (parts) {\r\n return parts[3] ? \"HH:mm:ss\" : \"HH:mm\"\r\n }\r\n return\r\n }\r\n for (var i = 1; i < ISO8601_PATTERN_PARTS.length; i++) {\r\n if (parts[i]) {\r\n result += ISO8601_PATTERN_PARTS[i] || parts[i]\r\n }\r\n }\r\n if (\"Z\" === parts[12]) {\r\n result += \"'Z'\"\r\n }\r\n if (parts[14]) {\r\n if (parts[15]) {\r\n result += \"xxx\"\r\n } else if (parts[16]) {\r\n result += \"xx\"\r\n } else {\r\n result += \"x\"\r\n }\r\n }\r\n return result\r\n};\r\nvar deserializeDate = function(value) {\r\n if (\"number\" === typeof value) {\r\n return new Date(value)\r\n }\r\n return dateParser(value, !config().forceIsoDateParsing)\r\n};\r\nvar serializeDate = function(value, serializationFormat) {\r\n if (!serializationFormat) {\r\n return value\r\n }\r\n if (!isDate(value)) {\r\n return null\r\n }\r\n if (serializationFormat === NUMBER_SERIALIZATION_FORMAT) {\r\n return value && value.valueOf ? value.valueOf() : null\r\n }\r\n return getLDMLFormatter(serializationFormat, defaultDateNames)(value)\r\n};\r\nvar getDateSerializationFormat = function(value) {\r\n if (\"number\" === typeof value) {\r\n return NUMBER_SERIALIZATION_FORMAT\r\n } else if (isString(value)) {\r\n var format;\r\n if (config().forceIsoDateParsing) {\r\n format = getIso8601Format(value)\r\n }\r\n if (format) {\r\n return format\r\n } else if (value.indexOf(\":\") >= 0) {\r\n return DATETIME_SERIALIZATION_FORMAT\r\n } else {\r\n return DATE_SERIALIZATION_FORMAT\r\n }\r\n } else if (value) {\r\n return null\r\n }\r\n};\r\nexport default {\r\n dateParser: dateParser,\r\n deserializeDate: deserializeDate,\r\n serializeDate: serializeDate,\r\n getDateSerializationFormat: getDateSerializationFormat\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/columns_controller/m_columns_controller_utils.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n normalizeIndexes\r\n} from \"../../../../core/utils/array\";\r\nimport {\r\n equalByValue\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n compileGetter,\r\n compileSetter\r\n} from \"../../../../core/utils/data\";\r\nimport dateSerialization from \"../../../../core/utils/date_serialization\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n deepExtendArraySafe\r\n} from \"../../../../core/utils/object\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../../../../core/utils/position\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isNumeric,\r\n isObject,\r\n isString,\r\n type\r\n} from \"../../../../core/utils/type\";\r\nimport variableWrapper from \"../../../../core/utils/variable_wrapper\";\r\nimport numberLocalization from \"../../../../localization/number\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n COLUMN_CHOOSER_LOCATION,\r\n COLUMN_INDEX_OPTIONS,\r\n DEFAULT_COLUMN_OPTIONS,\r\n GROUP_COMMAND_COLUMN_NAME,\r\n GROUP_LOCATION,\r\n IGNORE_COLUMN_OPTION_NAMES,\r\n USER_STATE_FIELD_NAMES,\r\n USER_STATE_FIELD_NAMES_15_1\r\n} from \"./const\";\r\nexport var setFilterOperationsAsDefaultValues = function(column) {\r\n column.filterOperations = column.defaultFilterOperations\r\n};\r\nvar globalColumnId = 1;\r\nexport var createColumn = function(that, columnOptions, userStateColumnOptions, bandColumn) {\r\n var commonColumnOptions = {};\r\n if (columnOptions) {\r\n if (isString(columnOptions)) {\r\n columnOptions = {\r\n dataField: columnOptions\r\n }\r\n }\r\n that.setName(columnOptions);\r\n var result = {};\r\n if (columnOptions.command) {\r\n result = deepExtendArraySafe(commonColumnOptions, columnOptions)\r\n } else {\r\n commonColumnOptions = that.getCommonSettings(columnOptions);\r\n if (userStateColumnOptions && userStateColumnOptions.name && userStateColumnOptions.dataField) {\r\n columnOptions = extend({}, columnOptions, {\r\n dataField: userStateColumnOptions.dataField\r\n })\r\n }\r\n var calculatedColumnOptions = that._createCalculatedColumnOptions(columnOptions, bandColumn);\r\n if (!columnOptions.type) {\r\n result = {\r\n headerId: \"dx-col-\".concat(globalColumnId++)\r\n }\r\n }\r\n result = deepExtendArraySafe(result, DEFAULT_COLUMN_OPTIONS);\r\n deepExtendArraySafe(result, commonColumnOptions);\r\n deepExtendArraySafe(result, calculatedColumnOptions);\r\n deepExtendArraySafe(result, columnOptions);\r\n deepExtendArraySafe(result, {\r\n selector: null\r\n })\r\n }\r\n if (columnOptions.filterOperations === columnOptions.defaultFilterOperations) {\r\n setFilterOperationsAsDefaultValues(result)\r\n }\r\n return result\r\n }\r\n};\r\nexport var createColumnsFromOptions = function createColumnsFromOptions(that, columnsOptions, bandColumn) {\r\n var result = [];\r\n if (columnsOptions) {\r\n each(columnsOptions, (index, columnOptions) => {\r\n var userStateColumnOptions = that._columnsUserState && checkUserStateColumn(columnOptions, that._columnsUserState[index]) && that._columnsUserState[index];\r\n var column = createColumn(that, columnOptions, userStateColumnOptions, bandColumn);\r\n if (column) {\r\n if (bandColumn) {\r\n column.ownerBand = bandColumn\r\n }\r\n result.push(column);\r\n if (column.columns) {\r\n result = result.concat(createColumnsFromOptions(that, column.columns, column));\r\n delete column.columns;\r\n column.hasColumns = true\r\n }\r\n }\r\n })\r\n }\r\n return result\r\n};\r\nexport var getParentBandColumns = function(columnIndex, columnParentByIndex) {\r\n var result = [];\r\n var parent = columnParentByIndex[columnIndex];\r\n while (parent) {\r\n result.unshift(parent);\r\n columnIndex = parent.index;\r\n parent = columnParentByIndex[columnIndex]\r\n }\r\n return result\r\n};\r\nexport var getChildrenByBandColumn = function getChildrenByBandColumn(columnIndex, columnChildrenByIndex, recursive) {\r\n var result = [];\r\n var children = columnChildrenByIndex[columnIndex];\r\n if (children) {\r\n for (var i = 0; i < children.length; i++) {\r\n var column = children[i];\r\n if (!isDefined(column.groupIndex) || column.showWhenGrouped) {\r\n result.push(column);\r\n if (recursive && column.isBand) {\r\n result = result.concat(getChildrenByBandColumn(column.index, columnChildrenByIndex, recursive))\r\n }\r\n }\r\n }\r\n }\r\n return result\r\n};\r\nexport var getColumnByIndexes = function(that, columnIndexes) {\r\n var result;\r\n var columns;\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var callbackFilter = function(column) {\r\n var ownerBand = result ? result.index : void 0;\r\n return column.ownerBand === ownerBand\r\n };\r\n if (bandColumnsCache.isPlain) {\r\n result = that._columns[columnIndexes[0]]\r\n } else {\r\n columns = that._columns.filter(callbackFilter);\r\n for (var i = 0; i < columnIndexes.length; i++) {\r\n result = columns[columnIndexes[i]];\r\n if (result) {\r\n columns = that._columns.filter(callbackFilter)\r\n }\r\n }\r\n }\r\n return result\r\n};\r\nexport var getColumnFullPath = function(that, column) {\r\n var result = [];\r\n var columns;\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var callbackFilter = function(item) {\r\n return item.ownerBand === column.ownerBand\r\n };\r\n if (bandColumnsCache.isPlain) {\r\n var columnIndex = that._columns.indexOf(column);\r\n if (columnIndex >= 0) {\r\n result = [\"columns[\".concat(columnIndex, \"]\")]\r\n }\r\n } else {\r\n columns = that._columns.filter(callbackFilter);\r\n while (columns.length && -1 !== columns.indexOf(column)) {\r\n result.unshift(\"columns[\".concat(columns.indexOf(column), \"]\"));\r\n column = bandColumnsCache.columnParentByIndex[column.index];\r\n columns = column ? that._columns.filter(callbackFilter) : []\r\n }\r\n }\r\n return result.join(\".\")\r\n};\r\nexport var calculateColspan = function calculateColspan(that, columnID) {\r\n var colspan = 0;\r\n var columns = that.getChildrenByBandColumn(columnID, true);\r\n each(columns, (_, column) => {\r\n if (column.isBand) {\r\n column.colspan = column.colspan || calculateColspan(that, column.index);\r\n colspan += column.colspan || 1\r\n } else {\r\n colspan += 1\r\n }\r\n });\r\n return colspan\r\n};\r\nexport var processBandColumns = function(that, columns, bandColumnsCache) {\r\n var rowspan;\r\n for (var i = 0; i < columns.length; i++) {\r\n var column = columns[i];\r\n if (column.visible || column.command) {\r\n if (column.isBand) {\r\n column.colspan = column.colspan || calculateColspan(that, column.index)\r\n }\r\n if (!column.isBand || !column.colspan) {\r\n rowspan = that.getRowCount();\r\n if (!column.command && (!isDefined(column.groupIndex) || column.showWhenGrouped)) {\r\n rowspan -= getParentBandColumns(column.index, bandColumnsCache.columnParentByIndex).length\r\n }\r\n if (rowspan > 1) {\r\n column.rowspan = rowspan\r\n }\r\n }\r\n }\r\n }\r\n};\r\nexport var getValueDataType = function(value) {\r\n var dataType = type(value);\r\n if (\"string\" !== dataType && \"boolean\" !== dataType && \"number\" !== dataType && \"date\" !== dataType && \"object\" !== dataType) {\r\n dataType = void 0\r\n }\r\n return dataType\r\n};\r\nexport var getSerializationFormat = function(dataType, value) {\r\n switch (dataType) {\r\n case \"date\":\r\n case \"datetime\":\r\n return dateSerialization.getDateSerializationFormat(value);\r\n case \"number\":\r\n if (isString(value)) {\r\n return \"string\"\r\n }\r\n if (isNumeric(value)) {\r\n return null\r\n }\r\n }\r\n};\r\nexport var updateSerializers = function(options, dataType) {\r\n if (!options.deserializeValue) {\r\n if (gridCoreUtils.isDateType(dataType)) {\r\n options.deserializeValue = function(value) {\r\n return dateSerialization.deserializeDate(value)\r\n };\r\n options.serializeValue = function(value) {\r\n return isString(value) ? value : dateSerialization.serializeDate(value, this.serializationFormat)\r\n }\r\n }\r\n if (\"number\" === dataType) {\r\n options.deserializeValue = function(value) {\r\n var parsedValue = parseFloat(value);\r\n return isNaN(parsedValue) ? value : parsedValue\r\n };\r\n options.serializeValue = function(value, target) {\r\n if (\"filter\" === target) {\r\n return value\r\n }\r\n return isDefined(value) && \"string\" === this.serializationFormat ? value.toString() : value\r\n }\r\n }\r\n }\r\n};\r\nexport var getAlignmentByDataType = function(dataType, isRTL) {\r\n switch (dataType) {\r\n case \"number\":\r\n return \"right\";\r\n case \"boolean\":\r\n return \"center\";\r\n default:\r\n return getDefaultAlignment(isRTL)\r\n }\r\n};\r\nexport var customizeTextForBooleanDataType = function(e) {\r\n if (true === e.value) {\r\n return this.trueText || \"true\"\r\n }\r\n if (false === e.value) {\r\n return this.falseText || \"false\"\r\n }\r\n return e.valueText || \"\"\r\n};\r\nexport var getCustomizeTextByDataType = function(dataType) {\r\n if (\"boolean\" === dataType) {\r\n return customizeTextForBooleanDataType\r\n }\r\n};\r\nexport var createColumnsFromDataSource = function(that, dataSource) {\r\n var firstItems = that._getFirstItems(dataSource);\r\n var fieldName;\r\n var processedFields = {};\r\n var result = [];\r\n for (var i = 0; i < firstItems.length; i++) {\r\n if (firstItems[i]) {\r\n for (fieldName in firstItems[i]) {\r\n if (!isFunction(firstItems[i][fieldName]) || variableWrapper.isWrapped(firstItems[i][fieldName])) {\r\n processedFields[fieldName] = true\r\n }\r\n }\r\n }\r\n }\r\n for (fieldName in processedFields) {\r\n if (0 !== fieldName.indexOf(\"__\")) {\r\n var column = createColumn(that, fieldName);\r\n result.push(column)\r\n }\r\n }\r\n return result\r\n};\r\nexport var updateColumnIndexes = function(that) {\r\n each(that._columns, (index, column) => {\r\n column.index = index\r\n });\r\n each(that._columns, (index, column) => {\r\n if (isObject(column.ownerBand)) {\r\n column.ownerBand = column.ownerBand.index\r\n }\r\n });\r\n each(that._commandColumns, (index, column) => {\r\n column.index = -(index + 1)\r\n })\r\n};\r\nexport var updateColumnGroupIndexes = function(that, currentColumn) {\r\n normalizeIndexes(that._columns, \"groupIndex\", currentColumn, column => {\r\n var {\r\n grouped: grouped\r\n } = column;\r\n delete column.grouped;\r\n return grouped\r\n })\r\n};\r\nexport var updateColumnSortIndexes = function(that, currentColumn) {\r\n each(that._columns, (index, column) => {\r\n if (isDefined(column.sortIndex) && !isSortOrderValid(column.sortOrder)) {\r\n delete column.sortIndex\r\n }\r\n });\r\n normalizeIndexes(that._columns, \"sortIndex\", currentColumn, column => !isDefined(column.groupIndex) && isSortOrderValid(column.sortOrder))\r\n};\r\nexport var updateColumnVisibleIndexes = function(that, currentColumn) {\r\n var column;\r\n var result = [];\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var bandedColumns = [];\r\n var columns = that._columns.filter(column => !column.command);\r\n for (var i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n var parentBandColumns = getParentBandColumns(i, bandColumnsCache.columnParentByIndex);\r\n if (parentBandColumns.length) {\r\n bandedColumns.push(column)\r\n } else {\r\n result.push(column)\r\n }\r\n }\r\n normalizeIndexes(bandedColumns, \"visibleIndex\", currentColumn);\r\n normalizeIndexes(result, \"visibleIndex\", currentColumn)\r\n};\r\nexport var getColumnIndexByVisibleIndex = function(that, visibleIndex, location) {\r\n var rowIndex = isObject(visibleIndex) ? visibleIndex.rowIndex : null;\r\n var columns = location === GROUP_LOCATION ? that.getGroupColumns() : location === COLUMN_CHOOSER_LOCATION ? that.getChooserColumns() : that.getVisibleColumns(rowIndex);\r\n var column;\r\n visibleIndex = isObject(visibleIndex) ? visibleIndex.columnIndex : visibleIndex;\r\n column = columns[visibleIndex];\r\n if (column && column.type === GROUP_COMMAND_COLUMN_NAME) {\r\n column = that._columns.filter(col => column.type === col.type)[0] || column\r\n }\r\n return column && isDefined(column.index) ? column.index : -1\r\n};\r\nexport var moveColumnToGroup = function(that, column, groupIndex) {\r\n var groupColumns = that.getGroupColumns();\r\n var i;\r\n if (groupIndex >= 0) {\r\n for (i = 0; i < groupColumns.length; i++) {\r\n if (groupColumns[i].groupIndex >= groupIndex) {\r\n groupColumns[i].groupIndex++\r\n }\r\n }\r\n } else {\r\n groupIndex = 0;\r\n for (i = 0; i < groupColumns.length; i++) {\r\n groupIndex = Math.max(groupIndex, groupColumns[i].groupIndex + 1)\r\n }\r\n }\r\n return groupIndex\r\n};\r\n\r\nfunction checkUserStateColumn(column, userStateColumn) {\r\n return column && userStateColumn && userStateColumn.name === (column.name || column.dataField) && (userStateColumn.dataField === column.dataField || column.name)\r\n}\r\nexport var applyUserState = function(that) {\r\n var columnsUserState = that._columnsUserState;\r\n var ignoreColumnOptionNames = that._ignoreColumnOptionNames || [];\r\n var columns = that._columns;\r\n var columnCountById = {};\r\n var resultColumns = [];\r\n var allColumnsHaveState = true;\r\n var userStateColumnIndexes = [];\r\n var column;\r\n var userStateColumnIndex;\r\n var i;\r\n\r\n function applyFieldsState(column, userStateColumn) {\r\n if (!userStateColumn) {\r\n return\r\n }\r\n for (var index = 0; index < USER_STATE_FIELD_NAMES.length; index++) {\r\n var fieldName = USER_STATE_FIELD_NAMES[index];\r\n if (ignoreColumnOptionNames.includes(fieldName)) {\r\n continue\r\n }\r\n if (\"dataType\" === fieldName) {\r\n column[fieldName] = column[fieldName] || userStateColumn[fieldName]\r\n } else if (USER_STATE_FIELD_NAMES_15_1.includes(fieldName)) {\r\n if (fieldName in userStateColumn) {\r\n column[fieldName] = userStateColumn[fieldName]\r\n }\r\n } else {\r\n if (\"selectedFilterOperation\" === fieldName && userStateColumn[fieldName]) {\r\n column.defaultSelectedFilterOperation = column[fieldName] || null\r\n }\r\n column[fieldName] = userStateColumn[fieldName]\r\n }\r\n }\r\n }\r\n\r\n function findUserStateColumn(columnsUserState, column) {\r\n var id = column.name || column.dataField;\r\n var count = columnCountById[id] || 0;\r\n for (var j = 0; j < columnsUserState.length; j++) {\r\n if (checkUserStateColumn(column, columnsUserState[j])) {\r\n if (count) {\r\n count--\r\n } else {\r\n columnCountById[id] = columnCountById[id] || 0;\r\n columnCountById[id]++;\r\n return j\r\n }\r\n }\r\n }\r\n return -1\r\n }\r\n if (columnsUserState) {\r\n for (i = 0; i < columns.length; i++) {\r\n userStateColumnIndex = findUserStateColumn(columnsUserState, columns[i]);\r\n allColumnsHaveState = allColumnsHaveState && userStateColumnIndex >= 0;\r\n userStateColumnIndexes.push(userStateColumnIndex)\r\n }\r\n for (i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n userStateColumnIndex = userStateColumnIndexes[i];\r\n if (that._hasUserState || allColumnsHaveState) {\r\n applyFieldsState(column, columnsUserState[userStateColumnIndex])\r\n }\r\n if (userStateColumnIndex >= 0 && isDefined(columnsUserState[userStateColumnIndex].initialIndex)) {\r\n resultColumns[userStateColumnIndex] = column\r\n } else {\r\n resultColumns.push(column)\r\n }\r\n }\r\n var hasAddedBands = false;\r\n for (i = 0; i < columnsUserState.length; i++) {\r\n var columnUserState = columnsUserState[i];\r\n if (columnUserState.added && findUserStateColumn(columns, columnUserState) < 0) {\r\n column = createColumn(that, columnUserState.added);\r\n applyFieldsState(column, columnUserState);\r\n resultColumns.push(column);\r\n if (columnUserState.added.columns) {\r\n hasAddedBands = true\r\n }\r\n }\r\n }\r\n if (hasAddedBands) {\r\n updateColumnIndexes(that);\r\n resultColumns = createColumnsFromOptions(that, resultColumns)\r\n }\r\n assignColumns(that, resultColumns)\r\n }\r\n};\r\nexport var updateIndexes = function(that, column) {\r\n updateColumnIndexes(that);\r\n updateColumnGroupIndexes(that, column);\r\n updateColumnSortIndexes(that, column);\r\n resetBandColumnsCache(that);\r\n updateColumnVisibleIndexes(that, column)\r\n};\r\nexport var resetColumnsCache = function(that) {\r\n that.resetColumnsCache()\r\n};\r\nexport function assignColumns(that, columns) {\r\n that._previousColumns = that._columns;\r\n that._columns = columns;\r\n resetColumnsCache(that);\r\n that.updateColumnDataTypes()\r\n}\r\nexport var updateColumnChanges = function(that, changeType, optionName, columnIndex) {\r\n var _a;\r\n var columnChanges = that._columnChanges || {\r\n optionNames: {\r\n length: 0\r\n },\r\n changeTypes: {\r\n length: 0\r\n },\r\n columnIndex: columnIndex\r\n };\r\n optionName = optionName || \"all\";\r\n optionName = optionName.split(\".\")[0];\r\n var {\r\n changeTypes: changeTypes\r\n } = columnChanges;\r\n if (changeType && !changeTypes[changeType]) {\r\n changeTypes[changeType] = true;\r\n changeTypes.length++\r\n }\r\n var {\r\n optionNames: optionNames\r\n } = columnChanges;\r\n if (optionName && !optionNames[optionName]) {\r\n optionNames[optionName] = true;\r\n optionNames.length++\r\n }\r\n if (void 0 === columnIndex || columnIndex !== columnChanges.columnIndex) {\r\n if (isDefined(columnIndex)) {\r\n null !== (_a = columnChanges.columnIndices) && void 0 !== _a ? _a : columnChanges.columnIndices = [];\r\n if (isDefined(columnChanges.columnIndex)) {\r\n columnChanges.columnIndices.push(columnChanges.columnIndex)\r\n }\r\n columnChanges.columnIndices.push(columnIndex)\r\n }\r\n delete columnChanges.columnIndex\r\n }\r\n that._columnChanges = columnChanges;\r\n resetColumnsCache(that)\r\n};\r\nexport var fireColumnsChanged = function(that) {\r\n var onColumnsChanging = that.option(\"onColumnsChanging\");\r\n var columnChanges = that._columnChanges;\r\n var reinitOptionNames = [\"dataField\", \"lookup\", \"dataType\", \"columns\"];\r\n if (that.isInitialized() && !that._updateLockCount && columnChanges) {\r\n if (onColumnsChanging) {\r\n that._updateLockCount++;\r\n onColumnsChanging(extend({\r\n component: that.component\r\n }, columnChanges));\r\n that._updateLockCount--\r\n }\r\n that._columnChanges = void 0;\r\n if (options = columnChanges.optionNames, options && reinitOptionNames.some(name => options[name])) {\r\n that._reinitAfterLookupChanges = null === columnChanges || void 0 === columnChanges ? void 0 : columnChanges.optionNames.lookup;\r\n that.reinit();\r\n that._reinitAfterLookupChanges = void 0\r\n } else {\r\n that.columnsChanged.fire(columnChanges)\r\n }\r\n }\r\n var options\r\n};\r\nexport var updateSortOrderWhenGrouping = function(that, column, groupIndex, prevGroupIndex) {\r\n var columnWasGrouped = prevGroupIndex >= 0;\r\n if (groupIndex >= 0) {\r\n if (!columnWasGrouped) {\r\n column.lastSortOrder = column.sortOrder\r\n }\r\n } else {\r\n var sortMode = that.option(\"sorting.mode\");\r\n var sortOrder = column.lastSortOrder;\r\n if (\"single\" === sortMode) {\r\n var sortedByAnotherColumn = that._columns.some(col => col !== column && isDefined(col.sortIndex));\r\n if (sortedByAnotherColumn) {\r\n sortOrder = void 0\r\n }\r\n }\r\n column.sortOrder = sortOrder\r\n }\r\n};\r\nexport var fireOptionChanged = function(that, options) {\r\n var {\r\n value: value\r\n } = options;\r\n var {\r\n optionName: optionName\r\n } = options;\r\n var {\r\n prevValue: prevValue\r\n } = options;\r\n var {\r\n fullOptionName: fullOptionName\r\n } = options;\r\n var fullOptionPath = \"\".concat(fullOptionName, \".\").concat(optionName);\r\n if (!IGNORE_COLUMN_OPTION_NAMES[optionName] && that._skipProcessingColumnsChange !== fullOptionPath) {\r\n that._skipProcessingColumnsChange = fullOptionPath;\r\n that.component._notifyOptionChanged(fullOptionPath, value, prevValue);\r\n that._skipProcessingColumnsChange = false\r\n }\r\n};\r\nexport var columnOptionCore = function(that, column, optionName, value, notFireEvent) {\r\n var optionGetter = compileGetter(optionName);\r\n var columnIndex = column.index;\r\n var columns;\r\n var changeType;\r\n var initialColumn;\r\n if (3 === arguments.length) {\r\n return optionGetter(column, {\r\n functionsAsIs: true\r\n })\r\n }\r\n var prevValue = optionGetter(column, {\r\n functionsAsIs: true\r\n });\r\n if (!equalByValue(prevValue, value, {\r\n maxDepth: 5\r\n })) {\r\n if (\"groupIndex\" === optionName || \"calculateGroupValue\" === optionName) {\r\n changeType = \"grouping\";\r\n updateSortOrderWhenGrouping(that, column, value, prevValue)\r\n } else if (\"sortIndex\" === optionName || \"sortOrder\" === optionName || \"calculateSortValue\" === optionName) {\r\n changeType = \"sorting\"\r\n } else {\r\n changeType = \"columns\"\r\n }\r\n var optionSetter = compileSetter(optionName);\r\n optionSetter(column, value, {\r\n functionsAsIs: true\r\n });\r\n var fullOptionName = getColumnFullPath(that, column);\r\n if (COLUMN_INDEX_OPTIONS[optionName]) {\r\n updateIndexes(that, column);\r\n value = optionGetter(column)\r\n }\r\n if (\"name\" === optionName || \"allowEditing\" === optionName) {\r\n that._checkColumns()\r\n }\r\n if (!isDefined(prevValue) && !isDefined(value) && 0 !== optionName.indexOf(\"buffer\")) {\r\n notFireEvent = true\r\n }\r\n if (!notFireEvent) {\r\n if (!USER_STATE_FIELD_NAMES.includes(optionName) && \"visibleWidth\" !== optionName) {\r\n columns = that.option(\"columns\");\r\n initialColumn = that.getColumnByPath(fullOptionName, columns);\r\n if (isString(initialColumn)) {\r\n initialColumn = columns[columnIndex] = {\r\n dataField: initialColumn\r\n }\r\n }\r\n if (initialColumn && checkUserStateColumn(initialColumn, column)) {\r\n optionSetter(initialColumn, value, {\r\n functionsAsIs: true\r\n })\r\n }\r\n }\r\n updateColumnChanges(that, changeType, optionName, columnIndex)\r\n } else {\r\n resetColumnsCache(that)\r\n }\r\n fullOptionName && fireOptionChanged(that, {\r\n fullOptionName: fullOptionName,\r\n optionName: optionName,\r\n value: value,\r\n prevValue: prevValue\r\n })\r\n }\r\n};\r\nexport function isSortOrderValid(sortOrder) {\r\n return \"asc\" === sortOrder || \"desc\" === sortOrder\r\n}\r\nexport var addExpandColumn = function(that) {\r\n var options = that._getExpandColumnOptions();\r\n that.addCommandColumn(options)\r\n};\r\nexport var defaultSetCellValue = function(data, value) {\r\n if (!this.dataField) {\r\n return\r\n }\r\n var path = this.dataField.split(\".\");\r\n var dotCount = path.length - 1;\r\n if (this.serializeValue) {\r\n value = this.serializeValue(value)\r\n }\r\n for (var i = 0; i < dotCount; i++) {\r\n var name = path[i];\r\n data = data[name] = data[name] || {}\r\n }\r\n data[path[dotCount]] = value\r\n};\r\nexport var getDataColumns = function getDataColumns(columns, rowIndex, bandColumnID) {\r\n var result = [];\r\n rowIndex = rowIndex || 0;\r\n columns[rowIndex] && each(columns[rowIndex], (_, column) => {\r\n if (column.ownerBand === bandColumnID || column.type === GROUP_COMMAND_COLUMN_NAME) {\r\n if (!column.isBand || !column.colspan) {\r\n if (!column.command || rowIndex < 1) {\r\n result.push(column)\r\n }\r\n } else {\r\n result.push.apply(result, getDataColumns(columns, rowIndex + 1, column.index))\r\n }\r\n }\r\n });\r\n return result\r\n};\r\nexport var getRowCount = function(that) {\r\n var rowCount = 1;\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var {\r\n columnParentByIndex: columnParentByIndex\r\n } = bandColumnsCache;\r\n that._columns.forEach(column => {\r\n var parents = getParentBandColumns(column.index, columnParentByIndex);\r\n var invisibleParents = parents.filter(column => !column.visible);\r\n if (column.visible && !invisibleParents.length) {\r\n rowCount = Math.max(rowCount, parents.length + 1)\r\n }\r\n });\r\n return rowCount\r\n};\r\nexport var isCustomCommandColumn = (that, commandColumn) => {\r\n var customCommandColumns = that._columns.filter(column => column.type === commandColumn.type);\r\n return !!customCommandColumns.length\r\n};\r\nexport var getFixedPosition = function(that, column) {\r\n var rtlEnabled = that.option(\"rtlEnabled\");\r\n if (column.command && !isCustomCommandColumn(that, column) || !column.fixedPosition) {\r\n return rtlEnabled ? \"right\" : \"left\"\r\n }\r\n return column.fixedPosition\r\n};\r\nexport var processExpandColumns = function(columns, expandColumns, type, columnIndex) {\r\n var customColumnIndex;\r\n var rowCount = this.getRowCount();\r\n var rowspan = columns[columnIndex] && columns[columnIndex].rowspan;\r\n var expandColumnsByType = expandColumns.filter(column => column.type === type);\r\n columns.forEach((column, index) => {\r\n if (column.type === type) {\r\n customColumnIndex = index;\r\n rowspan = columns[index + 1] ? columns[index + 1].rowspan : rowCount\r\n }\r\n });\r\n if (rowspan > 1) {\r\n expandColumnsByType = map(expandColumnsByType, expandColumn => extend({}, expandColumn, {\r\n rowspan: rowspan\r\n }))\r\n }\r\n expandColumnsByType.unshift.apply(expandColumnsByType, isDefined(customColumnIndex) ? [customColumnIndex, 1] : [columnIndex, 0]);\r\n columns.splice.apply(columns, expandColumnsByType);\r\n return rowspan || 1\r\n};\r\nexport var digitsCount = function(number) {\r\n var i;\r\n for (i = 0; number > 1; i++) {\r\n number /= 10\r\n }\r\n return i\r\n};\r\nexport var numberToString = function(number, digitsCount) {\r\n var str = number ? number.toString() : \"0\";\r\n while (str.length < digitsCount) {\r\n str = \"0\".concat(str)\r\n }\r\n return str\r\n};\r\nexport var mergeColumns = (that, columns, commandColumns, needToExtend) => {\r\n var column;\r\n var commandColumnIndex;\r\n var result = columns.slice().map(column => extend({}, column));\r\n var isColumnFixing = that._isColumnFixing();\r\n var defaultCommandColumns = commandColumns.slice().map(column => extend({\r\n fixed: isColumnFixing\r\n }, column));\r\n var getCommandColumnIndex = column => commandColumns.reduce((result, commandColumn, index) => {\r\n var columnType = needToExtend && column.type === GROUP_COMMAND_COLUMN_NAME ? \"expand\" : column.type;\r\n return commandColumn.type === columnType || commandColumn.command === column.command ? index : result\r\n }, -1);\r\n var callbackFilter = commandColumn => commandColumn.command !== commandColumns[commandColumnIndex].command;\r\n for (var i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n commandColumnIndex = column && (column.type || column.command) ? getCommandColumnIndex(column) : -1;\r\n if (commandColumnIndex >= 0) {\r\n if (needToExtend) {\r\n result[i] = extend({\r\n fixed: isColumnFixing\r\n }, commandColumns[commandColumnIndex], column);\r\n if (column.type !== GROUP_COMMAND_COLUMN_NAME) {\r\n defaultCommandColumns = defaultCommandColumns.filter(callbackFilter)\r\n }\r\n } else {\r\n var columnOptions = {\r\n visibleIndex: column.visibleIndex,\r\n index: column.index,\r\n headerId: column.headerId,\r\n allowFixing: 0 === column.groupIndex,\r\n allowReordering: 0 === column.groupIndex,\r\n groupIndex: column.groupIndex\r\n };\r\n result[i] = extend({}, column, commandColumns[commandColumnIndex], column.type === GROUP_COMMAND_COLUMN_NAME && columnOptions)\r\n }\r\n }\r\n }\r\n if (columns.length && needToExtend && defaultCommandColumns.length) {\r\n result = result.concat(defaultCommandColumns)\r\n }\r\n return result\r\n};\r\nexport var isColumnFixed = (that, column) => isDefined(column.fixed) || !column.type ? column.fixed : that._isColumnFixing();\r\nexport var convertOwnerBandToColumnReference = columns => {\r\n columns.forEach(column => {\r\n if (isDefined(column.ownerBand)) {\r\n column.ownerBand = columns[column.ownerBand]\r\n }\r\n })\r\n};\r\nexport var resetBandColumnsCache = that => {\r\n that._bandColumnsCache = void 0\r\n};\r\nexport var findColumn = (columns, identifier) => {\r\n var identifierOptionName = isString(identifier) && identifier.substr(0, identifier.indexOf(\":\"));\r\n var column;\r\n if (void 0 === identifier) {\r\n return\r\n }\r\n if (identifierOptionName) {\r\n identifier = identifier.substr(identifierOptionName.length + 1)\r\n }\r\n if (identifierOptionName) {\r\n column = columns.filter(column => \"\".concat(column[identifierOptionName]) === identifier)[0]\r\n } else {\r\n [\"index\", \"name\", \"dataField\", \"caption\"].some(optionName => {\r\n column = columns.filter(column => column[optionName] === identifier)[0];\r\n return !!column\r\n })\r\n }\r\n return column\r\n};\r\nexport var sortColumns = (columns, sortOrder) => {\r\n if (\"asc\" !== sortOrder && \"desc\" !== sortOrder) {\r\n return columns\r\n }\r\n var sign = \"asc\" === sortOrder ? 1 : -1;\r\n columns.sort((column1, column2) => {\r\n var caption1 = column1.caption || \"\";\r\n var caption2 = column2.caption || \"\";\r\n return sign * caption1.localeCompare(caption2)\r\n });\r\n return columns\r\n};\r\nexport var strictParseNumber = function(text, format) {\r\n var parsedValue = numberLocalization.parse(text);\r\n if (isNumeric(parsedValue)) {\r\n var formattedValue = numberLocalization.format(parsedValue, format);\r\n var formattedValueWithDefaultFormat = numberLocalization.format(parsedValue, \"decimal\");\r\n if (formattedValue === text || formattedValueWithDefaultFormat === text) {\r\n return parsedValue\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/columns_controller/m_columns_controller.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 config from \"../../../../core/config\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport Callbacks from \"../../../../core/utils/callbacks\";\r\nimport {\r\n compileGetter\r\n} from \"../../../../core/utils/data\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n captionize\r\n} from \"../../../../core/utils/inflector\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n orderEach\r\n} from \"../../../../core/utils/object\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isNumeric,\r\n isObject,\r\n isPlainObject,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport variableWrapper from \"../../../../core/utils/variable_wrapper\";\r\nimport Store from \"../../../../data/abstract_store\";\r\nimport {\r\n DataSource\r\n} from \"../../../../data/data_source/data_source\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"../../../../data/data_source/utils\";\r\nimport dateLocalization from \"../../../../localization/date\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport filterUtils from \"../../../../ui/shared/filtering\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n COLUMN_CHOOSER_LOCATION,\r\n COLUMN_OPTION_REGEXP,\r\n COMMAND_EXPAND_CLASS,\r\n DATATYPE_OPERATIONS,\r\n DETAIL_COMMAND_COLUMN_NAME,\r\n GROUP_COMMAND_COLUMN_NAME,\r\n GROUP_LOCATION,\r\n MAX_SAFE_INTEGER,\r\n USER_STATE_FIELD_NAMES\r\n} from \"./const\";\r\nimport {\r\n addExpandColumn,\r\n applyUserState,\r\n assignColumns,\r\n columnOptionCore,\r\n convertOwnerBandToColumnReference,\r\n createColumn,\r\n createColumnsFromDataSource,\r\n createColumnsFromOptions,\r\n defaultSetCellValue,\r\n digitsCount,\r\n findColumn,\r\n fireColumnsChanged,\r\n getAlignmentByDataType,\r\n getChildrenByBandColumn,\r\n getColumnByIndexes,\r\n getColumnIndexByVisibleIndex,\r\n getCustomizeTextByDataType,\r\n getDataColumns,\r\n getFixedPosition,\r\n getParentBandColumns,\r\n getRowCount,\r\n getSerializationFormat,\r\n getValueDataType,\r\n isColumnFixed,\r\n isCustomCommandColumn,\r\n isSortOrderValid,\r\n mergeColumns,\r\n moveColumnToGroup,\r\n numberToString,\r\n processBandColumns,\r\n processExpandColumns,\r\n resetBandColumnsCache,\r\n resetColumnsCache,\r\n setFilterOperationsAsDefaultValues,\r\n sortColumns,\r\n strictParseNumber,\r\n updateColumnChanges,\r\n updateColumnGroupIndexes,\r\n updateIndexes,\r\n updateSerializers\r\n} from \"./m_columns_controller_utils\";\r\nexport class ColumnsController extends modules.Controller {\r\n _getExpandColumnOptions() {\r\n return {\r\n type: \"expand\",\r\n command: \"expand\",\r\n width: \"auto\",\r\n cssClass: COMMAND_EXPAND_CLASS,\r\n allowEditing: false,\r\n allowGrouping: false,\r\n allowSorting: false,\r\n allowResizing: false,\r\n allowReordering: false,\r\n allowHiding: false\r\n }\r\n }\r\n _getFirstItems(dataSource) {\r\n var groupsCount;\r\n var items = [];\r\n if (dataSource && dataSource.items().length > 0) {\r\n groupsCount = gridCoreUtils.normalizeSortingInfo(dataSource.group()).length;\r\n items = function getFirstItemsCore(items, groupsCount) {\r\n if (!items || !groupsCount) {\r\n return items\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var childItems = getFirstItemsCore(items[i].items || items[i].collapsedItems, groupsCount - 1);\r\n if (childItems && childItems.length) {\r\n return childItems\r\n }\r\n }\r\n }(dataSource.items(), groupsCount) || []\r\n }\r\n return items\r\n }\r\n _endUpdateCore() {\r\n !this._skipProcessingColumnsChange && fireColumnsChanged(this)\r\n }\r\n init(isApplyingUserState) {\r\n var columns = this.option(\"columns\");\r\n this._commandColumns = this._commandColumns || [];\r\n this._columns = this._columns || [];\r\n this._isColumnsFromOptions = !!columns;\r\n if (this._isColumnsFromOptions) {\r\n assignColumns(this, columns ? createColumnsFromOptions(this, columns) : []);\r\n applyUserState(this)\r\n } else {\r\n assignColumns(this, this._columnsUserState ? createColumnsFromOptions(this, this._columnsUserState) : this._columns)\r\n }\r\n addExpandColumn(this);\r\n if (this._dataSourceApplied) {\r\n this.applyDataSource(this._dataSource, true, isApplyingUserState)\r\n } else {\r\n updateIndexes(this)\r\n }\r\n this._checkColumns()\r\n }\r\n callbackNames() {\r\n return [\"columnsChanged\"]\r\n }\r\n getColumnByPath(path, columns) {\r\n var column;\r\n var columnIndexes = [];\r\n path.replace(COLUMN_OPTION_REGEXP, (_, columnIndex) => {\r\n columnIndexes.push(parseInt(columnIndex));\r\n return \"\"\r\n });\r\n if (columnIndexes.length) {\r\n if (columns) {\r\n column = columnIndexes.reduce((column, index) => column && column.columns && column.columns[index], {\r\n columns: columns\r\n })\r\n } else {\r\n column = getColumnByIndexes(this, columnIndexes)\r\n }\r\n }\r\n return column\r\n }\r\n optionChanged(args) {\r\n var needUpdateRequireResize;\r\n switch (args.name) {\r\n case \"adaptColumnWidthByRatio\":\r\n args.handled = true;\r\n break;\r\n case \"dataSource\":\r\n if (args.value !== args.previousValue && !this.option(\"columns\") && (!Array.isArray(args.value) || !Array.isArray(args.previousValue))) {\r\n this._columns = []\r\n }\r\n break;\r\n case \"columns\":\r\n needUpdateRequireResize = this._skipProcessingColumnsChange;\r\n args.handled = true;\r\n if (!this._skipProcessingColumnsChange) {\r\n if (args.name === args.fullName) {\r\n this._columnsUserState = null;\r\n this._ignoreColumnOptionNames = null;\r\n this.init()\r\n } else {\r\n this._columnOptionChanged(args);\r\n needUpdateRequireResize = true\r\n }\r\n }\r\n if (needUpdateRequireResize) {\r\n this._updateRequireResize(args)\r\n }\r\n break;\r\n case \"commonColumnSettings\":\r\n case \"columnAutoWidth\":\r\n case \"allowColumnResizing\":\r\n case \"allowColumnReordering\":\r\n case \"columnFixing\":\r\n case \"grouping\":\r\n case \"groupPanel\":\r\n case \"regenerateColumnsByVisibleItems\":\r\n case \"customizeColumns\":\r\n case \"columnHidingEnabled\":\r\n case \"dateSerializationFormat\":\r\n case \"columnResizingMode\":\r\n case \"columnMinWidth\":\r\n case \"columnWidth\":\r\n args.handled = true;\r\n var ignoreColumnOptionNames = \"columnWidth\" === args.fullName && [\"width\"];\r\n this.reinit(ignoreColumnOptionNames);\r\n break;\r\n case \"rtlEnabled\":\r\n this.reinit();\r\n break;\r\n default:\r\n super.optionChanged(args)\r\n }\r\n }\r\n _columnOptionChanged(args) {\r\n var columnOptionValue = {};\r\n var column = this.getColumnByPath(args.fullName);\r\n var columnOptionName = args.fullName.replace(COLUMN_OPTION_REGEXP, \"\");\r\n if (column) {\r\n if (columnOptionName) {\r\n columnOptionValue[columnOptionName] = args.value\r\n } else {\r\n columnOptionValue = args.value\r\n }\r\n this._skipProcessingColumnsChange = args.fullName;\r\n this.columnOption(column.index, columnOptionValue);\r\n this._skipProcessingColumnsChange = false\r\n }\r\n }\r\n _updateRequireResize(args) {\r\n var {\r\n component: component\r\n } = this;\r\n if (\"width\" === args.fullName.replace(COLUMN_OPTION_REGEXP, \"\") && component._updateLockCount) {\r\n component._requireResize = true\r\n }\r\n }\r\n publicMethods() {\r\n return [\"addColumn\", \"deleteColumn\", \"columnOption\", \"columnCount\", \"clearSorting\", \"clearGrouping\", \"getVisibleColumns\", \"getVisibleColumnIndex\"]\r\n }\r\n applyDataSource(dataSource, forceApplying, isApplyingUserState) {\r\n var isDataSourceLoaded = dataSource && dataSource.isLoaded();\r\n this._dataSource = dataSource;\r\n if (!this._dataSourceApplied || 0 === this._dataSourceColumnsCount || forceApplying || this.option(\"regenerateColumnsByVisibleItems\")) {\r\n if (isDataSourceLoaded) {\r\n if (!this._isColumnsFromOptions) {\r\n var columnsFromDataSource = createColumnsFromDataSource(this, dataSource);\r\n if (columnsFromDataSource.length) {\r\n assignColumns(this, columnsFromDataSource);\r\n this._dataSourceColumnsCount = this._columns.length;\r\n applyUserState(this)\r\n }\r\n }\r\n return this.updateColumns(dataSource, forceApplying, isApplyingUserState)\r\n }\r\n this._dataSourceApplied = false;\r\n updateIndexes(this)\r\n } else if (isDataSourceLoaded && !this.isAllDataTypesDefined(true) && this.updateColumnDataTypes(dataSource)) {\r\n updateColumnChanges(this, \"columns\");\r\n fireColumnsChanged(this);\r\n return (new Deferred).reject().promise()\r\n }\r\n }\r\n reset() {\r\n this._dataSource = null;\r\n this._dataSourceApplied = false;\r\n this._dataSourceColumnsCount = void 0;\r\n this.reinit()\r\n }\r\n resetColumnsCache() {\r\n this._visibleColumns = void 0;\r\n this._fixedColumns = void 0;\r\n this._rowCount = void 0;\r\n resetBandColumnsCache(this)\r\n }\r\n reinit(ignoreColumnOptionNames) {\r\n this._columnsUserState = this.getUserState();\r\n this._ignoreColumnOptionNames = ignoreColumnOptionNames || null;\r\n this.init();\r\n if (ignoreColumnOptionNames) {\r\n this._ignoreColumnOptionNames = null\r\n }\r\n }\r\n isInitialized() {\r\n return !!this._columns.length || !!this.option(\"columns\")\r\n }\r\n isDataSourceApplied() {\r\n return this._dataSourceApplied\r\n }\r\n getCommonSettings(column) {\r\n var _a, _b;\r\n var commonColumnSettings = (!column || !column.type) && this.option(\"commonColumnSettings\") || {};\r\n var groupingOptions = null !== (_a = this.option(\"grouping\")) && void 0 !== _a ? _a : {};\r\n var groupPanelOptions = null !== (_b = this.option(\"groupPanel\")) && void 0 !== _b ? _b : {};\r\n return extend({\r\n allowFixing: this.option(\"columnFixing.enabled\"),\r\n allowResizing: this.option(\"allowColumnResizing\") || void 0,\r\n allowReordering: this.option(\"allowColumnReordering\"),\r\n minWidth: this.option(\"columnMinWidth\"),\r\n width: this.option(\"columnWidth\"),\r\n autoExpandGroup: groupingOptions.autoExpandAll,\r\n allowCollapsing: groupingOptions.allowCollapsing,\r\n allowGrouping: groupPanelOptions.allowColumnDragging && groupPanelOptions.visible || groupingOptions.contextMenuEnabled\r\n }, commonColumnSettings)\r\n }\r\n isColumnOptionUsed(optionName) {\r\n for (var i = 0; i < this._columns.length; i++) {\r\n if (this._columns[i][optionName]) {\r\n return true\r\n }\r\n }\r\n }\r\n isAllDataTypesDefined(checkSerializers) {\r\n var columns = this._columns;\r\n if (!columns.length) {\r\n return false\r\n }\r\n for (var i = 0; i < columns.length; i++) {\r\n if (!columns[i].dataField && columns[i].calculateCellValue === columns[i].defaultCalculateCellValue) {\r\n continue\r\n }\r\n if (!columns[i].dataType || checkSerializers && columns[i].deserializeValue && void 0 === columns[i].serializationFormat) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n getColumns() {\r\n return this._columns\r\n }\r\n isBandColumnsUsed() {\r\n return this.getColumns().some(column => column.isBand)\r\n }\r\n getGroupColumns() {\r\n var result = [];\r\n each(this._columns, (function() {\r\n if (isDefined(this.groupIndex)) {\r\n result[this.groupIndex] = this\r\n }\r\n }));\r\n return result\r\n }\r\n _shouldReturnVisibleColumns() {\r\n return true\r\n }\r\n _compileVisibleColumns(rowIndex) {\r\n this._visibleColumns = this._visibleColumns || this._compileVisibleColumnsCore();\r\n rowIndex = isDefined(rowIndex) ? rowIndex : this._visibleColumns.length - 1;\r\n return this._visibleColumns[rowIndex] || []\r\n }\r\n getVisibleColumns(rowIndex, isBase) {\r\n if (!this._shouldReturnVisibleColumns()) {\r\n return []\r\n }\r\n return this._compileVisibleColumns.apply(this, arguments)\r\n }\r\n getFixedColumns(rowIndex) {\r\n this._fixedColumns = this._fixedColumns || this._getFixedColumnsCore();\r\n rowIndex = isDefined(rowIndex) ? rowIndex : this._fixedColumns.length - 1;\r\n return this._fixedColumns[rowIndex] || []\r\n }\r\n getFilteringColumns() {\r\n return this.getColumns().filter(item => (item.dataField || item.name) && (item.allowFiltering || item.allowHeaderFiltering)).map(item => {\r\n var field = extend(true, {}, item);\r\n if (!isDefined(field.dataField)) {\r\n field.dataField = field.name\r\n }\r\n field.filterOperations = item.filterOperations !== item.defaultFilterOperations ? field.filterOperations : null;\r\n return field\r\n })\r\n }\r\n getColumnIndexOffset() {\r\n return 0\r\n }\r\n _getFixedColumnsCore() {\r\n var result = [];\r\n var rowCount = this.getRowCount();\r\n var isColumnFixing = this._isColumnFixing();\r\n var transparentColumn = {\r\n command: \"transparent\"\r\n };\r\n var transparentColspan = 0;\r\n var notFixedColumnCount;\r\n var transparentColumnIndex;\r\n var lastFixedPosition;\r\n if (isColumnFixing) {\r\n for (var i = 0; i <= rowCount; i++) {\r\n notFixedColumnCount = 0;\r\n lastFixedPosition = null;\r\n transparentColumnIndex = null;\r\n var visibleColumns = this.getVisibleColumns(i, true);\r\n for (var j = 0; j < visibleColumns.length; j++) {\r\n var prevColumn = visibleColumns[j - 1];\r\n var column = visibleColumns[j];\r\n if (!column.fixed) {\r\n if (0 === i) {\r\n if (column.isBand && column.colspan) {\r\n transparentColspan += column.colspan\r\n } else {\r\n transparentColspan++\r\n }\r\n }\r\n notFixedColumnCount++;\r\n if (!isDefined(transparentColumnIndex)) {\r\n transparentColumnIndex = j\r\n }\r\n } else if (prevColumn && prevColumn.fixed && getFixedPosition(this, prevColumn) !== getFixedPosition(this, column)) {\r\n if (!isDefined(transparentColumnIndex)) {\r\n transparentColumnIndex = j\r\n }\r\n } else {\r\n lastFixedPosition = column.fixedPosition\r\n }\r\n }\r\n if (0 === i && (0 === notFixedColumnCount || notFixedColumnCount >= visibleColumns.length)) {\r\n return []\r\n }\r\n if (!isDefined(transparentColumnIndex)) {\r\n transparentColumnIndex = \"right\" === lastFixedPosition ? 0 : visibleColumns.length\r\n }\r\n result[i] = visibleColumns.slice(0);\r\n if (!transparentColumn.colspan) {\r\n transparentColumn.colspan = transparentColspan\r\n }\r\n result[i].splice(transparentColumnIndex, notFixedColumnCount, transparentColumn)\r\n }\r\n }\r\n return result.map(columns => columns.map(column => {\r\n var newColumn = _extends({}, column);\r\n if (newColumn.headerId) {\r\n newColumn.headerId += \"-fixed\"\r\n }\r\n return newColumn\r\n }))\r\n }\r\n _isColumnFixing() {\r\n var isColumnFixing = this.option(\"columnFixing.enabled\");\r\n !isColumnFixing && each(this._columns, (_, column) => {\r\n if (column.fixed) {\r\n isColumnFixing = true;\r\n return false\r\n }\r\n });\r\n return isColumnFixing\r\n }\r\n _getExpandColumnsCore() {\r\n return this.getGroupColumns()\r\n }\r\n getExpandColumns() {\r\n var expandColumns = this._getExpandColumnsCore();\r\n var expandColumn;\r\n var firstGroupColumn = expandColumns.filter(column => 0 === column.groupIndex)[0];\r\n var isFixedFirstGroupColumn = firstGroupColumn && firstGroupColumn.fixed;\r\n var isColumnFixing = this._isColumnFixing();\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (expandColumns.length) {\r\n expandColumn = this.columnOption(\"command:expand\")\r\n }\r\n expandColumns = map(expandColumns, column => extend({}, column, {\r\n visibleWidth: null,\r\n minWidth: null,\r\n cellTemplate: !isDefined(column.groupIndex) ? column.cellTemplate : null,\r\n headerCellTemplate: null,\r\n fixed: !isDefined(column.groupIndex) || !isFixedFirstGroupColumn ? isColumnFixing : true,\r\n fixedPosition: rtlEnabled ? \"right\" : \"left\"\r\n }, expandColumn, {\r\n index: column.index,\r\n type: column.type || GROUP_COMMAND_COLUMN_NAME\r\n }));\r\n return expandColumns\r\n }\r\n getBandColumnsCache() {\r\n if (!this._bandColumnsCache) {\r\n var columns = this._columns;\r\n var columnChildrenByIndex = {};\r\n var columnParentByIndex = {};\r\n var isPlain = true;\r\n columns.forEach(column => {\r\n var {\r\n ownerBand: ownerBand\r\n } = column;\r\n var parentIndex = isObject(ownerBand) ? ownerBand.index : ownerBand;\r\n var parent = columns[parentIndex];\r\n if (column.hasColumns) {\r\n isPlain = false\r\n }\r\n if (column.colspan) {\r\n column.colspan = void 0\r\n }\r\n if (column.rowspan) {\r\n column.rowspan = void 0\r\n }\r\n if (parent) {\r\n columnParentByIndex[column.index] = parent\r\n } else {\r\n parentIndex = -1\r\n }\r\n columnChildrenByIndex[parentIndex] = columnChildrenByIndex[parentIndex] || [];\r\n columnChildrenByIndex[parentIndex].push(column)\r\n });\r\n this._bandColumnsCache = {\r\n isPlain: isPlain,\r\n columnChildrenByIndex: columnChildrenByIndex,\r\n columnParentByIndex: columnParentByIndex\r\n }\r\n }\r\n return this._bandColumnsCache\r\n }\r\n _isColumnVisible(column) {\r\n return column.visible && this.isParentColumnVisible(column.index)\r\n }\r\n _isColumnInGroupPanel(column) {\r\n return isDefined(column.groupIndex) && !column.showWhenGrouped\r\n }\r\n hasVisibleDataColumns() {\r\n var columns = this._columns;\r\n return columns.some(column => {\r\n var isVisible = this._isColumnVisible(column);\r\n var isInGroupPanel = this._isColumnInGroupPanel(column);\r\n var isCommand = !!column.command;\r\n return isVisible && !isInGroupPanel && !isCommand\r\n })\r\n }\r\n _compileVisibleColumnsCore() {\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var columns = mergeColumns(this, this._columns, this._commandColumns, true);\r\n processBandColumns(this, columns, bandColumnsCache);\r\n var indexedColumns = this._getIndexedColumns(columns);\r\n var visibleColumns = this._getVisibleColumnsFromIndexed(indexedColumns);\r\n var isDataColumnsInvisible = !this.hasVisibleDataColumns();\r\n if (isDataColumnsInvisible && this._columns.length) {\r\n visibleColumns[visibleColumns.length - 1].push({\r\n command: \"empty\"\r\n })\r\n }\r\n return visibleColumns\r\n }\r\n _getIndexedColumns(columns) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var rowCount = this.getRowCount();\r\n var columnDigitsCount = digitsCount(columns.length);\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var positiveIndexedColumns = [];\r\n var negativeIndexedColumns = [];\r\n for (var i = 0; i < rowCount; i += 1) {\r\n negativeIndexedColumns[i] = [{}];\r\n positiveIndexedColumns[i] = [{}, {}, {}]\r\n }\r\n columns.forEach(column => {\r\n var _a, _b, _c, _d;\r\n var {\r\n visibleIndex: visibleIndex\r\n } = column;\r\n var indexedColumns;\r\n var parentBandColumns = getParentBandColumns(column.index, bandColumnsCache.columnParentByIndex);\r\n var isVisible = this._isColumnVisible(column);\r\n var isInGroupPanel = this._isColumnInGroupPanel(column);\r\n if (isVisible && !isInGroupPanel) {\r\n var rowIndex = parentBandColumns.length;\r\n if (visibleIndex < 0) {\r\n visibleIndex = -visibleIndex;\r\n indexedColumns = negativeIndexedColumns[rowIndex]\r\n } else {\r\n column.fixed = null !== (_b = null === (_a = parentBandColumns[0]) || void 0 === _a ? void 0 : _a.fixed) && void 0 !== _b ? _b : column.fixed;\r\n column.fixedPosition = null !== (_d = null === (_c = parentBandColumns[0]) || void 0 === _c ? void 0 : _c.fixedPosition) && void 0 !== _d ? _d : column.fixedPosition;\r\n if (column.fixed) {\r\n var isDefaultCommandColumn = !!column.command && !isCustomCommandColumn(this, column);\r\n var isFixedToEnd = \"right\" === column.fixedPosition;\r\n if (rtlEnabled && !isDefaultCommandColumn) {\r\n isFixedToEnd = !isFixedToEnd\r\n }\r\n indexedColumns = isFixedToEnd ? positiveIndexedColumns[rowIndex][2] : positiveIndexedColumns[rowIndex][0]\r\n } else {\r\n indexedColumns = positiveIndexedColumns[rowIndex][1]\r\n }\r\n }\r\n if (parentBandColumns.length) {\r\n visibleIndex = numberToString(visibleIndex, columnDigitsCount);\r\n for (var _i = parentBandColumns.length - 1; _i >= 0; _i -= 1) {\r\n visibleIndex = numberToString(parentBandColumns[_i].visibleIndex, columnDigitsCount) + visibleIndex\r\n }\r\n }\r\n indexedColumns[visibleIndex] = indexedColumns[visibleIndex] || [];\r\n indexedColumns[visibleIndex].push(column)\r\n }\r\n });\r\n return {\r\n positiveIndexedColumns: positiveIndexedColumns,\r\n negativeIndexedColumns: negativeIndexedColumns\r\n }\r\n }\r\n _getVisibleColumnsFromIndexed(_ref) {\r\n var _this = this;\r\n var {\r\n positiveIndexedColumns: positiveIndexedColumns,\r\n negativeIndexedColumns: negativeIndexedColumns\r\n } = _ref;\r\n var result = [];\r\n var rowCount = this.getRowCount();\r\n var expandColumns = mergeColumns(this, this.getExpandColumns(), this._columns);\r\n var rowspanGroupColumns = 0;\r\n var rowspanExpandColumns = 0;\r\n var _loop = function(rowIndex) {\r\n result.push([]);\r\n orderEach(negativeIndexedColumns[rowIndex], (_, columns) => {\r\n result[rowIndex].unshift.apply(result[rowIndex], columns)\r\n });\r\n var firstPositiveIndexColumn = result[rowIndex].length;\r\n var positiveIndexedRowColumns = positiveIndexedColumns[rowIndex];\r\n positiveIndexedRowColumns.forEach(columnsByFixing => {\r\n orderEach(columnsByFixing, (_, columnsByVisibleIndex) => {\r\n result[rowIndex].push.apply(result[rowIndex], columnsByVisibleIndex)\r\n })\r\n });\r\n if (rowspanExpandColumns <= rowIndex) {\r\n rowspanExpandColumns += processExpandColumns.call(_this, result[rowIndex], expandColumns, DETAIL_COMMAND_COLUMN_NAME, firstPositiveIndexColumn)\r\n }\r\n if (rowspanGroupColumns <= rowIndex) {\r\n rowspanGroupColumns += processExpandColumns.call(_this, result[rowIndex], expandColumns, GROUP_COMMAND_COLUMN_NAME, firstPositiveIndexColumn)\r\n }\r\n };\r\n for (var rowIndex = 0; rowIndex < rowCount; rowIndex += 1) {\r\n _loop(rowIndex)\r\n }\r\n result.push(getDataColumns(result));\r\n return result\r\n }\r\n getInvisibleColumns(columns, bandColumnIndex) {\r\n var that = this;\r\n var result = [];\r\n var hiddenColumnsByBand;\r\n columns = columns || that._columns;\r\n each(columns, (_, column) => {\r\n if (column.ownerBand !== bandColumnIndex) {\r\n return\r\n }\r\n if (column.isBand) {\r\n if (!column.visible) {\r\n hiddenColumnsByBand = that.getChildrenByBandColumn(column.index)\r\n } else {\r\n hiddenColumnsByBand = that.getInvisibleColumns(that.getChildrenByBandColumn(column.index), column.index)\r\n }\r\n if (hiddenColumnsByBand.length) {\r\n result.push(column);\r\n result = result.concat(hiddenColumnsByBand)\r\n }\r\n return\r\n }\r\n if (!column.visible) {\r\n result.push(column)\r\n }\r\n });\r\n return result\r\n }\r\n getChooserColumns(getAllColumns) {\r\n var columns = getAllColumns ? this.getColumns() : this.getInvisibleColumns();\r\n var columnChooserColumns = columns.filter(column => column.showInColumnChooser);\r\n var sortOrder = this.option(\"columnChooser.sortOrder\");\r\n return sortColumns(columnChooserColumns, sortOrder)\r\n }\r\n allowMoveColumn(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation) {\r\n var columnIndex = getColumnIndexByVisibleIndex(this, fromVisibleIndex, sourceLocation);\r\n var sourceColumn = this._columns[columnIndex];\r\n if (sourceColumn && (sourceColumn.allowReordering || sourceColumn.allowGrouping || sourceColumn.allowHiding)) {\r\n if (sourceLocation === targetLocation) {\r\n if (sourceLocation === COLUMN_CHOOSER_LOCATION) {\r\n return false\r\n }\r\n fromVisibleIndex = isObject(fromVisibleIndex) ? fromVisibleIndex.columnIndex : fromVisibleIndex;\r\n toVisibleIndex = isObject(toVisibleIndex) ? toVisibleIndex.columnIndex : toVisibleIndex;\r\n return fromVisibleIndex !== toVisibleIndex && fromVisibleIndex + 1 !== toVisibleIndex\r\n }\r\n if (sourceLocation === GROUP_LOCATION && targetLocation !== COLUMN_CHOOSER_LOCATION || targetLocation === GROUP_LOCATION) {\r\n return sourceColumn && sourceColumn.allowGrouping\r\n }\r\n if (sourceLocation === COLUMN_CHOOSER_LOCATION || targetLocation === COLUMN_CHOOSER_LOCATION) {\r\n return sourceColumn && sourceColumn.allowHiding\r\n }\r\n return true\r\n }\r\n return false\r\n }\r\n moveColumn(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation) {\r\n var options = {};\r\n var prevGroupIndex;\r\n var fromIndex = getColumnIndexByVisibleIndex(this, fromVisibleIndex, sourceLocation);\r\n var toIndex = getColumnIndexByVisibleIndex(this, toVisibleIndex, targetLocation);\r\n var targetGroupIndex;\r\n if (fromIndex >= 0) {\r\n var column = this._columns[fromIndex];\r\n toVisibleIndex = isObject(toVisibleIndex) ? toVisibleIndex.columnIndex : toVisibleIndex;\r\n targetGroupIndex = toIndex >= 0 ? this._columns[toIndex].groupIndex : -1;\r\n if (isDefined(column.groupIndex) && sourceLocation === GROUP_LOCATION) {\r\n if (targetGroupIndex > column.groupIndex) {\r\n targetGroupIndex--\r\n }\r\n if (targetLocation !== GROUP_LOCATION) {\r\n options.groupIndex = void 0\r\n } else {\r\n prevGroupIndex = column.groupIndex;\r\n delete column.groupIndex;\r\n updateColumnGroupIndexes(this)\r\n }\r\n }\r\n if (targetLocation === GROUP_LOCATION) {\r\n options.groupIndex = moveColumnToGroup(this, column, targetGroupIndex);\r\n column.groupIndex = prevGroupIndex\r\n } else if (toVisibleIndex >= 0) {\r\n var targetColumn = this._columns[toIndex];\r\n if (!targetColumn || column.ownerBand !== targetColumn.ownerBand) {\r\n options.visibleIndex = MAX_SAFE_INTEGER\r\n } else if (isColumnFixed(this, column) ^ isColumnFixed(this, targetColumn)) {\r\n options.visibleIndex = MAX_SAFE_INTEGER\r\n } else {\r\n options.visibleIndex = targetColumn.visibleIndex\r\n }\r\n }\r\n var isVisible = targetLocation !== COLUMN_CHOOSER_LOCATION;\r\n if (column.visible !== isVisible) {\r\n options.visible = isVisible\r\n }\r\n this.columnOption(column.index, options)\r\n }\r\n }\r\n changeSortOrder(columnIndex, sortOrder) {\r\n var options = {};\r\n var sortingOptions = this.option(\"sorting\");\r\n var sortingMode = sortingOptions && sortingOptions.mode;\r\n var needResetSorting = \"single\" === sortingMode || !sortOrder;\r\n var allowSorting = \"single\" === sortingMode || \"multiple\" === sortingMode;\r\n var column = this._columns[columnIndex];\r\n if (allowSorting && column && column.allowSorting) {\r\n if (needResetSorting && !isDefined(column.groupIndex)) {\r\n each(this._columns, (function(index) {\r\n if (index !== columnIndex && this.sortOrder) {\r\n if (!isDefined(this.groupIndex)) {\r\n delete this.sortOrder\r\n }\r\n delete this.sortIndex\r\n }\r\n }))\r\n }\r\n if (isSortOrderValid(sortOrder)) {\r\n if (column.sortOrder !== sortOrder) {\r\n options.sortOrder = sortOrder\r\n }\r\n } else if (\"none\" === sortOrder) {\r\n if (column.sortOrder) {\r\n options.sortIndex = void 0;\r\n options.sortOrder = void 0\r\n }\r\n } else {\r\n ! function(column) {\r\n if (\"ctrl\" === sortOrder) {\r\n if (!(\"sortOrder\" in column && \"sortIndex\" in column)) {\r\n return false\r\n }\r\n options.sortOrder = void 0;\r\n options.sortIndex = void 0\r\n } else if (isDefined(column.groupIndex) || isDefined(column.sortIndex)) {\r\n options.sortOrder = \"desc\" === column.sortOrder ? \"asc\" : \"desc\"\r\n } else {\r\n options.sortOrder = \"asc\"\r\n }\r\n return true\r\n }(column)\r\n }\r\n }\r\n this.columnOption(column.index, options)\r\n }\r\n getSortDataSourceParameters(useLocalSelector) {\r\n var sortColumns = [];\r\n var sort = [];\r\n each(this._columns, (function() {\r\n if ((this.dataField || this.selector || this.calculateCellValue) && isDefined(this.sortIndex) && !isDefined(this.groupIndex)) {\r\n sortColumns[this.sortIndex] = this\r\n }\r\n }));\r\n each(sortColumns, (function() {\r\n var sortOrder = this && this.sortOrder;\r\n if (isSortOrderValid(sortOrder)) {\r\n var sortItem = {\r\n selector: this.calculateSortValue || this.displayField || this.calculateDisplayValue || useLocalSelector && this.selector || this.dataField || this.calculateCellValue,\r\n desc: \"desc\" === this.sortOrder\r\n };\r\n if (this.sortingMethod) {\r\n sortItem.compare = this.sortingMethod.bind(this)\r\n }\r\n sort.push(sortItem)\r\n }\r\n }));\r\n return sort.length > 0 ? sort : null\r\n }\r\n getGroupDataSourceParameters(useLocalSelector) {\r\n var group = [];\r\n each(this.getGroupColumns(), (function() {\r\n var selector = this.calculateGroupValue || this.displayField || this.calculateDisplayValue || useLocalSelector && this.selector || this.dataField || this.calculateCellValue;\r\n if (selector) {\r\n var groupItem = {\r\n selector: selector,\r\n desc: \"desc\" === this.sortOrder,\r\n isExpanded: !!this.autoExpandGroup\r\n };\r\n if (this.sortingMethod) {\r\n groupItem.compare = this.sortingMethod.bind(this)\r\n }\r\n group.push(groupItem)\r\n }\r\n }));\r\n return group.length > 0 ? group : null\r\n }\r\n refresh(updateNewLookupsOnly) {\r\n var deferreds = [];\r\n each(this._columns, (function() {\r\n var {\r\n lookup: lookup\r\n } = this;\r\n if (lookup && !this.calculateDisplayValue) {\r\n if (updateNewLookupsOnly && lookup.valueMap) {\r\n return\r\n }\r\n if (lookup.update) {\r\n deferreds.push(lookup.update())\r\n }\r\n }\r\n }));\r\n return when.apply($, deferreds).done(resetColumnsCache.bind(null, this))\r\n }\r\n _updateColumnOptions(column, columnIndex) {\r\n column.selector = column.selector || function(data) {\r\n return column.calculateCellValue(data)\r\n };\r\n if (this._reinitAfterLookupChanges && this._previousColumns) {\r\n column.selector.columnIndex = columnIndex;\r\n column.selector.originalCallback = this._previousColumns[columnIndex].selector.originalCallback\r\n } else {\r\n column.selector.columnIndex = columnIndex;\r\n column.selector.originalCallback = column.selector\r\n }\r\n each([\"calculateSortValue\", \"calculateGroupValue\", \"calculateDisplayValue\"], (_, calculateCallbackName) => {\r\n var calculateCallback = column[calculateCallbackName];\r\n if (isFunction(calculateCallback)) {\r\n if (!calculateCallback.originalCallback) {\r\n var context = {\r\n column: column\r\n };\r\n column[calculateCallbackName] = function(data) {\r\n return calculateCallback.call(context.column, data)\r\n };\r\n column[calculateCallbackName].originalCallback = calculateCallback;\r\n column[calculateCallbackName].columnIndex = columnIndex;\r\n column[calculateCallbackName].context = context\r\n } else {\r\n column[calculateCallbackName].context.column = column\r\n }\r\n }\r\n });\r\n if (isString(column.calculateDisplayValue)) {\r\n column.displayField = column.calculateDisplayValue;\r\n column.calculateDisplayValue = compileGetter(column.displayField)\r\n }\r\n if (column.calculateDisplayValue) {\r\n column.displayValueMap = column.displayValueMap || {}\r\n }\r\n updateSerializers(column, column.dataType);\r\n var {\r\n lookup: lookup\r\n } = column;\r\n if (lookup) {\r\n updateSerializers(lookup, lookup.dataType)\r\n }\r\n var dataType = lookup ? lookup.dataType : column.dataType;\r\n if (dataType) {\r\n column.alignment = column.alignment || getAlignmentByDataType(dataType, this.option(\"rtlEnabled\"));\r\n column.format = column.format || gridCoreUtils.getFormatByDataType(dataType);\r\n column.customizeText = column.customizeText || getCustomizeTextByDataType(dataType);\r\n column.defaultFilterOperations = column.defaultFilterOperations || !lookup && DATATYPE_OPERATIONS[dataType] || [];\r\n if (!isDefined(column.filterOperations)) {\r\n setFilterOperationsAsDefaultValues(column)\r\n }\r\n column.defaultFilterOperation = column.filterOperations && column.filterOperations[0] || \"=\";\r\n column.showEditorAlways = isDefined(column.showEditorAlways) ? column.showEditorAlways : \"boolean\" === dataType && !column.cellTemplate && !column.lookup\r\n }\r\n }\r\n updateColumnDataTypes(dataSource) {\r\n var that = this;\r\n var dateSerializationFormat = that.option(\"dateSerializationFormat\");\r\n var firstItems = that._getFirstItems(dataSource);\r\n var isColumnDataTypesUpdated = false;\r\n each(that._columns, (index, column) => {\r\n var i;\r\n var value;\r\n var dataType;\r\n var lookupDataType;\r\n var valueDataType;\r\n var {\r\n lookup: lookup\r\n } = column;\r\n if (gridCoreUtils.isDateType(column.dataType) && void 0 === column.serializationFormat) {\r\n column.serializationFormat = dateSerializationFormat\r\n }\r\n if (lookup && gridCoreUtils.isDateType(lookup.dataType) && void 0 === column.serializationFormat) {\r\n lookup.serializationFormat = dateSerializationFormat\r\n }\r\n if (column.calculateCellValue && firstItems.length) {\r\n if (!column.dataType || lookup && !lookup.dataType) {\r\n for (i = 0; i < firstItems.length; i++) {\r\n value = column.calculateCellValue(firstItems[i]);\r\n if (!column.dataType) {\r\n valueDataType = getValueDataType(value);\r\n dataType = dataType || valueDataType;\r\n if (dataType && valueDataType && dataType !== valueDataType) {\r\n dataType = \"string\"\r\n }\r\n }\r\n if (lookup && !lookup.dataType) {\r\n valueDataType = getValueDataType(gridCoreUtils.getDisplayValue(column, value, firstItems[i]));\r\n lookupDataType = lookupDataType || valueDataType;\r\n if (lookupDataType && valueDataType && lookupDataType !== valueDataType) {\r\n lookupDataType = \"string\"\r\n }\r\n }\r\n }\r\n if (dataType || lookupDataType) {\r\n if (dataType) {\r\n column.dataType = dataType\r\n }\r\n if (lookup && lookupDataType) {\r\n lookup.dataType = lookupDataType\r\n }\r\n isColumnDataTypesUpdated = true\r\n }\r\n }\r\n if (void 0 === column.serializationFormat || lookup && void 0 === lookup.serializationFormat) {\r\n for (i = 0; i < firstItems.length; i++) {\r\n value = column.calculateCellValue(firstItems[i], true);\r\n if (void 0 === column.serializationFormat) {\r\n column.serializationFormat = getSerializationFormat(column.dataType, value)\r\n }\r\n if (lookup && void 0 === lookup.serializationFormat) {\r\n lookup.serializationFormat = getSerializationFormat(lookup.dataType, lookup.calculateCellValue(value, true))\r\n }\r\n }\r\n }\r\n }\r\n that._updateColumnOptions(column, index)\r\n });\r\n return isColumnDataTypesUpdated\r\n }\r\n _customizeColumns(columns) {\r\n var customizeColumns = this.option(\"customizeColumns\");\r\n if (customizeColumns) {\r\n var hasOwnerBand = columns.some(column => isObject(column.ownerBand));\r\n if (hasOwnerBand) {\r\n updateIndexes(this)\r\n }\r\n customizeColumns(columns);\r\n assignColumns(this, createColumnsFromOptions(this, columns))\r\n }\r\n }\r\n updateColumns(dataSource, forceApplying, isApplyingUserState) {\r\n if (!forceApplying) {\r\n this.updateSortingGrouping(dataSource)\r\n }\r\n if (!dataSource || dataSource.isLoaded()) {\r\n var sortParameters = dataSource ? dataSource.sort() || [] : this.getSortDataSourceParameters();\r\n var groupParameters = dataSource ? dataSource.group() || [] : this.getGroupDataSourceParameters();\r\n var filterParameters = null === dataSource || void 0 === dataSource ? void 0 : dataSource.lastLoadOptions().filter;\r\n if (!isApplyingUserState) {\r\n this._customizeColumns(this._columns)\r\n }\r\n updateIndexes(this);\r\n var columns = this._columns;\r\n return when(this.refresh(true)).always(() => {\r\n if (this._columns !== columns) {\r\n return\r\n }\r\n this._updateChanges(dataSource, {\r\n sorting: sortParameters,\r\n grouping: groupParameters,\r\n filtering: filterParameters\r\n });\r\n fireColumnsChanged(this)\r\n })\r\n }\r\n }\r\n _updateChanges(dataSource, parameters) {\r\n if (dataSource) {\r\n this.updateColumnDataTypes(dataSource);\r\n this._dataSourceApplied = true\r\n }\r\n if (!gridCoreUtils.equalSortParameters(parameters.sorting, this.getSortDataSourceParameters())) {\r\n updateColumnChanges(this, \"sorting\")\r\n }\r\n if (!gridCoreUtils.equalSortParameters(parameters.grouping, this.getGroupDataSourceParameters())) {\r\n updateColumnChanges(this, \"grouping\")\r\n }\r\n var dataController = this.getController(\"data\");\r\n if (dataController && !gridCoreUtils.equalFilterParameters(parameters.filtering, dataController.getCombinedFilter())) {\r\n updateColumnChanges(this, \"filtering\")\r\n }\r\n updateColumnChanges(this, \"columns\")\r\n }\r\n updateSortingGrouping(dataSource, fromDataSource) {\r\n var that = this;\r\n var sortParameters;\r\n var isColumnsChanged;\r\n var updateSortGroupParameterIndexes = function(columns, sortParameters, indexParameterName) {\r\n each(columns, (index, column) => {\r\n delete column[indexParameterName];\r\n if (sortParameters) {\r\n for (var i = 0; i < sortParameters.length; i++) {\r\n var {\r\n selector: selector\r\n } = sortParameters[i];\r\n var {\r\n isExpanded: isExpanded\r\n } = sortParameters[i];\r\n if (selector === column.dataField || selector === column.name || selector === column.selector || selector === column.calculateCellValue || selector === column.calculateGroupValue || selector === column.calculateDisplayValue) {\r\n if (fromDataSource) {\r\n column.sortOrder = \"sortOrder\" in column ? column.sortOrder : sortParameters[i].desc ? \"desc\" : \"asc\"\r\n } else {\r\n column.sortOrder = column.sortOrder || (sortParameters[i].desc ? \"desc\" : \"asc\")\r\n }\r\n if (void 0 !== isExpanded) {\r\n column.autoExpandGroup = isExpanded\r\n }\r\n column[indexParameterName] = i;\r\n break\r\n }\r\n }\r\n }\r\n })\r\n };\r\n if (dataSource) {\r\n sortParameters = gridCoreUtils.normalizeSortingInfo(dataSource.sort());\r\n var groupParameters = gridCoreUtils.normalizeSortingInfo(dataSource.group());\r\n var columnsGroupParameters = that.getGroupDataSourceParameters();\r\n var columnsSortParameters = that.getSortDataSourceParameters();\r\n var groupingChanged = !gridCoreUtils.equalSortParameters(groupParameters, columnsGroupParameters, true);\r\n var groupExpandingChanged = !groupingChanged && !gridCoreUtils.equalSortParameters(groupParameters, columnsGroupParameters);\r\n if (!that._columns.length) {\r\n each(groupParameters, (index, group) => {\r\n that._columns.push(group.selector)\r\n });\r\n each(sortParameters, (index, sort) => {\r\n if (!isFunction(sort.selector)) {\r\n that._columns.push(sort.selector)\r\n }\r\n });\r\n assignColumns(that, createColumnsFromOptions(that, that._columns))\r\n }\r\n if ((fromDataSource || !columnsGroupParameters && !that._hasUserState) && (groupingChanged || groupExpandingChanged)) {\r\n updateSortGroupParameterIndexes(that._columns, groupParameters, \"groupIndex\");\r\n if (fromDataSource) {\r\n groupingChanged && updateColumnChanges(that, \"grouping\");\r\n groupExpandingChanged && updateColumnChanges(that, \"groupExpanding\");\r\n isColumnsChanged = true\r\n }\r\n }\r\n if ((fromDataSource || !columnsSortParameters && !that._hasUserState) && !gridCoreUtils.equalSortParameters(sortParameters, columnsSortParameters)) {\r\n updateSortGroupParameterIndexes(that._columns, sortParameters, \"sortIndex\");\r\n if (fromDataSource) {\r\n updateColumnChanges(that, \"sorting\");\r\n isColumnsChanged = true\r\n }\r\n }\r\n if (isColumnsChanged) {\r\n fireColumnsChanged(that)\r\n }\r\n }\r\n }\r\n updateFilter(filter, remoteFiltering, columnIndex, filterValue) {\r\n if (!Array.isArray(filter)) {\r\n return filter\r\n }\r\n filter = extend([], filter);\r\n columnIndex = void 0 !== filter.columnIndex ? filter.columnIndex : columnIndex;\r\n filterValue = void 0 !== filter.filterValue ? filter.filterValue : filterValue;\r\n if (isString(filter[0]) && \"!\" !== filter[0]) {\r\n var column = this.columnOption(filter[0]);\r\n if (remoteFiltering) {\r\n if (config().forceIsoDateParsing && column && column.serializeValue && filter.length > 1) {\r\n filter[filter.length - 1] = column.serializeValue(filter[filter.length - 1], \"filter\")\r\n }\r\n } else if (column && column.selector) {\r\n filter[0] = column.selector;\r\n filter[0].columnIndex = column.index\r\n }\r\n } else if (isFunction(filter[0])) {\r\n filter[0].columnIndex = columnIndex;\r\n filter[0].filterValue = filterValue;\r\n filter[0].selectedFilterOperation = filter.selectedFilterOperation\r\n }\r\n for (var i = 0; i < filter.length; i++) {\r\n filter[i] = this.updateFilter(filter[i], remoteFiltering, columnIndex, filterValue)\r\n }\r\n return filter\r\n }\r\n columnCount() {\r\n return this._columns ? this._columns.length : 0\r\n }\r\n columnOption(identifier, option, value, notFireEvent) {\r\n var that = this;\r\n var columns = that._columns.concat(that._commandColumns);\r\n var column = findColumn(columns, identifier);\r\n if (column) {\r\n if (1 === arguments.length) {\r\n return extend({}, column)\r\n }\r\n if (isString(option)) {\r\n if (2 === arguments.length) {\r\n return columnOptionCore(that, column, option)\r\n }\r\n columnOptionCore(that, column, option, value, notFireEvent)\r\n } else if (isObject(option)) {\r\n each(option, (optionName, value) => {\r\n columnOptionCore(that, column, optionName, value, notFireEvent)\r\n })\r\n }\r\n fireColumnsChanged(that)\r\n }\r\n }\r\n clearSorting() {\r\n var columnCount = this.columnCount();\r\n this.beginUpdate();\r\n for (var i = 0; i < columnCount; i++) {\r\n this.columnOption(i, \"sortOrder\", void 0);\r\n delete findColumn(this._columns, i).sortOrder\r\n }\r\n this.endUpdate()\r\n }\r\n clearGrouping() {\r\n var columnCount = this.columnCount();\r\n this.beginUpdate();\r\n for (var i = 0; i < columnCount; i++) {\r\n this.columnOption(i, \"groupIndex\", void 0)\r\n }\r\n this.endUpdate()\r\n }\r\n getVisibleIndex(index, rowIndex) {\r\n var columns = this.getVisibleColumns(rowIndex);\r\n for (var i = columns.length - 1; i >= 0; i--) {\r\n if (columns[i].index === index) {\r\n return i\r\n }\r\n }\r\n return -1\r\n }\r\n getVisibleIndexByColumn(column, rowIndex) {\r\n var visibleColumns = this.getVisibleColumns(rowIndex);\r\n var visibleColumn = visibleColumns.filter(col => col.index === column.index && col.command === column.command)[0];\r\n return visibleColumns.indexOf(visibleColumn)\r\n }\r\n getVisibleColumnIndex(id, rowIndex) {\r\n var index = this.columnOption(id, \"index\");\r\n return this.getVisibleIndex(index, rowIndex)\r\n }\r\n addColumn(options) {\r\n var column = createColumn(this, options);\r\n var index = this._columns.length;\r\n this._columns.push(column);\r\n if (column.isBand) {\r\n this._columns = createColumnsFromOptions(this, this._columns);\r\n column = this._columns[index]\r\n }\r\n column.added = options;\r\n updateIndexes(this, column);\r\n this.updateColumns(this._dataSource);\r\n this._checkColumns()\r\n }\r\n deleteColumn(id) {\r\n var column = this.columnOption(id);\r\n if (column && column.index >= 0) {\r\n convertOwnerBandToColumnReference(this._columns);\r\n this._columns.splice(column.index, 1);\r\n if (column.isBand) {\r\n var childIndexes = this.getChildrenByBandColumn(column.index).map(column => column.index);\r\n this._columns = this._columns.filter(column => childIndexes.indexOf(column.index) < 0)\r\n }\r\n updateIndexes(this);\r\n this.updateColumns(this._dataSource)\r\n }\r\n }\r\n addCommandColumn(options) {\r\n var commandColumn = this._commandColumns.filter(column => column.command === options.command)[0];\r\n if (!commandColumn) {\r\n commandColumn = options;\r\n this._commandColumns.push(commandColumn)\r\n }\r\n }\r\n getUserState() {\r\n var columns = this._columns;\r\n var result = [];\r\n var i;\r\n\r\n function handleStateField(index, value) {\r\n if (void 0 !== columns[i][value]) {\r\n result[i][value] = columns[i][value]\r\n }\r\n }\r\n for (i = 0; i < columns.length; i++) {\r\n result[i] = {};\r\n each(USER_STATE_FIELD_NAMES, handleStateField)\r\n }\r\n return result\r\n }\r\n setName(column) {\r\n column.name = column.name || column.dataField || column.type\r\n }\r\n setUserState(state) {\r\n var dataSource = this._dataSource;\r\n var ignoreColumnOptionNames = this.option(\"stateStoring.ignoreColumnOptionNames\");\r\n null === state || void 0 === state ? void 0 : state.forEach(this.setName);\r\n if (!ignoreColumnOptionNames) {\r\n ignoreColumnOptionNames = [];\r\n var commonColumnSettings = this.getCommonSettings();\r\n if (!this.option(\"columnChooser.enabled\")) {\r\n ignoreColumnOptionNames.push(\"visible\")\r\n }\r\n if (\"none\" === this.option(\"sorting.mode\")) {\r\n ignoreColumnOptionNames.push(\"sortIndex\", \"sortOrder\")\r\n }\r\n if (!commonColumnSettings.allowGrouping) {\r\n ignoreColumnOptionNames.push(\"groupIndex\")\r\n }\r\n if (!commonColumnSettings.allowFixing) {\r\n ignoreColumnOptionNames.push(\"fixed\", \"fixedPosition\")\r\n }\r\n if (!commonColumnSettings.allowResizing) {\r\n ignoreColumnOptionNames.push(\"width\", \"visibleWidth\")\r\n }\r\n var isFilterPanelHidden = !this.option(\"filterPanel.visible\");\r\n if (!this.option(\"filterRow.visible\") && isFilterPanelHidden) {\r\n ignoreColumnOptionNames.push(\"filterValue\", \"selectedFilterOperation\")\r\n }\r\n if (!this.option(\"headerFilter.visible\") && isFilterPanelHidden) {\r\n ignoreColumnOptionNames.push(\"filterValues\", \"filterType\")\r\n }\r\n }\r\n this._columnsUserState = state;\r\n this._ignoreColumnOptionNames = ignoreColumnOptionNames;\r\n this._hasUserState = !!state;\r\n updateColumnChanges(this, \"filtering\");\r\n this.init(true);\r\n if (dataSource) {\r\n dataSource.sort(this.getSortDataSourceParameters());\r\n dataSource.group(this.getGroupDataSourceParameters())\r\n }\r\n }\r\n _checkColumns() {\r\n var usedNames = {};\r\n var hasEditableColumnWithoutName = false;\r\n var duplicatedNames = [];\r\n this._columns.forEach(column => {\r\n var _a;\r\n var {\r\n name: name\r\n } = column;\r\n var isBand = null === (_a = column.columns) || void 0 === _a ? void 0 : _a.length;\r\n var isEditable = column.allowEditing && (column.dataField || column.setCellValue) && !isBand;\r\n if (name) {\r\n if (usedNames[name]) {\r\n duplicatedNames.push('\"'.concat(name, '\"'))\r\n }\r\n usedNames[name] = true\r\n } else if (isEditable) {\r\n hasEditableColumnWithoutName = true\r\n }\r\n });\r\n if (duplicatedNames.length) {\r\n errors.log(\"E1059\", duplicatedNames.join(\", \"))\r\n }\r\n if (hasEditableColumnWithoutName) {\r\n errors.log(\"E1060\")\r\n }\r\n }\r\n _createCalculatedColumnOptions(columnOptions, bandColumn) {\r\n var calculatedColumnOptions = {};\r\n var {\r\n dataField: dataField\r\n } = columnOptions;\r\n if (Array.isArray(columnOptions.columns) && columnOptions.columns.length || columnOptions.isBand) {\r\n calculatedColumnOptions.isBand = true;\r\n dataField = null\r\n }\r\n if (dataField) {\r\n if (isString(dataField)) {\r\n var getter = compileGetter(dataField);\r\n calculatedColumnOptions = {\r\n caption: captionize(dataField),\r\n calculateCellValue(data, skipDeserialization) {\r\n var value = getter(data);\r\n return this.deserializeValue && !skipDeserialization ? this.deserializeValue(value) : value\r\n },\r\n setCellValue: defaultSetCellValue,\r\n parseValue(text) {\r\n var result;\r\n var parsedValue;\r\n if (\"number\" === this.dataType) {\r\n if (isString(text) && this.format) {\r\n result = strictParseNumber(text.trim(), this.format)\r\n } else if (isDefined(text) && isNumeric(text)) {\r\n result = Number(text)\r\n }\r\n } else if (\"boolean\" === this.dataType) {\r\n if (text === this.trueText) {\r\n result = true\r\n } else if (text === this.falseText) {\r\n result = false\r\n }\r\n } else if (gridCoreUtils.isDateType(this.dataType)) {\r\n parsedValue = dateLocalization.parse(text, this.format);\r\n if (parsedValue) {\r\n result = parsedValue\r\n }\r\n } else {\r\n result = text\r\n }\r\n return result\r\n }\r\n }\r\n }\r\n calculatedColumnOptions.allowFiltering = true\r\n } else {\r\n calculatedColumnOptions.allowFiltering = !!columnOptions.calculateFilterExpression\r\n }\r\n calculatedColumnOptions.calculateFilterExpression = function() {\r\n return filterUtils.defaultCalculateFilterExpression.apply(this, arguments)\r\n };\r\n calculatedColumnOptions.defaultFilterOperation = \"=\";\r\n calculatedColumnOptions.createFilterExpression = function(filterValue, selectedFilterOperation) {\r\n var result;\r\n if (this.calculateFilterExpression) {\r\n result = this.calculateFilterExpression.apply(this, arguments)\r\n }\r\n if (isFunction(result)) {\r\n result = [result, \"=\", true]\r\n }\r\n if (result) {\r\n result.columnIndex = this.index;\r\n result.filterValue = filterValue;\r\n result.selectedFilterOperation = selectedFilterOperation\r\n }\r\n return result\r\n };\r\n if (!dataField || !isString(dataField)) {\r\n extend(true, calculatedColumnOptions, {\r\n allowSorting: false,\r\n allowGrouping: false,\r\n calculateCellValue: () => null\r\n })\r\n }\r\n if (bandColumn) {\r\n calculatedColumnOptions.allowFixing = false\r\n }\r\n if (columnOptions.dataType) {\r\n calculatedColumnOptions.userDataType = columnOptions.dataType\r\n }\r\n if (columnOptions.selectedFilterOperation && !(\"defaultSelectedFilterOperation\" in calculatedColumnOptions)) {\r\n calculatedColumnOptions.defaultSelectedFilterOperation = columnOptions.selectedFilterOperation\r\n }\r\n if (columnOptions.lookup) {\r\n calculatedColumnOptions.lookup = {\r\n calculateCellValue(value, skipDeserialization) {\r\n if (this.valueExpr) {\r\n value = this.valueMap && this.valueMap[value]\r\n }\r\n return this.deserializeValue && !skipDeserialization ? this.deserializeValue(value) : value\r\n },\r\n updateValueMap() {\r\n this.valueMap = {};\r\n if (this.items) {\r\n var calculateValue = compileGetter(this.valueExpr);\r\n var calculateDisplayValue = compileGetter(this.displayExpr);\r\n for (var i = 0; i < this.items.length; i++) {\r\n var item = this.items[i];\r\n var displayValue = calculateDisplayValue(item);\r\n this.valueMap[calculateValue(item)] = displayValue;\r\n this.dataType = this.dataType || getValueDataType(displayValue)\r\n }\r\n }\r\n },\r\n update() {\r\n var that = this;\r\n var {\r\n dataSource: dataSource\r\n } = that;\r\n if (dataSource) {\r\n if (isFunction(dataSource) && !variableWrapper.isWrapped(dataSource)) {\r\n dataSource = dataSource({})\r\n }\r\n if (isPlainObject(dataSource) || dataSource instanceof Store || Array.isArray(dataSource)) {\r\n if (that.valueExpr) {\r\n var dataSourceOptions = normalizeDataSourceOptions(dataSource);\r\n dataSourceOptions.paginate = false;\r\n dataSource = new DataSource(dataSourceOptions);\r\n return dataSource.load().done(data => {\r\n that.items = data;\r\n that.updateValueMap && that.updateValueMap()\r\n })\r\n }\r\n } else {\r\n errors.log(\"E1016\")\r\n }\r\n } else {\r\n that.updateValueMap && that.updateValueMap()\r\n }\r\n }\r\n }\r\n }\r\n calculatedColumnOptions.resizedCallbacks = Callbacks();\r\n if (columnOptions.resized) {\r\n calculatedColumnOptions.resizedCallbacks.add(columnOptions.resized.bind(columnOptions))\r\n }\r\n each(calculatedColumnOptions, optionName => {\r\n if (isFunction(calculatedColumnOptions[optionName]) && 0 !== optionName.indexOf(\"default\")) {\r\n var defaultOptionName = \"default\".concat(optionName.charAt(0).toUpperCase()).concat(optionName.substr(1));\r\n calculatedColumnOptions[defaultOptionName] = calculatedColumnOptions[optionName]\r\n }\r\n });\r\n return calculatedColumnOptions\r\n }\r\n getRowCount() {\r\n this._rowCount = this._rowCount || getRowCount(this);\r\n return this._rowCount\r\n }\r\n getRowIndex(columnIndex, alwaysGetRowIndex) {\r\n var column = this._columns[columnIndex];\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n return column && (alwaysGetRowIndex || column.visible && !(column.command || isDefined(column.groupIndex))) ? getParentBandColumns(columnIndex, bandColumnsCache.columnParentByIndex).length : 0\r\n }\r\n getChildrenByBandColumn(bandColumnIndex, onlyVisibleDirectChildren) {\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var result = getChildrenByBandColumn(bandColumnIndex, bandColumnsCache.columnChildrenByIndex, !onlyVisibleDirectChildren);\r\n if (onlyVisibleDirectChildren) {\r\n return result.filter(column => column.visible && !column.command).sort((column1, column2) => column1.visibleIndex - column2.visibleIndex)\r\n }\r\n return result\r\n }\r\n isParentBandColumn(columnIndex, bandColumnIndex) {\r\n var result = false;\r\n var column = this._columns[columnIndex];\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var parentBandColumns = column && getParentBandColumns(columnIndex, bandColumnsCache.columnParentByIndex);\r\n if (parentBandColumns) {\r\n each(parentBandColumns, (_, bandColumn) => {\r\n if (bandColumn.index === bandColumnIndex) {\r\n result = true;\r\n return false\r\n }\r\n })\r\n }\r\n return result\r\n }\r\n isParentColumnVisible(columnIndex) {\r\n var result = true;\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var bandColumns = columnIndex >= 0 && getParentBandColumns(columnIndex, bandColumnsCache.columnParentByIndex);\r\n bandColumns && each(bandColumns, (_, bandColumn) => {\r\n result = result && bandColumn.visible;\r\n return result\r\n });\r\n return result\r\n }\r\n getColumnId(column) {\r\n if (column.command && column.type === GROUP_COMMAND_COLUMN_NAME) {\r\n if (isCustomCommandColumn(this, column)) {\r\n return \"type:\".concat(column.type)\r\n }\r\n return \"command:\".concat(column.command)\r\n }\r\n return column.index\r\n }\r\n getCustomizeTextByDataType(dataType) {\r\n return getCustomizeTextByDataType(dataType)\r\n }\r\n getHeaderContentAlignment(columnAlignment) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (rtlEnabled) {\r\n return \"left\" === columnAlignment ? \"right\" : \"left\"\r\n }\r\n return columnAlignment\r\n }\r\n}\r\nexport var columnsControllerModule = {\r\n defaultOptions: () => ({\r\n commonColumnSettings: {\r\n allowFiltering: true,\r\n allowHiding: true,\r\n allowSorting: true,\r\n allowEditing: true,\r\n encodeHtml: true,\r\n trueText: messageLocalization.format(\"dxDataGrid-trueText\"),\r\n falseText: messageLocalization.format(\"dxDataGrid-falseText\")\r\n },\r\n allowColumnReordering: false,\r\n allowColumnResizing: false,\r\n columnResizingMode: \"nextColumn\",\r\n columnMinWidth: void 0,\r\n columnWidth: void 0,\r\n adaptColumnWidthByRatio: true,\r\n columns: void 0,\r\n regenerateColumnsByVisibleItems: false,\r\n customizeColumns: null,\r\n dateSerializationFormat: void 0\r\n }),\r\n controllers: {\r\n columns: ColumnsController\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/m_columns_controller.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n columnsControllerModule\r\n} from \"../../grids/grid_core/columns_controller/m_columns_controller\";\r\nimport gridCore from \"./m_core\";\r\ngridCore.registerModule(\"columns\", {\r\n defaultOptions: () => extend(true, {}, columnsControllerModule.defaultOptions(), {\r\n commonColumnSettings: {\r\n allowExporting: true\r\n }\r\n }),\r\n controllers: columnsControllerModule.controllers\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/data_controller/m_data_controller.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 findChanges\r\n} from \"../../../../core/utils/array_compare\";\r\nimport {\r\n deferRender,\r\n equalByValue\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred,\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 isDefined,\r\n isObject\r\n} from \"../../../../core/utils/type\";\r\nimport ArrayStore from \"../../../../data/array_store\";\r\nimport CustomStore from \"../../../../data/custom_store\";\r\nimport DataHelperMixin from \"../../../../data_helper\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nvar changePaging = function(that, optionName, value) {\r\n var dataSource = that._dataSource;\r\n if (dataSource) {\r\n if (void 0 !== value) {\r\n var oldValue = that._getPagingOptionValue(optionName);\r\n if (oldValue !== value) {\r\n if (\"pageSize\" === optionName) {\r\n dataSource.pageIndex(0)\r\n }\r\n dataSource[optionName](value);\r\n that._skipProcessingPagingChange = true;\r\n that.option(\"paging.\".concat(optionName), value);\r\n that._skipProcessingPagingChange = false;\r\n var pageIndex = dataSource.pageIndex();\r\n that._isPaging = \"pageIndex\" === optionName;\r\n return dataSource[\"pageIndex\" === optionName ? \"load\" : \"reload\"]().done(() => {\r\n that._isPaging = false;\r\n that.pageChanged.fire(pageIndex)\r\n })\r\n }\r\n return Deferred().resolve().promise()\r\n }\r\n return dataSource[optionName]()\r\n }\r\n return 0\r\n};\r\nvar ControllerWithDataMixin = modules.Controller.inherit(DataHelperMixin);\r\nexport class DataController extends ControllerWithDataMixin {\r\n init() {\r\n var that = this;\r\n that._items = [];\r\n that._cachedProcessedItems = null;\r\n that._columnsController = this.getController(\"columns\");\r\n that._isPaging = false;\r\n that._currentOperationTypes = null;\r\n that._dataChangedHandler = e => {\r\n that._currentOperationTypes = this._dataSource.operationTypes();\r\n that._handleDataChanged(e);\r\n that._currentOperationTypes = null\r\n };\r\n that._columnsChangedHandler = that._handleColumnsChanged.bind(that);\r\n that._loadingChangedHandler = that._handleLoadingChanged.bind(that);\r\n that._loadErrorHandler = that._handleLoadError.bind(that);\r\n that._customizeStoreLoadOptionsHandler = that._handleCustomizeStoreLoadOptions.bind(that);\r\n that._changingHandler = that._handleChanging.bind(that);\r\n that._dataPushedHandler = that._handleDataPushed.bind(that);\r\n that._columnsController.columnsChanged.add(that._columnsChangedHandler);\r\n that._isLoading = false;\r\n that._isCustomLoading = false;\r\n that._repaintChangesOnly = void 0;\r\n that._changes = [];\r\n that.createAction(\"onDataErrorOccurred\");\r\n that.dataErrorOccurred.add(error => that.executeAction(\"onDataErrorOccurred\", {\r\n error: error\r\n }));\r\n that._refreshDataSource()\r\n }\r\n _getPagingOptionValue(optionName) {\r\n return this._dataSource[optionName]()\r\n }\r\n callbackNames() {\r\n return [\"changed\", \"loadingChanged\", \"dataErrorOccurred\", \"pageChanged\", \"dataSourceChanged\", \"pushed\"]\r\n }\r\n callbackFlags(name) {\r\n if (\"dataErrorOccurred\" === name) {\r\n return {\r\n stopOnFalse: true\r\n }\r\n }\r\n return\r\n }\r\n publicMethods() {\r\n return [\"beginCustomLoading\", \"endCustomLoading\", \"refresh\", \"filter\", \"clearFilter\", \"getCombinedFilter\", \"keyOf\", \"byKey\", \"getDataByKeys\", \"pageIndex\", \"pageSize\", \"pageCount\", \"totalCount\", \"_disposeDataSource\", \"getKeyByRowIndex\", \"getRowIndexByKey\", \"getDataSource\", \"getVisibleRows\", \"repaintRows\"]\r\n }\r\n reset() {\r\n this._columnsController.reset();\r\n this._items = [];\r\n this._refreshDataSource()\r\n }\r\n _handleDataSourceChange(args) {\r\n if (args.value === args.previousValue || this.option(\"columns\") && Array.isArray(args.value) && Array.isArray(args.previousValue)) {\r\n var isValueChanged = args.value !== args.previousValue;\r\n if (isValueChanged) {\r\n var store = this.store();\r\n if (store) {\r\n store._array = args.value\r\n }\r\n }\r\n if (this.needToRefreshOnDataSourceChange(args)) {\r\n this.refresh(this.option(\"repaintChangesOnly\"))\r\n }\r\n return true\r\n }\r\n return false\r\n }\r\n needToRefreshOnDataSourceChange(args) {\r\n return true\r\n }\r\n optionChanged(args) {\r\n var that = this;\r\n var dataSource;\r\n var changedPagingOptions;\r\n\r\n function handled() {\r\n args.handled = true\r\n }\r\n if (\"dataSource\" === args.name && args.name === args.fullName && this._handleDataSourceChange(args)) {\r\n handled();\r\n return\r\n }\r\n switch (args.name) {\r\n case \"cacheEnabled\":\r\n case \"repaintChangesOnly\":\r\n case \"highlightChanges\":\r\n case \"loadingTimeout\":\r\n handled();\r\n break;\r\n case \"remoteOperations\":\r\n case \"keyExpr\":\r\n case \"dataSource\":\r\n case \"scrolling\":\r\n handled();\r\n that.reset();\r\n break;\r\n case \"paging\":\r\n dataSource = that.dataSource();\r\n if (dataSource) {\r\n changedPagingOptions = that._setPagingOptions(dataSource);\r\n if (changedPagingOptions) {\r\n var pageIndex = dataSource.pageIndex();\r\n this._isPaging = changedPagingOptions.isPageIndexChanged;\r\n dataSource.load().done(() => {\r\n this._isPaging = false;\r\n that.pageChanged.fire(pageIndex)\r\n })\r\n }\r\n }\r\n handled();\r\n break;\r\n case \"rtlEnabled\":\r\n that.reset();\r\n break;\r\n case \"columns\":\r\n dataSource = that.dataSource();\r\n if (dataSource && dataSource.isLoading() && args.name === args.fullName) {\r\n this._useSortingGroupingFromColumns = true;\r\n dataSource.load()\r\n }\r\n break;\r\n default:\r\n super.optionChanged(args)\r\n }\r\n }\r\n isReady() {\r\n return !this._isLoading\r\n }\r\n getDataSource() {\r\n return this._dataSource && this._dataSource._dataSource\r\n }\r\n getCombinedFilter(returnDataField) {\r\n return this.combinedFilter(void 0, returnDataField)\r\n }\r\n combinedFilter(filter, returnDataField) {\r\n if (!this._dataSource) {\r\n return filter\r\n }\r\n var combinedFilter = null !== filter && void 0 !== filter ? filter : this._dataSource.filter();\r\n var isColumnsTypesDefined = this._columnsController.isDataSourceApplied() || this._columnsController.isAllDataTypesDefined();\r\n if (isColumnsTypesDefined) {\r\n var additionalFilter = this._calculateAdditionalFilter();\r\n combinedFilter = additionalFilter ? gridCoreUtils.combineFilters([additionalFilter, combinedFilter]) : combinedFilter\r\n }\r\n var isRemoteFiltering = this._dataSource.remoteOperations().filtering || returnDataField;\r\n combinedFilter = this._columnsController.updateFilter(combinedFilter, isRemoteFiltering);\r\n return combinedFilter\r\n }\r\n waitReady() {\r\n if (this._updateLockCount) {\r\n this._readyDeferred = new Deferred;\r\n return this._readyDeferred\r\n }\r\n return when()\r\n }\r\n _endUpdateCore() {\r\n var changes = this._changes;\r\n if (changes.length) {\r\n this._changes = [];\r\n var repaintChangesOnly = changes.every(change => change.repaintChangesOnly);\r\n this.updateItems(1 === changes.length ? changes[0] : {\r\n repaintChangesOnly: repaintChangesOnly\r\n })\r\n }\r\n if (this._readyDeferred) {\r\n this._readyDeferred.resolve();\r\n this._readyDeferred = null\r\n }\r\n }\r\n _handleCustomizeStoreLoadOptions(e) {\r\n var _a;\r\n var columnsController = this._columnsController;\r\n var dataSource = this._dataSource;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = e;\r\n if (e.isCustomLoading && !storeLoadOptions.isLoadingAll) {\r\n return\r\n }\r\n storeLoadOptions.filter = this.combinedFilter(storeLoadOptions.filter);\r\n if (1 === (null === (_a = storeLoadOptions.filter) || void 0 === _a ? void 0 : _a.length) && \"!\" === storeLoadOptions.filter[0]) {\r\n e.data = [];\r\n e.extra = e.extra || {};\r\n e.extra.totalCount = 0\r\n }\r\n if (!columnsController.isDataSourceApplied()) {\r\n columnsController.updateColumnDataTypes(dataSource)\r\n }\r\n this._columnsUpdating = true;\r\n columnsController.updateSortingGrouping(dataSource, !this._useSortingGroupingFromColumns);\r\n this._columnsUpdating = false;\r\n storeLoadOptions.sort = columnsController.getSortDataSourceParameters();\r\n storeLoadOptions.group = columnsController.getGroupDataSourceParameters();\r\n dataSource.sort(storeLoadOptions.sort);\r\n dataSource.group(storeLoadOptions.group);\r\n storeLoadOptions.sort = columnsController.getSortDataSourceParameters(!dataSource.remoteOperations().sorting);\r\n e.group = columnsController.getGroupDataSourceParameters(!dataSource.remoteOperations().grouping)\r\n }\r\n _handleColumnsChanged(e) {\r\n var that = this;\r\n var {\r\n changeTypes: changeTypes\r\n } = e;\r\n var {\r\n optionNames: optionNames\r\n } = e;\r\n var filterValue;\r\n var filterValues;\r\n var filterApplied;\r\n if (changeTypes.sorting || changeTypes.grouping) {\r\n if (that._dataSource && !that._columnsUpdating) {\r\n that._dataSource.group(that._columnsController.getGroupDataSourceParameters());\r\n that._dataSource.sort(that._columnsController.getSortDataSourceParameters());\r\n that.reload()\r\n }\r\n } else if (changeTypes.columns) {\r\n filterValues = that._columnsController.columnOption(e.columnIndex, \"filterValues\");\r\n if (optionNames.filterValues || optionNames.filterType && Array.isArray(filterValues) || optionNames.filterValue || optionNames.selectedFilterOperation || optionNames.allowFiltering) {\r\n filterValue = that._columnsController.columnOption(e.columnIndex, \"filterValue\");\r\n if (Array.isArray(filterValues) || void 0 === e.columnIndex || isDefined(filterValue) || !optionNames.selectedFilterOperation || optionNames.filterValue) {\r\n that._applyFilter();\r\n filterApplied = true\r\n }\r\n }\r\n if (!that._needApplyFilter && !gridCoreUtils.checkChanges(optionNames, [\"width\", \"visibleWidth\", \"filterValue\", \"bufferedFilterValue\", \"selectedFilterOperation\", \"filterValues\", \"filterType\"])) {\r\n that._columnsController.columnsChanged.add((function updateItemsHandler(change) {\r\n var _a;\r\n that._columnsController.columnsChanged.remove(updateItemsHandler);\r\n that.updateItems({\r\n repaintChangesOnly: false,\r\n virtualColumnsScrolling: null === (_a = null === change || void 0 === change ? void 0 : change.changeTypes) || void 0 === _a ? void 0 : _a.virtualColumnsScrolling\r\n })\r\n }))\r\n }\r\n if (isDefined(optionNames.visible)) {\r\n var column = that._columnsController.columnOption(e.columnIndex);\r\n if (column && (isDefined(column.filterValue) || isDefined(column.filterValues))) {\r\n that._applyFilter();\r\n filterApplied = true\r\n }\r\n }\r\n }\r\n if (!filterApplied && changeTypes.filtering) {\r\n that.reload()\r\n }\r\n }\r\n _handleDataChanged(e) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var columnsController = that._columnsController;\r\n var isAsyncDataSourceApplying = false;\r\n this._useSortingGroupingFromColumns = false;\r\n if (dataSource && !that._isDataSourceApplying) {\r\n that._isDataSourceApplying = true;\r\n when(that._columnsController.applyDataSource(dataSource)).done(() => {\r\n if (that._isLoading) {\r\n that._handleLoadingChanged(false)\r\n }\r\n if (isAsyncDataSourceApplying && e && e.isDelayed) {\r\n e.isDelayed = false\r\n }\r\n that._isDataSourceApplying = false;\r\n var needApplyFilter = that._needApplyFilter;\r\n that._needApplyFilter = false;\r\n if (needApplyFilter && !that._isAllDataTypesDefined && (additionalFilter = that._calculateAdditionalFilter(), additionalFilter && additionalFilter.length)) {\r\n errors.log(\"W1005\", that.component.NAME);\r\n that._applyFilter()\r\n } else {\r\n that.updateItems(e, true)\r\n }\r\n var additionalFilter\r\n }).fail(() => {\r\n that._isDataSourceApplying = false\r\n });\r\n if (that._isDataSourceApplying) {\r\n isAsyncDataSourceApplying = true;\r\n that._handleLoadingChanged(true)\r\n }\r\n that._needApplyFilter = !that._columnsController.isDataSourceApplied();\r\n that._isAllDataTypesDefined = columnsController.isAllDataTypesDefined()\r\n }\r\n }\r\n _handleLoadingChanged(isLoading) {\r\n this._isLoading = isLoading;\r\n this._fireLoadingChanged()\r\n }\r\n _handleLoadError(e) {\r\n this.dataErrorOccurred.fire(e)\r\n }\r\n _handleDataPushed(changes) {\r\n this.pushed.fire(changes)\r\n }\r\n fireError() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n this.dataErrorOccurred.fire(errors.Error.apply(errors, args))\r\n }\r\n _setPagingOptions(dataSource) {\r\n var pageIndex = this.option(\"paging.pageIndex\");\r\n var pageSize = this.option(\"paging.pageSize\");\r\n var pagingEnabled = this.option(\"paging.enabled\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var appendMode = \"infinite\" === scrollingMode;\r\n var virtualMode = \"virtual\" === scrollingMode;\r\n var paginate = pagingEnabled || virtualMode || appendMode;\r\n var isPaginateChanged = false;\r\n var isPageSizeChanged = false;\r\n var isPageIndexChanged = false;\r\n dataSource.requireTotalCount(!appendMode);\r\n if (void 0 !== pagingEnabled && dataSource.paginate() !== paginate) {\r\n dataSource.paginate(paginate);\r\n isPaginateChanged = true\r\n }\r\n if (void 0 !== pageSize && dataSource.pageSize() !== pageSize) {\r\n dataSource.pageSize(pageSize);\r\n isPageSizeChanged = true\r\n }\r\n if (void 0 !== pageIndex && dataSource.pageIndex() !== pageIndex) {\r\n dataSource.pageIndex(pageIndex);\r\n isPageIndexChanged = true\r\n }\r\n if (isPaginateChanged || isPageSizeChanged || isPageIndexChanged) {\r\n return {\r\n isPaginateChanged: isPaginateChanged,\r\n isPageSizeChanged: isPageSizeChanged,\r\n isPageIndexChanged: isPageIndexChanged\r\n }\r\n }\r\n return false\r\n }\r\n _getSpecificDataSourceOption() {\r\n var dataSource = this.option(\"dataSource\");\r\n if (Array.isArray(dataSource)) {\r\n return {\r\n store: {\r\n type: \"array\",\r\n data: dataSource,\r\n key: this.option(\"keyExpr\")\r\n }\r\n }\r\n }\r\n return dataSource\r\n }\r\n _initDataSource() {\r\n var oldDataSource = this._dataSource;\r\n super._initDataSource();\r\n var dataSource = this._dataSource;\r\n this._useSortingGroupingFromColumns = true;\r\n this._cachedProcessedItems = null;\r\n if (dataSource) {\r\n var changedPagingOptions = this._setPagingOptions(dataSource);\r\n this._isPaging = null === changedPagingOptions || void 0 === changedPagingOptions ? void 0 : changedPagingOptions.isPageIndexChanged;\r\n this.setDataSource(dataSource)\r\n } else if (oldDataSource) {\r\n this.updateItems()\r\n }\r\n }\r\n _loadDataSource() {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var result = new Deferred;\r\n when(this._columnsController.refresh(true)).always(() => {\r\n if (dataSource) {\r\n dataSource.load().done((function() {\r\n that._isPaging = false;\r\n result.resolve.apply(result, arguments)\r\n })).fail(result.reject)\r\n } else {\r\n result.resolve()\r\n }\r\n });\r\n return result.promise()\r\n }\r\n _beforeProcessItems(items) {\r\n return items.slice(0)\r\n }\r\n getRowIndexDelta() {\r\n return 0\r\n }\r\n getDataIndex(change) {\r\n var visibleItems = this._items;\r\n var lastVisibleItem = \"append\" === change.changeType && visibleItems.length > 0 ? visibleItems[visibleItems.length - 1] : null;\r\n return isDefined(null === lastVisibleItem || void 0 === lastVisibleItem ? void 0 : lastVisibleItem.dataIndex) ? lastVisibleItem.dataIndex + 1 : 0\r\n }\r\n _processItems(items, change) {\r\n var that = this;\r\n var rowIndexDelta = that.getRowIndexDelta();\r\n var {\r\n changeType: changeType\r\n } = change;\r\n var visibleColumns = that._columnsController.getVisibleColumns(null, \"loadingAll\" === changeType);\r\n var dataIndex = this.getDataIndex(change);\r\n var options = {\r\n visibleColumns: visibleColumns,\r\n dataIndex: dataIndex\r\n };\r\n var result = [];\r\n each(items, (index, item) => {\r\n if (isDefined(item)) {\r\n options.rowIndex = index - rowIndexDelta;\r\n item = that._processItem(item, options);\r\n result.push(item)\r\n }\r\n });\r\n return result\r\n }\r\n _processItem(item, options) {\r\n item = this._generateDataItem(item, options);\r\n item = this._processDataItem(item, options);\r\n item.dataIndex = options.dataIndex++;\r\n return item\r\n }\r\n _generateDataItem(data, options) {\r\n return {\r\n rowType: \"data\",\r\n data: data,\r\n key: this.keyOf(data)\r\n }\r\n }\r\n _processDataItem(dataItem, options) {\r\n dataItem.values = this.generateDataValues(dataItem.data, options.visibleColumns);\r\n return dataItem\r\n }\r\n generateDataValues(data, columns, isModified) {\r\n var values = [];\r\n var value;\r\n for (var i = 0; i < columns.length; i++) {\r\n var column = columns[i];\r\n value = isModified ? void 0 : null;\r\n if (!column.command) {\r\n if (column.calculateCellValue) {\r\n value = column.calculateCellValue(data)\r\n } else if (column.dataField) {\r\n value = data[column.dataField]\r\n }\r\n }\r\n values.push(value)\r\n }\r\n return values\r\n }\r\n _applyChange(change) {\r\n if (\"update\" === change.changeType) {\r\n this._applyChangeUpdate(change)\r\n } else if (this.items().length && change.repaintChangesOnly && \"refresh\" === change.changeType) {\r\n this._applyChangesOnly(change)\r\n } else if (\"refresh\" === change.changeType) {\r\n this._applyChangeFull(change)\r\n }\r\n }\r\n _applyChangeFull(change) {\r\n this._items = change.items.slice(0)\r\n }\r\n _getRowIndices(change) {\r\n var rowIndices = change.rowIndices.slice(0);\r\n var rowIndexDelta = this.getRowIndexDelta();\r\n rowIndices.sort((a, b) => a - b);\r\n for (var i = 0; i < rowIndices.length; i++) {\r\n var correctedRowIndex = rowIndices[i];\r\n if (change.allowInvisibleRowIndices) {\r\n correctedRowIndex += rowIndexDelta\r\n }\r\n if (correctedRowIndex < 0) {\r\n rowIndices.splice(i, 1);\r\n i--\r\n }\r\n }\r\n return rowIndices\r\n }\r\n _applyChangeUpdate(change) {\r\n var that = this;\r\n var {\r\n items: items\r\n } = change;\r\n var rowIndices = that._getRowIndices(change);\r\n var rowIndexDelta = that.getRowIndexDelta();\r\n var repaintChangesOnly = that.option(\"repaintChangesOnly\");\r\n var prevIndex = -1;\r\n var rowIndexCorrection = 0;\r\n var changeType;\r\n change.items = [];\r\n change.rowIndices = [];\r\n change.columnIndices = [];\r\n change.changeTypes = [];\r\n var equalItems = function(item1, item2, strict) {\r\n var result = item1 && item2 && equalByValue(item1.key, item2.key);\r\n if (result && strict) {\r\n result = item1.rowType === item2.rowType && (\"detail\" !== item2.rowType || item1.isEditing === item2.isEditing)\r\n }\r\n return result\r\n };\r\n each(rowIndices, (index, rowIndex) => {\r\n var columnIndices;\r\n rowIndex += rowIndexCorrection + rowIndexDelta;\r\n if (prevIndex === rowIndex) {\r\n return\r\n }\r\n prevIndex = rowIndex;\r\n var oldItem = that._items[rowIndex];\r\n var oldNextItem = that._items[rowIndex + 1];\r\n var newItem = items[rowIndex];\r\n var newNextItem = items[rowIndex + 1];\r\n var strict = equalItems(oldItem, oldNextItem) || equalItems(newItem, newNextItem);\r\n if (newItem) {\r\n newItem.rowIndex = rowIndex;\r\n change.items.push(newItem)\r\n }\r\n if (oldItem && newItem && equalItems(oldItem, newItem, strict)) {\r\n changeType = \"update\";\r\n that._items[rowIndex] = newItem;\r\n if (oldItem.visible !== newItem.visible) {\r\n change.items.splice(-1, 1, {\r\n visible: newItem.visible\r\n })\r\n } else if (repaintChangesOnly && !change.isFullUpdate) {\r\n columnIndices = that._partialUpdateRow(oldItem, newItem, rowIndex - rowIndexDelta)\r\n }\r\n } else if (newItem && !oldItem || newNextItem && equalItems(oldItem, newNextItem, strict)) {\r\n changeType = \"insert\";\r\n that._items.splice(rowIndex, 0, newItem);\r\n rowIndexCorrection++\r\n } else if (oldItem && !newItem || oldNextItem && equalItems(newItem, oldNextItem, strict)) {\r\n changeType = \"remove\";\r\n that._items.splice(rowIndex, 1);\r\n rowIndexCorrection--;\r\n prevIndex = -1\r\n } else if (newItem) {\r\n changeType = \"update\";\r\n that._items[rowIndex] = newItem\r\n } else {\r\n return\r\n }\r\n change.rowIndices.push(rowIndex - rowIndexDelta);\r\n change.changeTypes.push(changeType);\r\n change.columnIndices.push(columnIndices)\r\n })\r\n }\r\n _isCellChanged(oldRow, newRow, visibleRowIndex, columnIndex, isLiveUpdate) {\r\n if (JSON.stringify(oldRow.values[columnIndex]) !== JSON.stringify(newRow.values[columnIndex])) {\r\n return true\r\n }\r\n\r\n function isCellModified(row, columnIndex) {\r\n return row.modifiedValues ? void 0 !== row.modifiedValues[columnIndex] : false\r\n }\r\n if (isCellModified(oldRow, columnIndex) !== isCellModified(newRow, columnIndex)) {\r\n return true\r\n }\r\n return false\r\n }\r\n _getChangedColumnIndices(oldItem, newItem, visibleRowIndex, isLiveUpdate) {\r\n var columnIndices;\r\n if (oldItem.rowType === newItem.rowType) {\r\n if (\"group\" !== newItem.rowType && \"groupFooter\" !== newItem.rowType) {\r\n columnIndices = [];\r\n if (\"detail\" !== newItem.rowType) {\r\n for (var columnIndex = 0; columnIndex < oldItem.values.length; columnIndex++) {\r\n if (this._isCellChanged(oldItem, newItem, visibleRowIndex, columnIndex, isLiveUpdate)) {\r\n columnIndices.push(columnIndex)\r\n }\r\n }\r\n }\r\n }\r\n if (\"group\" === newItem.rowType && newItem.isExpanded === oldItem.isExpanded && oldItem.cells) {\r\n columnIndices = oldItem.cells.map((cell, index) => {\r\n var _a;\r\n return \"groupExpand\" !== (null === (_a = cell.column) || void 0 === _a ? void 0 : _a.type) ? index : -1\r\n }).filter(index => index >= 0)\r\n }\r\n }\r\n return columnIndices\r\n }\r\n _partialUpdateRow(oldItem, newItem, visibleRowIndex, isLiveUpdate) {\r\n var changedColumnIndices = this._getChangedColumnIndices(oldItem, newItem, visibleRowIndex, isLiveUpdate);\r\n if ((null === changedColumnIndices || void 0 === changedColumnIndices ? void 0 : changedColumnIndices.length) && this.option(\"dataRowTemplate\")) {\r\n changedColumnIndices = void 0\r\n }\r\n if (changedColumnIndices) {\r\n oldItem.cells && oldItem.cells.forEach((cell, columnIndex) => {\r\n var isCellChanged = changedColumnIndices.indexOf(columnIndex) >= 0;\r\n if (!isCellChanged && cell && cell.update) {\r\n cell.update(newItem)\r\n }\r\n });\r\n newItem.update = oldItem.update;\r\n newItem.watch = oldItem.watch;\r\n newItem.cells = oldItem.cells;\r\n if (isLiveUpdate) {\r\n newItem.oldValues = oldItem.values\r\n }\r\n oldItem.update && oldItem.update(newItem)\r\n }\r\n return changedColumnIndices\r\n }\r\n _isItemEquals(item1, item2) {\r\n var _a, _b, _c, _d;\r\n if (JSON.stringify(item1.values) !== JSON.stringify(item2.values)) {\r\n return false\r\n }\r\n if ([\"modified\", \"isNewRow\", \"removed\", \"isEditing\"].some(field => item1[field] !== item2[field])) {\r\n return false\r\n }\r\n if (\"group\" === item1.rowType || \"groupFooter\" === item1.rowType) {\r\n var expandedMatch = item1.isExpanded === item2.isExpanded;\r\n var summaryCellsMatch = JSON.stringify(item1.summaryCells) === JSON.stringify(item2.summaryCells);\r\n var continuationMatch = (null === (_a = item1.data) || void 0 === _a ? void 0 : _a.isContinuation) === (null === (_b = item2.data) || void 0 === _b ? void 0 : _b.isContinuation) && (null === (_c = item1.data) || void 0 === _c ? void 0 : _c.isContinuationOnNextPage) === (null === (_d = item2.data) || void 0 === _d ? void 0 : _d.isContinuationOnNextPage);\r\n if (!expandedMatch || !summaryCellsMatch || !continuationMatch) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n _applyChangesOnly(change) {\r\n var _a;\r\n var rowIndices = [];\r\n var columnIndices = [];\r\n var changeTypes = [];\r\n var items = [];\r\n var newIndexByKey = {};\r\n var isLiveUpdate = null !== (_a = null === change || void 0 === change ? void 0 : change.isLiveUpdate) && void 0 !== _a ? _a : true;\r\n\r\n function getRowKey(row) {\r\n if (row) {\r\n return \"\".concat(row.rowType, \",\").concat(JSON.stringify(row.key))\r\n }\r\n return\r\n }\r\n var currentItems = this._items;\r\n var oldItems = currentItems.slice();\r\n change.items.forEach((item, index) => {\r\n var key = getRowKey(item);\r\n newIndexByKey[key] = index;\r\n item.rowIndex = index\r\n });\r\n var result = findChanges(oldItems, change.items, getRowKey, (item1, item2) => {\r\n if (!this._isItemEquals(item1, item2)) {\r\n return false\r\n }\r\n if (item1.cells) {\r\n item1.update && item1.update(item2);\r\n item1.cells.forEach(cell => {\r\n if (cell && cell.update) {\r\n cell.update(item2, true)\r\n }\r\n })\r\n }\r\n return true\r\n });\r\n if (!result) {\r\n this._applyChangeFull(change);\r\n return\r\n }\r\n result.forEach(change => {\r\n switch (change.type) {\r\n case \"update\":\r\n var {\r\n index: index\r\n } = change;\r\n var newItem = change.data;\r\n var {\r\n oldItem: oldItem\r\n } = change;\r\n var changedColumnIndices = this._partialUpdateRow(oldItem, newItem, index, isLiveUpdate);\r\n rowIndices.push(index);\r\n changeTypes.push(\"update\");\r\n items.push(newItem);\r\n currentItems[index] = newItem;\r\n columnIndices.push(changedColumnIndices);\r\n break;\r\n case \"insert\":\r\n rowIndices.push(change.index);\r\n changeTypes.push(\"insert\");\r\n items.push(change.data);\r\n columnIndices.push(void 0);\r\n currentItems.splice(change.index, 0, change.data);\r\n break;\r\n case \"remove\":\r\n rowIndices.push(change.index);\r\n changeTypes.push(\"remove\");\r\n currentItems.splice(change.index, 1);\r\n items.push(change.oldItem);\r\n columnIndices.push(void 0)\r\n }\r\n });\r\n change.repaintChangesOnly = true;\r\n change.changeType = \"update\";\r\n change.rowIndices = rowIndices;\r\n change.columnIndices = columnIndices;\r\n change.changeTypes = changeTypes;\r\n change.items = items;\r\n if (oldItems.length) {\r\n change.isLiveUpdate = true\r\n }\r\n this._correctRowIndices(rowIndex => {\r\n var oldRowIndexOffset = this._rowIndexOffset || 0;\r\n var rowIndexOffset = this.getRowIndexOffset();\r\n var oldItem = oldItems[rowIndex - oldRowIndexOffset];\r\n var key = getRowKey(oldItem);\r\n var newVisibleRowIndex = newIndexByKey[key];\r\n return newVisibleRowIndex >= 0 ? newVisibleRowIndex + rowIndexOffset - rowIndex : 0\r\n })\r\n }\r\n _correctRowIndices(rowIndex) {}\r\n _afterProcessItems(items, change) {\r\n return items\r\n }\r\n _updateItemsCore(change) {\r\n var items;\r\n var dataSource = this._dataSource;\r\n var changeType = change.changeType || \"refresh\";\r\n change.changeType = changeType;\r\n if (dataSource) {\r\n var cachedProcessedItems = this._cachedProcessedItems;\r\n if (change.useProcessedItemsCache && cachedProcessedItems) {\r\n items = cachedProcessedItems\r\n } else {\r\n items = change.items || dataSource.items();\r\n items = this._beforeProcessItems(items);\r\n items = this._processItems(items, change);\r\n this._cachedProcessedItems = items\r\n }\r\n items = this._afterProcessItems(items, change);\r\n change.items = items;\r\n var oldItems = this._items.length === items.length && this._items;\r\n this._applyChange(change);\r\n var rowIndexDelta = this.getRowIndexDelta();\r\n each(this._items, (index, item) => {\r\n var _a;\r\n item.rowIndex = index - rowIndexDelta;\r\n if (oldItems) {\r\n item.cells = null !== (_a = oldItems[index].cells) && void 0 !== _a ? _a : []\r\n }\r\n var newItem = items[index];\r\n if (newItem) {\r\n item.loadIndex = newItem.loadIndex\r\n }\r\n });\r\n this._rowIndexOffset = this.getRowIndexOffset()\r\n } else {\r\n this._items = []\r\n }\r\n }\r\n _handleChanging(e) {\r\n var rows = this.getVisibleRows();\r\n var dataSource = this.dataSource();\r\n if (dataSource) {\r\n e.changes.forEach(change => {\r\n if (\"insert\" === change.type && change.index >= 0) {\r\n var dataIndex = 0;\r\n for (var i = 0; i < change.index; i++) {\r\n var row = rows[i];\r\n if (row && (\"data\" === row.rowType || \"group\" === row.rowType)) {\r\n dataIndex++\r\n }\r\n }\r\n change.index = dataIndex\r\n }\r\n })\r\n }\r\n }\r\n updateItems(change, isDataChanged) {\r\n var _a;\r\n change = change || {};\r\n if (void 0 !== this._repaintChangesOnly) {\r\n change.repaintChangesOnly = null !== (_a = change.repaintChangesOnly) && void 0 !== _a ? _a : this._repaintChangesOnly;\r\n change.needUpdateDimensions = change.needUpdateDimensions || this._needUpdateDimensions\r\n } else if (change.changes) {\r\n change.repaintChangesOnly = this.option(\"repaintChangesOnly\")\r\n } else if (isDataChanged) {\r\n var operationTypes = this.dataSource().operationTypes();\r\n change.repaintChangesOnly = operationTypes && !operationTypes.grouping && !operationTypes.filtering && this.option(\"repaintChangesOnly\");\r\n change.isDataChanged = true;\r\n if (operationTypes && (operationTypes.reload || operationTypes.paging || operationTypes.groupExpanding)) {\r\n change.needUpdateDimensions = true\r\n }\r\n }\r\n if (this._updateLockCount && !change.cancel) {\r\n this._changes.push(change);\r\n return\r\n }\r\n this._updateItemsCore(change);\r\n if (change.cancel) {\r\n return\r\n }\r\n this._fireChanged(change)\r\n }\r\n loadingOperationTypes() {\r\n var dataSource = this.dataSource();\r\n return dataSource && dataSource.loadingOperationTypes() || {}\r\n }\r\n _fireChanged(change) {\r\n if (this._currentOperationTypes) {\r\n change.operationTypes = this._currentOperationTypes;\r\n this._currentOperationTypes = null\r\n }\r\n deferRender(() => {\r\n this.changed.fire(change)\r\n })\r\n }\r\n isLoading() {\r\n return this._isLoading || this._isCustomLoading\r\n }\r\n _fireLoadingChanged() {\r\n this.loadingChanged.fire(this.isLoading(), this._loadingText)\r\n }\r\n _calculateAdditionalFilter() {\r\n return null\r\n }\r\n _applyFilter() {\r\n var dataSource = this._dataSource;\r\n if (dataSource) {\r\n dataSource.pageIndex(0);\r\n this._isFilterApplying = true;\r\n return this.reload().done(() => {\r\n if (this._isFilterApplying) {\r\n this.pageChanged.fire()\r\n }\r\n })\r\n }\r\n }\r\n resetFilterApplying() {\r\n this._isFilterApplying = false\r\n }\r\n filter(filterExpr) {\r\n var dataSource = this._dataSource;\r\n var filter = dataSource && dataSource.filter();\r\n if (0 === arguments.length) {\r\n return filter\r\n }\r\n filterExpr = arguments.length > 1 ? Array.prototype.slice.call(arguments, 0) : filterExpr;\r\n if (gridCoreUtils.equalFilterParameters(filter, filterExpr)) {\r\n return\r\n }\r\n if (dataSource) {\r\n dataSource.filter(filterExpr)\r\n }\r\n this._applyFilter()\r\n }\r\n clearFilter(filterName) {\r\n var columnsController = this._columnsController;\r\n var clearColumnOption = function(optionName) {\r\n var columnCount = columnsController.columnCount();\r\n for (var index = 0; index < columnCount; index++) {\r\n columnsController.columnOption(index, optionName, void 0)\r\n }\r\n };\r\n this.component.beginUpdate();\r\n if (arguments.length > 0) {\r\n switch (filterName) {\r\n case \"dataSource\":\r\n this.filter(null);\r\n break;\r\n case \"search\":\r\n this.searchByText(\"\");\r\n break;\r\n case \"header\":\r\n clearColumnOption(\"filterValues\");\r\n break;\r\n case \"row\":\r\n clearColumnOption(\"filterValue\")\r\n }\r\n } else {\r\n this.filter(null);\r\n this.searchByText(\"\");\r\n clearColumnOption(\"filterValue\");\r\n clearColumnOption(\"bufferedFilterValue\");\r\n clearColumnOption(\"filterValues\")\r\n }\r\n this.component.endUpdate()\r\n }\r\n _fireDataSourceChanged() {\r\n var that = this;\r\n that.changed.add((function changedHandler() {\r\n that.changed.remove(changedHandler);\r\n that.dataSourceChanged.fire()\r\n }))\r\n }\r\n _getDataSourceAdapter() {}\r\n _createDataSourceAdapterCore(dataSource, remoteOperations) {\r\n var dataSourceAdapterProvider = this._getDataSourceAdapter();\r\n var dataSourceAdapter = dataSourceAdapterProvider.create(this.component);\r\n dataSourceAdapter.init(dataSource, remoteOperations);\r\n return dataSourceAdapter\r\n }\r\n isLocalStore() {\r\n var store = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.store();\r\n return store instanceof ArrayStore\r\n }\r\n isCustomStore(store) {\r\n store = store || this.store();\r\n return store instanceof CustomStore\r\n }\r\n _createDataSourceAdapter(dataSource) {\r\n var remoteOperations = this.option(\"remoteOperations\");\r\n var store = dataSource.store();\r\n var enabledRemoteOperations = {\r\n filtering: true,\r\n sorting: true,\r\n paging: true,\r\n grouping: true,\r\n summary: true\r\n };\r\n if (isObject(remoteOperations) && remoteOperations.groupPaging) {\r\n remoteOperations = extend({}, enabledRemoteOperations, remoteOperations)\r\n }\r\n if (\"auto\" === remoteOperations) {\r\n remoteOperations = this.isLocalStore(store) || this.isCustomStore(store) ? {} : {\r\n filtering: true,\r\n sorting: true,\r\n paging: true\r\n }\r\n }\r\n if (true === remoteOperations) {\r\n remoteOperations = enabledRemoteOperations\r\n }\r\n return this._createDataSourceAdapterCore(dataSource, remoteOperations)\r\n }\r\n setDataSource(dataSource) {\r\n var oldDataSource = this._dataSource;\r\n if (!dataSource && oldDataSource) {\r\n oldDataSource.cancelAll();\r\n oldDataSource.changed.remove(this._dataChangedHandler);\r\n oldDataSource.loadingChanged.remove(this._loadingChangedHandler);\r\n oldDataSource.loadError.remove(this._loadErrorHandler);\r\n oldDataSource.customizeStoreLoadOptions.remove(this._customizeStoreLoadOptionsHandler);\r\n oldDataSource.changing.remove(this._changingHandler);\r\n oldDataSource.pushed.remove(this._dataPushedHandler);\r\n oldDataSource.dispose(this._isSharedDataSource)\r\n }\r\n if (dataSource) {\r\n dataSource = this._createDataSourceAdapter(dataSource)\r\n }\r\n this._dataSource = dataSource;\r\n if (dataSource) {\r\n this._fireDataSourceChanged();\r\n this._isLoading = !dataSource.isLoaded();\r\n this._needApplyFilter = true;\r\n this._isAllDataTypesDefined = this._columnsController.isAllDataTypesDefined();\r\n dataSource.changed.add(this._dataChangedHandler);\r\n dataSource.loadingChanged.add(this._loadingChangedHandler);\r\n dataSource.loadError.add(this._loadErrorHandler);\r\n dataSource.customizeStoreLoadOptions.add(this._customizeStoreLoadOptionsHandler);\r\n dataSource.changing.add(this._changingHandler);\r\n dataSource.pushed.add(this._dataPushedHandler)\r\n }\r\n }\r\n items(byLoaded) {\r\n return this._items\r\n }\r\n isEmpty() {\r\n return !this.items().length\r\n }\r\n pageCount() {\r\n return this._dataSource ? this._dataSource.pageCount() : 1\r\n }\r\n dataSource() {\r\n return this._dataSource\r\n }\r\n store() {\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.store()\r\n }\r\n loadAll(data) {\r\n var skipFilter = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : false;\r\n var that = this;\r\n var d = new Deferred;\r\n var dataSource = that._dataSource;\r\n if (dataSource) {\r\n if (data) {\r\n var options = {\r\n data: data,\r\n isCustomLoading: true,\r\n storeLoadOptions: {\r\n isLoadingAll: true\r\n },\r\n loadOptions: {\r\n filter: skipFilter ? null : that.getCombinedFilter(),\r\n group: dataSource.group(),\r\n sort: dataSource.sort()\r\n }\r\n };\r\n dataSource._handleDataLoaded(options);\r\n when(options.data).done(data => {\r\n var _a;\r\n data = that._beforeProcessItems(data);\r\n d.resolve(that._processItems(data, {\r\n changeType: \"loadingAll\"\r\n }), null === (_a = options.extra) || void 0 === _a ? void 0 : _a.summary)\r\n }).fail(d.reject)\r\n } else if (!dataSource.isLoading()) {\r\n var loadOptions = extend({}, dataSource.loadOptions(), {\r\n isLoadingAll: true,\r\n requireTotalCount: false\r\n });\r\n dataSource.load(loadOptions).done((items, extra) => {\r\n items = that._beforeProcessItems(items);\r\n items = that._processItems(items, {\r\n changeType: \"loadingAll\"\r\n });\r\n d.resolve(items, extra && extra.summary)\r\n }).fail(d.reject)\r\n } else {\r\n d.reject()\r\n }\r\n } else {\r\n d.resolve([])\r\n }\r\n return d\r\n }\r\n getKeyByRowIndex(rowIndex, byLoaded) {\r\n var item = this.items(byLoaded)[rowIndex];\r\n if (item) {\r\n return item.key\r\n }\r\n }\r\n getRowIndexByKey(key, byLoaded) {\r\n return gridCoreUtils.getIndexByKey(key, this.items(byLoaded))\r\n }\r\n keyOf(data) {\r\n var store = this.store();\r\n if (store) {\r\n return store.keyOf(data)\r\n }\r\n }\r\n byKey(key) {\r\n var store = this.store();\r\n var rowIndex = this.getRowIndexByKey(key);\r\n var result;\r\n if (!store) {\r\n return\r\n }\r\n if (rowIndex >= 0) {\r\n result = (new Deferred).resolve(this.items()[rowIndex].data)\r\n }\r\n return result || store.byKey(key)\r\n }\r\n key() {\r\n var store = this.store();\r\n if (store) {\r\n return store.key()\r\n }\r\n }\r\n getRowIndexOffset(byLoadedRows) {\r\n return 0\r\n }\r\n getDataByKeys(rowKeys) {\r\n var that = this;\r\n var result = new Deferred;\r\n var deferreds = [];\r\n var data = [];\r\n each(rowKeys, (index, key) => {\r\n deferreds.push(that.byKey(key).done(keyData => {\r\n data[index] = keyData\r\n }))\r\n });\r\n when.apply($, deferreds).always(() => {\r\n result.resolve(data)\r\n });\r\n return result\r\n }\r\n pageIndex(value) {\r\n return changePaging(this, \"pageIndex\", value)\r\n }\r\n pageSize(value) {\r\n return changePaging(this, \"pageSize\", value)\r\n }\r\n beginCustomLoading(messageText) {\r\n this._isCustomLoading = true;\r\n this._loadingText = messageText || \"\";\r\n this._fireLoadingChanged()\r\n }\r\n endCustomLoading() {\r\n this._isCustomLoading = false;\r\n this._loadingText = void 0;\r\n this._fireLoadingChanged()\r\n }\r\n refresh(options) {\r\n if (true === options) {\r\n options = {\r\n reload: true,\r\n changesOnly: true\r\n }\r\n } else if (!options) {\r\n options = {\r\n lookup: true,\r\n selection: true,\r\n reload: true\r\n }\r\n }\r\n var that = this;\r\n var dataSource = that.getDataSource();\r\n var {\r\n changesOnly: changesOnly\r\n } = options;\r\n var d = new Deferred;\r\n var customizeLoadResult = function() {\r\n that._repaintChangesOnly = !!changesOnly\r\n };\r\n when(!options.lookup || that._columnsController.refresh()).always(() => {\r\n if (options.load || options.reload) {\r\n dataSource && dataSource.on(\"customizeLoadResult\", customizeLoadResult);\r\n when(that.reload(options.reload, changesOnly)).always(() => {\r\n dataSource && dataSource.off(\"customizeLoadResult\", customizeLoadResult);\r\n that._repaintChangesOnly = void 0\r\n }).done(d.resolve).fail(d.reject)\r\n } else {\r\n that.updateItems({\r\n repaintChangesOnly: options.changesOnly\r\n });\r\n d.resolve()\r\n }\r\n });\r\n return d.promise()\r\n }\r\n getVisibleRows() {\r\n return this.items()\r\n }\r\n _disposeDataSource() {\r\n this.setDataSource(null)\r\n }\r\n dispose() {\r\n this._disposeDataSource();\r\n super.dispose()\r\n }\r\n repaintRows(rowIndexes, changesOnly) {\r\n rowIndexes = Array.isArray(rowIndexes) ? rowIndexes : [rowIndexes];\r\n if (rowIndexes.length > 1 || isDefined(rowIndexes[0])) {\r\n this.updateItems({\r\n changeType: \"update\",\r\n rowIndices: rowIndexes,\r\n isFullUpdate: !changesOnly\r\n })\r\n }\r\n }\r\n skipProcessingPagingChange(fullName) {\r\n return this._skipProcessingPagingChange && (\"paging.pageIndex\" === fullName || \"paging.pageSize\" === fullName)\r\n }\r\n getUserState() {\r\n return {\r\n searchText: this.option(\"searchPanel.text\"),\r\n pageIndex: this.pageIndex(),\r\n pageSize: this.pageSize()\r\n }\r\n }\r\n getCachedStoreData() {\r\n return this._dataSource && this._dataSource.getCachedStoreData()\r\n }\r\n isLastPageLoaded() {\r\n var pageIndex = this.pageIndex();\r\n var pageCount = this.pageCount();\r\n return pageIndex === pageCount - 1\r\n }\r\n load() {\r\n var _a;\r\n return null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.load()\r\n }\r\n reload(reload, changesOnly) {\r\n var _a;\r\n return null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.reload(reload, changesOnly)\r\n }\r\n push() {\r\n var _a;\r\n return null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.push(...arguments)\r\n }\r\n itemsCount() {\r\n var _a;\r\n return this._dataSource ? null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.itemsCount() : 0\r\n }\r\n totalItemsCount() {\r\n var _a;\r\n return this._dataSource ? null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.totalItemsCount() : 0\r\n }\r\n hasKnownLastPage() {\r\n var _a;\r\n return this._dataSource ? null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.hasKnownLastPage() : true\r\n }\r\n isLoaded() {\r\n var _a;\r\n return this._dataSource ? null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.isLoaded() : true\r\n }\r\n totalCount() {\r\n var _a;\r\n return this._dataSource ? null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.totalCount() : 0\r\n }\r\n}\r\nexport var dataControllerModule = {\r\n defaultOptions: () => ({\r\n loadingTimeout: 0,\r\n dataSource: null,\r\n cacheEnabled: true,\r\n repaintChangesOnly: false,\r\n highlightChanges: false,\r\n onDataErrorOccurred: null,\r\n remoteOperations: \"auto\",\r\n paging: {\r\n enabled: true,\r\n pageSize: void 0,\r\n pageIndex: void 0\r\n }\r\n }),\r\n controllers: {\r\n data: DataController\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/m_data_controller.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar _a, _b;\r\nimport errors from \"../../../ui/widget/ui.errors\";\r\nimport {\r\n dataControllerModule\r\n} from \"../../grids/grid_core/data_controller/m_data_controller\";\r\nimport gridCore from \"./m_core\";\r\nimport dataSourceAdapterProvider from \"./m_data_source_adapter\";\r\nexport var DataController = null === (_b = null === (_a = dataControllerModule.controllers) || void 0 === _a ? void 0 : _a.data) || void 0 === _b ? void 0 : _b.inherit({\r\n _getDataSourceAdapter: () => dataSourceAdapterProvider,\r\n _getSpecificDataSourceOption() {\r\n var dataSource = this.option(\"dataSource\");\r\n if (dataSource && !Array.isArray(dataSource) && this.option(\"keyExpr\")) {\r\n errors.log(\"W1011\")\r\n }\r\n return this.callBase()\r\n }\r\n});\r\ngridCore.registerModule(\"data\", {\r\n defaultOptions: dataControllerModule.defaultOptions,\r\n controllers: {\r\n data: DataController\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/data_source_adapter/m_data_source_adapter.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 Callbacks from \"../../../../core/utils/callbacks\";\r\nimport {\r\n executeAsync,\r\n getKeyHash\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred,\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 isDefined,\r\n isFunction,\r\n isPlainObject\r\n} from \"../../../../core/utils/type\";\r\nimport ArrayStore from \"../../../../data/array_store\";\r\nimport {\r\n applyBatch\r\n} from \"../../../../data/array_utils\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nexport default modules.Controller.inherit(function() {\r\n function cloneItems(items, groupCount) {\r\n if (items) {\r\n items = items.slice(0);\r\n if (groupCount) {\r\n for (var i = 0; i < items.length; i++) {\r\n items[i] = extend({\r\n key: items[i].key\r\n }, items[i]);\r\n items[i].items = cloneItems(items[i].items, groupCount - 1)\r\n }\r\n }\r\n }\r\n return items\r\n }\r\n\r\n function calculateOperationTypes(loadOptions, lastLoadOptions, isFullReload) {\r\n var operationTypes = {\r\n reload: true,\r\n fullReload: true\r\n };\r\n if (lastLoadOptions) {\r\n operationTypes = {\r\n sorting: !gridCoreUtils.equalSortParameters(loadOptions.sort, lastLoadOptions.sort),\r\n grouping: !gridCoreUtils.equalSortParameters(loadOptions.group, lastLoadOptions.group, true),\r\n groupExpanding: !gridCoreUtils.equalSortParameters(loadOptions.group, lastLoadOptions.group) || lastLoadOptions.groupExpand,\r\n filtering: !gridCoreUtils.equalFilterParameters(loadOptions.filter, lastLoadOptions.filter),\r\n pageIndex: loadOptions.pageIndex !== lastLoadOptions.pageIndex,\r\n skip: loadOptions.skip !== lastLoadOptions.skip,\r\n take: loadOptions.take !== lastLoadOptions.take,\r\n pageSize: loadOptions.pageSize !== lastLoadOptions.pageSize,\r\n fullReload: isFullReload,\r\n reload: false,\r\n paging: false\r\n };\r\n operationTypes.reload = isFullReload || operationTypes.sorting || operationTypes.grouping || operationTypes.filtering;\r\n operationTypes.paging = operationTypes.pageIndex || operationTypes.pageSize || operationTypes.take\r\n }\r\n return operationTypes\r\n }\r\n\r\n function getPageDataFromCache(options, updatePaging) {\r\n var groupCount = gridCoreUtils.normalizeSortingInfo(options.group || options.storeLoadOptions.group || options.loadOptions.group).length;\r\n var items = [];\r\n if (fillItemsFromCache(items, options, groupCount)) {\r\n return items\r\n }\r\n if (updatePaging) {\r\n ! function(cacheItemsFromBegin, options, groupCount) {\r\n var _a, _b;\r\n var cacheItemBeginCount = cacheItemsFromBegin.length;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n if (void 0 !== storeLoadOptions.skip && storeLoadOptions.take && !groupCount) {\r\n var cacheItemsFromEnd = [];\r\n fillItemsFromCache(cacheItemsFromEnd, options, groupCount, true);\r\n var cacheItemEndCount = cacheItemsFromEnd.length;\r\n if (cacheItemBeginCount || cacheItemEndCount) {\r\n options.skip = null !== (_a = options.skip) && void 0 !== _a ? _a : storeLoadOptions.skip;\r\n options.take = null !== (_b = options.take) && void 0 !== _b ? _b : storeLoadOptions.take\r\n }\r\n if (cacheItemBeginCount) {\r\n storeLoadOptions.skip += cacheItemBeginCount;\r\n storeLoadOptions.take -= cacheItemBeginCount;\r\n options.cachedDataPartBegin = cacheItemsFromBegin\r\n }\r\n if (cacheItemEndCount) {\r\n storeLoadOptions.take -= cacheItemEndCount;\r\n options.cachedDataPartEnd = cacheItemsFromEnd.reverse()\r\n }\r\n }\r\n }(items, options, groupCount)\r\n }\r\n }\r\n\r\n function fillItemsFromCache(items, options, groupCount, fromEnd) {\r\n var _a, _b, _c, _d, _e;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var take = null !== (_b = null !== (_a = options.take) && void 0 !== _a ? _a : storeLoadOptions.take) && void 0 !== _b ? _b : 0;\r\n var cachedItems = null === (_c = options.cachedData) || void 0 === _c ? void 0 : _c.items;\r\n if (take && cachedItems) {\r\n var skip = null !== (_e = null !== (_d = options.skip) && void 0 !== _d ? _d : storeLoadOptions.skip) && void 0 !== _e ? _e : 0;\r\n for (var i = 0; i < take; i++) {\r\n var localIndex = fromEnd ? take - 1 - i : i;\r\n var cacheItemIndex = localIndex + skip;\r\n var cacheItem = cachedItems[cacheItemIndex];\r\n if (void 0 === cacheItem && cacheItemIndex in cachedItems) {\r\n return true\r\n }\r\n var item = getItemFromCache(options, cacheItem, groupCount, localIndex, take);\r\n if (item) {\r\n items.push(item)\r\n } else {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return false\r\n }\r\n\r\n function getItemFromCache(options, cacheItem, groupCount, index, take) {\r\n if (groupCount && cacheItem) {\r\n var skips = 0 === index && options.skips || [];\r\n var takes = index === take - 1 && options.takes || [];\r\n return function getGroupItemFromCache(cacheItem, groupCount, skips, takes) {\r\n if (groupCount && cacheItem) {\r\n var result = _extends({}, cacheItem);\r\n var skip = skips[0] || 0;\r\n var take = takes[0];\r\n var {\r\n items: items\r\n } = cacheItem;\r\n if (items) {\r\n if (void 0 === take && !items[skip]) {\r\n return\r\n }\r\n result.items = [];\r\n if (skips.length) {\r\n result.isContinuation = true\r\n }\r\n if (take) {\r\n result.isContinuationOnNextPage = cacheItem.count > take\r\n }\r\n for (var i = 0; void 0 === take ? items[i + skip] : i < take; i++) {\r\n var childCacheItem = items[i + skip];\r\n var isLast = i + 1 === take;\r\n var item = getGroupItemFromCache(childCacheItem, groupCount - 1, 0 === i ? skips.slice(1) : [], isLast ? takes.slice(1) : []);\r\n if (void 0 !== item) {\r\n result.items.push(item)\r\n } else {\r\n return\r\n }\r\n }\r\n }\r\n return result\r\n }\r\n return cacheItem\r\n }(cacheItem, groupCount, skips, takes)\r\n }\r\n return cacheItem\r\n }\r\n\r\n function getCacheItem(cacheItem, loadedItem, groupCount, skips) {\r\n if (groupCount && loadedItem) {\r\n var result = _extends({}, loadedItem);\r\n delete result.isContinuation;\r\n delete result.isContinuationOnNextPage;\r\n var skip = skips[0] || 0;\r\n if (loadedItem.items) {\r\n result.items = (null === cacheItem || void 0 === cacheItem ? void 0 : cacheItem.items) || {};\r\n loadedItem.items.forEach((item, index) => {\r\n var globalIndex = index + skip;\r\n var childSkips = 0 === index ? skips.slice(1) : [];\r\n result.items[globalIndex] = getCacheItem(result.items[globalIndex], item, groupCount - 1, childSkips)\r\n })\r\n }\r\n return result\r\n }\r\n return loadedItem\r\n }\r\n var members = {\r\n init(dataSource, remoteOperations) {\r\n var that = this;\r\n that._dataSource = dataSource;\r\n that._remoteOperations = remoteOperations || {};\r\n that._isLastPage = !dataSource.isLastPage();\r\n that._hasLastPage = false;\r\n that._currentTotalCount = 0;\r\n that._cachedData = {\r\n items: {}\r\n };\r\n that._lastOperationTypes = {};\r\n that._eventsStrategy = dataSource._eventsStrategy;\r\n that._totalCountCorrection = 0;\r\n that._isLoadingAll = false;\r\n that.changed = Callbacks();\r\n that.loadingChanged = Callbacks();\r\n that.loadError = Callbacks();\r\n that.customizeStoreLoadOptions = Callbacks();\r\n that.changing = Callbacks();\r\n that.pushed = Callbacks();\r\n that._dataChangedHandler = that._handleDataChanged.bind(that);\r\n that._customizeStoreLoadOptionsHandler = that._handleCustomizeStoreLoadOptions.bind(that);\r\n that._dataLoadedHandler = that._handleDataLoaded.bind(that);\r\n that._loadingChangedHandler = that._handleLoadingChanged.bind(that);\r\n that._loadErrorHandler = that._handleLoadError.bind(that);\r\n that._pushHandler = that._handlePush.bind(that);\r\n that._changingHandler = that._handleChanging.bind(that);\r\n dataSource.on(\"changed\", that._dataChangedHandler);\r\n dataSource.on(\"customizeStoreLoadOptions\", that._customizeStoreLoadOptionsHandler);\r\n dataSource.on(\"customizeLoadResult\", that._dataLoadedHandler);\r\n dataSource.on(\"loadingChanged\", that._loadingChangedHandler);\r\n dataSource.on(\"loadError\", that._loadErrorHandler);\r\n dataSource.on(\"changing\", that._changingHandler);\r\n dataSource.store().on(\"beforePush\", that._pushHandler);\r\n each(dataSource, (memberName, member) => {\r\n if (!that[memberName] && isFunction(member)) {\r\n that[memberName] = function() {\r\n return this._dataSource[memberName].apply(this._dataSource, arguments)\r\n }\r\n }\r\n })\r\n },\r\n remoteOperations() {\r\n return this._remoteOperations\r\n },\r\n dispose(isSharedDataSource) {\r\n var dataSource = this._dataSource;\r\n var store = dataSource.store();\r\n dataSource.off(\"changed\", this._dataChangedHandler);\r\n dataSource.off(\"customizeStoreLoadOptions\", this._customizeStoreLoadOptionsHandler);\r\n dataSource.off(\"customizeLoadResult\", this._dataLoadedHandler);\r\n dataSource.off(\"loadingChanged\", this._loadingChangedHandler);\r\n dataSource.off(\"loadError\", this._loadErrorHandler);\r\n dataSource.off(\"changing\", this._changingHandler);\r\n store && store.off(\"beforePush\", this._pushHandler);\r\n if (!isSharedDataSource) {\r\n dataSource.dispose()\r\n }\r\n },\r\n refresh(options, operationTypes) {\r\n var dataSource = this._dataSource;\r\n if (operationTypes.reload) {\r\n this.resetCurrentTotalCount();\r\n this._isLastPage = !dataSource.paginate();\r\n this._hasLastPage = this._isLastPage\r\n }\r\n },\r\n resetCurrentTotalCount() {\r\n this._currentTotalCount = 0;\r\n this._totalCountCorrection = 0\r\n },\r\n resetCache() {\r\n this._cachedStoreData = void 0;\r\n this._cachedPagingData = void 0\r\n },\r\n resetPagesCache() {\r\n this._cachedData = {\r\n items: {}\r\n }\r\n },\r\n _needClearStoreDataCache() {\r\n var remoteOperations = this.remoteOperations();\r\n var operationTypes = calculateOperationTypes(this._lastLoadOptions || {}, {});\r\n var isLocalOperations = Object.keys(remoteOperations).every(operationName => !operationTypes[operationName] || !remoteOperations[operationName]);\r\n return !isLocalOperations\r\n },\r\n push(changes, fromStore) {\r\n var store = this.store();\r\n if (this._needClearStoreDataCache()) {\r\n this._cachedStoreData = void 0\r\n }\r\n this._cachedPagingData = void 0;\r\n this.resetPagesCache(true);\r\n if (this._cachedStoreData) {\r\n applyBatch({\r\n keyInfo: store,\r\n data: this._cachedStoreData,\r\n changes: changes\r\n })\r\n }\r\n if (!fromStore) {\r\n this._applyBatch(changes)\r\n }\r\n this.pushed.fire(changes)\r\n },\r\n getDataIndexGetter() {\r\n if (!this._dataIndexGetter) {\r\n var indexByKey;\r\n var storeData;\r\n var store = this.store();\r\n this._dataIndexGetter = data => {\r\n var isCacheUpdated = storeData && storeData !== this._cachedStoreData;\r\n if (!indexByKey || isCacheUpdated) {\r\n storeData = this._cachedStoreData || [];\r\n indexByKey = {};\r\n for (var i = 0; i < storeData.length; i++) {\r\n indexByKey[getKeyHash(store.keyOf(storeData[i]))] = i\r\n }\r\n }\r\n return indexByKey[getKeyHash(store.keyOf(data))]\r\n }\r\n }\r\n return this._dataIndexGetter\r\n },\r\n _getKeyInfo() {\r\n return this.store()\r\n },\r\n _needToCopyDataObject: () => true,\r\n _applyBatch(changes, fromStore) {\r\n var keyInfo = this._getKeyInfo();\r\n var dataSource = this._dataSource;\r\n var groupCount = gridCoreUtils.normalizeSortingInfo(this.group()).length;\r\n var isReshapeMode = \"reshape\" === this.option(\"editing.refreshMode\");\r\n var isVirtualMode = \"virtual\" === this.option(\"scrolling.mode\");\r\n changes = changes.filter(change => !dataSource.paginate() || \"insert\" !== change.type || void 0 !== change.index);\r\n var getItemCount = () => groupCount ? this.itemsCount() : this.items().length;\r\n var oldItemCount = getItemCount();\r\n applyBatch({\r\n keyInfo: keyInfo,\r\n data: this._items,\r\n changes: changes,\r\n groupCount: groupCount,\r\n useInsertIndex: true,\r\n skipCopying: !this._needToCopyDataObject()\r\n });\r\n applyBatch({\r\n keyInfo: keyInfo,\r\n data: dataSource.items(),\r\n changes: changes,\r\n groupCount: groupCount,\r\n useInsertIndex: true,\r\n skipCopying: !this._needToCopyDataObject()\r\n });\r\n var needUpdateTotalCountCorrection = this._currentTotalCount > 0 || (fromStore || !isReshapeMode) && isVirtualMode;\r\n if (needUpdateTotalCountCorrection) {\r\n this._totalCountCorrection += getItemCount() - oldItemCount\r\n }\r\n changes.splice(0, changes.length)\r\n },\r\n _handlePush(_ref) {\r\n var {\r\n changes: changes\r\n } = _ref;\r\n this.push(changes, true)\r\n },\r\n _handleChanging(e) {\r\n this.changing.fire(e);\r\n this._applyBatch(e.changes, true)\r\n },\r\n _needCleanCacheByOperation(operationType, remoteOperations) {\r\n var operationTypesByOrder = [\"filtering\", \"sorting\", \"paging\"];\r\n var operationTypeIndex = operationTypesByOrder.indexOf(operationType);\r\n var currentOperationTypes = operationTypeIndex >= 0 ? operationTypesByOrder.slice(operationTypeIndex) : [operationType];\r\n return currentOperationTypes.some(operationType => remoteOperations[operationType])\r\n },\r\n _customizeRemoteOperations(options, operationTypes) {\r\n var cachedStoreData = this._cachedStoreData;\r\n var cachedPagingData = this._cachedPagingData;\r\n var cachedData = this._cachedData;\r\n if (options.storeLoadOptions.filter && !options.remoteOperations.filtering || options.storeLoadOptions.sort && !options.remoteOperations.sorting) {\r\n options.remoteOperations = {\r\n filtering: options.remoteOperations.filtering,\r\n summary: options.remoteOperations.summary\r\n }\r\n }\r\n if (operationTypes.fullReload) {\r\n cachedStoreData = void 0;\r\n cachedPagingData = void 0;\r\n cachedData = {\r\n items: {}\r\n }\r\n } else {\r\n if (operationTypes.reload) {\r\n cachedPagingData = void 0;\r\n cachedData = {\r\n items: {}\r\n }\r\n } else if (operationTypes.groupExpanding) {\r\n cachedData = {\r\n items: {}\r\n }\r\n }\r\n each(operationTypes, (operationType, value) => {\r\n if (value && this._needCleanCacheByOperation(operationType, options.remoteOperations)) {\r\n cachedStoreData = void 0;\r\n cachedPagingData = void 0\r\n }\r\n })\r\n }\r\n if (cachedPagingData) {\r\n options.remoteOperations.paging = false\r\n }\r\n options.cachedStoreData = cachedStoreData;\r\n options.cachedPagingData = cachedPagingData;\r\n options.cachedData = cachedData;\r\n if (!options.isCustomLoading) {\r\n this._cachedStoreData = cachedStoreData;\r\n this._cachedPagingData = cachedPagingData;\r\n this._cachedData = cachedData\r\n }\r\n },\r\n _handleCustomizeStoreLoadOptions(options) {\r\n var _a;\r\n this._handleDataLoading(options);\r\n if (!(0 === (null === (_a = options.data) || void 0 === _a ? void 0 : _a.length))) {\r\n options.data = getPageDataFromCache(options, true) || options.cachedStoreData\r\n }\r\n },\r\n _handleDataLoading(options) {\r\n var dataSource = this._dataSource;\r\n var lastLoadOptions = this._lastLoadOptions;\r\n this.customizeStoreLoadOptions.fire(options);\r\n options.delay = this.option(\"loadingTimeout\");\r\n options.originalStoreLoadOptions = options.storeLoadOptions;\r\n options.remoteOperations = extend({}, this.remoteOperations());\r\n var isFullReload = !this.isLoaded() && !this._isRefreshing;\r\n if (this.option(\"integrationOptions.renderedOnServer\") && !this.isLoaded()) {\r\n options.delay = void 0\r\n }\r\n var loadOptions = extend({\r\n pageIndex: this.pageIndex(),\r\n pageSize: this.pageSize()\r\n }, options.storeLoadOptions);\r\n var operationTypes = calculateOperationTypes(loadOptions, lastLoadOptions, isFullReload);\r\n this._customizeRemoteOperations(options, operationTypes);\r\n if (!options.isCustomLoading) {\r\n var isRefreshing = this._isRefreshing;\r\n options.pageIndex = dataSource.pageIndex();\r\n options.lastLoadOptions = loadOptions;\r\n options.operationTypes = operationTypes;\r\n this._loadingOperationTypes = operationTypes;\r\n this._isRefreshing = true;\r\n when(isRefreshing || this._isRefreshed || this.refresh(options, operationTypes)).done(() => {\r\n if (this._lastOperationId === options.operationId) {\r\n this._isRefreshed = true;\r\n this.load().always(() => {\r\n this._isRefreshed = false\r\n })\r\n }\r\n }).fail(() => {\r\n dataSource.cancel(options.operationId)\r\n }).always(() => {\r\n this._isRefreshing = false\r\n });\r\n dataSource.cancel(this._lastOperationId);\r\n this._lastOperationId = options.operationId;\r\n if (this._isRefreshing) {\r\n dataSource.cancel(this._lastOperationId)\r\n }\r\n }\r\n this._handleDataLoadingCore(options)\r\n },\r\n _handleDataLoadingCore(options) {\r\n var {\r\n remoteOperations: remoteOperations\r\n } = options;\r\n options.loadOptions = {};\r\n var cachedExtra = options.cachedData.extra;\r\n var localLoadOptionNames = {\r\n filter: !remoteOperations.filtering,\r\n sort: !remoteOperations.sorting,\r\n group: !remoteOperations.grouping,\r\n summary: !remoteOperations.summary,\r\n skip: !remoteOperations.paging,\r\n take: !remoteOperations.paging,\r\n requireTotalCount: cachedExtra && \"totalCount\" in cachedExtra || !remoteOperations.paging,\r\n langParams: !remoteOperations.filtering || !remoteOperations.sorting\r\n };\r\n each(options.storeLoadOptions, (optionName, optionValue) => {\r\n if (localLoadOptionNames[optionName]) {\r\n options.loadOptions[optionName] = optionValue;\r\n delete options.storeLoadOptions[optionName]\r\n }\r\n });\r\n if (cachedExtra) {\r\n options.extra = cachedExtra\r\n }\r\n },\r\n _handleDataLoaded(options) {\r\n var _a, _b;\r\n var {\r\n loadOptions: loadOptions\r\n } = options;\r\n var localPaging = options.remoteOperations && !options.remoteOperations.paging;\r\n var {\r\n cachedData: cachedData\r\n } = options;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var needCache = false !== this.option(\"cacheEnabled\") && storeLoadOptions;\r\n var needPageCache = needCache && !options.isCustomLoading && cachedData && (!localPaging || storeLoadOptions.group);\r\n var needPagingCache = needCache && localPaging;\r\n var needStoreCache = needPagingCache && !options.isCustomLoading;\r\n if (!loadOptions) {\r\n this._dataSource.cancel(options.operationId);\r\n return\r\n }\r\n if (localPaging) {\r\n options.skip = loadOptions.skip;\r\n options.take = loadOptions.take;\r\n delete loadOptions.skip;\r\n delete loadOptions.take\r\n }\r\n if (loadOptions.group) {\r\n loadOptions.group = options.group || loadOptions.group\r\n }\r\n var groupCount = gridCoreUtils.normalizeSortingInfo(options.group || storeLoadOptions.group || loadOptions.group).length;\r\n if (options.cachedDataPartBegin) {\r\n options.data = options.cachedDataPartBegin.concat(options.data)\r\n }\r\n if (options.cachedDataPartEnd) {\r\n options.data = options.data.concat(options.cachedDataPartEnd)\r\n }\r\n if (!needPageCache || !getPageDataFromCache(options)) {\r\n if (needPagingCache && options.cachedPagingData) {\r\n options.data = cloneItems(options.cachedPagingData, groupCount)\r\n } else {\r\n if (needStoreCache) {\r\n if (!this._cachedStoreData) {\r\n this._cachedStoreData = cloneItems(options.data, gridCoreUtils.normalizeSortingInfo(storeLoadOptions.group).length)\r\n } else if (options.mergeStoreLoadData) {\r\n options.data = this._cachedStoreData = this._cachedStoreData.concat(options.data)\r\n }\r\n }\r\n new ArrayStore(options.data).load(loadOptions).done(data => {\r\n options.data = data;\r\n if (needStoreCache) {\r\n this._cachedPagingData = cloneItems(options.data, groupCount)\r\n }\r\n }).fail(error => {\r\n options.data = (new Deferred).reject(error)\r\n })\r\n }\r\n if (loadOptions.requireTotalCount && localPaging) {\r\n options.extra = isPlainObject(options.extra) ? options.extra : {};\r\n options.extra.totalCount = options.data.length\r\n }\r\n if (options.extra && options.extra.totalCount >= 0 && (false === storeLoadOptions.requireTotalCount || false === loadOptions.requireTotalCount)) {\r\n options.extra.totalCount = -1\r\n }\r\n if (!loadOptions.data && (storeLoadOptions.requireTotalCount || (null !== (_b = null === (_a = options.extra) || void 0 === _a ? void 0 : _a.totalCount) && void 0 !== _b ? _b : -1) >= 0)) {\r\n this._totalCountCorrection = 0\r\n }\r\n this._handleDataLoadedCore(options);\r\n if (needPageCache) {\r\n cachedData.extra = cachedData.extra || extend({}, options.extra);\r\n when(options.data).done(data => {\r\n ! function(options, data, groupCount) {\r\n var _a, _b, _c, _d;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var skip = null !== (_b = null !== (_a = options.skip) && void 0 !== _a ? _a : storeLoadOptions.skip) && void 0 !== _b ? _b : 0;\r\n var take = null !== (_d = null !== (_c = options.take) && void 0 !== _c ? _c : storeLoadOptions.take) && void 0 !== _d ? _d : 0;\r\n for (var i = 0; i < take; i++) {\r\n var globalIndex = i + skip;\r\n var cacheItems = options.cachedData.items;\r\n var skips = 0 === i && options.skips || [];\r\n cacheItems[globalIndex] = getCacheItem(cacheItems[globalIndex], data[i], groupCount, skips)\r\n }\r\n }(options, data, groupCount)\r\n })\r\n }\r\n }\r\n when(options.data).done(() => {\r\n if (options.lastLoadOptions) {\r\n this._lastLoadOptions = options.lastLoadOptions;\r\n Object.keys(options.operationTypes).forEach(operationType => {\r\n this._lastOperationTypes[operationType] = this._lastOperationTypes[operationType] || options.operationTypes[operationType]\r\n })\r\n }\r\n });\r\n options.storeLoadOptions = options.originalStoreLoadOptions\r\n },\r\n _handleDataLoadedCore(options) {\r\n if (options.remoteOperations && !options.remoteOperations.paging && Array.isArray(options.data)) {\r\n if (void 0 !== options.skip) {\r\n options.data = options.data.slice(options.skip)\r\n }\r\n if (void 0 !== options.take) {\r\n options.data = options.data.slice(0, options.take)\r\n }\r\n }\r\n },\r\n _handleLoadingChanged(isLoading) {\r\n this.loadingChanged.fire(isLoading)\r\n },\r\n _handleLoadError(error) {\r\n this.loadError.fire(error);\r\n this.changed.fire({\r\n changeType: \"loadError\",\r\n error: error\r\n })\r\n },\r\n _loadPageSize() {\r\n return this.pageSize()\r\n },\r\n _handleDataChanged(args) {\r\n var currentTotalCount;\r\n var dataSource = this._dataSource;\r\n var isLoading = false;\r\n var isDataLoading = !args || isDefined(args.changeType);\r\n var itemsCount = this.itemsCount();\r\n if (isDataLoading) {\r\n this._isLastPage = !itemsCount || !this._loadPageSize() || itemsCount < this._loadPageSize();\r\n if (this._isLastPage) {\r\n this._hasLastPage = true\r\n }\r\n }\r\n if (dataSource.totalCount() >= 0) {\r\n if (dataSource.pageIndex() >= this.pageCount()) {\r\n dataSource.pageIndex(this.pageCount() - 1);\r\n this.pageIndex(dataSource.pageIndex());\r\n this.resetPagesCache();\r\n dataSource.load();\r\n isLoading = true\r\n }\r\n } else if (isDataLoading) {\r\n currentTotalCount = dataSource.pageIndex() * this.pageSize() + itemsCount;\r\n if (currentTotalCount > this._currentTotalCount) {\r\n this._currentTotalCount = currentTotalCount;\r\n if (0 === dataSource.pageIndex() || !this.option(\"scrolling.legacyMode\")) {\r\n this._totalCountCorrection = 0\r\n }\r\n }\r\n if (0 === itemsCount && dataSource.pageIndex() >= this.pageCount()) {\r\n dataSource.pageIndex(this.pageCount() - 1);\r\n if (\"infinite\" !== this.option(\"scrolling.mode\")) {\r\n dataSource.load();\r\n isLoading = true\r\n }\r\n }\r\n }\r\n if (!isLoading) {\r\n this._operationTypes = this._lastOperationTypes;\r\n this._lastOperationTypes = {};\r\n this.component._optionCache = {};\r\n this.changed.fire(args);\r\n this.component._optionCache = void 0\r\n }\r\n },\r\n _scheduleCustomLoadCallbacks(deferred) {\r\n var that = this;\r\n that._isCustomLoading = true;\r\n deferred.always(() => {\r\n that._isCustomLoading = false\r\n })\r\n },\r\n loadingOperationTypes() {\r\n return this._loadingOperationTypes\r\n },\r\n operationTypes() {\r\n return this._operationTypes\r\n },\r\n lastLoadOptions() {\r\n return this._lastLoadOptions || {}\r\n },\r\n isLastPage() {\r\n return this._isLastPage\r\n },\r\n _dataSourceTotalCount() {\r\n return this._dataSource.totalCount()\r\n },\r\n totalCount() {\r\n return parseInt((this._currentTotalCount || this._dataSourceTotalCount()) + this._totalCountCorrection)\r\n },\r\n totalCountCorrection() {\r\n return this._totalCountCorrection\r\n },\r\n itemsCount() {\r\n return this._dataSource.items().length\r\n },\r\n totalItemsCount() {\r\n return this.totalCount()\r\n },\r\n pageSize() {\r\n var dataSource = this._dataSource;\r\n if (!arguments.length && !dataSource.paginate()) {\r\n return 0\r\n }\r\n return dataSource.pageSize.apply(dataSource, arguments)\r\n },\r\n pageCount() {\r\n var count = this.totalItemsCount() - this._totalCountCorrection;\r\n var pageSize = this.pageSize();\r\n if (pageSize && count > 0) {\r\n return Math.max(1, Math.ceil(count / pageSize))\r\n }\r\n return 1\r\n },\r\n hasKnownLastPage() {\r\n return this._hasLastPage || this._dataSource.totalCount() >= 0\r\n },\r\n loadFromStore(loadOptions, store) {\r\n var dataSource = this._dataSource;\r\n var d = new Deferred;\r\n if (!dataSource) {\r\n return\r\n }\r\n store = store || dataSource.store();\r\n store.load(loadOptions).done((data, extra) => {\r\n if (data && !Array.isArray(data) && Array.isArray(data.data)) {\r\n extra = data;\r\n data = data.data\r\n }\r\n d.resolve(data, extra)\r\n }).fail(d.reject);\r\n return d\r\n },\r\n isCustomLoading() {\r\n return !!this._isCustomLoading\r\n },\r\n load(options) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var d = new Deferred;\r\n if (options) {\r\n var store = dataSource.store();\r\n var dataSourceLoadOptions = dataSource.loadOptions();\r\n var loadResult = {\r\n storeLoadOptions: extend({}, options, {\r\n langParams: null === dataSourceLoadOptions || void 0 === dataSourceLoadOptions ? void 0 : dataSourceLoadOptions.langParams\r\n }),\r\n isCustomLoading: true\r\n };\r\n each(store._customLoadOptions() || [], (_, optionName) => {\r\n if (!(optionName in loadResult.storeLoadOptions)) {\r\n loadResult.storeLoadOptions[optionName] = dataSourceLoadOptions[optionName]\r\n }\r\n });\r\n this._isLoadingAll = options.isLoadingAll;\r\n that._scheduleCustomLoadCallbacks(d);\r\n dataSource._scheduleLoadCallbacks(d);\r\n that._handleCustomizeStoreLoadOptions(loadResult);\r\n ! function(action, timeout) {\r\n if (isDefined(timeout)) {\r\n executeAsync(action, timeout)\r\n } else {\r\n action()\r\n }\r\n }(() => {\r\n if (!dataSource.store()) {\r\n return d.reject(\"canceled\")\r\n }\r\n when(loadResult.data || that.loadFromStore(loadResult.storeLoadOptions)).done((data, extra) => {\r\n loadResult.data = data;\r\n loadResult.extra = extra || {};\r\n that._handleDataLoaded(loadResult);\r\n if (options.requireTotalCount && void 0 === loadResult.extra.totalCount) {\r\n loadResult.extra.totalCount = store.totalCount(loadResult.storeLoadOptions)\r\n }\r\n when(loadResult.data, loadResult.extra.totalCount).done((data, totalCount) => {\r\n loadResult.extra.totalCount = totalCount;\r\n d.resolve(data, loadResult.extra)\r\n }).fail(d.reject)\r\n }).fail(d.reject)\r\n }, that.option(\"loadingTimeout\"));\r\n return d.fail((function() {\r\n that._eventsStrategy.fireEvent(\"loadError\", arguments)\r\n })).always(() => {\r\n this._isLoadingAll = false\r\n }).promise()\r\n }\r\n return dataSource.load()\r\n },\r\n reload(full) {\r\n return full ? this._dataSource.reload() : this._dataSource.load()\r\n },\r\n getCachedStoreData() {\r\n return this._cachedStoreData\r\n }\r\n };\r\n return members\r\n}());\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/m_data_source_adapter.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport DataSourceAdapter from \"../../grids/grid_core/data_source_adapter/m_data_source_adapter\";\r\nvar dataSourceAdapterType = DataSourceAdapter;\r\nexport default {\r\n extend(extender) {\r\n dataSourceAdapterType = dataSourceAdapterType.inherit(extender)\r\n },\r\n create: component => new dataSourceAdapterType(component)\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/sorting/m_sorting_mixin.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 isDefined\r\n} from \"../../../../core/utils/type\";\r\nvar SORT_CLASS = \"dx-sort\";\r\nvar SORT_NONE_CLASS = \"dx-sort-none\";\r\nvar SORTUP_CLASS = \"dx-sort-up\";\r\nvar SORTDOWN_CLASS = \"dx-sort-down\";\r\nvar SORT_INDEX_CLASS = \"dx-sort-index\";\r\nvar SORT_INDEX_ICON_CLASS = \"dx-sort-index-icon\";\r\nvar HEADERS_ACTION_CLASS = \"action\";\r\nexport default {\r\n _applyColumnState(options) {\r\n var ariaSortState;\r\n var $sortIndicator;\r\n var sortingMode = this.option(\"sorting.mode\");\r\n var {\r\n rootElement: rootElement\r\n } = options;\r\n var {\r\n column: column\r\n } = options;\r\n var $indicatorsContainer = this._getIndicatorContainer(rootElement);\r\n if (\"sort\" === options.name) {\r\n rootElement.find(\".\".concat(SORT_CLASS)).remove();\r\n !$indicatorsContainer.children().length && $indicatorsContainer.remove();\r\n var isSortingAllowed = \"none\" !== sortingMode && column.allowSorting;\r\n if (!isDefined(column.groupIndex) && (isSortingAllowed || isDefined(column.sortOrder))) {\r\n ariaSortState = \"asc\" === column.sortOrder ? \"ascending\" : \"descending\";\r\n $sortIndicator = this.callBase(options).toggleClass(SORTUP_CLASS, \"asc\" === column.sortOrder).toggleClass(SORTDOWN_CLASS, \"desc\" === column.sortOrder);\r\n var hasSeveralSortIndexes = this.getController && !!this.getController(\"columns\").columnOption(\"sortIndex:1\");\r\n if (hasSeveralSortIndexes && this.option(\"sorting.showSortIndexes\") && column.sortIndex >= 0) {\r\n $(\"\").addClass(SORT_INDEX_ICON_CLASS).text(column.sortIndex + 1).appendTo($sortIndicator);\r\n $sortIndicator.addClass(SORT_INDEX_CLASS)\r\n }\r\n if (isSortingAllowed) {\r\n options.rootElement.addClass(this.addWidgetPrefix(HEADERS_ACTION_CLASS))\r\n }\r\n }\r\n if (!isDefined(column.sortOrder)) {\r\n this.setAria(\"sort\", \"none\", rootElement)\r\n } else {\r\n this.setAria(\"sort\", ariaSortState, rootElement)\r\n }\r\n return $sortIndicator\r\n }\r\n return this.callBase(options)\r\n },\r\n _getIndicatorClassName(name) {\r\n if (\"sort\" === name) {\r\n return SORT_CLASS\r\n }\r\n if (\"sortIndex\" === name) {\r\n return SORT_INDEX_ICON_CLASS\r\n }\r\n return this.callBase(name)\r\n },\r\n _renderIndicator(options) {\r\n var {\r\n column: column\r\n } = options;\r\n var $container = options.container;\r\n var $indicator = options.indicator;\r\n if (\"sort\" === options.name) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (!isDefined(column.sortOrder)) {\r\n $indicator && $indicator.addClass(SORT_NONE_CLASS)\r\n }\r\n if ($container.children().length && (!rtlEnabled && \"left\" === options.columnAlignment || rtlEnabled && \"right\" === options.columnAlignment)) {\r\n $container.prepend($indicator);\r\n return\r\n }\r\n }\r\n this.callBase(options)\r\n },\r\n _updateIndicator($cell, column, indicatorName) {\r\n if (\"sort\" === indicatorName && isDefined(column.groupIndex)) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _getIndicatorElements($cell, returnAll) {\r\n var $indicatorElements = this.callBase($cell);\r\n return returnAll ? $indicatorElements : $indicatorElements && $indicatorElements.not(\".\".concat(SORT_NONE_CLASS))\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/sorting/m_sorting.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed\r\n} from \"../../../../events/utils/index\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport sortingMixin from \"./m_sorting_mixin\";\r\nvar COLUMN_HEADERS_VIEW_NAMESPACE = \"dxDataGridColumnHeadersView\";\r\nvar ColumnHeadersViewSortingExtender = extend({}, sortingMixin, {\r\n _createRow(row) {\r\n var $row = this.callBase(row);\r\n if (\"header\" === row.rowType) {\r\n eventsEngine.on($row, addNamespace(clickEventName, COLUMN_HEADERS_VIEW_NAMESPACE), \"td\", this.createAction(e => {\r\n this._processHeaderAction(e.event, $row)\r\n }))\r\n }\r\n return $row\r\n },\r\n _processHeaderAction(event, $row) {\r\n if ($(event.currentTarget).parent().get(0) !== $row.get(0)) {\r\n return\r\n }\r\n var that = this;\r\n var keyName = null;\r\n var $cellElementFromEvent = $(event.currentTarget);\r\n var rowIndex = $cellElementFromEvent.parent().index();\r\n var columnIndex = -1;\r\n [].slice.call(that.getCellElements(rowIndex)).some(($cellElement, index) => {\r\n if ($cellElement === $cellElementFromEvent.get(0)) {\r\n columnIndex = index;\r\n return true\r\n }\r\n return\r\n });\r\n var visibleColumns = that._columnsController.getVisibleColumns(rowIndex);\r\n var column = visibleColumns[columnIndex];\r\n var editingController = that.getController(\"editing\");\r\n var editingMode = that.option(\"editing.mode\");\r\n var isCellEditing = editingController && editingController.isEditing() && (\"batch\" === editingMode || \"cell\" === editingMode);\r\n if (isCellEditing || !that._isSortableElement($(event.target))) {\r\n return\r\n }\r\n if (column && !isDefined(column.groupIndex) && !column.command) {\r\n if (event.shiftKey) {\r\n keyName = \"shift\"\r\n } else if (isCommandKeyPressed(event)) {\r\n keyName = \"ctrl\"\r\n }\r\n setTimeout(() => {\r\n that._columnsController.changeSortOrder(column.index, keyName)\r\n })\r\n }\r\n },\r\n _renderCellContent($cell, options) {\r\n var {\r\n column: column\r\n } = options;\r\n if (!column.command && \"header\" === options.rowType) {\r\n this._applyColumnState({\r\n name: \"sort\",\r\n rootElement: $cell,\r\n column: column,\r\n showColumnLines: this.option(\"showColumnLines\")\r\n })\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _columnOptionChanged(e) {\r\n var {\r\n changeTypes: changeTypes\r\n } = e;\r\n if (1 === changeTypes.length && changeTypes.sorting) {\r\n this._updateIndicators(\"sort\");\r\n return\r\n }\r\n this.callBase(e)\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"sorting\":\r\n this._invalidate();\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nvar HeaderPanelSortingExtender = extend({}, sortingMixin, {\r\n _createGroupPanelItem($rootElement, groupColumn) {\r\n var that = this;\r\n var $item = that.callBase(...arguments);\r\n eventsEngine.on($item, addNamespace(clickEventName, \"dxDataGridHeaderPanel\"), that.createAction(() => {\r\n that._processGroupItemAction(groupColumn.index)\r\n }));\r\n that._applyColumnState({\r\n name: \"sort\",\r\n rootElement: $item,\r\n column: {\r\n alignment: that.option(\"rtlEnabled\") ? \"right\" : \"left\",\r\n allowSorting: groupColumn.allowSorting,\r\n sortOrder: \"desc\" === groupColumn.sortOrder ? \"desc\" : \"asc\"\r\n },\r\n showColumnLines: true\r\n });\r\n return $item\r\n },\r\n _processGroupItemAction(groupColumnIndex) {\r\n setTimeout(() => this.getController(\"columns\").changeSortOrder(groupColumnIndex))\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"sorting\":\r\n this._invalidate();\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport var sortingModule = {\r\n defaultOptions: () => ({\r\n sorting: {\r\n mode: \"single\",\r\n ascendingText: messageLocalization.format(\"dxDataGrid-sortingAscendingText\"),\r\n descendingText: messageLocalization.format(\"dxDataGrid-sortingDescendingText\"),\r\n clearText: messageLocalization.format(\"dxDataGrid-sortingClearText\"),\r\n showSortIndexes: true\r\n }\r\n }),\r\n extenders: {\r\n views: {\r\n columnHeadersView: ColumnHeadersViewSortingExtender,\r\n headerPanel: HeaderPanelSortingExtender\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/sorting.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n sortingModule\r\n} from \"../../../grids/grid_core/sorting/m_sorting\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"sorting\", sortingModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/views/m_rows_view.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 $ from \"../../../../core/renderer\";\r\nimport browser from \"../../../../core/utils/browser\";\r\nimport {\r\n deferRender,\r\n deferUpdate\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n compileGetter\r\n} from \"../../../../core/utils/data\";\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 getBoundingRect,\r\n getDefaultAlignment\r\n} from \"../../../../core/utils/position\";\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isEmpty\r\n} from \"../../../../core/utils/string\";\r\nimport {\r\n setHeight\r\n} from \"../../../../core/utils/style\";\r\nimport {\r\n isDefined,\r\n isNumeric,\r\n isString\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 removeEvent\r\n} from \"../../../../events/remove\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport Scrollable from \"../../../../ui/scroll_view/ui.scrollable\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n ColumnsView\r\n} from \"./m_columns_view\";\r\nvar ROWS_VIEW_CLASS = \"rowsview\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar NOWRAP_CLASS = \"nowrap\";\r\nvar GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar GROUP_CELL_CLASS = \"dx-group-cell\";\r\nvar DATA_ROW_CLASS = \"dx-data-row\";\r\nvar FREE_SPACE_CLASS = \"dx-freespace-row\";\r\nvar ROW_LINES_CLASS = \"dx-row-lines\";\r\nvar COLUMN_LINES_CLASS = \"dx-column-lines\";\r\nvar ROW_ALTERNATION_CLASS = \"dx-row-alt\";\r\nvar LAST_ROW_BORDER = \"dx-last-row-border\";\r\nvar EMPTY_CLASS = \"dx-empty\";\r\nvar ROW_INSERTED_ANIMATION_CLASS = \"row-inserted-animation\";\r\nvar LOADPANEL_HIDE_TIMEOUT = 200;\r\n\r\nfunction getMaxHorizontalScrollOffset(scrollable) {\r\n return scrollable ? Math.round(scrollable.scrollWidth() - scrollable.clientWidth()) : 0\r\n}\r\n\r\nfunction isGroupRow(_ref) {\r\n var {\r\n rowType: rowType,\r\n column: column\r\n } = _ref;\r\n return \"group\" === rowType && isDefined(column.groupIndex) && !column.showWhenGrouped && !column.command\r\n}\r\nvar defaultCellTemplate = function($container, options) {\r\n var isDataTextEmpty = isEmpty(options.text) && \"data\" === options.rowType;\r\n var {\r\n text: text\r\n } = options;\r\n var container = $container.get(0);\r\n if (isDataTextEmpty) {\r\n gridCoreUtils.setEmptyText($container)\r\n } else if (options.column.encodeHtml) {\r\n container.textContent = text\r\n } else {\r\n container.innerHTML = text\r\n }\r\n};\r\nvar getScrollableBottomPadding = function(that) {\r\n var scrollable = that.getScrollable();\r\n return scrollable ? Math.ceil(parseFloat($(scrollable.content()).css(\"paddingBottom\"))) : 0\r\n};\r\nclass RowsView extends ColumnsView {\r\n _getDefaultTemplate(column) {\r\n switch (column.command) {\r\n case \"empty\":\r\n return function(container) {\r\n container.html(\" \")\r\n };\r\n default:\r\n return defaultCellTemplate\r\n }\r\n }\r\n _getDefaultGroupTemplate(column) {\r\n var summaryTexts = this.option(\"summary.texts\");\r\n return function($container, options) {\r\n var {\r\n data: data\r\n } = options;\r\n var text = \"\".concat(options.column.caption, \": \").concat(options.text);\r\n var container = $container.get(0);\r\n if (options.summaryItems && options.summaryItems.length) {\r\n text += \" \".concat(gridCoreUtils.getGroupRowSummaryText(options.summaryItems, summaryTexts))\r\n }\r\n if (data) {\r\n if (options.groupContinuedMessage && options.groupContinuesMessage) {\r\n text += \" (\".concat(options.groupContinuedMessage, \". \").concat(options.groupContinuesMessage, \")\")\r\n } else if (options.groupContinuesMessage) {\r\n text += \" (\".concat(options.groupContinuesMessage, \")\")\r\n } else if (options.groupContinuedMessage) {\r\n text += \" (\".concat(options.groupContinuedMessage, \")\")\r\n }\r\n }\r\n if (column.encodeHtml) {\r\n container.textContent = text\r\n } else {\r\n container.innerHTML = text\r\n }\r\n }\r\n }\r\n _update(change) {}\r\n _updateCell($cell, options) {\r\n if (isGroupRow(options)) {\r\n $cell.addClass(GROUP_CELL_CLASS)\r\n }\r\n super._updateCell.apply(this, arguments)\r\n }\r\n _getCellTemplate(options) {\r\n var {\r\n column: column\r\n } = options;\r\n var template;\r\n if (isGroupRow(options)) {\r\n template = column.groupCellTemplate || {\r\n allowRenderToDetachedContainer: true,\r\n render: this._getDefaultGroupTemplate(column)\r\n }\r\n } else if ((\"data\" === options.rowType || column.command) && column.cellTemplate) {\r\n template = column.cellTemplate\r\n } else {\r\n template = {\r\n allowRenderToDetachedContainer: true,\r\n render: this._getDefaultTemplate(column)\r\n }\r\n }\r\n return template\r\n }\r\n _createRow(row, tag) {\r\n var $row = super._createRow.apply(this, arguments);\r\n if (row) {\r\n var isGroup = \"group\" === row.rowType;\r\n var isDataRow = \"data\" === row.rowType;\r\n isDataRow && $row.addClass(DATA_ROW_CLASS);\r\n isDataRow && this.option(\"showRowLines\") && $row.addClass(ROW_LINES_CLASS);\r\n this.option(\"showColumnLines\") && $row.addClass(COLUMN_LINES_CLASS);\r\n if (false === row.visible) {\r\n $row.hide()\r\n }\r\n if (isGroup) {\r\n $row.addClass(GROUP_ROW_CLASS);\r\n var isRowExpanded = row.isExpanded;\r\n this.setAria(\"role\", \"row\", $row);\r\n this.setAria(\"expanded\", isDefined(isRowExpanded) && isRowExpanded.toString(), $row)\r\n }\r\n }\r\n return $row\r\n }\r\n _rowPrepared($row, rowOptions, row) {\r\n if (\"data\" === rowOptions.rowType) {\r\n if (this.option(\"rowAlternationEnabled\")) {\r\n this._isAltRow(row) && $row.addClass(ROW_ALTERNATION_CLASS);\r\n rowOptions.watch && rowOptions.watch(() => this._isAltRow(row), value => {\r\n $row.toggleClass(ROW_ALTERNATION_CLASS, value)\r\n })\r\n }\r\n this._setAriaRowIndex(rowOptions, $row);\r\n rowOptions.watch && rowOptions.watch(() => rowOptions.rowIndex, () => this._setAriaRowIndex(rowOptions, $row))\r\n }\r\n super._rowPrepared.apply(this, arguments)\r\n }\r\n _setAriaRowIndex(row, $row) {\r\n var {\r\n component: component\r\n } = this;\r\n var isPagerMode = \"standard\" === component.option(\"scrolling.mode\") && !gridCoreUtils.isVirtualRowRendering(component);\r\n var rowIndex = row.rowIndex + 1;\r\n if (isPagerMode) {\r\n rowIndex = component.pageIndex() * component.pageSize() + rowIndex\r\n } else {\r\n rowIndex += this._dataController.getRowIndexOffset()\r\n }\r\n this.setAria(\"rowindex\", rowIndex, $row)\r\n }\r\n _afterRowPrepared(e) {\r\n var arg = e.args[0];\r\n var dataController = this._dataController;\r\n var row = dataController.getVisibleRows()[arg.rowIndex];\r\n var watch = this.option(\"integrationOptions.watchMethod\");\r\n if (!arg.data || \"data\" !== arg.rowType || arg.isNewRow || !this.option(\"twoWayBindingEnabled\") || !watch || !row) {\r\n return\r\n }\r\n var dispose = watch(() => dataController.generateDataValues(arg.data, arg.columns), () => {\r\n dataController.repaintRows([row.rowIndex], this.option(\"repaintChangesOnly\"))\r\n }, {\r\n deep: true,\r\n skipImmediate: true\r\n });\r\n eventsEngine.on(arg.rowElement, removeEvent, dispose)\r\n }\r\n _renderScrollable(force) {\r\n var $element = this.element();\r\n if (!$element.children().length) {\r\n $element.append(\"
\")\r\n }\r\n if (force || !this._loadPanel) {\r\n this._renderLoadPanel($element, $element.parent(), this._dataController.isLocalStore())\r\n }\r\n if ((force || !this.getScrollable()) && this._dataController.isLoaded()) {\r\n var columns = this.getColumns();\r\n var allColumnsHasWidth = true;\r\n for (var i = 0; i < columns.length; i++) {\r\n if (!columns[i].width && !columns[i].minWidth) {\r\n allColumnsHasWidth = false;\r\n break\r\n }\r\n }\r\n if (this.option(\"columnAutoWidth\") || this._hasHeight || allColumnsHasWidth || this._columnsController._isColumnFixing()) {\r\n this._renderScrollableCore($element)\r\n }\r\n }\r\n }\r\n _handleScroll(e) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isNativeScrolling = e.component.option(\"useNative\");\r\n this._scrollTop = e.scrollOffset.top;\r\n this._scrollLeft = e.scrollOffset.left;\r\n var scrollLeft = e.scrollOffset.left;\r\n if (rtlEnabled) {\r\n this._scrollRight = getMaxHorizontalScrollOffset(e.component) - this._scrollLeft;\r\n if (isNativeScrolling) {\r\n scrollLeft = -this._scrollRight\r\n }\r\n if (!this.isScrollbarVisible(true)) {\r\n this._scrollLeft = -1\r\n }\r\n }\r\n this.scrollChanged.fire(_extends(_extends({}, e.scrollOffset), {\r\n left: scrollLeft\r\n }), this.name)\r\n }\r\n _renderScrollableCore($element) {\r\n var dxScrollableOptions = this._createScrollableOptions();\r\n var scrollHandler = this._handleScroll.bind(this);\r\n dxScrollableOptions.onScroll = scrollHandler;\r\n this._scrollable = this._createComponent($element, Scrollable, dxScrollableOptions);\r\n this._scrollableContainer = this._scrollable && $(this._scrollable.container())\r\n }\r\n _renderLoadPanel() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n return gridCoreUtils.renderLoadPanel.apply(this, arguments)\r\n }\r\n _renderContent(contentElement, tableElement, isFixedTableRendering) {\r\n contentElement.empty().append(tableElement);\r\n return this._findContentElement()\r\n }\r\n _updateContent(newTableElement, change, isFixedTableRendering) {\r\n this._contentChanges.push({\r\n newTableElement: newTableElement,\r\n change: change,\r\n isFixedTableRendering: isFixedTableRendering\r\n });\r\n return this.waitAsyncTemplates().done(() => {\r\n var contentChanges = this._contentChanges;\r\n this._contentChanges = [];\r\n contentChanges.forEach(_ref2 => {\r\n var {\r\n newTableElement: newTableElement,\r\n change: change,\r\n isFixedTableRendering: isFixedTableRendering\r\n } = _ref2;\r\n var tableElement = this.getTableElement(isFixedTableRendering);\r\n var contentElement = this._findContentElement(isFixedTableRendering);\r\n var changeType = null === change || void 0 === change ? void 0 : change.changeType;\r\n var executors = [];\r\n var highlightChanges = this.option(\"highlightChanges\");\r\n var rowInsertedClass = this.addWidgetPrefix(ROW_INSERTED_ANIMATION_CLASS);\r\n switch (changeType) {\r\n case \"update\":\r\n each(change.rowIndices, (index, rowIndex) => {\r\n var _a;\r\n var $newRowElement = this._getRowElements(newTableElement).eq(index);\r\n var dataChangeType = null === (_a = change.changeTypes) || void 0 === _a ? void 0 : _a[index];\r\n var item = change.items && change.items[index];\r\n executors.push(() => {\r\n var _a;\r\n var $rowElements = this._getRowElements(tableElement);\r\n var $rowElement = $rowElements.eq(rowIndex);\r\n switch (dataChangeType) {\r\n case \"update\":\r\n if (item) {\r\n var columnIndices = null === (_a = change.columnIndices) || void 0 === _a ? void 0 : _a[index];\r\n if (isDefined(item.visible) && item.visible !== $rowElement.is(\":visible\")) {\r\n $rowElement.toggle(item.visible)\r\n } else if (columnIndices) {\r\n this._updateCells($rowElement, $newRowElement, columnIndices)\r\n } else {\r\n $rowElement.replaceWith($newRowElement)\r\n }\r\n }\r\n break;\r\n case \"insert\":\r\n if (!$rowElements.length) {\r\n if (tableElement) {\r\n var target = $newRowElement.is(\"tbody\") ? tableElement : tableElement.children(\"tbody\");\r\n $newRowElement.prependTo(target)\r\n }\r\n } else if ($rowElement.length) {\r\n $newRowElement.insertBefore($rowElement)\r\n } else {\r\n $newRowElement.insertAfter($rowElements.last())\r\n }\r\n if (highlightChanges && change.isLiveUpdate) {\r\n $newRowElement.addClass(rowInsertedClass)\r\n }\r\n break;\r\n case \"remove\":\r\n $rowElement.remove()\r\n }\r\n })\r\n });\r\n each(executors, (function() {\r\n this()\r\n }));\r\n newTableElement.remove();\r\n break;\r\n default:\r\n this.setTableElement(newTableElement, isFixedTableRendering);\r\n contentElement.addClass(this.addWidgetPrefix(CONTENT_CLASS));\r\n this._renderContent(contentElement, newTableElement, isFixedTableRendering)\r\n }\r\n })\r\n }).fail(() => {\r\n this._contentChanges = []\r\n })\r\n }\r\n _createEmptyRow(className, isFixed, height) {\r\n var $cell;\r\n var $row = this._createRow();\r\n var columns = isFixed ? this.getFixedColumns() : this.getColumns();\r\n $row.addClass(className).toggleClass(COLUMN_LINES_CLASS, this.option(\"showColumnLines\"));\r\n for (var i = 0; i < columns.length; i++) {\r\n $cell = this._createCell({\r\n column: columns[i],\r\n rowType: \"freeSpace\",\r\n columnIndex: i,\r\n columns: columns\r\n });\r\n isNumeric(height) && $cell.css(\"height\", height);\r\n $row.append($cell)\r\n }\r\n this.setAria(\"role\", \"presentation\", $row);\r\n return $row\r\n }\r\n getFixedColumns() {\r\n throw new Error(\"Method not implemented.\")\r\n }\r\n _appendEmptyRow($table, $emptyRow, location) {\r\n var $tBodies = this._getBodies($table);\r\n var isTableContainer = !$tBodies.length || $emptyRow.is(\"tbody\");\r\n var $container = isTableContainer ? $table : $tBodies;\r\n if (\"top\" === location) {\r\n $container.first().prepend($emptyRow);\r\n if (isTableContainer) {\r\n var $colgroup = $container.children(\"colgroup\");\r\n $container.prepend($colgroup)\r\n }\r\n } else {\r\n $container.last().append($emptyRow)\r\n }\r\n }\r\n _renderFreeSpaceRow($tableElement, change) {\r\n var $freeSpaceRowElement = this._createEmptyRow(FREE_SPACE_CLASS);\r\n $freeSpaceRowElement = this._wrapRowIfNeed($tableElement, $freeSpaceRowElement, \"refresh\" === (null === change || void 0 === change ? void 0 : change.changeType));\r\n this._appendEmptyRow($tableElement, $freeSpaceRowElement)\r\n }\r\n _checkRowKeys(options) {\r\n var that = this;\r\n var rows = that._getRows(options);\r\n var keyExpr = that._dataController.store() && that._dataController.store().key();\r\n keyExpr && rows.some(row => {\r\n if (\"data\" === row.rowType && void 0 === row.key) {\r\n that._dataController.fireError(\"E1046\", keyExpr);\r\n return true\r\n }\r\n return\r\n })\r\n }\r\n _needUpdateRowHeight(itemsCount) {\r\n return itemsCount > 0 && !this._rowHeight\r\n }\r\n _getRowsHeight($tableElement) {\r\n $tableElement = $tableElement || this._tableElement;\r\n var $rowElements = $tableElement.children(\"tbody\").children().not(\".dx-virtual-row\").not(\".\".concat(FREE_SPACE_CLASS));\r\n return $rowElements.toArray().reduce((sum, row) => sum + getBoundingRect(row).height, 0)\r\n }\r\n _updateRowHeight() {\r\n var $tableElement = this.getTableElement();\r\n var itemsCount = this._dataController.items().length;\r\n if ($tableElement && this._needUpdateRowHeight(itemsCount)) {\r\n var rowsHeight = this._getRowsHeight($tableElement);\r\n this._rowHeight = rowsHeight / itemsCount\r\n }\r\n }\r\n _findContentElement(isFixedTableRendering) {\r\n var $content = this.element();\r\n var scrollable = this.getScrollable();\r\n if ($content) {\r\n if (scrollable) {\r\n $content = $(scrollable.content())\r\n }\r\n return $content.children().first()\r\n }\r\n }\r\n _getRowElements(tableElement) {\r\n var $rows = super._getRowElements(tableElement);\r\n return $rows && $rows.not(\".\".concat(FREE_SPACE_CLASS))\r\n }\r\n _getFreeSpaceRowElements($table) {\r\n var tableElements = $table || this.getTableElements();\r\n return tableElements && tableElements.children(\"tbody\").children(\".\".concat(FREE_SPACE_CLASS))\r\n }\r\n _getNoDataText() {\r\n return this.option(\"noDataText\")\r\n }\r\n _rowClick(e) {\r\n var item = this._dataController.items()[e.rowIndex] || {};\r\n this.executeAction(\"onRowClick\", extend({\r\n evaluate(expr) {\r\n var getter = compileGetter(expr);\r\n return getter(item.data)\r\n }\r\n }, e, item))\r\n }\r\n _rowDblClick(e) {\r\n var item = this._dataController.items()[e.rowIndex] || {};\r\n this.executeAction(\"onRowDblClick\", extend({}, e, item))\r\n }\r\n _getColumnsCountBeforeGroups(columns) {\r\n for (var i = 0; i < columns.length; i++) {\r\n if (\"groupExpand\" === columns[i].type) {\r\n return i\r\n }\r\n }\r\n return 0\r\n }\r\n _getGroupCellOptions(options) {\r\n var columnsCountBeforeGroups = this._getColumnsCountBeforeGroups(options.columns);\r\n var columnIndex = (options.row.groupIndex || 0) + columnsCountBeforeGroups;\r\n return {\r\n columnIndex: columnIndex,\r\n colspan: options.columns.length - columnIndex - 1\r\n }\r\n }\r\n _needWrapRow() {\r\n return super._needWrapRow.apply(this, arguments) || !!this.option(\"dataRowTemplate\")\r\n }\r\n _renderCells($row, options) {\r\n if (\"group\" === options.row.rowType) {\r\n this._renderGroupedCells($row, options)\r\n } else if (options.row.values) {\r\n super._renderCells($row, options)\r\n }\r\n }\r\n _renderGroupedCells($row, options) {\r\n var {\r\n row: row\r\n } = options;\r\n var expandColumn;\r\n var {\r\n columns: columns\r\n } = options;\r\n var {\r\n rowIndex: rowIndex\r\n } = row;\r\n var isExpanded;\r\n var groupCellOptions = this._getGroupCellOptions(options);\r\n for (var i = 0; i <= groupCellOptions.columnIndex; i++) {\r\n if (i === groupCellOptions.columnIndex && columns[i].allowCollapsing && \"infinite\" !== options.scrollingMode) {\r\n isExpanded = !!row.isExpanded;\r\n expandColumn = columns[i]\r\n } else {\r\n isExpanded = null;\r\n expandColumn = {\r\n command: \"expand\",\r\n cssClass: columns[i].cssClass\r\n }\r\n }\r\n if (this._needRenderCell(i, options.columnIndices)) {\r\n this._renderCell($row, {\r\n value: isExpanded,\r\n row: row,\r\n rowIndex: rowIndex,\r\n column: expandColumn,\r\n columnIndex: i,\r\n columnIndices: options.columnIndices,\r\n change: options.change\r\n })\r\n }\r\n }\r\n var groupColumnAlignment = getDefaultAlignment(this.option(\"rtlEnabled\"));\r\n var groupColumn = extend({}, columns[groupCellOptions.columnIndex], {\r\n command: null,\r\n type: null,\r\n cssClass: null,\r\n width: null,\r\n showWhenGrouped: false,\r\n alignment: groupColumnAlignment\r\n });\r\n if (groupCellOptions.colspan > 1) {\r\n groupColumn.colspan = groupCellOptions.colspan\r\n }\r\n if (this._needRenderCell(groupCellOptions.columnIndex + 1, options.columnIndices)) {\r\n this._renderCell($row, {\r\n value: row.values[row.groupIndex],\r\n row: row,\r\n rowIndex: rowIndex,\r\n column: groupColumn,\r\n columnIndex: groupCellOptions.columnIndex + 1,\r\n columnIndices: options.columnIndices,\r\n change: options.change\r\n })\r\n }\r\n }\r\n _renderRows($table, options) {\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n super._renderRows($table, extend({\r\n scrollingMode: scrollingMode\r\n }, options));\r\n this._checkRowKeys(options.change);\r\n this._renderFreeSpaceRow($table, options.change);\r\n if (!this._hasHeight) {\r\n this.updateFreeSpaceRowHeight($table)\r\n }\r\n }\r\n _renderDataRowByTemplate($table, options, dataRowTemplate) {\r\n var {\r\n row: row\r\n } = options;\r\n var rowOptions = extend({\r\n columns: options.columns\r\n }, row);\r\n var $tbody = this._createRow(row, \"tbody\");\r\n $tbody.appendTo($table);\r\n this.renderTemplate($tbody, dataRowTemplate, rowOptions, true, options.change);\r\n this._rowPrepared($tbody, rowOptions, options.row)\r\n }\r\n _renderRow($table, options) {\r\n var {\r\n row: row\r\n } = options;\r\n var {\r\n rowTemplate: rowTemplate\r\n } = this.option();\r\n var dataRowTemplate = this.option(\"dataRowTemplate\");\r\n if (\"data\" === row.rowType && dataRowTemplate) {\r\n this._renderDataRowByTemplate($table, options, dataRowTemplate)\r\n } else if ((\"data\" === row.rowType || \"group\" === row.rowType) && !isDefined(row.groupIndex) && rowTemplate) {\r\n this.renderTemplate($table, rowTemplate, extend({\r\n columns: options.columns\r\n }, row), true)\r\n } else {\r\n super._renderRow($table, options)\r\n }\r\n }\r\n _renderTable(options) {\r\n var that = this;\r\n var $table = super._renderTable(options);\r\n if (!isDefined(that.getTableElement())) {\r\n that.setTableElement($table);\r\n that._renderScrollable(true);\r\n that.resizeCompleted.add((function resizeCompletedHandler() {\r\n var scrollableInstance = that.getScrollable();\r\n if (scrollableInstance && that.element().closest(getWindow().document).length) {\r\n that.resizeCompleted.remove(resizeCompletedHandler);\r\n scrollableInstance._visibilityChanged(true)\r\n }\r\n }))\r\n } else {\r\n that._renderScrollable()\r\n }\r\n return $table\r\n }\r\n _createTable() {\r\n var $table = super._createTable.apply(this, arguments);\r\n if (this.option().rowTemplate || this.option().dataRowTemplate) {\r\n $table.appendTo(this.component.$element())\r\n }\r\n return $table\r\n }\r\n _renderCore(change) {\r\n var $element = this.element();\r\n $element.addClass(this.addWidgetPrefix(ROWS_VIEW_CLASS)).toggleClass(this.addWidgetPrefix(NOWRAP_CLASS), !this.option(\"wordWrapEnabled\"));\r\n $element.toggleClass(EMPTY_CLASS, this._dataController.isEmpty());\r\n this.setAria(\"role\", \"presentation\", $element);\r\n var $table = this._renderTable({\r\n change: change\r\n });\r\n var deferred = this._updateContent($table, change);\r\n super._renderCore(change);\r\n this._lastColumnWidths = null;\r\n return deferred\r\n }\r\n _getRows(change) {\r\n return change && change.items || this._dataController.items()\r\n }\r\n _getCellOptions(options) {\r\n var {\r\n column: column\r\n } = options;\r\n var {\r\n row: row\r\n } = options;\r\n var {\r\n data: data\r\n } = row;\r\n var summaryCells = row && row.summaryCells;\r\n var {\r\n value: value\r\n } = options;\r\n var displayValue = gridCoreUtils.getDisplayValue(column, value, data, row.rowType);\r\n var parameters = super._getCellOptions(options);\r\n parameters.value = value;\r\n parameters.oldValue = options.oldValue;\r\n parameters.displayValue = displayValue;\r\n parameters.row = row;\r\n parameters.key = row.key;\r\n parameters.data = data;\r\n parameters.rowType = row.rowType;\r\n parameters.values = row.values;\r\n parameters.text = !column.command ? gridCoreUtils.formatValue(displayValue, column) : \"\";\r\n parameters.rowIndex = row.rowIndex;\r\n parameters.summaryItems = summaryCells && summaryCells[options.columnIndex];\r\n parameters.resized = column.resizedCallbacks;\r\n if (isDefined(column.groupIndex) && !column.command) {\r\n var groupingTextsOptions = this.option(\"grouping.texts\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n if (\"virtual\" !== scrollingMode && \"infinite\" !== scrollingMode) {\r\n parameters.groupContinuesMessage = data && data.isContinuationOnNextPage && groupingTextsOptions && groupingTextsOptions.groupContinuesMessage;\r\n parameters.groupContinuedMessage = data && data.isContinuation && groupingTextsOptions && groupingTextsOptions.groupContinuedMessage\r\n }\r\n }\r\n return parameters\r\n }\r\n _setRowsOpacityCore($rows, visibleColumns, columnIndex, value) {\r\n var columnsController = this._columnsController;\r\n var columns = columnsController.getColumns();\r\n var column = columns && columns[columnIndex];\r\n var columnID = column && column.isBand && column.index;\r\n each($rows, (rowIndex, row) => {\r\n if (!$(row).hasClass(GROUP_ROW_CLASS)) {\r\n for (var i = 0; i < visibleColumns.length; i++) {\r\n if (isNumeric(columnID) && columnsController.isParentBandColumn(visibleColumns[i].index, columnID) || visibleColumns[i].index === columnIndex) {\r\n $rows.eq(rowIndex).children().eq(i).css({\r\n opacity: value\r\n });\r\n if (!isNumeric(columnID)) {\r\n break\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }\r\n _getDevicePixelRatio() {\r\n return getWindow().devicePixelRatio\r\n }\r\n renderNoDataText() {\r\n return gridCoreUtils.renderNoDataText.apply(this, arguments)\r\n }\r\n getCellOptions(rowIndex, columnIdentifier) {\r\n var rowOptions = this._dataController.items()[rowIndex];\r\n var cellOptions;\r\n var column;\r\n if (rowOptions) {\r\n if (isString(columnIdentifier)) {\r\n column = this._columnsController.columnOption(columnIdentifier)\r\n } else {\r\n column = this._columnsController.getVisibleColumns()[columnIdentifier]\r\n }\r\n if (column) {\r\n cellOptions = this._getCellOptions({\r\n value: column.calculateCellValue(rowOptions.data),\r\n rowIndex: rowOptions.rowIndex,\r\n row: rowOptions,\r\n column: column\r\n })\r\n }\r\n }\r\n return cellOptions\r\n }\r\n getRow(index) {\r\n if (index >= 0) {\r\n var rows = this._getRowElements();\r\n if (rows.length > index) {\r\n return $(rows[index])\r\n }\r\n }\r\n return\r\n }\r\n updateFreeSpaceRowHeight($table) {\r\n var dataController = this._dataController;\r\n var itemCount = dataController.items(true).length;\r\n var contentElement = this._findContentElement();\r\n var freeSpaceRowElements = this._getFreeSpaceRowElements($table);\r\n if (freeSpaceRowElements && contentElement && dataController.totalCount() >= 0) {\r\n var isFreeSpaceRowVisible = false;\r\n if (itemCount > 0) {\r\n if (!this._hasHeight) {\r\n var freeSpaceRowCount = dataController.pageSize() - itemCount;\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n if (freeSpaceRowCount > 0 && dataController.pageCount() > 1 && \"virtual\" !== scrollingMode && \"infinite\" !== scrollingMode) {\r\n setHeight(freeSpaceRowElements, freeSpaceRowCount * this._rowHeight);\r\n isFreeSpaceRowVisible = true\r\n }\r\n if (!isFreeSpaceRowVisible && $table) {\r\n setHeight(freeSpaceRowElements, 0)\r\n } else {\r\n freeSpaceRowElements.toggle(isFreeSpaceRowVisible)\r\n }\r\n this._updateLastRowBorder(isFreeSpaceRowVisible)\r\n } else {\r\n freeSpaceRowElements.hide();\r\n deferUpdate(() => {\r\n var scrollbarWidth = this.getScrollbarWidth(true);\r\n var elementHeightWithoutScrollbar = getHeight(this.element()) - scrollbarWidth;\r\n var contentHeight = getOuterHeight(contentElement);\r\n var showFreeSpaceRow = elementHeightWithoutScrollbar - contentHeight > 0;\r\n var rowsHeight = this._getRowsHeight(contentElement.children().first());\r\n var $tableElement = $table || this.getTableElements();\r\n var borderTopWidth = Math.ceil(parseFloat($tableElement.css(\"borderTopWidth\")));\r\n var heightCorrection = this._getHeightCorrection();\r\n var resultHeight = elementHeightWithoutScrollbar - rowsHeight - borderTopWidth - heightCorrection;\r\n if (showFreeSpaceRow) {\r\n deferRender(() => {\r\n freeSpaceRowElements.css(\"height\", resultHeight);\r\n isFreeSpaceRowVisible = true;\r\n freeSpaceRowElements.show()\r\n })\r\n }\r\n deferRender(() => this._updateLastRowBorder(isFreeSpaceRowVisible))\r\n })\r\n }\r\n } else {\r\n freeSpaceRowElements.css(\"height\", 0);\r\n freeSpaceRowElements.show();\r\n this._updateLastRowBorder(true)\r\n }\r\n }\r\n }\r\n _getHeightCorrection() {\r\n var isZoomedWebkit = browser.webkit && this._getDevicePixelRatio() >= 2;\r\n var isChromeLatest = browser.chrome && browser.version >= 91;\r\n var hasExtraBorderTop = browser.mozilla && browser.version >= 70 && !this.option(\"showRowLines\");\r\n return isZoomedWebkit || hasExtraBorderTop || isChromeLatest ? 1 : 0\r\n }\r\n _columnOptionChanged(e) {\r\n var {\r\n optionNames: optionNames\r\n } = e;\r\n if (e.changeTypes.grouping) {\r\n return\r\n }\r\n if (optionNames.width || optionNames.visibleWidth) {\r\n super._columnOptionChanged(e);\r\n this._fireColumnResizedCallbacks()\r\n }\r\n }\r\n getScrollable() {\r\n return this._scrollable\r\n }\r\n init() {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n super.init();\r\n that._editorFactoryController = that.getController(\"editorFactory\");\r\n that._rowHeight = 0;\r\n that._scrollTop = 0;\r\n that._scrollLeft = -1;\r\n that._scrollRight = 0;\r\n that._hasHeight = false;\r\n that._contentChanges = [];\r\n dataController.loadingChanged.add((isLoading, messageText) => {\r\n that.setLoading(isLoading, messageText)\r\n });\r\n dataController.dataSourceChanged.add(() => {\r\n if (this._scrollLeft >= 0 && !this._dataController.isLoading()) {\r\n this._handleScroll({\r\n component: this.getScrollable(),\r\n forceUpdateScrollPosition: true,\r\n scrollOffset: {\r\n top: this._scrollTop,\r\n left: this._scrollLeft\r\n }\r\n })\r\n }\r\n })\r\n }\r\n _handleDataChanged(change) {\r\n switch (change.changeType) {\r\n case \"refresh\":\r\n case \"prepend\":\r\n case \"append\":\r\n case \"update\":\r\n this.render(null, change);\r\n break;\r\n default:\r\n this._update(change)\r\n }\r\n }\r\n publicMethods() {\r\n return [\"isScrollbarVisible\", \"getTopVisibleRowData\", \"getScrollbarWidth\", \"getCellElement\", \"getRowElement\", \"getScrollable\"]\r\n }\r\n contentWidth() {\r\n return getWidth(this.element()) - this.getScrollbarWidth()\r\n }\r\n getScrollbarWidth(isHorizontal) {\r\n var scrollableContainer = this._scrollableContainer && this._scrollableContainer.get(0);\r\n var scrollbarWidth = 0;\r\n if (scrollableContainer) {\r\n if (!isHorizontal) {\r\n scrollbarWidth = scrollableContainer.clientWidth ? scrollableContainer.offsetWidth - scrollableContainer.clientWidth : 0\r\n } else {\r\n scrollbarWidth = scrollableContainer.clientHeight ? scrollableContainer.offsetHeight - scrollableContainer.clientHeight : 0;\r\n scrollbarWidth += getScrollableBottomPadding(this)\r\n }\r\n }\r\n return scrollbarWidth > 0 ? scrollbarWidth : 0\r\n }\r\n _fireColumnResizedCallbacks() {\r\n var lastColumnWidths = this._lastColumnWidths || [];\r\n var columnWidths = [];\r\n var columns = this.getColumns();\r\n for (var i = 0; i < columns.length; i++) {\r\n columnWidths[i] = columns[i].visibleWidth;\r\n if (columns[i].resizedCallbacks && !isDefined(columns[i].groupIndex) && lastColumnWidths[i] !== columnWidths[i]) {\r\n columns[i].resizedCallbacks.fire(columnWidths[i])\r\n }\r\n }\r\n this._lastColumnWidths = columnWidths\r\n }\r\n _updateLastRowBorder(isFreeSpaceRowVisible) {\r\n if (this.option(\"showBorders\") && this.option(\"showRowLines\") && !isFreeSpaceRowVisible) {\r\n this.element().addClass(LAST_ROW_BORDER)\r\n } else {\r\n this.element().removeClass(LAST_ROW_BORDER)\r\n }\r\n }\r\n _updateScrollable() {\r\n var scrollable = Scrollable.getInstance(this.element());\r\n if (scrollable) {\r\n scrollable.update();\r\n if (scrollable.option(\"useNative\") || !(null === scrollable || void 0 === scrollable ? void 0 : scrollable.isRenovated())) {\r\n this._updateHorizontalScrollPosition()\r\n }\r\n }\r\n }\r\n _updateHorizontalScrollPosition() {\r\n var scrollable = this.getScrollable();\r\n var scrollLeft = scrollable && scrollable.scrollOffset().left;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (rtlEnabled) {\r\n var maxHorizontalScrollOffset = getMaxHorizontalScrollOffset(scrollable);\r\n var scrollRight = maxHorizontalScrollOffset - scrollLeft;\r\n if (scrollRight !== this._scrollRight) {\r\n this._scrollLeft = maxHorizontalScrollOffset - this._scrollRight\r\n }\r\n }\r\n if (this._scrollLeft >= 0 && scrollLeft !== this._scrollLeft) {\r\n scrollable.scrollTo({\r\n x: this._scrollLeft\r\n })\r\n }\r\n }\r\n _resizeCore() {\r\n var that = this;\r\n that._fireColumnResizedCallbacks();\r\n that._updateRowHeight();\r\n deferRender(() => {\r\n that._renderScrollable();\r\n that.renderNoDataText();\r\n that.updateFreeSpaceRowHeight();\r\n deferUpdate(() => {\r\n that._updateScrollable()\r\n })\r\n })\r\n }\r\n scrollTo(location) {\r\n var $element = this.element();\r\n var dxScrollable = $element && Scrollable.getInstance($element);\r\n if (dxScrollable) {\r\n dxScrollable.scrollTo(location)\r\n }\r\n }\r\n height(height) {\r\n var $element = this.element();\r\n if (0 === arguments.length) {\r\n return $element ? getOuterHeight($element, true) : 0\r\n }\r\n if (isDefined(height) && $element) {\r\n this.hasHeight(\"auto\" !== height);\r\n setHeight($element, height)\r\n }\r\n }\r\n hasHeight(hasHeight) {\r\n if (0 === arguments.length) {\r\n return !!this._hasHeight\r\n }\r\n this._hasHeight = hasHeight;\r\n return\r\n }\r\n setLoading(isLoading, messageText) {\r\n var loadPanel = this._loadPanel;\r\n var dataController = this._dataController;\r\n var loadPanelOptions = this.option(\"loadPanel\") || {};\r\n var animation = dataController.isLoaded() ? loadPanelOptions.animation : null;\r\n var $element = this.element();\r\n if (!hasWindow()) {\r\n return\r\n }\r\n if (!loadPanel && void 0 !== messageText && dataController.isLocalStore() && \"auto\" === loadPanelOptions.enabled && $element) {\r\n this._renderLoadPanel($element, $element.parent());\r\n loadPanel = this._loadPanel\r\n }\r\n if (loadPanel) {\r\n var visibilityOptions = {\r\n message: messageText || loadPanelOptions.text,\r\n animation: animation,\r\n visible: isLoading\r\n };\r\n if (isLoading) {\r\n visibilityOptions.position = gridCoreUtils.calculateLoadPanelPosition($element)\r\n }\r\n clearTimeout(this._hideLoadingTimeoutID);\r\n if (loadPanel.option(\"visible\") && !isLoading) {\r\n this._hideLoadingTimeoutID = setTimeout(() => {\r\n loadPanel.option(visibilityOptions)\r\n }, LOADPANEL_HIDE_TIMEOUT)\r\n } else {\r\n loadPanel.option(visibilityOptions)\r\n }\r\n }\r\n }\r\n setRowsOpacity(columnIndex, value) {\r\n var $rows = this._getRowElements().not(\".\".concat(GROUP_ROW_CLASS)) || [];\r\n this._setRowsOpacityCore($rows, this.getColumns(), columnIndex, value)\r\n }\r\n _getCellElementsCore(rowIndex) {\r\n var $cells = super._getCellElementsCore.apply(this, arguments);\r\n if ($cells) {\r\n var groupCellIndex = $cells.filter(\".\".concat(GROUP_CELL_CLASS)).index();\r\n if (groupCellIndex >= 0 && $cells.length > groupCellIndex + 1) {\r\n return $cells.slice(0, groupCellIndex + 1)\r\n }\r\n }\r\n return $cells\r\n }\r\n _getBoundaryVisibleItemIndex(isTop, isFloor) {\r\n var itemIndex = 0;\r\n var prevOffset = 0;\r\n var offset = 0;\r\n var viewportBoundary = this._scrollTop;\r\n var $contentElement = this._findContentElement();\r\n var contentElementOffsetTop = $contentElement && $contentElement.offset().top;\r\n var dataController = this.getController(\"data\");\r\n var items = dataController.items();\r\n var tableElement = this.getTableElement();\r\n if (items.length && tableElement) {\r\n var rowElements = this._getRowElements(tableElement).filter(\":visible\");\r\n if (!isTop) {\r\n var height = getOuterHeight(this._hasHeight ? this.element() : getWindow());\r\n viewportBoundary += height\r\n }\r\n for (itemIndex = 0; itemIndex < items.length; itemIndex++) {\r\n prevOffset = offset;\r\n var $rowElement = $(rowElements).eq(itemIndex);\r\n if ($rowElement.length) {\r\n offset = $rowElement.offset();\r\n offset = (isTop ? offset.top : offset.top + getOuterHeight($rowElement)) - contentElementOffsetTop;\r\n if (offset > viewportBoundary) {\r\n if (itemIndex) {\r\n if (isFloor || 2 * viewportBoundary < Math.round(offset + prevOffset)) {\r\n itemIndex--\r\n }\r\n }\r\n break\r\n }\r\n }\r\n }\r\n if (itemIndex && itemIndex === items.length) {\r\n itemIndex--\r\n }\r\n }\r\n return itemIndex\r\n }\r\n getTopVisibleItemIndex(isFloor) {\r\n return this._getBoundaryVisibleItemIndex(true, isFloor)\r\n }\r\n getBottomVisibleItemIndex(isFloor) {\r\n return this._getBoundaryVisibleItemIndex(false, isFloor)\r\n }\r\n getTopVisibleRowData() {\r\n var itemIndex = this.getTopVisibleItemIndex();\r\n var items = this._dataController.items();\r\n if (items[itemIndex]) {\r\n return items[itemIndex].data\r\n }\r\n return\r\n }\r\n _scrollToElement($element, offset) {\r\n var scrollable = this.getScrollable();\r\n scrollable && scrollable.scrollToElement($element, offset)\r\n }\r\n optionChanged(args) {\r\n super.optionChanged(args);\r\n switch (args.name) {\r\n case \"wordWrapEnabled\":\r\n case \"showColumnLines\":\r\n case \"showRowLines\":\r\n case \"rowAlternationEnabled\":\r\n case \"rowTemplate\":\r\n case \"dataRowTemplate\":\r\n case \"twoWayBindingEnabled\":\r\n this._invalidate(true, true);\r\n args.handled = true;\r\n break;\r\n case \"scrolling\":\r\n this._rowHeight = null;\r\n this._tableElement = null;\r\n args.handled = true;\r\n break;\r\n case \"rtlEnabled\":\r\n this._rowHeight = null;\r\n this._tableElement = null;\r\n break;\r\n case \"loadPanel\":\r\n this._tableElement = null;\r\n this._invalidate(true, \"loadPanel.enabled\" !== args.fullName);\r\n args.handled = true;\r\n break;\r\n case \"noDataText\":\r\n this.renderNoDataText();\r\n args.handled = true\r\n }\r\n }\r\n dispose() {\r\n super.dispose();\r\n clearTimeout(this._hideLoadingTimeoutID);\r\n this._scrollable && this._scrollable.dispose()\r\n }\r\n setScrollerSpacing() {}\r\n _restoreErrorRow() {}\r\n}\r\nexport var rowsModule = {\r\n defaultOptions: () => ({\r\n hoverStateEnabled: false,\r\n scrolling: {\r\n useNative: \"auto\"\r\n },\r\n loadPanel: {\r\n enabled: \"auto\",\r\n text: messageLocalization.format(\"Loading\"),\r\n width: 200,\r\n height: 90,\r\n showIndicator: true,\r\n indicatorSrc: \"\",\r\n showPane: true\r\n },\r\n dataRowTemplate: null,\r\n columnAutoWidth: false,\r\n noDataText: messageLocalization.format(\"dxDataGrid-noDataText\"),\r\n wordWrapEnabled: false,\r\n showColumnLines: true,\r\n showRowLines: false,\r\n rowAlternationEnabled: false,\r\n activeStateEnabled: false,\r\n twoWayBindingEnabled: true\r\n }),\r\n views: {\r\n rowsView: RowsView\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/rows.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n rowsModule\r\n} from \"../../../grids/grid_core/views/m_rows_view\";\r\nimport gridCore from \"../m_core\";\r\nexport var RowsView = rowsModule.views.rowsView;\r\ngridCore.registerModule(\"rows\", rowsModule);\r\n","/**\r\n * DevExtreme (esm/core/utils/stubs.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function stubComponent(componentName) {\r\n return class {\r\n constructor() {\r\n throw new Error(\"Module '\".concat(componentName, \"' not found\"))\r\n }\r\n static getInstance() {}\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/widget/ui.search_box_mixin.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 extend\r\n} from \"../../core/utils/extend\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n stubComponent\r\n} from \"../../core/utils/stubs\";\r\nvar EditorClass = stubComponent(\"TextBox\");\r\nexport default {\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n searchMode: \"\",\r\n searchExpr: null,\r\n searchValue: \"\",\r\n searchEnabled: false,\r\n searchEditorOptions: {}\r\n })\r\n },\r\n _initMarkup: function() {\r\n this._renderSearch();\r\n this.callBase()\r\n },\r\n _renderSearch: function() {\r\n var $element = this.$element();\r\n var searchEnabled = this.option(\"searchEnabled\");\r\n var searchBoxClassName = this._addWidgetPrefix(\"search\");\r\n var rootElementClassName = this._addWidgetPrefix(\"with-search\");\r\n if (!searchEnabled) {\r\n $element.removeClass(rootElementClassName);\r\n this._removeSearchBox();\r\n return\r\n }\r\n var editorOptions = this._getSearchEditorOptions();\r\n if (this._searchEditor) {\r\n this._searchEditor.option(editorOptions)\r\n } else {\r\n $element.addClass(rootElementClassName);\r\n this._$searchEditorElement = $(\"
\").addClass(searchBoxClassName).prependTo($element);\r\n this._searchEditor = this._createComponent(this._$searchEditorElement, EditorClass, editorOptions)\r\n }\r\n },\r\n _removeSearchBox: function() {\r\n this._$searchEditorElement && this._$searchEditorElement.remove();\r\n delete this._$searchEditorElement;\r\n delete this._searchEditor\r\n },\r\n _getSearchEditorOptions: function() {\r\n var that = this;\r\n var userEditorOptions = that.option(\"searchEditorOptions\");\r\n var searchText = messageLocalization.format(\"Search\");\r\n return extend({\r\n mode: \"search\",\r\n placeholder: searchText,\r\n tabIndex: that.option(\"tabIndex\"),\r\n value: that.option(\"searchValue\"),\r\n valueChangeEvent: \"input\",\r\n inputAttr: {\r\n \"aria-label\": searchText\r\n },\r\n onValueChanged: function(e) {\r\n var searchTimeout = that.option(\"searchTimeout\");\r\n that._valueChangeDeferred = new Deferred;\r\n clearTimeout(that._valueChangeTimeout);\r\n that._valueChangeDeferred.done(function() {\r\n this.option(\"searchValue\", e.value)\r\n }.bind(that));\r\n if (e.event && \"input\" === e.event.type && searchTimeout) {\r\n that._valueChangeTimeout = setTimeout((function() {\r\n that._valueChangeDeferred.resolve()\r\n }), searchTimeout)\r\n } else {\r\n that._valueChangeDeferred.resolve()\r\n }\r\n }\r\n }, userEditorOptions)\r\n },\r\n _getAriaTarget: function() {\r\n if (this.option(\"searchEnabled\")) {\r\n return this._itemContainer(true)\r\n }\r\n return this.callBase()\r\n },\r\n _focusTarget: function() {\r\n if (this.option(\"searchEnabled\")) {\r\n return this._itemContainer(true)\r\n }\r\n return this.callBase()\r\n },\r\n _updateFocusState: function(e, isFocused) {\r\n if (this.option(\"searchEnabled\")) {\r\n this._toggleFocusClass(isFocused, this.$element())\r\n }\r\n this.callBase(e, isFocused)\r\n },\r\n getOperationBySearchMode: function(searchMode) {\r\n return \"equals\" === searchMode ? \"=\" : searchMode\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"searchEnabled\":\r\n case \"searchEditorOptions\":\r\n this._invalidate();\r\n break;\r\n case \"searchExpr\":\r\n case \"searchMode\":\r\n case \"searchValue\":\r\n if (!this._dataSource) {\r\n errors.log(\"W1009\");\r\n return\r\n }\r\n if (\"searchMode\" === args.name) {\r\n this._dataSource.searchOperation(this.getOperationBySearchMode(args.value))\r\n } else {\r\n this._dataSource[args.name](args.value)\r\n }\r\n this._dataSource.load();\r\n break;\r\n case \"searchTimeout\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n focus: function() {\r\n if (!this.option(\"focusedElement\") && this.option(\"searchEnabled\")) {\r\n this._searchEditor && this._searchEditor.focus();\r\n return\r\n }\r\n this.callBase()\r\n },\r\n _cleanAria: function() {\r\n var $element = this.$element();\r\n this.setAria({\r\n role: null,\r\n activedescendant: null\r\n }, $element);\r\n $element.attr(\"tabIndex\", null)\r\n },\r\n _clean() {\r\n this.callBase();\r\n this._cleanAria()\r\n },\r\n _refresh: function() {\r\n if (this._valueChangeDeferred) {\r\n this._valueChangeDeferred.resolve()\r\n }\r\n this.callBase()\r\n },\r\n setEditorClass: function(value) {\r\n EditorClass = value\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/text_box/utils.caret.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 isDefined\r\n} from \"../../core/utils/type\";\r\nimport devices from \"../../core/devices\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nvar {\r\n ios: ios,\r\n mac: mac\r\n} = devices.real();\r\nvar isFocusingOnCaretChange = ios || mac;\r\nvar getCaret = function(input) {\r\n var range;\r\n try {\r\n range = {\r\n start: input.selectionStart,\r\n end: input.selectionEnd\r\n }\r\n } catch (e) {\r\n range = {\r\n start: 0,\r\n end: 0\r\n }\r\n }\r\n return range\r\n};\r\nvar setCaret = function(input, position) {\r\n var body = domAdapter.getBody();\r\n if (!body.contains(input) && !body.contains(input.getRootNode().host)) {\r\n return\r\n }\r\n try {\r\n input.selectionStart = position.start;\r\n input.selectionEnd = position.end\r\n } catch (e) {}\r\n};\r\nvar caret = function(input, position) {\r\n var force = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : false;\r\n input = $(input).get(0);\r\n if (!isDefined(position)) {\r\n return getCaret(input)\r\n }\r\n if (!force && isFocusingOnCaretChange && domAdapter.getActiveElement(input) !== input) {\r\n return\r\n }\r\n setCaret(input, position)\r\n};\r\nexport default caret;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.mask.rule.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar EMPTY_CHAR = \" \";\r\nvar BaseMaskRule = Class.inherit({\r\n ctor: function(config) {\r\n this._value = EMPTY_CHAR;\r\n extend(this, config)\r\n },\r\n next: function(rule) {\r\n if (!arguments.length) {\r\n return this._next\r\n }\r\n this._next = rule\r\n },\r\n text: noop,\r\n value: noop,\r\n rawValue: noop,\r\n handle: noop,\r\n _prepareHandlingArgs: function(args, config) {\r\n var _config$str, _config$start, _config$length;\r\n config = config || {};\r\n var handlingProperty = Object.prototype.hasOwnProperty.call(args, \"value\") ? \"value\" : \"text\";\r\n args[handlingProperty] = null !== (_config$str = config.str) && void 0 !== _config$str ? _config$str : args[handlingProperty];\r\n args.start = null !== (_config$start = config.start) && void 0 !== _config$start ? _config$start : args.start;\r\n args.length = null !== (_config$length = config.length) && void 0 !== _config$length ? _config$length : args.length;\r\n args.index = args.index + 1;\r\n return args\r\n },\r\n reset: noop,\r\n clear: noop,\r\n first: function(index) {\r\n index = index || 0;\r\n return this.next().first(index + 1)\r\n },\r\n isAccepted: function() {\r\n return false\r\n },\r\n adjustedCaret: function(caret, isForwardDirection, char) {\r\n return isForwardDirection ? this._adjustedForward(caret, 0, char) : this._adjustedBackward(caret, 0, char)\r\n },\r\n _adjustedForward: noop,\r\n _adjustedBackward: noop,\r\n isValid: noop\r\n});\r\nexport var EmptyMaskRule = BaseMaskRule.inherit({\r\n next: noop,\r\n handle: function() {\r\n return 0\r\n },\r\n text: function() {\r\n return \"\"\r\n },\r\n value: function() {\r\n return \"\"\r\n },\r\n first: function() {\r\n return 0\r\n },\r\n rawValue: function() {\r\n return \"\"\r\n },\r\n adjustedCaret: function() {\r\n return 0\r\n },\r\n isValid: function() {\r\n return true\r\n }\r\n});\r\nexport var MaskRule = BaseMaskRule.inherit({\r\n text: function() {\r\n return (this._value !== EMPTY_CHAR ? this._value : this.maskChar) + this.next().text()\r\n },\r\n value: function() {\r\n return this._value + this.next().value()\r\n },\r\n rawValue: function() {\r\n return this._value + this.next().rawValue()\r\n },\r\n handle: function(args) {\r\n var str = Object.prototype.hasOwnProperty.call(args, \"value\") ? args.value : args.text;\r\n if (!str || !str.length || !args.length) {\r\n return 0\r\n }\r\n if (args.start) {\r\n return this.next().handle(this._prepareHandlingArgs(args, {\r\n start: args.start - 1\r\n }))\r\n }\r\n var char = str[0];\r\n var rest = str.substring(1);\r\n this._tryAcceptChar(char, args);\r\n return this._accepted() ? this.next().handle(this._prepareHandlingArgs(args, {\r\n str: rest,\r\n length: args.length - 1\r\n })) + 1 : this.handle(this._prepareHandlingArgs(args, {\r\n str: rest,\r\n length: args.length - 1\r\n }))\r\n },\r\n clear: function(args) {\r\n this._tryAcceptChar(EMPTY_CHAR, args);\r\n this.next().clear(this._prepareHandlingArgs(args))\r\n },\r\n reset: function() {\r\n this._accepted(false);\r\n this.next().reset()\r\n },\r\n _tryAcceptChar: function(char, args) {\r\n this._accepted(false);\r\n if (!this._isAllowed(char, args)) {\r\n return\r\n }\r\n var acceptedChar = char === EMPTY_CHAR ? this.maskChar : char;\r\n args.fullText = args.fullText.substring(0, args.index) + acceptedChar + args.fullText.substring(args.index + 1);\r\n this._accepted(true);\r\n this._value = char\r\n },\r\n _accepted: function(value) {\r\n if (!arguments.length) {\r\n return !!this._isAccepted\r\n }\r\n this._isAccepted = !!value\r\n },\r\n first: function(index) {\r\n return this._value === EMPTY_CHAR ? index || 0 : this.callBase(index)\r\n },\r\n _isAllowed: function(char, args) {\r\n if (char === EMPTY_CHAR) {\r\n return true\r\n }\r\n return this._isValid(char, args)\r\n },\r\n _isValid: function(char, args) {\r\n var allowedChars = this.allowedChars;\r\n if (allowedChars instanceof RegExp) {\r\n return allowedChars.test(char)\r\n }\r\n if (isFunction(allowedChars)) {\r\n return allowedChars(char, args.index, args.fullText)\r\n }\r\n if (Array.isArray(allowedChars)) {\r\n return allowedChars.includes(char)\r\n }\r\n return allowedChars === char\r\n },\r\n isAccepted: function(caret) {\r\n return 0 === caret ? this._accepted() : this.next().isAccepted(caret - 1)\r\n },\r\n _adjustedForward: function(caret, index, char) {\r\n if (index >= caret) {\r\n return index\r\n }\r\n return this.next()._adjustedForward(caret, index + 1, char) || index + 1\r\n },\r\n _adjustedBackward: function(caret, index) {\r\n if (index >= caret - 1) {\r\n return caret\r\n }\r\n return this.next()._adjustedBackward(caret, index + 1) || index + 1\r\n },\r\n isValid: function(args) {\r\n return this._isValid(this._value, args) && this.next().isValid(this._prepareHandlingArgs(args))\r\n }\r\n});\r\nexport var StubMaskRule = MaskRule.inherit({\r\n value: function() {\r\n return this.next().value()\r\n },\r\n handle: function(args) {\r\n var hasValueProperty = Object.prototype.hasOwnProperty.call(args, \"value\");\r\n var str = hasValueProperty ? args.value : args.text;\r\n if (!str.length || !args.length) {\r\n return 0\r\n }\r\n if (args.start || hasValueProperty) {\r\n return this.next().handle(this._prepareHandlingArgs(args, {\r\n start: args.start && args.start - 1\r\n }))\r\n }\r\n var char = str[0];\r\n var rest = str.substring(1);\r\n this._tryAcceptChar(char);\r\n var nextArgs = this._isAllowed(char) ? this._prepareHandlingArgs(args, {\r\n str: rest,\r\n length: args.length - 1\r\n }) : args;\r\n return this.next().handle(nextArgs) + 1\r\n },\r\n clear: function(args) {\r\n this._accepted(false);\r\n this.next().clear(this._prepareHandlingArgs(args))\r\n },\r\n _tryAcceptChar: function(char) {\r\n this._accepted(this._isValid(char))\r\n },\r\n _isValid: function(char) {\r\n return char === this.maskChar\r\n },\r\n first: function(index) {\r\n index = index || 0;\r\n return this.next().first(index + 1)\r\n },\r\n _adjustedForward: function(caret, index, char) {\r\n if (index >= caret && char === this.maskChar) {\r\n return index\r\n }\r\n if (caret === index + 1 && this._accepted()) {\r\n return caret\r\n }\r\n return this.next()._adjustedForward(caret, index + 1, char)\r\n },\r\n _adjustedBackward: function(caret, index) {\r\n if (index >= caret - 1) {\r\n return 0\r\n }\r\n return this.next()._adjustedBackward(caret, index + 1)\r\n },\r\n isValid: function(args) {\r\n return this.next().isValid(this._prepareHandlingArgs(args))\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/validation_message.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 getOuterWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport Overlay from \"./overlay/ui.overlay\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n encodeHtml\r\n} from \"../core/utils/string\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../core/utils/position\";\r\nvar INVALID_MESSAGE = \"dx-invalid-message\";\r\nvar INVALID_MESSAGE_AUTO = \"dx-invalid-message-auto\";\r\nvar INVALID_MESSAGE_ALWAYS = \"dx-invalid-message-always\";\r\nvar INVALID_MESSAGE_CONTENT = \"dx-invalid-message-content\";\r\nvar VALIDATION_MESSAGE_MIN_WIDTH = 100;\r\nvar ValidationMessage = Overlay.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n integrationOptions: {},\r\n templatesRenderAsynchronously: false,\r\n shading: false,\r\n width: \"auto\",\r\n height: \"auto\",\r\n hideOnOutsideClick: false,\r\n animation: null,\r\n visible: true,\r\n propagateOutsideClick: true,\r\n _checkParentVisibility: false,\r\n rtlEnabled: false,\r\n contentTemplate: this._renderInnerHtml,\r\n maxWidth: \"100%\",\r\n container: this.$element(),\r\n target: void 0,\r\n mode: \"auto\",\r\n validationErrors: void 0,\r\n preventScrollEvents: false,\r\n positionSide: \"top\",\r\n boundary: void 0,\r\n offset: {\r\n h: 0,\r\n v: 0\r\n },\r\n contentId: void 0\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this.updateMaxWidth();\r\n this._updatePosition()\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this._ensureMessageNotEmpty();\r\n this._updatePositionByTarget();\r\n this._toggleModeClass();\r\n this._updateContentId()\r\n },\r\n _updatePositionByTarget: function() {\r\n var {\r\n target: target\r\n } = this.option();\r\n this.option(\"position.of\", target)\r\n },\r\n _ensureMessageNotEmpty: function() {\r\n this._textMarkup = this._getTextMarkup();\r\n var shouldShowMessage = this.option(\"visible\") && this._textMarkup;\r\n this._toggleVisibilityClasses(shouldShowMessage)\r\n },\r\n _toggleVisibilityClasses: function(visible) {\r\n if (visible) {\r\n this.$element().addClass(INVALID_MESSAGE);\r\n this.$wrapper().addClass(INVALID_MESSAGE)\r\n } else {\r\n this.$element().removeClass(INVALID_MESSAGE);\r\n this.$wrapper().removeClass(INVALID_MESSAGE)\r\n }\r\n },\r\n _updateContentId() {\r\n var {\r\n container: container,\r\n contentId: contentId\r\n } = this.option();\r\n var id = null !== contentId && void 0 !== contentId ? contentId : $(container).attr(\"aria-describedby\");\r\n this.$content().addClass(INVALID_MESSAGE_CONTENT).attr(\"id\", id)\r\n },\r\n _renderInnerHtml(element) {\r\n var $element = element && $(element);\r\n null === $element || void 0 === $element ? void 0 : $element.html(this._textMarkup)\r\n },\r\n _getTextMarkup() {\r\n var _this$option;\r\n var validationErrors = null !== (_this$option = this.option(\"validationErrors\")) && void 0 !== _this$option ? _this$option : [];\r\n var validationErrorMessage = \"\";\r\n validationErrors.forEach(err => {\r\n var _err$message;\r\n var separator = validationErrorMessage ? \"
\" : \"\";\r\n validationErrorMessage += separator + encodeHtml(null !== (_err$message = null === err || void 0 === err ? void 0 : err.message) && void 0 !== _err$message ? _err$message : \"\")\r\n });\r\n return validationErrorMessage\r\n },\r\n _toggleModeClass() {\r\n var mode = this.option(\"mode\");\r\n this.$wrapper().toggleClass(INVALID_MESSAGE_AUTO, \"auto\" === mode).toggleClass(INVALID_MESSAGE_ALWAYS, \"always\" === mode)\r\n },\r\n updateMaxWidth() {\r\n var target = this.option(\"target\");\r\n var targetWidth = getOuterWidth(target);\r\n var maxWidth = \"100%\";\r\n if (targetWidth) {\r\n maxWidth = Math.max(targetWidth, VALIDATION_MESSAGE_MIN_WIDTH)\r\n }\r\n this.option({\r\n maxWidth: maxWidth\r\n })\r\n },\r\n _getPositionsArray: function(positionSide, rtlSide) {\r\n switch (positionSide) {\r\n case \"top\":\r\n return [\"\".concat(rtlSide, \" bottom\"), \"\".concat(rtlSide, \" top\")];\r\n case \"left\":\r\n return [\"right\", \"left\"];\r\n case \"right\":\r\n return [\"left\", \"right\"];\r\n default:\r\n return [\"\".concat(rtlSide, \" top\"), \"\".concat(rtlSide, \" bottom\")]\r\n }\r\n },\r\n _updatePosition: function() {\r\n var {\r\n positionSide: positionSide,\r\n rtlEnabled: rtlEnabled,\r\n offset: componentOffset,\r\n boundary: boundary\r\n } = this.option();\r\n var rtlSide = getDefaultAlignment(rtlEnabled);\r\n var positions = this._getPositionsArray(positionSide, rtlSide);\r\n var offset = _extends({}, componentOffset);\r\n this.$element().addClass(\"dx-invalid-message-\".concat(positionSide));\r\n if (rtlEnabled && \"left\" !== positionSide && \"right\" !== positionSide) {\r\n offset.h = -offset.h\r\n }\r\n if (\"top\" === positionSide) {\r\n offset.v = -offset.v\r\n }\r\n if (\"left\" === positionSide) {\r\n offset.h = -offset.h\r\n }\r\n this.option(\"position\", {\r\n offset: offset,\r\n boundary: boundary,\r\n my: positions[0],\r\n at: positions[1],\r\n collision: \"none flip\"\r\n })\r\n },\r\n _optionChanged(args) {\r\n var {\r\n name: name,\r\n value: value,\r\n previousValue: previousValue\r\n } = args;\r\n switch (name) {\r\n case \"target\":\r\n this._updatePositionByTarget();\r\n this.updateMaxWidth();\r\n this.callBase(args);\r\n break;\r\n case \"boundary\":\r\n this.option(\"position.boundary\", value);\r\n break;\r\n case \"mode\":\r\n this._toggleModeClass(value);\r\n break;\r\n case \"rtlEnabled\":\r\n case \"offset\":\r\n case \"positionSide\":\r\n this.$element().removeClass(\"dx-invalid-message-\".concat(previousValue));\r\n this._updatePosition();\r\n break;\r\n case \"container\":\r\n this._updateContentId();\r\n this.callBase(args);\r\n break;\r\n case \"contentId\":\r\n this._updateContentId();\r\n break;\r\n case \"validationErrors\":\r\n this._ensureMessageNotEmpty();\r\n this._renderInnerHtml(this.$content());\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxValidationMessage\", ValidationMessage);\r\nexport default ValidationMessage;\r\n","/**\r\n * DevExtreme (esm/ui/editor/editor.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 data\r\n} from \"../../core/element_data\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n addNamespace,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport ValidationEngine from \"../validation_engine\";\r\nimport EventsEngine from \"../../events/core/events_engine\";\r\nimport ValidationMessage from \"../validation_message\";\r\nimport Guid from \"../../core/guid\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n resetActiveElement\r\n} from \"../../core/utils/dom\";\r\nvar INVALID_MESSAGE_AUTO = \"dx-invalid-message-auto\";\r\nvar READONLY_STATE_CLASS = \"dx-state-readonly\";\r\nvar INVALID_CLASS = \"dx-invalid\";\r\nvar DX_INVALID_BADGE_CLASS = \"dx-show-invalid-badge\";\r\nvar VALIDATION_TARGET = \"dx-validation-target\";\r\nvar VALIDATION_STATUS_VALID = \"valid\";\r\nvar VALIDATION_STATUS_INVALID = \"invalid\";\r\nvar READONLY_NAMESPACE = \"editorReadOnly\";\r\nvar ALLOWED_STYLING_MODES = [\"outlined\", \"filled\", \"underlined\"];\r\nvar VALIDATION_MESSAGE_KEYS_MAP = {\r\n validationMessageMode: \"mode\",\r\n validationMessagePosition: \"positionSide\",\r\n validationMessageOffset: \"offset\",\r\n validationBoundary: \"boundary\"\r\n};\r\nvar Editor = Widget.inherit({\r\n ctor: function() {\r\n this.showValidationMessageTimeout = null;\r\n this.validationRequest = Callbacks();\r\n this.callBase.apply(this, arguments)\r\n },\r\n _createElement: function(element) {\r\n this.callBase(element);\r\n var $element = this.$element();\r\n if ($element) {\r\n data($element[0], VALIDATION_TARGET, this)\r\n }\r\n },\r\n _initOptions: function(options) {\r\n this.callBase.apply(this, arguments);\r\n this.option(ValidationEngine.initValidationOptions(options))\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._options.cache(\"validationTooltipOptions\", this.option(\"validationTooltipOptions\"));\r\n var $element = this.$element();\r\n $element.addClass(DX_INVALID_BADGE_CLASS)\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: null,\r\n name: \"\",\r\n onValueChanged: null,\r\n readOnly: false,\r\n isValid: true,\r\n validationError: null,\r\n validationErrors: null,\r\n validationStatus: VALIDATION_STATUS_VALID,\r\n validationMessageMode: \"auto\",\r\n validationMessagePosition: \"bottom\",\r\n validationBoundary: void 0,\r\n validationMessageOffset: {\r\n h: 0,\r\n v: 0\r\n },\r\n validationTooltipOptions: {},\r\n _showValidationMessage: true\r\n })\r\n },\r\n _attachKeyboardEvents: function() {\r\n if (!this.option(\"readOnly\")) {\r\n this.callBase()\r\n }\r\n },\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n validationError: true\r\n })\r\n },\r\n _createValueChangeAction: function() {\r\n this._valueChangeAction = this._createActionByOption(\"onValueChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _suppressValueChangeAction: function() {\r\n this._valueChangeActionSuppressed = true\r\n },\r\n _resumeValueChangeAction: function() {\r\n this._valueChangeActionSuppressed = false\r\n },\r\n _initMarkup: function() {\r\n var _this$option;\r\n this._toggleReadOnlyState();\r\n this._setSubmitElementName(this.option(\"name\"));\r\n this.callBase();\r\n this._renderValidationState();\r\n null === (_this$option = this.option(\"_onMarkupRendered\")) || void 0 === _this$option ? void 0 : _this$option()\r\n },\r\n _raiseValueChangeAction: function(value, previousValue) {\r\n if (!this._valueChangeAction) {\r\n this._createValueChangeAction()\r\n }\r\n this._valueChangeAction(this._valueChangeArgs(value, previousValue))\r\n },\r\n _valueChangeArgs: function(value, previousValue) {\r\n return {\r\n value: value,\r\n previousValue: previousValue,\r\n event: this._valueChangeEventInstance\r\n }\r\n },\r\n _saveValueChangeEvent: function(e) {\r\n this._valueChangeEventInstance = e\r\n },\r\n _focusInHandler: function(e) {\r\n var isValidationMessageShownOnFocus = \"auto\" === this.option(\"validationMessageMode\");\r\n if (this._canValueBeChangedByClick() && isValidationMessageShownOnFocus) {\r\n var _this$_validationMess;\r\n var $validationMessageWrapper = null === (_this$_validationMess = this._validationMessage) || void 0 === _this$_validationMess ? void 0 : _this$_validationMess.$wrapper();\r\n null === $validationMessageWrapper || void 0 === $validationMessageWrapper ? void 0 : $validationMessageWrapper.removeClass(INVALID_MESSAGE_AUTO);\r\n clearTimeout(this.showValidationMessageTimeout);\r\n this.showValidationMessageTimeout = setTimeout(() => null === $validationMessageWrapper || void 0 === $validationMessageWrapper ? void 0 : $validationMessageWrapper.addClass(INVALID_MESSAGE_AUTO), 150)\r\n }\r\n return this.callBase(e)\r\n },\r\n _canValueBeChangedByClick: function() {\r\n return false\r\n },\r\n _getStylingModePrefix: function() {\r\n return \"dx-editor-\"\r\n },\r\n _renderStylingMode: function() {\r\n var optionValue = this.option(\"stylingMode\");\r\n var prefix = this._getStylingModePrefix();\r\n var allowedStylingClasses = ALLOWED_STYLING_MODES.map(mode => prefix + mode);\r\n allowedStylingClasses.forEach(className => this.$element().removeClass(className));\r\n var stylingModeClass = prefix + optionValue;\r\n if (-1 === allowedStylingClasses.indexOf(stylingModeClass)) {\r\n var defaultOptionValue = this._getDefaultOptions().stylingMode;\r\n var platformOptionValue = this._convertRulesToOptions(this._defaultOptionsRules()).stylingMode;\r\n stylingModeClass = prefix + (platformOptionValue || defaultOptionValue)\r\n }\r\n this.$element().addClass(stylingModeClass)\r\n },\r\n _getValidationErrors: function() {\r\n var validationErrors = this.option(\"validationErrors\");\r\n if (!validationErrors && this.option(\"validationError\")) {\r\n validationErrors = [this.option(\"validationError\")]\r\n }\r\n return validationErrors\r\n },\r\n _disposeValidationMessage: function() {\r\n if (this._$validationMessage) {\r\n this._$validationMessage.remove();\r\n this.setAria(\"describedby\", null);\r\n this._$validationMessage = void 0;\r\n this._validationMessage = void 0\r\n }\r\n },\r\n _toggleValidationClasses: function(isInvalid) {\r\n this.$element().toggleClass(INVALID_CLASS, isInvalid);\r\n this.setAria(VALIDATION_STATUS_INVALID, isInvalid || void 0)\r\n },\r\n _renderValidationState: function() {\r\n var isValid = this.option(\"isValid\") && this.option(\"validationStatus\") !== VALIDATION_STATUS_INVALID;\r\n var validationErrors = this._getValidationErrors();\r\n var $element = this.$element();\r\n this._toggleValidationClasses(!isValid);\r\n if (!hasWindow() || false === this.option(\"_showValidationMessage\")) {\r\n return\r\n }\r\n this._disposeValidationMessage();\r\n if (!isValid && validationErrors) {\r\n var {\r\n validationMessageMode: validationMessageMode,\r\n validationMessageOffset: validationMessageOffset,\r\n validationBoundary: validationBoundary,\r\n rtlEnabled: rtlEnabled\r\n } = this.option();\r\n this._$validationMessage = $(\"
\").appendTo($element);\r\n var validationMessageContentId = \"dx-\".concat(new Guid);\r\n this.setAria(\"describedby\", validationMessageContentId);\r\n this._validationMessage = new ValidationMessage(this._$validationMessage, extend({\r\n validationErrors: validationErrors,\r\n rtlEnabled: rtlEnabled,\r\n target: this._getValidationMessageTarget(),\r\n visualContainer: $element,\r\n mode: validationMessageMode,\r\n positionSide: this._getValidationMessagePosition(),\r\n offset: validationMessageOffset,\r\n boundary: validationBoundary,\r\n contentId: validationMessageContentId\r\n }, this._options.cache(\"validationTooltipOptions\")));\r\n this._bindInnerWidgetOptions(this._validationMessage, \"validationTooltipOptions\")\r\n }\r\n },\r\n _getValidationMessagePosition: function() {\r\n return this.option(\"validationMessagePosition\")\r\n },\r\n _getValidationMessageTarget: function() {\r\n return this.$element()\r\n },\r\n _toggleReadOnlyState: function() {\r\n var readOnly = this.option(\"readOnly\");\r\n this._toggleBackspaceHandler(readOnly);\r\n this.$element().toggleClass(READONLY_STATE_CLASS, !!readOnly);\r\n this.setAria(\"readonly\", readOnly || void 0)\r\n },\r\n _toggleBackspaceHandler: function(isReadOnly) {\r\n var $eventTarget = this._keyboardEventBindingTarget();\r\n var eventName = addNamespace(\"keydown\", READONLY_NAMESPACE);\r\n EventsEngine.off($eventTarget, eventName);\r\n if (isReadOnly) {\r\n EventsEngine.on($eventTarget, eventName, e => {\r\n if (\"backspace\" === normalizeKeyName(e)) {\r\n e.preventDefault()\r\n }\r\n })\r\n }\r\n },\r\n _dispose: function() {\r\n var element = this.$element()[0];\r\n data(element, VALIDATION_TARGET, null);\r\n clearTimeout(this.showValidationMessageTimeout);\r\n this._disposeValidationMessage();\r\n this.callBase()\r\n },\r\n _setSubmitElementName: function(name) {\r\n var $submitElement = this._getSubmitElement();\r\n if (!$submitElement) {\r\n return\r\n }\r\n if (name.length > 0) {\r\n $submitElement.attr(\"name\", name)\r\n } else {\r\n $submitElement.removeAttr(\"name\")\r\n }\r\n },\r\n _getSubmitElement: function() {\r\n return null\r\n },\r\n _setValidationMessageOption: function(_ref) {\r\n var _this$_validationMess2;\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n var optionKey = VALIDATION_MESSAGE_KEYS_MAP[name] ? VALIDATION_MESSAGE_KEYS_MAP[name] : name;\r\n null === (_this$_validationMess2 = this._validationMessage) || void 0 === _this$_validationMess2 ? void 0 : _this$_validationMess2.option(optionKey, value)\r\n },\r\n _hasActiveElement: noop,\r\n _optionChanged: function(args) {\r\n var _this$_validationMess3;\r\n switch (args.name) {\r\n case \"onValueChanged\":\r\n this._createValueChangeAction();\r\n break;\r\n case \"readOnly\":\r\n this._toggleReadOnlyState();\r\n this._refreshFocusState();\r\n break;\r\n case \"value\":\r\n if (args.value != args.previousValue) {\r\n this.validationRequest.fire({\r\n value: args.value,\r\n editor: this\r\n })\r\n }\r\n if (!this._valueChangeActionSuppressed) {\r\n this._raiseValueChangeAction(args.value, args.previousValue);\r\n this._saveValueChangeEvent(void 0)\r\n }\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n null === (_this$_validationMess3 = this._validationMessage) || void 0 === _this$_validationMess3 ? void 0 : _this$_validationMess3.updateMaxWidth();\r\n break;\r\n case \"name\":\r\n this._setSubmitElementName(args.value);\r\n break;\r\n case \"isValid\":\r\n case \"validationError\":\r\n case \"validationErrors\":\r\n case \"validationStatus\":\r\n this.option(ValidationEngine.synchronizeValidationOptions(args, this.option()));\r\n this._renderValidationState();\r\n break;\r\n case \"validationBoundary\":\r\n case \"validationMessageMode\":\r\n case \"validationMessagePosition\":\r\n case \"validationMessageOffset\":\r\n this._setValidationMessageOption(args);\r\n break;\r\n case \"rtlEnabled\":\r\n this._setValidationMessageOption(args);\r\n this.callBase(args);\r\n break;\r\n case \"validationTooltipOptions\":\r\n this._innerWidgetOptionChanged(this._validationMessage, args);\r\n break;\r\n case \"_showValidationMessage\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n blur: function() {\r\n if (this._hasActiveElement()) {\r\n resetActiveElement()\r\n }\r\n },\r\n reset: function() {\r\n var defaultOptions = this._getDefaultOptions();\r\n this.option(\"value\", defaultOptions.value)\r\n }\r\n});\r\nEditor.isEditor = instance => instance instanceof Editor;\r\nexport default Editor;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/texteditor_button_collection/button.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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\nexport default class TextEditorButton {\r\n constructor(name, editor, options) {\r\n this.instance = null;\r\n this.$container = null;\r\n this.$placeMarker = null;\r\n this.editor = editor;\r\n this.name = name;\r\n this.options = options || {}\r\n }\r\n _addPlaceMarker($container) {\r\n this.$placeMarker = $(\"
\").appendTo($container)\r\n }\r\n _addToContainer($element) {\r\n var {\r\n $placeMarker: $placeMarker,\r\n $container: $container\r\n } = this;\r\n $placeMarker ? $placeMarker.replaceWith($element) : $element.appendTo($container)\r\n }\r\n _attachEvents() {\r\n throw \"Not implemented\"\r\n }\r\n _create() {\r\n throw \"Not implemented\"\r\n }\r\n _isRendered() {\r\n return !!this.instance\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor,\r\n options: options\r\n } = this;\r\n return options.visible || !editor.option(\"readOnly\")\r\n }\r\n _isDisabled() {\r\n throw \"Not implemented\"\r\n }\r\n _shouldRender() {\r\n return this._isVisible() && !this._isRendered()\r\n }\r\n dispose() {\r\n var {\r\n instance: instance,\r\n $placeMarker: $placeMarker\r\n } = this;\r\n if (instance) {\r\n instance.dispose ? instance.dispose() : instance.remove();\r\n this.instance = null\r\n }\r\n $placeMarker && $placeMarker.remove()\r\n }\r\n render() {\r\n var $container = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.$container;\r\n this.$container = $container;\r\n if (this._isVisible()) {\r\n var {\r\n instance: instance,\r\n $element: $element\r\n } = this._create();\r\n this.instance = instance;\r\n this._attachEvents(instance, $element)\r\n } else {\r\n this._addPlaceMarker($container)\r\n }\r\n }\r\n update() {\r\n if (this._shouldRender()) {\r\n this.render()\r\n }\r\n return !!this.instance\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.clear.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 TextEditorButton from \"./texteditor_button_collection/button\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointer from \"../../events/pointer\";\r\nimport {\r\n name as click\r\n} from \"../../events/click\";\r\nvar pointerDown = pointer.down;\r\nvar STATE_INVISIBLE_CLASS = \"dx-state-invisible\";\r\nvar TEXTEDITOR_CLEAR_BUTTON_CLASS = \"dx-clear-button-area\";\r\nvar TEXTEDITOR_CLEAR_ICON_CLASS = \"dx-icon-clear\";\r\nvar TEXTEDITOR_ICON_CLASS = \"dx-icon\";\r\nvar TEXTEDITOR_SHOW_CLEAR_BUTTON_CLASS = \"dx-show-clear-button\";\r\nexport default class ClearButton extends TextEditorButton {\r\n _create() {\r\n var $element = $(\"\").addClass(TEXTEDITOR_CLEAR_BUTTON_CLASS).append($(\"\").addClass(TEXTEDITOR_ICON_CLASS).addClass(TEXTEDITOR_CLEAR_ICON_CLASS));\r\n this._addToContainer($element);\r\n this.update(true);\r\n return {\r\n instance: $element,\r\n $element: $element\r\n }\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return editor._isClearButtonVisible()\r\n }\r\n _attachEvents(instance, $button) {\r\n var {\r\n editor: editor\r\n } = this;\r\n var editorName = editor.NAME;\r\n eventsEngine.on($button, addNamespace(pointerDown, editorName), e => {\r\n e.preventDefault();\r\n if (\"mouse\" !== e.pointerType) {\r\n editor._clearValueHandler(e)\r\n }\r\n });\r\n eventsEngine.on($button, addNamespace(click, editorName), e => editor._clearValueHandler(e))\r\n }\r\n _legacyRender($editor, isVisible) {\r\n $editor.toggleClass(TEXTEDITOR_SHOW_CLEAR_BUTTON_CLASS, isVisible)\r\n }\r\n update() {\r\n var rendered = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : false;\r\n !rendered && super.update();\r\n var {\r\n editor: editor,\r\n instance: instance\r\n } = this;\r\n var $editor = editor.$element();\r\n var isVisible = this._isVisible();\r\n instance && instance.toggleClass(STATE_INVISIBLE_CLASS, !isVisible);\r\n this._legacyRender($editor, isVisible)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/texteditor_button_collection/custom.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 TextEditorButton from \"./button\";\r\nimport Button from \"../../button\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n start,\r\n end\r\n} from \"../../../events/hover\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../events/click\";\r\nvar CUSTOM_BUTTON_HOVERED_CLASS = \"dx-custom-button-hovered\";\r\nexport default class CustomButton extends TextEditorButton {\r\n _attachEvents(instance, $element) {\r\n var {\r\n editor: editor\r\n } = this;\r\n eventsEngine.on($element, start, () => {\r\n editor.$element().addClass(CUSTOM_BUTTON_HOVERED_CLASS)\r\n });\r\n eventsEngine.on($element, end, () => {\r\n editor.$element().removeClass(CUSTOM_BUTTON_HOVERED_CLASS)\r\n });\r\n eventsEngine.on($element, clickEventName, e => {\r\n e.stopPropagation()\r\n })\r\n }\r\n _create() {\r\n var {\r\n editor: editor\r\n } = this;\r\n var $element = $(\"
\");\r\n this._addToContainer($element);\r\n var instance = editor._createComponent($element, Button, extend({}, this.options, {\r\n ignoreParentReadOnly: true,\r\n disabled: this._isDisabled(),\r\n integrationOptions: this._prepareIntegrationOptions(editor)\r\n }));\r\n return {\r\n $element: $element,\r\n instance: instance\r\n }\r\n }\r\n _prepareIntegrationOptions(editor) {\r\n return extend({}, editor.option(\"integrationOptions\"), {\r\n skipTemplates: [\"content\"]\r\n })\r\n }\r\n update() {\r\n var isUpdated = super.update();\r\n if (this.instance) {\r\n this.instance.option(\"disabled\", this._isDisabled())\r\n }\r\n return isUpdated\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return editor.option(\"visible\")\r\n }\r\n _isDisabled() {\r\n var isDefinedByUser = void 0 !== this.options.disabled;\r\n if (isDefinedByUser) {\r\n return this.instance ? this.instance.option(\"disabled\") : this.options.disabled\r\n } else {\r\n return this.editor.option(\"readOnly\")\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/texteditor_button_collection/index.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 CustomButton from \"./custom\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport errors from \"../../widget/ui.errors\";\r\nvar TEXTEDITOR_BUTTONS_CONTAINER_CLASS = \"dx-texteditor-buttons-container\";\r\n\r\nfunction checkButtonInfo(buttonInfo) {\r\n (() => {\r\n if (!buttonInfo || \"object\" !== typeof buttonInfo || Array.isArray(buttonInfo)) {\r\n throw errors.Error(\"E1053\")\r\n }\r\n })();\r\n (() => {\r\n if (!(\"name\" in buttonInfo)) {\r\n throw errors.Error(\"E1054\")\r\n }\r\n })();\r\n (() => {\r\n var {\r\n name: name\r\n } = buttonInfo;\r\n if (\"string\" !== typeof name) {\r\n throw errors.Error(\"E1055\")\r\n }\r\n })();\r\n (() => {\r\n var {\r\n location: location\r\n } = buttonInfo;\r\n if (\"location\" in buttonInfo && \"after\" !== location && \"before\" !== location) {\r\n buttonInfo.location = \"after\"\r\n }\r\n })()\r\n}\r\n\r\nfunction checkNamesUniqueness(existingNames, newName) {\r\n if (-1 !== existingNames.indexOf(newName)) {\r\n throw errors.Error(\"E1055\", newName)\r\n }\r\n existingNames.push(newName)\r\n}\r\n\r\nfunction isPredefinedButtonName(name, predefinedButtonsInfo) {\r\n return !!predefinedButtonsInfo.find(info => info.name === name)\r\n}\r\nexport default class TextEditorButtonCollection {\r\n constructor(editor, defaultButtonsInfo) {\r\n this.buttons = [];\r\n this.defaultButtonsInfo = defaultButtonsInfo;\r\n this.editor = editor\r\n }\r\n _compileButtonInfo(buttons) {\r\n var names = [];\r\n return buttons.map(button => {\r\n var isStringButton = \"string\" === typeof button;\r\n if (!isStringButton) {\r\n checkButtonInfo(button)\r\n }\r\n var isDefaultButton = isStringButton || isPredefinedButtonName(button.name, this.defaultButtonsInfo);\r\n if (isDefaultButton) {\r\n var defaultButtonInfo = this.defaultButtonsInfo.find(_ref => {\r\n var {\r\n name: name\r\n } = _ref;\r\n return name === button || name === button.name\r\n });\r\n if (!defaultButtonInfo) {\r\n throw errors.Error(\"E1056\", this.editor.NAME, button)\r\n }\r\n checkNamesUniqueness(names, button);\r\n return defaultButtonInfo\r\n } else {\r\n var {\r\n name: name\r\n } = button;\r\n checkNamesUniqueness(names, name);\r\n return extend(button, {\r\n Ctor: CustomButton\r\n })\r\n }\r\n })\r\n }\r\n _createButton(buttonsInfo) {\r\n var {\r\n Ctor: Ctor,\r\n options: options,\r\n name: name\r\n } = buttonsInfo;\r\n var button = new Ctor(name, this.editor, options);\r\n this.buttons.push(button);\r\n return button\r\n }\r\n _renderButtons(buttons, $container, targetLocation) {\r\n var $buttonsContainer = null;\r\n var buttonsInfo = buttons ? this._compileButtonInfo(buttons) : this.defaultButtonsInfo;\r\n buttonsInfo.forEach(buttonsInfo => {\r\n var {\r\n location: location = \"after\"\r\n } = buttonsInfo;\r\n if (location === targetLocation) {\r\n this._createButton(buttonsInfo).render((() => {\r\n $buttonsContainer = $buttonsContainer || $(\"
\").addClass(TEXTEDITOR_BUTTONS_CONTAINER_CLASS);\r\n \"before\" === targetLocation ? $container.prepend($buttonsContainer) : $container.append($buttonsContainer);\r\n return $buttonsContainer\r\n })())\r\n }\r\n });\r\n return $buttonsContainer\r\n }\r\n clean() {\r\n this.buttons.forEach(button => button.dispose());\r\n this.buttons = []\r\n }\r\n getButton(buttonName) {\r\n var button = this.buttons.find(_ref2 => {\r\n var {\r\n name: name\r\n } = _ref2;\r\n return name === buttonName\r\n });\r\n return button && button.instance\r\n }\r\n renderAfterButtons(buttons, $container) {\r\n return this._renderButtons(buttons, $container, \"after\")\r\n }\r\n renderBeforeButtons(buttons, $container) {\r\n return this._renderButtons(buttons, $container, \"before\")\r\n }\r\n updateButtons(names) {\r\n this.buttons.forEach(button => {\r\n if (!names || -1 !== names.indexOf(button.name)) {\r\n button.update()\r\n }\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.label.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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\nvar TEXTEDITOR_LABEL_CLASS = \"dx-texteditor-label\";\r\nvar TEXTEDITOR_WITH_LABEL_CLASS = \"dx-texteditor-with-label\";\r\nvar TEXTEDITOR_WITH_FLOATING_LABEL_CLASS = \"dx-texteditor-with-floating-label\";\r\nvar TEXTEDITOR_WITH_BEFORE_BUTTONS_CLASS = \"dx-texteditor-with-before-buttons\";\r\nvar LABEL_BEFORE_CLASS = \"dx-label-before\";\r\nvar LABEL_CLASS = \"dx-label\";\r\nvar LABEL_AFTER_CLASS = \"dx-label-after\";\r\nclass TextEditorLabel {\r\n constructor(_ref) {\r\n var {\r\n $editor: $editor,\r\n text: text,\r\n mode: mode,\r\n mark: mark,\r\n containsButtonsBefore: containsButtonsBefore,\r\n containerWidth: containerWidth,\r\n beforeWidth: beforeWidth\r\n } = _ref;\r\n this._props = {\r\n $editor: $editor,\r\n text: text,\r\n mode: mode,\r\n mark: mark,\r\n containsButtonsBefore: containsButtonsBefore,\r\n containerWidth: containerWidth,\r\n beforeWidth: beforeWidth\r\n };\r\n this._id = \"\".concat(TEXTEDITOR_LABEL_CLASS, \"-\").concat(new Guid);\r\n this._render();\r\n this._toggleMarkupVisibility()\r\n }\r\n _isVisible() {\r\n return !!this._props.text && \"hidden\" !== this._props.mode\r\n }\r\n _render() {\r\n this._$before = $(\"
\").addClass(LABEL_BEFORE_CLASS);\r\n this._$labelSpan = $(\"\");\r\n this._$label = $(\"
\").addClass(LABEL_CLASS).append(this._$labelSpan);\r\n this._$after = $(\"
\").addClass(LABEL_AFTER_CLASS);\r\n this._$root = $(\"
\").addClass(TEXTEDITOR_LABEL_CLASS).attr(\"id\", this._id).append(this._$before).append(this._$label).append(this._$after);\r\n this._updateMark();\r\n this._updateText();\r\n this._updateBeforeWidth();\r\n this._updateMaxWidth()\r\n }\r\n _toggleMarkupVisibility() {\r\n var visible = this._isVisible();\r\n this._updateEditorBeforeButtonsClass(visible);\r\n this._updateEditorLabelClass(visible);\r\n visible ? this._$root.appendTo(this._props.$editor) : this._$root.detach()\r\n }\r\n _updateEditorLabelClass(visible) {\r\n this._props.$editor.removeClass(TEXTEDITOR_WITH_FLOATING_LABEL_CLASS).removeClass(TEXTEDITOR_WITH_LABEL_CLASS);\r\n if (visible) {\r\n var labelClass = \"floating\" === this._props.mode ? TEXTEDITOR_WITH_FLOATING_LABEL_CLASS : TEXTEDITOR_WITH_LABEL_CLASS;\r\n this._props.$editor.addClass(labelClass)\r\n }\r\n }\r\n _updateEditorBeforeButtonsClass() {\r\n var visible = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._isVisible();\r\n this._props.$editor.removeClass(TEXTEDITOR_WITH_BEFORE_BUTTONS_CLASS);\r\n if (visible) {\r\n var beforeButtonsClass = this._props.containsButtonsBefore ? TEXTEDITOR_WITH_BEFORE_BUTTONS_CLASS : \"\";\r\n this._props.$editor.addClass(beforeButtonsClass)\r\n }\r\n }\r\n _updateMark() {\r\n this._$labelSpan.attr(\"data-mark\", this._props.mark)\r\n }\r\n _updateText() {\r\n this._$labelSpan.text(this._props.text)\r\n }\r\n _updateBeforeWidth() {\r\n this._$before.css({\r\n width: this._props.beforeWidth\r\n })\r\n }\r\n _updateMaxWidth() {\r\n this._$label.css({\r\n maxWidth: this._props.containerWidth\r\n })\r\n }\r\n $element() {\r\n return this._$root\r\n }\r\n isVisible() {\r\n return this._isVisible()\r\n }\r\n getId() {\r\n if (this._isVisible()) {\r\n return this._id\r\n }\r\n }\r\n updateMode(mode) {\r\n this._props.mode = mode;\r\n this._toggleMarkupVisibility()\r\n }\r\n updateText(text) {\r\n this._props.text = text;\r\n this._updateText();\r\n this._toggleMarkupVisibility()\r\n }\r\n updateMark(mark) {\r\n this._props.mark = mark;\r\n this._updateMark()\r\n }\r\n updateContainsButtonsBefore(containsButtonsBefore) {\r\n this._props.containsButtonsBefore = containsButtonsBefore;\r\n this._updateEditorBeforeButtonsClass()\r\n }\r\n updateBeforeWidth(beforeWidth) {\r\n this._props.beforeWidth = beforeWidth;\r\n this._updateBeforeWidth()\r\n }\r\n updateMaxWidth(containerWidth) {\r\n this._props.containerWidth = containerWidth;\r\n this._updateMaxWidth()\r\n }\r\n}\r\nexport {\r\n TextEditorLabel\r\n};\r\n","/**\r\n * DevExtreme (esm/core/resize_observer.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"./utils/common\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"./utils/window\";\r\nvar window = getWindow();\r\nvar ResizeObserverMock = {\r\n observe: noop,\r\n unobserve: noop,\r\n disconnect: noop\r\n};\r\nclass ResizeObserverSingleton {\r\n constructor() {\r\n if (!hasWindow() || !window.ResizeObserver) {\r\n return ResizeObserverMock\r\n }\r\n this._callbacksMap = new Map;\r\n this._observer = new window.ResizeObserver(entries => {\r\n entries.forEach(entry => {\r\n var _this$_callbacksMap$g;\r\n null === (_this$_callbacksMap$g = this._callbacksMap.get(entry.target)) || void 0 === _this$_callbacksMap$g ? void 0 : _this$_callbacksMap$g(entry)\r\n })\r\n })\r\n }\r\n observe(element, callback) {\r\n this._callbacksMap.set(element, callback);\r\n this._observer.observe(element)\r\n }\r\n unobserve(element) {\r\n this._callbacksMap.delete(element);\r\n this._observer.unobserve(element)\r\n }\r\n disconnect() {\r\n this._callbacksMap.clear();\r\n this._observer.disconnect()\r\n }\r\n}\r\nvar resizeObserverSingleton = new ResizeObserverSingleton;\r\nexport default resizeObserverSingleton;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.base.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n focused\r\n} from \"../widget/selectors\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\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 current,\r\n isMaterial\r\n} from \"../themes\";\r\nimport devices from \"../../core/devices\";\r\nimport Editor from \"../editor/editor\";\r\nimport {\r\n addNamespace,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport ClearButton from \"./ui.text_editor.clear\";\r\nimport TextEditorButtonCollection from \"./texteditor_button_collection/index\";\r\nimport config from \"../../core/config\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n TextEditorLabel\r\n} from \"./ui.text_editor.label\";\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport resizeObserverSingleton from \"../../core/resize_observer\";\r\nimport Guid from \"../../core/guid\";\r\nvar TEXTEDITOR_CLASS = \"dx-texteditor\";\r\nvar TEXTEDITOR_INPUT_CONTAINER_CLASS = \"dx-texteditor-input-container\";\r\nvar TEXTEDITOR_INPUT_CLASS = \"dx-texteditor-input\";\r\nvar TEXTEDITOR_INPUT_SELECTOR = \".\" + TEXTEDITOR_INPUT_CLASS;\r\nvar TEXTEDITOR_CONTAINER_CLASS = \"dx-texteditor-container\";\r\nvar TEXTEDITOR_BUTTONS_CONTAINER_CLASS = \"dx-texteditor-buttons-container\";\r\nvar TEXTEDITOR_PLACEHOLDER_CLASS = \"dx-placeholder\";\r\nvar TEXTEDITOR_EMPTY_INPUT_CLASS = \"dx-texteditor-empty\";\r\nvar STATE_INVISIBLE_CLASS = \"dx-state-invisible\";\r\nvar TEXTEDITOR_PENDING_INDICATOR_CLASS = \"dx-pending-indicator\";\r\nvar TEXTEDITOR_VALIDATION_PENDING_CLASS = \"dx-validation-pending\";\r\nvar TEXTEDITOR_VALID_CLASS = \"dx-valid\";\r\nvar EVENTS_LIST = [\"KeyDown\", \"KeyPress\", \"KeyUp\", \"Change\", \"Cut\", \"Copy\", \"Paste\", \"Input\"];\r\nvar CONTROL_KEYS = [\"tab\", \"enter\", \"shift\", \"control\", \"alt\", \"escape\", \"pageUp\", \"pageDown\", \"end\", \"home\", \"leftArrow\", \"upArrow\", \"rightArrow\", \"downArrow\"];\r\nvar TextEditorLabelCreator = TextEditorLabel;\r\n\r\nfunction checkButtonsOptionType(buttons) {\r\n if (isDefined(buttons) && !Array.isArray(buttons)) {\r\n throw errors.Error(\"E1053\")\r\n }\r\n}\r\nvar TextEditorBase = Editor.inherit({\r\n ctor: function(_, options) {\r\n if (options) {\r\n checkButtonsOptionType(options.buttons)\r\n }\r\n this._buttonCollection = new TextEditorButtonCollection(this, this._getDefaultButtons());\r\n this._$beforeButtonsContainer = null;\r\n this._$afterButtonsContainer = null;\r\n this._labelContainerElement = null;\r\n this.callBase.apply(this, arguments)\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n buttons: void 0,\r\n value: \"\",\r\n spellcheck: false,\r\n showClearButton: false,\r\n valueChangeEvent: \"change\",\r\n placeholder: \"\",\r\n inputAttr: {},\r\n onFocusIn: null,\r\n onFocusOut: null,\r\n onKeyDown: null,\r\n onKeyUp: null,\r\n onChange: null,\r\n onInput: null,\r\n onCut: null,\r\n onCopy: null,\r\n onPaste: null,\r\n onEnterKey: null,\r\n mode: \"text\",\r\n hoverStateEnabled: true,\r\n focusStateEnabled: true,\r\n text: void 0,\r\n displayValueFormatter: function(value) {\r\n return isDefined(value) && false !== value ? value : \"\"\r\n },\r\n stylingMode: config().editorStylingMode || \"outlined\",\r\n showValidationMark: true,\r\n label: \"\",\r\n labelMode: \"static\",\r\n labelMark: \"\"\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n var themeName = current();\r\n return isMaterial(themeName)\r\n },\r\n options: {\r\n stylingMode: config().editorStylingMode || \"filled\",\r\n labelMode: \"floating\"\r\n }\r\n }])\r\n },\r\n _getDefaultButtons: function() {\r\n return [{\r\n name: \"clear\",\r\n Ctor: ClearButton\r\n }]\r\n },\r\n _isClearButtonVisible: function() {\r\n return this.option(\"showClearButton\") && !this.option(\"readOnly\")\r\n },\r\n _input: function() {\r\n return this.$element().find(TEXTEDITOR_INPUT_SELECTOR).first()\r\n },\r\n _isFocused: function() {\r\n return focused(this._input()) || this.callBase()\r\n },\r\n _inputWrapper: function() {\r\n return this.$element()\r\n },\r\n _buttonsContainer: function() {\r\n return this._inputWrapper().find(\".\" + TEXTEDITOR_BUTTONS_CONTAINER_CLASS).eq(0)\r\n },\r\n _isControlKey: function(key) {\r\n return -1 !== CONTROL_KEYS.indexOf(key)\r\n },\r\n _renderStylingMode: function() {\r\n this.callBase();\r\n this._updateButtonsStyling(this.option(\"stylingMode\"))\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(TEXTEDITOR_CLASS);\r\n this._renderInput();\r\n this._renderStylingMode();\r\n this._renderInputType();\r\n this._renderPlaceholder();\r\n this._renderProps();\r\n this.callBase();\r\n this._renderValue();\r\n this._renderLabel()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._refreshValueChangeEvent();\r\n this._renderEvents();\r\n this._renderEnterKeyAction();\r\n this._renderEmptinessEvent()\r\n },\r\n _renderInput: function() {\r\n this._$buttonsContainer = this._$textEditorContainer = $(\"
\").addClass(TEXTEDITOR_CONTAINER_CLASS).appendTo(this.$element());\r\n this._$textEditorInputContainer = $(\"
\").addClass(TEXTEDITOR_INPUT_CONTAINER_CLASS).appendTo(this._$textEditorContainer);\r\n this._$textEditorInputContainer.append(this._createInput());\r\n this._renderButtonContainers()\r\n },\r\n _getInputContainer() {\r\n return this._$textEditorInputContainer\r\n },\r\n _renderPendingIndicator: function() {\r\n this.$element().addClass(TEXTEDITOR_VALIDATION_PENDING_CLASS);\r\n var $inputContainer = this._getInputContainer();\r\n var $indicatorElement = $(\"
\").addClass(TEXTEDITOR_PENDING_INDICATOR_CLASS).appendTo($inputContainer);\r\n this._pendingIndicator = this._createComponent($indicatorElement, LoadIndicator)\r\n },\r\n _disposePendingIndicator: function() {\r\n if (!this._pendingIndicator) {\r\n return\r\n }\r\n this._pendingIndicator.dispose();\r\n this._pendingIndicator.$element().remove();\r\n this._pendingIndicator = null;\r\n this.$element().removeClass(TEXTEDITOR_VALIDATION_PENDING_CLASS)\r\n },\r\n _renderValidationState: function() {\r\n this.callBase();\r\n var isPending = \"pending\" === this.option(\"validationStatus\");\r\n var $element = this.$element();\r\n if (isPending) {\r\n !this._pendingIndicator && this._renderPendingIndicator();\r\n this._showValidMark = false\r\n } else {\r\n if (\"invalid\" === this.option(\"validationStatus\")) {\r\n this._showValidMark = false\r\n }\r\n if (!this._showValidMark && true === this.option(\"showValidationMark\")) {\r\n this._showValidMark = \"valid\" === this.option(\"validationStatus\") && !!this._pendingIndicator\r\n }\r\n this._disposePendingIndicator()\r\n }\r\n $element.toggleClass(TEXTEDITOR_VALID_CLASS, !!this._showValidMark)\r\n },\r\n _renderButtonContainers: function() {\r\n var buttons = this.option(\"buttons\");\r\n this._$beforeButtonsContainer = this._buttonCollection.renderBeforeButtons(buttons, this._$buttonsContainer);\r\n this._$afterButtonsContainer = this._buttonCollection.renderAfterButtons(buttons, this._$buttonsContainer)\r\n },\r\n _cleanButtonContainers: function() {\r\n var _this$_$beforeButtons, _this$_$afterButtonsC;\r\n null === (_this$_$beforeButtons = this._$beforeButtonsContainer) || void 0 === _this$_$beforeButtons ? void 0 : _this$_$beforeButtons.remove();\r\n null === (_this$_$afterButtonsC = this._$afterButtonsContainer) || void 0 === _this$_$afterButtonsC ? void 0 : _this$_$afterButtonsC.remove();\r\n this._buttonCollection.clean()\r\n },\r\n _clean() {\r\n this._buttonCollection.clean();\r\n this._disposePendingIndicator();\r\n this._unobserveLabelContainerResize();\r\n this._$beforeButtonsContainer = null;\r\n this._$afterButtonsContainer = null;\r\n this._$textEditorContainer = null;\r\n this._$buttonsContainer = null;\r\n this.callBase()\r\n },\r\n _createInput: function() {\r\n var $input = $(\"\");\r\n this._applyInputAttributes($input, this.option(\"inputAttr\"));\r\n return $input\r\n },\r\n _setSubmitElementName: function(name) {\r\n var inputAttrName = this.option(\"inputAttr.name\");\r\n return this.callBase(name || inputAttrName || \"\")\r\n },\r\n _applyInputAttributes: function($input, customAttributes) {\r\n var inputAttributes = extend(this._getDefaultAttributes(), customAttributes);\r\n $input.attr(inputAttributes).addClass(TEXTEDITOR_INPUT_CLASS).css(\"minHeight\", this.option(\"height\") ? \"0\" : \"\")\r\n },\r\n _getDefaultAttributes: function() {\r\n var defaultAttributes = {\r\n autocomplete: \"off\"\r\n };\r\n var {\r\n ios: ios,\r\n mac: mac\r\n } = devices.real();\r\n if (ios || mac) {\r\n defaultAttributes.placeholder = \" \"\r\n }\r\n return defaultAttributes\r\n },\r\n _updateButtons: function(names) {\r\n this._buttonCollection.updateButtons(names)\r\n },\r\n _updateButtonsStyling: function(editorStylingMode) {\r\n each(this.option(\"buttons\"), (_, _ref) => {\r\n var {\r\n options: options,\r\n name: buttonName\r\n } = _ref;\r\n if (options && !options.stylingMode && this.option(\"visible\")) {\r\n var buttonInstance = this.getButton(buttonName);\r\n buttonInstance.option && buttonInstance.option(\"stylingMode\", \"underlined\" === editorStylingMode ? \"text\" : \"contained\")\r\n }\r\n })\r\n },\r\n _renderValue: function() {\r\n var renderInputPromise = this._renderInputValue();\r\n return renderInputPromise.promise()\r\n },\r\n _renderInputValue: function(value) {\r\n var _value;\r\n value = null !== (_value = value) && void 0 !== _value ? _value : this.option(\"value\");\r\n var text = this.option(\"text\");\r\n var displayValue = this.option(\"displayValue\");\r\n var displayValueFormatter = this.option(\"displayValueFormatter\");\r\n if (void 0 !== displayValue && null !== value) {\r\n text = displayValueFormatter(displayValue)\r\n } else if (!isDefined(text)) {\r\n text = displayValueFormatter(value)\r\n }\r\n this.option(\"text\", text);\r\n if (this._input().val() !== (isDefined(text) ? text : \"\")) {\r\n this._renderDisplayText(text)\r\n } else {\r\n this._toggleEmptinessEventHandler()\r\n }\r\n return (new Deferred).resolve()\r\n },\r\n _renderDisplayText: function(text) {\r\n this._input().val(text);\r\n this._toggleEmptinessEventHandler()\r\n },\r\n _isValueValid: function() {\r\n if (this._input().length) {\r\n var validity = this._input().get(0).validity;\r\n if (validity) {\r\n return validity.valid\r\n }\r\n }\r\n return true\r\n },\r\n _toggleEmptiness: function(isEmpty) {\r\n this.$element().toggleClass(TEXTEDITOR_EMPTY_INPUT_CLASS, isEmpty);\r\n this._togglePlaceholder(isEmpty)\r\n },\r\n _togglePlaceholder: function(isEmpty) {\r\n this.$element().find(\".\".concat(TEXTEDITOR_PLACEHOLDER_CLASS)).eq(0).toggleClass(STATE_INVISIBLE_CLASS, !isEmpty)\r\n },\r\n _renderProps: function() {\r\n this._toggleReadOnlyState();\r\n this._toggleSpellcheckState();\r\n this._toggleTabIndex()\r\n },\r\n _toggleDisabledState: function(value) {\r\n this.callBase.apply(this, arguments);\r\n var $input = this._input();\r\n $input.prop(\"disabled\", value)\r\n },\r\n _toggleTabIndex: function() {\r\n var $input = this._input();\r\n var disabled = this.option(\"disabled\");\r\n var focusStateEnabled = this.option(\"focusStateEnabled\");\r\n if (disabled || !focusStateEnabled) {\r\n $input.attr(\"tabIndex\", -1)\r\n } else {\r\n $input.removeAttr(\"tabIndex\")\r\n }\r\n },\r\n _toggleReadOnlyState: function() {\r\n this._input().prop(\"readOnly\", this._readOnlyPropValue());\r\n this.callBase()\r\n },\r\n _readOnlyPropValue: function() {\r\n return this.option(\"readOnly\")\r\n },\r\n _toggleSpellcheckState: function() {\r\n this._input().prop(\"spellcheck\", this.option(\"spellcheck\"))\r\n },\r\n _unobserveLabelContainerResize: function() {\r\n if (this._labelContainerElement) {\r\n resizeObserverSingleton.unobserve(this._labelContainerElement);\r\n this._labelContainerElement = null\r\n }\r\n },\r\n _getLabelContainer: function() {\r\n return this._input()\r\n },\r\n _getLabelContainerWidth: function() {\r\n return getWidth(this._getLabelContainer())\r\n },\r\n _getLabelBeforeWidth: function() {\r\n var buttonsBeforeWidth = this._$beforeButtonsContainer && getWidth(this._$beforeButtonsContainer);\r\n return null !== buttonsBeforeWidth && void 0 !== buttonsBeforeWidth ? buttonsBeforeWidth : 0\r\n },\r\n _updateLabelWidth: function() {\r\n this._label.updateBeforeWidth(this._getLabelBeforeWidth());\r\n this._label.updateMaxWidth(this._getLabelContainerWidth())\r\n },\r\n _getFieldElement() {\r\n return this._getLabelContainer()\r\n },\r\n _setFieldAria(force) {\r\n var _this$_$placeholder;\r\n var labelId = this._label.getId();\r\n var placeholderId = null === (_this$_$placeholder = this._$placeholder) || void 0 === _this$_$placeholder ? void 0 : _this$_$placeholder.attr(\"id\");\r\n var value = [labelId, placeholderId].filter(Boolean).join(\" \");\r\n if (value || force) {\r\n var aria = {\r\n labelledby: value || void 0\r\n };\r\n this.setAria(aria, this._getFieldElement())\r\n }\r\n },\r\n _renderLabel: function() {\r\n this._unobserveLabelContainerResize();\r\n this._labelContainerElement = $(this._getLabelContainer()).get(0);\r\n var {\r\n label: label,\r\n labelMode: labelMode,\r\n labelMark: labelMark\r\n } = this.option();\r\n var labelConfig = {\r\n $editor: this.$element(),\r\n text: label,\r\n mark: labelMark,\r\n mode: labelMode,\r\n containsButtonsBefore: !!this._$beforeButtonsContainer,\r\n containerWidth: this._getLabelContainerWidth(),\r\n beforeWidth: this._getLabelBeforeWidth()\r\n };\r\n this._label = new TextEditorLabelCreator(labelConfig);\r\n this._setFieldAria();\r\n if (this._labelContainerElement) {\r\n resizeObserverSingleton.observe(this._labelContainerElement, this._updateLabelWidth.bind(this))\r\n }\r\n },\r\n _renderPlaceholder: function() {\r\n this._renderPlaceholderMarkup();\r\n this._attachPlaceholderEvents()\r\n },\r\n _renderPlaceholderMarkup: function() {\r\n if (this._$placeholder) {\r\n this._$placeholder.remove();\r\n this._$placeholder = null\r\n }\r\n var $input = this._input();\r\n var placeholder = this.option(\"placeholder\");\r\n var placeholderAttributes = {\r\n id: placeholder ? \"dx-\".concat(new Guid) : void 0,\r\n \"data-dx_placeholder\": placeholder\r\n };\r\n var $placeholder = this._$placeholder = $(\"
\").attr(placeholderAttributes);\r\n $placeholder.insertAfter($input);\r\n $placeholder.addClass(TEXTEDITOR_PLACEHOLDER_CLASS)\r\n },\r\n _attachPlaceholderEvents: function() {\r\n var startEvent = addNamespace(pointerEvents.up, this.NAME);\r\n eventsEngine.on(this._$placeholder, startEvent, () => {\r\n eventsEngine.trigger(this._input(), \"focus\")\r\n });\r\n this._toggleEmptinessEventHandler()\r\n },\r\n _placeholder: function() {\r\n return this._$placeholder || $()\r\n },\r\n _clearValueHandler: function(e) {\r\n var $input = this._input();\r\n e.stopPropagation();\r\n this._saveValueChangeEvent(e);\r\n this._clearValue();\r\n !this._isFocused() && eventsEngine.trigger($input, \"focus\");\r\n eventsEngine.trigger($input, \"input\")\r\n },\r\n _clearValue: function() {\r\n this.reset()\r\n },\r\n _renderEvents: function() {\r\n var $input = this._input();\r\n each(EVENTS_LIST, (_, event) => {\r\n if (this.hasActionSubscription(\"on\" + event)) {\r\n var action = this._createActionByOption(\"on\" + event, {\r\n excludeValidators: [\"readOnly\"]\r\n });\r\n eventsEngine.on($input, addNamespace(event.toLowerCase(), this.NAME), e => {\r\n if (this._disposed) {\r\n return\r\n }\r\n action({\r\n event: e\r\n })\r\n })\r\n }\r\n })\r\n },\r\n _refreshEvents: function() {\r\n var $input = this._input();\r\n each(EVENTS_LIST, (_, event) => {\r\n eventsEngine.off($input, addNamespace(event.toLowerCase(), this.NAME))\r\n });\r\n this._renderEvents()\r\n },\r\n _keyPressHandler: function() {\r\n this.option(\"text\", this._input().val())\r\n },\r\n _keyDownHandler: function(e) {\r\n var $input = this._input();\r\n var isCtrlEnter = e.ctrlKey && \"enter\" === normalizeKeyName(e);\r\n var isNewValue = $input.val() !== this.option(\"value\");\r\n if (isCtrlEnter && isNewValue) {\r\n eventsEngine.trigger($input, \"change\")\r\n }\r\n },\r\n _getValueChangeEventOptionName: function() {\r\n return \"valueChangeEvent\"\r\n },\r\n _renderValueChangeEvent: function() {\r\n var keyPressEvent = addNamespace(this._renderValueEventName(), \"\".concat(this.NAME, \"TextChange\"));\r\n var valueChangeEvent = addNamespace(this.option(this._getValueChangeEventOptionName()), \"\".concat(this.NAME, \"ValueChange\"));\r\n var keyDownEvent = addNamespace(\"keydown\", \"\".concat(this.NAME, \"TextChange\"));\r\n var $input = this._input();\r\n eventsEngine.on($input, keyPressEvent, this._keyPressHandler.bind(this));\r\n eventsEngine.on($input, valueChangeEvent, this._valueChangeEventHandler.bind(this));\r\n eventsEngine.on($input, keyDownEvent, this._keyDownHandler.bind(this))\r\n },\r\n _cleanValueChangeEvent: function() {\r\n var valueChangeNamespace = \".\".concat(this.NAME, \"ValueChange\");\r\n var textChangeNamespace = \".\".concat(this.NAME, \"TextChange\");\r\n eventsEngine.off(this._input(), valueChangeNamespace);\r\n eventsEngine.off(this._input(), textChangeNamespace)\r\n },\r\n _refreshValueChangeEvent: function() {\r\n this._cleanValueChangeEvent();\r\n this._renderValueChangeEvent()\r\n },\r\n _renderValueEventName: function() {\r\n return \"input change keypress\"\r\n },\r\n _focusTarget: function() {\r\n return this._input()\r\n },\r\n _focusEventTarget: function() {\r\n return this.element()\r\n },\r\n _isInput: function(element) {\r\n return element === this._input().get(0)\r\n },\r\n _preventNestedFocusEvent: function(event) {\r\n if (event.isDefaultPrevented()) {\r\n return true\r\n }\r\n var shouldPrevent = this._isNestedTarget(event.relatedTarget);\r\n if (\"focusin\" === event.type) {\r\n shouldPrevent = shouldPrevent && this._isNestedTarget(event.target) && !this._isInput(event.target)\r\n } else if (!shouldPrevent) {\r\n this._toggleFocusClass(false, this.$element())\r\n }\r\n shouldPrevent && event.preventDefault();\r\n return shouldPrevent\r\n },\r\n _isNestedTarget: function(target) {\r\n return !!this.$element().find(target).length\r\n },\r\n _focusClassTarget: function() {\r\n return this.$element()\r\n },\r\n _focusInHandler: function(event) {\r\n this._preventNestedFocusEvent(event);\r\n this.callBase.apply(this, arguments)\r\n },\r\n _focusOutHandler: function(event) {\r\n this._preventNestedFocusEvent(event);\r\n this.callBase.apply(this, arguments)\r\n },\r\n _toggleFocusClass: function(isFocused, $element) {\r\n this.callBase(isFocused, this._focusClassTarget($element))\r\n },\r\n _hasFocusClass: function(element) {\r\n return this.callBase($(element || this.$element()))\r\n },\r\n _renderEmptinessEvent: function() {\r\n var $input = this._input();\r\n eventsEngine.on($input, \"input blur\", this._toggleEmptinessEventHandler.bind(this))\r\n },\r\n _toggleEmptinessEventHandler: function() {\r\n var text = this._input().val();\r\n var isEmpty = (\"\" === text || null === text) && this._isValueValid();\r\n this._toggleEmptiness(isEmpty)\r\n },\r\n _valueChangeEventHandler: function(e, formattedValue) {\r\n if (this.option(\"readOnly\")) {\r\n return\r\n }\r\n this._saveValueChangeEvent(e);\r\n this.option(\"value\", arguments.length > 1 ? formattedValue : this._input().val());\r\n this._saveValueChangeEvent(void 0)\r\n },\r\n _renderEnterKeyAction: function() {\r\n this._enterKeyAction = this._createActionByOption(\"onEnterKey\", {\r\n excludeValidators: [\"readOnly\"]\r\n });\r\n eventsEngine.off(this._input(), \"keyup.onEnterKey.dxTextEditor\");\r\n eventsEngine.on(this._input(), \"keyup.onEnterKey.dxTextEditor\", this._enterKeyHandlerUp.bind(this))\r\n },\r\n _enterKeyHandlerUp: function(e) {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (\"enter\" === normalizeKeyName(e)) {\r\n this._enterKeyAction({\r\n event: e\r\n })\r\n }\r\n },\r\n _updateValue: function() {\r\n this._options.silent(\"text\", null);\r\n this._renderValue()\r\n },\r\n _dispose: function() {\r\n this._enterKeyAction = void 0;\r\n this.callBase()\r\n },\r\n _getSubmitElement: function() {\r\n return this._input()\r\n },\r\n _hasActiveElement: function() {\r\n return this._input().is(domAdapter.getActiveElement(this._input()[0]))\r\n },\r\n _optionChanged: function(args) {\r\n var {\r\n name: name,\r\n fullName: fullName,\r\n value: value\r\n } = args;\r\n var eventName = name.replace(\"on\", \"\");\r\n if (EVENTS_LIST.includes(eventName)) {\r\n this._refreshEvents();\r\n return\r\n }\r\n switch (name) {\r\n case \"valueChangeEvent\":\r\n this._refreshValueChangeEvent();\r\n this._refreshFocusEvent();\r\n this._refreshEvents();\r\n break;\r\n case \"onValueChanged\":\r\n this._createValueChangeAction();\r\n break;\r\n case \"focusStateEnabled\":\r\n this.callBase(args);\r\n this._toggleTabIndex();\r\n break;\r\n case \"spellcheck\":\r\n this._toggleSpellcheckState();\r\n break;\r\n case \"mode\":\r\n this._renderInputType();\r\n break;\r\n case \"onEnterKey\":\r\n this._renderEnterKeyAction();\r\n break;\r\n case \"placeholder\":\r\n this._renderPlaceholder();\r\n this._setFieldAria(true);\r\n break;\r\n case \"label\":\r\n this._label.updateText(value);\r\n this._setFieldAria(true);\r\n break;\r\n case \"labelMark\":\r\n this._label.updateMark(value);\r\n break;\r\n case \"labelMode\":\r\n this._label.updateMode(value);\r\n this._setFieldAria();\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._label.updateMaxWidth(this._getLabelContainerWidth());\r\n break;\r\n case \"readOnly\":\r\n case \"disabled\":\r\n this._updateButtons();\r\n this.callBase(args);\r\n break;\r\n case \"showClearButton\":\r\n this._updateButtons([\"clear\"]);\r\n break;\r\n case \"text\":\r\n break;\r\n case \"value\":\r\n this._updateValue();\r\n this.callBase(args);\r\n break;\r\n case \"inputAttr\":\r\n this._applyInputAttributes(this._input(), this.option(name));\r\n break;\r\n case \"stylingMode\":\r\n this._renderStylingMode();\r\n this._updateLabelWidth();\r\n break;\r\n case \"buttons\":\r\n if (fullName === name) {\r\n checkButtonsOptionType(value)\r\n }\r\n this._cleanButtonContainers();\r\n this._renderButtonContainers();\r\n this._updateButtonsStyling(this.option(\"stylingMode\"));\r\n this._updateLabelWidth();\r\n this._label.updateContainsButtonsBefore(!!this._$beforeButtonsContainer);\r\n break;\r\n case \"visible\":\r\n this.callBase(args);\r\n if (value && this.option(\"buttons\")) {\r\n this._cleanButtonContainers();\r\n this._renderButtonContainers();\r\n this._updateButtonsStyling(this.option(\"stylingMode\"))\r\n }\r\n break;\r\n case \"displayValueFormatter\":\r\n this._invalidate();\r\n break;\r\n case \"showValidationMark\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _renderInputType: function() {\r\n this._setInputType(this.option(\"mode\"))\r\n },\r\n _setInputType: function(type) {\r\n var input = this._input();\r\n if (\"search\" === type) {\r\n type = \"text\"\r\n }\r\n try {\r\n input.prop(\"type\", type)\r\n } catch (e) {\r\n input.prop(\"type\", \"text\")\r\n }\r\n },\r\n getButton(name) {\r\n return this._buttonCollection.getButton(name)\r\n },\r\n focus: function() {\r\n eventsEngine.trigger(this._input(), \"focus\")\r\n },\r\n reset: function() {\r\n if (this._showValidMark) {\r\n this._showValidMark = false;\r\n this._renderValidationState()\r\n }\r\n var defaultOptions = this._getDefaultOptions();\r\n if (this.option(\"value\") === defaultOptions.value) {\r\n this._options.silent(\"text\", \"\");\r\n this._renderValue()\r\n } else {\r\n this.option(\"value\", defaultOptions.value)\r\n }\r\n },\r\n on: function(eventName, eventHandler) {\r\n var result = this.callBase(eventName, eventHandler);\r\n var event = eventName.charAt(0).toUpperCase() + eventName.substr(1);\r\n if (EVENTS_LIST.indexOf(event) >= 0) {\r\n this._refreshEvents()\r\n }\r\n return result\r\n }\r\n});\r\nexport default TextEditorBase;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.mask.strategy.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport EventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n clipboardText as getClipboardText\r\n} from \"../../core/utils/dom\";\r\nvar MASK_EVENT_NAMESPACE = \"dxMask\";\r\nvar BLUR_EVENT = \"blur beforedeactivate\";\r\nvar EMPTY_CHAR = \" \";\r\nvar DELETE_INPUT_TYPES = [\"deleteContentBackward\", \"deleteSoftLineBackward\", \"deleteContent\", \"deleteHardLineBackward\"];\r\nvar HISTORY_INPUT_TYPES = [\"historyUndo\", \"historyRedo\"];\r\nvar EVENT_NAMES = [\"focusIn\", \"focusOut\", \"input\", \"paste\", \"cut\", \"drop\", \"beforeInput\"];\r\n\r\nfunction getEmptyString(length) {\r\n return EMPTY_CHAR.repeat(length)\r\n}\r\nexport default class MaskStrategy {\r\n constructor(editor) {\r\n this.editor = editor\r\n }\r\n _editorOption() {\r\n return this.editor.option(...arguments)\r\n }\r\n _editorInput() {\r\n return this.editor._input()\r\n }\r\n _editorCaret(newCaret) {\r\n if (!newCaret) {\r\n return this.editor._caret()\r\n }\r\n this.editor._caret(newCaret)\r\n }\r\n _attachChangeEventHandler() {\r\n if (!this._editorOption(\"valueChangeEvent\").split(\" \").includes(\"change\")) {\r\n return\r\n }\r\n var $input = this._editorInput();\r\n var namespace = addNamespace(BLUR_EVENT, MASK_EVENT_NAMESPACE);\r\n EventsEngine.on($input, namespace, e => {\r\n this.editor._changeHandler(e)\r\n })\r\n }\r\n _beforeInputHandler() {\r\n this._previousText = this._editorOption(\"text\");\r\n this._prevCaret = this._editorCaret()\r\n }\r\n _inputHandler(event) {\r\n var {\r\n originalEvent: originalEvent\r\n } = event;\r\n if (!originalEvent) {\r\n return\r\n }\r\n var {\r\n inputType: inputType\r\n } = originalEvent;\r\n if (HISTORY_INPUT_TYPES.includes(inputType)) {\r\n this._handleHistoryInputEvent()\r\n } else if (DELETE_INPUT_TYPES.includes(inputType)) {\r\n this._handleBackwardDeleteInputEvent()\r\n } else {\r\n var currentCaret = this._editorCaret();\r\n if (!currentCaret.end) {\r\n return\r\n }\r\n this._clearSelectedText();\r\n this._autoFillHandler(originalEvent);\r\n this._editorCaret(currentCaret);\r\n this._handleInsertTextInputEvent(originalEvent.data)\r\n }\r\n if (this._editorOption(\"text\") === this._previousText) {\r\n event.stopImmediatePropagation()\r\n }\r\n }\r\n _handleHistoryInputEvent() {\r\n var caret = this._editorCaret();\r\n this._updateEditorMask({\r\n start: caret.start,\r\n length: caret.end - caret.start,\r\n text: \"\"\r\n });\r\n this._editorCaret(this._prevCaret)\r\n }\r\n _handleBackwardDeleteInputEvent() {\r\n this._clearSelectedText();\r\n var caret = this._editorCaret();\r\n this.editor.setForwardDirection();\r\n this.editor._adjustCaret();\r\n var adjustedForwardCaret = this._editorCaret();\r\n if (adjustedForwardCaret.start !== caret.start) {\r\n this.editor.setBackwardDirection();\r\n this.editor._adjustCaret()\r\n }\r\n }\r\n _clearSelectedText() {\r\n var _this$_prevCaret, _this$_prevCaret2;\r\n var length = (null === (_this$_prevCaret = this._prevCaret) || void 0 === _this$_prevCaret ? void 0 : _this$_prevCaret.end) - (null === (_this$_prevCaret2 = this._prevCaret) || void 0 === _this$_prevCaret2 ? void 0 : _this$_prevCaret2.start) || 1;\r\n var caret = this._editorCaret();\r\n if (!this._isAutoFill()) {\r\n this.editor.setBackwardDirection();\r\n this._updateEditorMask({\r\n start: caret.start,\r\n length: length,\r\n text: getEmptyString(length)\r\n })\r\n }\r\n }\r\n _handleInsertTextInputEvent(data) {\r\n var _this$_prevCaret$star, _this$_prevCaret3;\r\n var text = null !== data && void 0 !== data ? data : \"\";\r\n this.editor.setForwardDirection();\r\n var hasValidChars = this._updateEditorMask({\r\n start: null !== (_this$_prevCaret$star = null === (_this$_prevCaret3 = this._prevCaret) || void 0 === _this$_prevCaret3 ? void 0 : _this$_prevCaret3.start) && void 0 !== _this$_prevCaret$star ? _this$_prevCaret$star : 0,\r\n length: text.length || 1,\r\n text: text\r\n });\r\n if (!hasValidChars) {\r\n this._editorCaret(this._prevCaret)\r\n }\r\n }\r\n _updateEditorMask(args) {\r\n var textLength = args.text.length;\r\n var processedCharsCount = this.editor._handleChain(args);\r\n this.editor._displayMask();\r\n if (this.editor.isForwardDirection()) {\r\n var {\r\n start: start,\r\n end: end\r\n } = this._editorCaret();\r\n var correction = processedCharsCount - textLength;\r\n var hasSkippedStub = processedCharsCount > 1;\r\n if (hasSkippedStub && 1 === textLength) {\r\n this._editorCaret({\r\n start: start + correction,\r\n end: end + correction\r\n })\r\n }\r\n this.editor._adjustCaret()\r\n }\r\n return !!processedCharsCount\r\n }\r\n _focusInHandler() {\r\n this.editor._showMaskPlaceholder();\r\n this.editor.setForwardDirection();\r\n if (!this.editor._isValueEmpty() && this._editorOption(\"isValid\")) {\r\n this.editor._adjustCaret()\r\n } else {\r\n var caret = this.editor._maskRulesChain.first();\r\n this._caretTimeout = setTimeout(() => {\r\n this._editorCaret({\r\n start: caret,\r\n end: caret\r\n })\r\n }, 0)\r\n }\r\n }\r\n _focusOutHandler(event) {\r\n this.editor._changeHandler(event);\r\n if (\"onFocus\" === this._editorOption(\"showMaskMode\") && this.editor._isValueEmpty()) {\r\n this._editorOption(\"text\", \"\");\r\n this.editor._renderDisplayText(\"\")\r\n }\r\n }\r\n _delHandler(event) {\r\n var {\r\n editor: editor\r\n } = this;\r\n editor._maskKeyHandler(event, () => {\r\n if (!editor._hasSelection()) {\r\n editor._handleKey(EMPTY_CHAR)\r\n }\r\n })\r\n }\r\n _cutHandler(event) {\r\n var caret = this._editorCaret();\r\n var selectedText = this._editorInput().val().substring(caret.start, caret.end);\r\n this.editor._maskKeyHandler(event, () => getClipboardText(event, selectedText))\r\n }\r\n _dropHandler() {\r\n this._clearDragTimer();\r\n this._dragTimer = setTimeout(() => {\r\n var value = this.editor._convertToValue(this._editorInput().val());\r\n this._editorOption(\"value\", value)\r\n })\r\n }\r\n _pasteHandler(event) {\r\n var {\r\n editor: editor\r\n } = this;\r\n if (this._editorOption(\"disabled\")) {\r\n return\r\n }\r\n var caret = this._editorCaret();\r\n editor._maskKeyHandler(event, () => {\r\n var pastedText = getClipboardText(event);\r\n var restText = editor._maskRulesChain.text().substring(caret.end);\r\n var accepted = editor._handleChain({\r\n text: pastedText,\r\n start: caret.start,\r\n length: pastedText.length\r\n });\r\n var newCaret = caret.start + accepted;\r\n editor._handleChain({\r\n text: restText,\r\n start: newCaret,\r\n length: restText.length\r\n });\r\n editor._caret({\r\n start: newCaret,\r\n end: newCaret\r\n })\r\n })\r\n }\r\n _autoFillHandler(event) {\r\n var {\r\n editor: editor\r\n } = this;\r\n var inputVal = this._editorInput().val();\r\n this._inputHandlerTimer = setTimeout(() => {\r\n if (this._isAutoFill()) {\r\n editor._maskKeyHandler(event, () => {\r\n editor._handleChain({\r\n text: inputVal,\r\n start: 0,\r\n length: inputVal.length\r\n })\r\n });\r\n editor._validateMask()\r\n }\r\n })\r\n }\r\n _isAutoFill() {\r\n var $input = this._editorInput();\r\n if (browser.webkit) {\r\n var _input$matches;\r\n var input = $input.get(0);\r\n return null !== (_input$matches = null === input || void 0 === input ? void 0 : input.matches(\":-webkit-autofill\")) && void 0 !== _input$matches ? _input$matches : false\r\n }\r\n return false\r\n }\r\n _clearDragTimer() {\r\n clearTimeout(this._dragTimer)\r\n }\r\n getHandler(handlerName) {\r\n return args => {\r\n var _this;\r\n null === (_this = this[\"_\".concat(handlerName, \"Handler\")]) || void 0 === _this ? void 0 : _this.call(this, args)\r\n }\r\n }\r\n attachEvents() {\r\n var $input = this._editorInput();\r\n EVENT_NAMES.forEach(eventName => {\r\n var namespace = addNamespace(eventName.toLowerCase(), MASK_EVENT_NAMESPACE);\r\n EventsEngine.on($input, namespace, this.getHandler(eventName))\r\n });\r\n this._attachChangeEventHandler()\r\n }\r\n detachEvents() {\r\n EventsEngine.off(this._editorInput(), \".\".concat(MASK_EVENT_NAMESPACE))\r\n }\r\n clean() {\r\n this._clearDragTimer();\r\n clearTimeout(this._caretTimeout);\r\n clearTimeout(this._inputHandlerTimer)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.mask.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 caretUtils from \"./utils.caret\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n addNamespace,\r\n createEvent,\r\n isCommandKeyPressed,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n focused\r\n} from \"../widget/selectors\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isEmpty\r\n} from \"../../core/utils/string\";\r\nimport {\r\n name as wheelEventName\r\n} from \"../../events/core/wheel\";\r\nimport {\r\n EmptyMaskRule,\r\n StubMaskRule,\r\n MaskRule\r\n} from \"./ui.text_editor.mask.rule\";\r\nimport TextEditorBase from \"./ui.text_editor.base\";\r\nimport MaskStrategy from \"./ui.text_editor.mask.strategy\";\r\nvar stubCaret = function() {\r\n return {}\r\n};\r\nvar caret = caretUtils;\r\nvar EMPTY_CHAR = \" \";\r\nvar ESCAPED_CHAR = \"\\\\\";\r\nvar TEXTEDITOR_MASKED_CLASS = \"dx-texteditor-masked\";\r\nvar FORWARD_DIRECTION = \"forward\";\r\nvar BACKWARD_DIRECTION = \"backward\";\r\nvar buildInMaskRules = {\r\n 0: /[0-9]/,\r\n 9: /[0-9\\s]/,\r\n \"#\": /[-+0-9\\s]/,\r\n L: function(char) {\r\n return isLiteralChar(char)\r\n },\r\n l: function(char) {\r\n return isLiteralChar(char) || isSpaceChar(char)\r\n },\r\n C: /\\S/,\r\n c: /./,\r\n A: function(char) {\r\n return isLiteralChar(char) || isNumericChar(char)\r\n },\r\n a: function(char) {\r\n return isLiteralChar(char) || isNumericChar(char) || isSpaceChar(char)\r\n }\r\n};\r\n\r\nfunction isNumericChar(char) {\r\n return /[0-9]/.test(char)\r\n}\r\n\r\nfunction isLiteralChar(char) {\r\n var code = char.charCodeAt();\r\n return 64 < code && code < 91 || 96 < code && code < 123 || code > 127\r\n}\r\n\r\nfunction isSpaceChar(char) {\r\n return \" \" === char\r\n}\r\nvar TextEditorMask = TextEditorBase.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n mask: \"\",\r\n maskChar: \"_\",\r\n maskRules: {},\r\n maskInvalidMessage: messageLocalization.format(\"validation-mask\"),\r\n useMaskedValue: false,\r\n showMaskMode: \"always\"\r\n })\r\n },\r\n _supportedKeys: function() {\r\n var that = this;\r\n var keyHandlerMap = {\r\n del: that._maskStrategy.getHandler(\"del\"),\r\n enter: that._changeHandler\r\n };\r\n var result = that.callBase();\r\n each(keyHandlerMap, (function(key, callback) {\r\n var parentHandler = result[key];\r\n result[key] = function(e) {\r\n that.option(\"mask\") && callback.call(that, e);\r\n parentHandler && parentHandler(e)\r\n }\r\n }));\r\n return result\r\n },\r\n _getSubmitElement: function() {\r\n return !this.option(\"mask\") ? this.callBase() : this._$hiddenElement\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initMaskStrategy()\r\n },\r\n _initMaskStrategy: function() {\r\n this._maskStrategy = new MaskStrategy(this)\r\n },\r\n _initMarkup: function() {\r\n this._renderHiddenElement();\r\n this.callBase()\r\n },\r\n _attachMouseWheelEventHandlers: function() {\r\n var hasMouseWheelHandler = this._onMouseWheel !== noop;\r\n if (!hasMouseWheelHandler) {\r\n return\r\n }\r\n var input = this._input();\r\n var eventName = addNamespace(wheelEventName, this.NAME);\r\n var mouseWheelAction = this._createAction(function(e) {\r\n var {\r\n event: event\r\n } = e;\r\n if (focused(input) && !isCommandKeyPressed(event)) {\r\n this._onMouseWheel(event);\r\n event.preventDefault();\r\n event.stopPropagation()\r\n }\r\n }.bind(this));\r\n eventsEngine.off(input, eventName);\r\n eventsEngine.on(input, eventName, (function(e) {\r\n mouseWheelAction({\r\n event: e\r\n })\r\n }))\r\n },\r\n _onMouseWheel: noop,\r\n _render: function() {\r\n this._renderMask();\r\n this.callBase();\r\n this._attachMouseWheelEventHandlers()\r\n },\r\n _renderHiddenElement: function() {\r\n if (this.option(\"mask\")) {\r\n this._$hiddenElement = $(\"\").attr(\"type\", \"hidden\").appendTo(this._inputWrapper())\r\n }\r\n },\r\n _removeHiddenElement: function() {\r\n this._$hiddenElement && this._$hiddenElement.remove()\r\n },\r\n _renderMask: function() {\r\n this.$element().removeClass(TEXTEDITOR_MASKED_CLASS);\r\n this._maskRulesChain = null;\r\n this._maskStrategy.detachEvents();\r\n if (!this.option(\"mask\")) {\r\n return\r\n }\r\n this.$element().addClass(TEXTEDITOR_MASKED_CLASS);\r\n this._maskStrategy.attachEvents();\r\n this._parseMask();\r\n this._renderMaskedValue()\r\n },\r\n _suppressCaretChanging: function(callback, args) {\r\n caret = stubCaret;\r\n try {\r\n callback.apply(this, args)\r\n } finally {\r\n caret = caretUtils\r\n }\r\n },\r\n _changeHandler: function(e) {\r\n var $input = this._input();\r\n var inputValue = $input.val();\r\n if (inputValue === this._changedValue) {\r\n return\r\n }\r\n this._changedValue = inputValue;\r\n var changeEvent = createEvent(e, {\r\n type: \"change\"\r\n });\r\n eventsEngine.trigger($input, changeEvent)\r\n },\r\n _parseMask: function() {\r\n this._maskRules = extend({}, buildInMaskRules, this.option(\"maskRules\"));\r\n this._maskRulesChain = this._parseMaskRule(0)\r\n },\r\n _parseMaskRule: function(index) {\r\n var mask = this.option(\"mask\");\r\n if (index >= mask.length) {\r\n return new EmptyMaskRule\r\n }\r\n var currentMaskChar = mask[index];\r\n var isEscapedChar = currentMaskChar === ESCAPED_CHAR;\r\n var result = isEscapedChar ? new StubMaskRule({\r\n maskChar: mask[index + 1]\r\n }) : this._getMaskRule(currentMaskChar);\r\n result.next(this._parseMaskRule(index + 1 + isEscapedChar));\r\n return result\r\n },\r\n _getMaskRule: function(pattern) {\r\n var ruleConfig;\r\n each(this._maskRules, (function(rulePattern, allowedChars) {\r\n if (rulePattern === pattern) {\r\n ruleConfig = {\r\n pattern: rulePattern,\r\n allowedChars: allowedChars\r\n };\r\n return false\r\n }\r\n }));\r\n return isDefined(ruleConfig) ? new MaskRule(extend({\r\n maskChar: this.option(\"maskChar\")\r\n }, ruleConfig)) : new StubMaskRule({\r\n maskChar: pattern\r\n })\r\n },\r\n _renderMaskedValue: function() {\r\n if (!this._maskRulesChain) {\r\n return\r\n }\r\n var value = this.option(\"value\") || \"\";\r\n this._maskRulesChain.clear(this._normalizeChainArguments());\r\n var chainArgs = {\r\n length: value.length\r\n };\r\n chainArgs[this._isMaskedValueMode() ? \"text\" : \"value\"] = value;\r\n this._handleChain(chainArgs);\r\n this._displayMask()\r\n },\r\n _replaceSelectedText: function(text, selection, char) {\r\n if (void 0 === char) {\r\n return text\r\n }\r\n var textBefore = text.slice(0, selection.start);\r\n var textAfter = text.slice(selection.end);\r\n var edited = textBefore + char + textAfter;\r\n return edited\r\n },\r\n _isMaskedValueMode: function() {\r\n return this.option(\"useMaskedValue\")\r\n },\r\n _displayMask: function(caret) {\r\n caret = caret || this._caret();\r\n this._renderValue();\r\n this._caret(caret)\r\n },\r\n _isValueEmpty: function() {\r\n return isEmpty(this._value)\r\n },\r\n _shouldShowMask: function() {\r\n var showMaskMode = this.option(\"showMaskMode\");\r\n if (\"onFocus\" === showMaskMode) {\r\n return focused(this._input()) || !this._isValueEmpty()\r\n }\r\n return true\r\n },\r\n _showMaskPlaceholder: function() {\r\n if (this._shouldShowMask()) {\r\n var text = this._maskRulesChain.text();\r\n this.option(\"text\", text);\r\n if (\"onFocus\" === this.option(\"showMaskMode\")) {\r\n this._renderDisplayText(text)\r\n }\r\n }\r\n },\r\n _renderValue: function() {\r\n if (this._maskRulesChain) {\r\n this._showMaskPlaceholder();\r\n if (this._$hiddenElement) {\r\n var value = this._maskRulesChain.value();\r\n var submitElementValue = !isEmpty(value) ? this._getPreparedValue() : \"\";\r\n this._$hiddenElement.val(submitElementValue)\r\n }\r\n }\r\n return this.callBase()\r\n },\r\n _getPreparedValue: function() {\r\n return this._convertToValue().replace(/\\s+$/, \"\")\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n if (!this._maskRulesChain) {\r\n this.callBase.apply(this, arguments);\r\n return\r\n }\r\n this._saveValueChangeEvent(e);\r\n this.option(\"value\", this._getPreparedValue())\r\n },\r\n _isControlKeyFired: function(e) {\r\n return this._isControlKey(normalizeKeyName(e)) || isCommandKeyPressed(e)\r\n },\r\n _handleChain: function(args) {\r\n var handledCount = this._maskRulesChain.handle(this._normalizeChainArguments(args));\r\n this._value = this._maskRulesChain.value();\r\n this._textValue = this._maskRulesChain.text();\r\n return handledCount\r\n },\r\n _normalizeChainArguments: function(args) {\r\n args = args || {};\r\n args.index = 0;\r\n args.fullText = this._maskRulesChain.text();\r\n return args\r\n },\r\n _convertToValue: function(text) {\r\n if (this._isMaskedValueMode()) {\r\n text = this._replaceMaskCharWithEmpty(text || this._textValue || \"\")\r\n } else {\r\n text = text || this._value || \"\"\r\n }\r\n return text\r\n },\r\n _replaceMaskCharWithEmpty: function(text) {\r\n return text.replace(new RegExp(this.option(\"maskChar\"), \"g\"), EMPTY_CHAR)\r\n },\r\n _maskKeyHandler: function(e, keyHandler) {\r\n if (this.option(\"readOnly\")) {\r\n return\r\n }\r\n this.setForwardDirection();\r\n e.preventDefault();\r\n this._handleSelection();\r\n var previousText = this._input().val();\r\n var raiseInputEvent = () => {\r\n if (previousText !== this._input().val()) {\r\n eventsEngine.trigger(this._input(), \"input\")\r\n }\r\n };\r\n var handled = keyHandler();\r\n if (handled) {\r\n handled.then(raiseInputEvent)\r\n } else {\r\n this.setForwardDirection();\r\n this._adjustCaret();\r\n this._displayMask();\r\n this._maskRulesChain.reset();\r\n raiseInputEvent()\r\n }\r\n },\r\n _handleKey: function(key, direction) {\r\n this._direction(direction || FORWARD_DIRECTION);\r\n this._adjustCaret(key);\r\n this._handleKeyChain(key);\r\n this._moveCaret()\r\n },\r\n _handleSelection: function() {\r\n if (!this._hasSelection()) {\r\n return\r\n }\r\n var caret = this._caret();\r\n var emptyChars = new Array(caret.end - caret.start + 1).join(EMPTY_CHAR);\r\n this._handleKeyChain(emptyChars)\r\n },\r\n _handleKeyChain: function(chars) {\r\n var caret = this._caret();\r\n var start = this.isForwardDirection() ? caret.start : caret.start - 1;\r\n var end = this.isForwardDirection() ? caret.end : caret.end - 1;\r\n var length = start === end ? 1 : end - start;\r\n this._handleChain({\r\n text: chars,\r\n start: start,\r\n length: length\r\n })\r\n },\r\n _tryMoveCaretBackward: function() {\r\n this.setBackwardDirection();\r\n var currentCaret = this._caret().start;\r\n this._adjustCaret();\r\n return !currentCaret || currentCaret !== this._caret().start\r\n },\r\n _adjustCaret: function(char) {\r\n var caretStart = this._caret().start;\r\n var isForwardDirection = this.isForwardDirection();\r\n var caret = this._maskRulesChain.adjustedCaret(caretStart, isForwardDirection, char);\r\n this._caret({\r\n start: caret,\r\n end: caret\r\n })\r\n },\r\n _moveCaret: function() {\r\n var currentCaret = this._caret().start;\r\n var maskRuleIndex = currentCaret + (this.isForwardDirection() ? 0 : -1);\r\n var caret = this._maskRulesChain.isAccepted(maskRuleIndex) ? currentCaret + (this.isForwardDirection() ? 1 : -1) : currentCaret;\r\n this._caret({\r\n start: caret,\r\n end: caret\r\n })\r\n },\r\n _caret: function(position, force) {\r\n var $input = this._input();\r\n if (!$input.length) {\r\n return\r\n }\r\n if (!arguments.length) {\r\n return caret($input)\r\n }\r\n caret($input, position, force)\r\n },\r\n _hasSelection: function() {\r\n var caret = this._caret();\r\n return caret.start !== caret.end\r\n },\r\n _direction: function(direction) {\r\n if (!arguments.length) {\r\n return this._typingDirection\r\n }\r\n this._typingDirection = direction\r\n },\r\n setForwardDirection: function() {\r\n this._direction(FORWARD_DIRECTION)\r\n },\r\n setBackwardDirection: function() {\r\n this._direction(BACKWARD_DIRECTION)\r\n },\r\n isForwardDirection: function() {\r\n return this._direction() === FORWARD_DIRECTION\r\n },\r\n _clean: function() {\r\n this._maskStrategy && this._maskStrategy.clean();\r\n this.callBase()\r\n },\r\n _validateMask: function() {\r\n if (!this._maskRulesChain) {\r\n return\r\n }\r\n var isValid = isEmpty(this.option(\"value\")) || this._maskRulesChain.isValid(this._normalizeChainArguments());\r\n this.option({\r\n isValid: isValid,\r\n validationError: isValid ? null : {\r\n editorSpecific: true,\r\n message: this.option(\"maskInvalidMessage\")\r\n }\r\n })\r\n },\r\n _updateHiddenElement: function() {\r\n this._removeHiddenElement();\r\n if (this.option(\"mask\")) {\r\n this._input().removeAttr(\"name\");\r\n this._renderHiddenElement()\r\n }\r\n this._setSubmitElementName(this.option(\"name\"))\r\n },\r\n _updateMaskOption: function() {\r\n this._updateHiddenElement();\r\n this._renderMask();\r\n this._validateMask()\r\n },\r\n _processEmptyMask: function(mask) {\r\n if (mask) {\r\n return\r\n }\r\n var value = this.option(\"value\");\r\n this.option({\r\n text: value,\r\n isValid: true\r\n });\r\n this.validationRequest.fire({\r\n value: value,\r\n editor: this\r\n });\r\n this._renderValue()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"mask\":\r\n this._updateMaskOption();\r\n this._processEmptyMask(args.value);\r\n break;\r\n case \"maskChar\":\r\n case \"maskRules\":\r\n case \"useMaskedValue\":\r\n this._updateMaskOption();\r\n break;\r\n case \"value\":\r\n this._renderMaskedValue();\r\n this._validateMask();\r\n this.callBase(args);\r\n this._changedValue = this._input().val();\r\n break;\r\n case \"maskInvalidMessage\":\r\n break;\r\n case \"showMaskMode\":\r\n this.option(\"text\", \"\");\r\n this._renderValue();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default TextEditorMask;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport TextEditorMask from \"./ui.text_editor.mask\";\r\nregisterComponent(\"dxTextEditor\", TextEditorMask);\r\nexport default TextEditorMask;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/text_box.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport TextEditor from \"./ui.text_editor\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport {\r\n getOuterWidth,\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nvar ignoreKeys = [\"backspace\", \"tab\", \"enter\", \"pageUp\", \"pageDown\", \"end\", \"home\", \"leftArrow\", \"rightArrow\", \"downArrow\", \"upArrow\", \"del\"];\r\nvar TEXTBOX_CLASS = \"dx-textbox\";\r\nvar SEARCHBOX_CLASS = \"dx-searchbox\";\r\nvar ICON_CLASS = \"dx-icon\";\r\nvar SEARCH_ICON_CLASS = \"dx-icon-search\";\r\nvar TextBox = TextEditor.inherit({\r\n ctor: function(element, options) {\r\n if (options) {\r\n this._showClearButton = options.showClearButton\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: \"\",\r\n mode: \"text\",\r\n maxLength: null\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(TEXTBOX_CLASS);\r\n this.callBase();\r\n this.setAria(\"role\", \"textbox\")\r\n },\r\n _renderInputType: function() {\r\n this.callBase();\r\n this._renderSearchMode()\r\n },\r\n _useTemplates: function() {\r\n return false\r\n },\r\n _renderProps: function() {\r\n this.callBase();\r\n this._toggleMaxLengthProp()\r\n },\r\n _toggleMaxLengthProp: function() {\r\n var maxLength = this._getMaxLength();\r\n if (maxLength && maxLength > 0) {\r\n this._input().attr(\"maxLength\", maxLength)\r\n } else {\r\n this._input().removeAttr(\"maxLength\")\r\n }\r\n },\r\n _renderSearchMode: function() {\r\n var $element = this._$element;\r\n if (\"search\" === this.option(\"mode\")) {\r\n $element.addClass(SEARCHBOX_CLASS);\r\n this._renderSearchIcon();\r\n if (void 0 === this._showClearButton) {\r\n this._showClearButton = this.option(\"showClearButton\");\r\n this.option(\"showClearButton\", true)\r\n }\r\n } else {\r\n $element.removeClass(SEARCHBOX_CLASS);\r\n this._$searchIcon && this._$searchIcon.remove();\r\n this.option(\"showClearButton\", void 0 === this._showClearButton ? this.option(\"showClearButton\") : this._showClearButton);\r\n delete this._showClearButton\r\n }\r\n },\r\n _renderSearchIcon: function() {\r\n var $searchIcon = $(\"
\").addClass(ICON_CLASS).addClass(SEARCH_ICON_CLASS);\r\n $searchIcon.prependTo(this._input().parent());\r\n this._$searchIcon = $searchIcon\r\n },\r\n _getLabelContainerWidth: function() {\r\n if (this._$searchIcon) {\r\n var $inputContainer = this._input().parent();\r\n return getWidth($inputContainer) - this._getLabelBeforeWidth()\r\n }\r\n return this.callBase()\r\n },\r\n _getLabelBeforeWidth: function() {\r\n var labelBeforeWidth = this.callBase();\r\n if (this._$searchIcon) {\r\n labelBeforeWidth += getOuterWidth(this._$searchIcon)\r\n }\r\n return labelBeforeWidth\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"maxLength\":\r\n this._toggleMaxLengthProp();\r\n break;\r\n case \"mode\":\r\n this.callBase(args);\r\n this._updateLabelWidth();\r\n break;\r\n case \"mask\":\r\n this.callBase(args);\r\n this._toggleMaxLengthProp();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _onKeyDownCutOffHandler: function(e) {\r\n var actualMaxLength = this._getMaxLength();\r\n if (actualMaxLength && !e.ctrlKey && !this._hasSelection()) {\r\n var $input = $(e.target);\r\n var key = normalizeKeyName(e);\r\n this._cutOffExtraChar($input);\r\n return $input.val().length < actualMaxLength || ignoreKeys.includes(key) || \"\" !== window.getSelection().toString()\r\n } else {\r\n return true\r\n }\r\n },\r\n _onChangeCutOffHandler: function(e) {\r\n var $input = $(e.target);\r\n if (this.option(\"maxLength\")) {\r\n this._cutOffExtraChar($input)\r\n }\r\n },\r\n _cutOffExtraChar: function($input) {\r\n var actualMaxLength = this._getMaxLength();\r\n var textInput = $input.val();\r\n if (actualMaxLength && textInput.length > actualMaxLength) {\r\n $input.val(textInput.substr(0, actualMaxLength))\r\n }\r\n },\r\n _getMaxLength: function() {\r\n var isMaskSpecified = !!this.option(\"mask\");\r\n return isMaskSpecified ? null : this.option(\"maxLength\")\r\n }\r\n});\r\nregisterComponent(\"dxTextBox\", TextBox);\r\nexport default TextBox;\r\n","/**\r\n * DevExtreme (esm/ui/text_box.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport TextBox from \"./text_box/text_box\";\r\nexport default TextBox;\r\n","/**\r\n * DevExtreme (esm/ui/hierarchical_collection/ui.data_converter.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 errors from \"../../ui/widget/ui.errors\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isPrimitive\r\n} from \"../../core/utils/type\";\r\nvar DataConverter = Class.inherit({\r\n ctor: function() {\r\n this._dataStructure = [];\r\n this._itemsCount = 0;\r\n this._visibleItemsCount = 0\r\n },\r\n _indexByKey: {},\r\n _convertItemsToNodes: function(items, parentKey) {\r\n var that = this;\r\n each(items, (function(_, item) {\r\n var parentId = isDefined(parentKey) ? parentKey : that._getParentId(item);\r\n var node = that._convertItemToNode(item, parentId);\r\n that._dataStructure.push(node);\r\n that._checkForDuplicateId(node.internalFields.key);\r\n that._indexByKey[node.internalFields.key] = that._dataStructure.length - 1;\r\n if (that._itemHasChildren(item)) {\r\n that._convertItemsToNodes(that._dataAccessors.getters.items(item), node.internalFields.key)\r\n }\r\n }))\r\n },\r\n _checkForDuplicateId: function(key) {\r\n if (isDefined(this._indexByKey[key])) {\r\n throw errors.Error(\"E1040\", key)\r\n }\r\n },\r\n _getParentId: function(item) {\r\n return \"plain\" === this._dataType ? this._dataAccessors.getters.parentKey(item) : void 0\r\n },\r\n _itemHasChildren: function(item) {\r\n if (\"plain\" === this._dataType) {\r\n return\r\n }\r\n var items = this._dataAccessors.getters.items(item);\r\n return items && items.length\r\n },\r\n _getUniqueKey: function(item) {\r\n var keyGetter = this._dataAccessors.getters.key;\r\n var itemKey = keyGetter(item);\r\n var isCorrectKey = keyGetter && (itemKey || 0 === itemKey) && isPrimitive(itemKey);\r\n return isCorrectKey ? itemKey : this.getItemsCount()\r\n },\r\n _convertItemToNode: function(item, parentKey) {\r\n this._itemsCount++;\r\n false !== item.visible && this._visibleItemsCount++;\r\n var node = {\r\n internalFields: {\r\n disabled: this._dataAccessors.getters.disabled(item, {\r\n defaultValue: false\r\n }),\r\n expanded: this._dataAccessors.getters.expanded(item, {\r\n defaultValue: false\r\n }),\r\n selected: this._dataAccessors.getters.selected(item, {\r\n defaultValue: false\r\n }),\r\n key: this._getUniqueKey(item),\r\n parentKey: isDefined(parentKey) ? parentKey : this._rootValue,\r\n item: this._makeObjectFromPrimitive(item),\r\n childrenKeys: []\r\n }\r\n };\r\n extend(node, item);\r\n delete node.items;\r\n return node\r\n },\r\n setChildrenKeys: function() {\r\n var that = this;\r\n each(this._dataStructure, (function(_, node) {\r\n if (node.internalFields.parentKey === that._rootValue) {\r\n return\r\n }\r\n var parent = that.getParentNode(node);\r\n parent && parent.internalFields.childrenKeys.push(node.internalFields.key)\r\n }))\r\n },\r\n _makeObjectFromPrimitive: function(item) {\r\n if (isPrimitive(item)) {\r\n var key = item;\r\n item = {};\r\n this._dataAccessors.setters.key(item, key)\r\n }\r\n return item\r\n },\r\n _convertToPublicNode: function(node, parent) {\r\n if (!node) {\r\n return null\r\n }\r\n var publicNode = {\r\n text: this._dataAccessors.getters.display(node),\r\n key: node.internalFields.key,\r\n selected: node.internalFields.selected,\r\n expanded: node.internalFields.expanded,\r\n disabled: node.internalFields.disabled,\r\n parent: parent || null,\r\n itemData: node.internalFields.item,\r\n children: [],\r\n items: []\r\n };\r\n if (publicNode.parent) {\r\n publicNode.parent.children.push(publicNode);\r\n publicNode.parent.items.push(publicNode)\r\n }\r\n return publicNode\r\n },\r\n convertToPublicNodes: function(data, parent) {\r\n if (!data.length) {\r\n return []\r\n }\r\n var that = this;\r\n var publicNodes = [];\r\n each(data, (function(_, node) {\r\n node = isPrimitive(node) ? that._getByKey(node) : node;\r\n var publicNode = that._convertToPublicNode(node, parent);\r\n publicNode.children = that.convertToPublicNodes(node.internalFields.childrenKeys, publicNode);\r\n publicNodes.push(publicNode);\r\n node.internalFields.publicNode = publicNode\r\n }));\r\n return publicNodes\r\n },\r\n setDataAccessors: function(accessors) {\r\n this._dataAccessors = accessors\r\n },\r\n _getByKey: function(key) {\r\n return this._dataStructure[this.getIndexByKey(key)] || null\r\n },\r\n getParentNode: function(node) {\r\n return this._getByKey(node.internalFields.parentKey)\r\n },\r\n getByKey: function(data, key) {\r\n if (null === key || void 0 === key) {\r\n return null\r\n }\r\n var result = null;\r\n var that = this;\r\n var getByKey = function(data, key) {\r\n each(data, (function(_, element) {\r\n var currentElementKey = element.internalFields && element.internalFields.key || that._dataAccessors.getters.key(element);\r\n if (currentElementKey.toString() === key.toString()) {\r\n result = element;\r\n return false\r\n }\r\n }));\r\n return result\r\n };\r\n return getByKey(data, key)\r\n },\r\n getItemsCount: function() {\r\n return this._itemsCount\r\n },\r\n getVisibleItemsCount: function() {\r\n return this._visibleItemsCount\r\n },\r\n updateIndexByKey: function() {\r\n var that = this;\r\n this._indexByKey = {};\r\n each(this._dataStructure, (function(index, node) {\r\n that._checkForDuplicateId(node.internalFields.key);\r\n that._indexByKey[node.internalFields.key] = index\r\n }))\r\n },\r\n updateChildrenKeys: function() {\r\n this._indexByKey = {};\r\n this.removeChildrenKeys();\r\n this.updateIndexByKey();\r\n this.setChildrenKeys()\r\n },\r\n removeChildrenKeys: function() {\r\n this._indexByKey = {};\r\n each(this._dataStructure, (function(index, node) {\r\n node.internalFields.childrenKeys = []\r\n }))\r\n },\r\n getIndexByKey: function(key) {\r\n return this._indexByKey[key]\r\n },\r\n createPlainStructure: function(items, rootValue, dataType) {\r\n this._itemsCount = 0;\r\n this._visibleItemsCount = 0;\r\n this._rootValue = rootValue;\r\n this._dataType = dataType;\r\n this._indexByKey = {};\r\n this._convertItemsToNodes(items);\r\n this.setChildrenKeys();\r\n return this._dataStructure\r\n }\r\n});\r\nexport default DataConverter;\r\n","/**\r\n * DevExtreme (esm/ui/hierarchical_collection/ui.data_adapter.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isFunction,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport errors from \"../../ui/widget/ui.errors\";\r\nimport uiSearchBoxMixin from \"../../ui/widget/ui.search_box_mixin\";\r\nimport TextBox from \"../../ui/text_box\";\r\nimport query from \"../../data/query\";\r\nimport storeHelper from \"../../data/store_helper\";\r\nimport HierarchicalDataConverter from \"./ui.data_converter\";\r\nvar EXPANDED = \"expanded\";\r\nvar SELECTED = \"selected\";\r\nvar DISABLED = \"disabled\";\r\nuiSearchBoxMixin.setEditorClass(TextBox);\r\nvar DataAdapter = Class.inherit({\r\n ctor: function(options) {\r\n this.options = {};\r\n extend(this.options, this._defaultOptions(), options);\r\n this.options.dataConverter.setDataAccessors(this.options.dataAccessors);\r\n this._selectedNodesKeys = [];\r\n this._expandedNodesKeys = [];\r\n this._dataStructure = [];\r\n this._createInternalDataStructure();\r\n this.getTreeNodes()\r\n },\r\n setOption: function(name, value) {\r\n this.options[name] = value;\r\n if (\"recursiveSelection\" === name) {\r\n this._updateSelection()\r\n }\r\n },\r\n _defaultOptions: function() {\r\n return {\r\n dataAccessors: void 0,\r\n items: [],\r\n multipleSelection: true,\r\n recursiveSelection: false,\r\n recursiveExpansion: false,\r\n rootValue: 0,\r\n searchValue: \"\",\r\n dataType: \"tree\",\r\n searchMode: \"contains\",\r\n dataConverter: new HierarchicalDataConverter,\r\n onNodeChanged: noop,\r\n sort: null\r\n }\r\n },\r\n _createInternalDataStructure: function() {\r\n this._initialDataStructure = this.options.dataConverter.createPlainStructure(this.options.items, this.options.rootValue, this.options.dataType);\r\n this._dataStructure = this.options.searchValue.length ? this.search(this.options.searchValue) : this._initialDataStructure;\r\n this.options.dataConverter._dataStructure = this._dataStructure;\r\n this._updateSelection();\r\n this._updateExpansion()\r\n },\r\n _updateSelection: function() {\r\n if (this.options.recursiveSelection) {\r\n this._setChildrenSelection();\r\n this._setParentSelection()\r\n }\r\n this._selectedNodesKeys = this._updateNodesKeysArray(SELECTED)\r\n },\r\n _updateExpansion: function(key) {\r\n if (this.options.recursiveExpansion) {\r\n key ? this._updateOneBranch(key) : this._setParentExpansion()\r\n }\r\n this._expandedNodesKeys = this._updateNodesKeysArray(EXPANDED)\r\n },\r\n _updateNodesKeysArray: function(property) {\r\n var that = this;\r\n var array = [];\r\n each(that._getDataBySelectionMode(), (function(_, node) {\r\n if (!that._isNodeVisible(node)) {\r\n return\r\n }\r\n if (node.internalFields[property]) {\r\n if (property === EXPANDED || that.options.multipleSelection) {\r\n array.push(node.internalFields.key)\r\n } else {\r\n array.length && that.toggleSelection(array[0], false, true);\r\n array = [node.internalFields.key]\r\n }\r\n }\r\n }));\r\n return array\r\n },\r\n _getDataBySelectionMode: function() {\r\n return this.options.multipleSelection ? this.getData() : this.getFullData()\r\n },\r\n _isNodeVisible: function(node) {\r\n return false !== node.internalFields.item.visible\r\n },\r\n _getByKey: function(data, key) {\r\n return data === this._dataStructure ? this.options.dataConverter._getByKey(key) : this.options.dataConverter.getByKey(data, key)\r\n },\r\n _setChildrenSelection: function() {\r\n var that = this;\r\n each(this._dataStructure, (function(_, node) {\r\n if (!node.internalFields.childrenKeys.length) {\r\n return\r\n }\r\n var isSelected = node.internalFields.selected;\r\n true === isSelected && that._toggleChildrenSelection(node, isSelected)\r\n }))\r\n },\r\n _setParentSelection: function() {\r\n var that = this;\r\n each(this._dataStructure, (function(_, node) {\r\n var parent = that.options.dataConverter.getParentNode(node);\r\n if (parent && node.internalFields.parentKey !== that.options.rootValue) {\r\n that._iterateParents(node, (function(parent) {\r\n var newParentState = that._calculateSelectedState(parent);\r\n that._setFieldState(parent, SELECTED, newParentState)\r\n }))\r\n }\r\n }))\r\n },\r\n _setParentExpansion: function() {\r\n var that = this;\r\n each(this._dataStructure, (function(_, node) {\r\n if (!node.internalFields.expanded) {\r\n return\r\n }\r\n that._updateOneBranch(node.internalFields.key)\r\n }))\r\n },\r\n _updateOneBranch: function(key) {\r\n var that = this;\r\n var node = this.getNodeByKey(key);\r\n that._iterateParents(node, (function(parent) {\r\n that._setFieldState(parent, EXPANDED, true)\r\n }))\r\n },\r\n _iterateChildren: function(node, recursive, callback, processedKeys) {\r\n if (!isFunction(callback)) {\r\n return\r\n }\r\n var that = this;\r\n var nodeKey = node.internalFields.key;\r\n processedKeys = processedKeys || [];\r\n if (-1 === processedKeys.indexOf(nodeKey)) {\r\n processedKeys.push(nodeKey);\r\n each(node.internalFields.childrenKeys, (function(_, key) {\r\n var child = that.getNodeByKey(key);\r\n callback(child);\r\n if (child.internalFields.childrenKeys.length && recursive) {\r\n that._iterateChildren(child, recursive, callback, processedKeys)\r\n }\r\n }))\r\n }\r\n },\r\n _iterateParents: function(node, callback, processedKeys) {\r\n if (node.internalFields.parentKey === this.options.rootValue || !isFunction(callback)) {\r\n return\r\n }\r\n processedKeys = processedKeys || [];\r\n var key = node.internalFields.key;\r\n if (-1 === processedKeys.indexOf(key)) {\r\n processedKeys.push(key);\r\n var parent = this.options.dataConverter.getParentNode(node);\r\n if (parent) {\r\n callback(parent);\r\n if (parent.internalFields.parentKey !== this.options.rootValue) {\r\n this._iterateParents(parent, callback, processedKeys)\r\n }\r\n }\r\n }\r\n },\r\n _calculateSelectedState: function(node) {\r\n var itemsCount = node.internalFields.childrenKeys.length;\r\n var selectedItemsCount = 0;\r\n var invisibleItemsCount = 0;\r\n var result = false;\r\n for (var i = 0; i <= itemsCount - 1; i++) {\r\n var childNode = this.getNodeByKey(node.internalFields.childrenKeys[i]);\r\n var isChildInvisible = false === childNode.internalFields.item.visible;\r\n var childState = childNode.internalFields.selected;\r\n if (isChildInvisible) {\r\n invisibleItemsCount++;\r\n continue\r\n }\r\n if (childState) {\r\n selectedItemsCount++\r\n } else if (void 0 === childState) {\r\n selectedItemsCount += .5\r\n }\r\n }\r\n if (selectedItemsCount) {\r\n result = selectedItemsCount === itemsCount - invisibleItemsCount ? true : void 0\r\n }\r\n return result\r\n },\r\n _toggleChildrenSelection: function(node, state) {\r\n var that = this;\r\n this._iterateChildren(node, true, (function(child) {\r\n if (that._isNodeVisible(child)) {\r\n that._setFieldState(child, SELECTED, state)\r\n }\r\n }))\r\n },\r\n _setFieldState: function(node, field, state) {\r\n if (node.internalFields[field] === state) {\r\n return\r\n }\r\n node.internalFields[field] = state;\r\n if (node.internalFields.publicNode) {\r\n node.internalFields.publicNode[field] = state\r\n }\r\n this.options.dataAccessors.setters[field](node.internalFields.item, state);\r\n this.options.onNodeChanged(node)\r\n },\r\n _markChildren: function(keys) {\r\n var that = this;\r\n each(keys, (function(_, key) {\r\n var index = that.getIndexByKey(key);\r\n var node = that.getNodeByKey(key);\r\n that._dataStructure[index] = 0;\r\n node.internalFields.childrenKeys.length && that._markChildren(node.internalFields.childrenKeys)\r\n }))\r\n },\r\n _removeNode: function(key) {\r\n var node = this.getNodeByKey(key);\r\n this._dataStructure[this.getIndexByKey(key)] = 0;\r\n this._markChildren(node.internalFields.childrenKeys);\r\n var that = this;\r\n var counter = 0;\r\n var items = extend([], this._dataStructure);\r\n each(items, (function(index, item) {\r\n if (!item) {\r\n that._dataStructure.splice(index - counter, 1);\r\n counter++\r\n }\r\n }))\r\n },\r\n _addNode: function(item) {\r\n var dataConverter = this.options.dataConverter;\r\n var node = dataConverter._convertItemToNode(item, this.options.dataAccessors.getters.parentKey(item));\r\n this._dataStructure = this._dataStructure.concat(node);\r\n this._initialDataStructure = this._initialDataStructure.concat(node);\r\n dataConverter._dataStructure = dataConverter._dataStructure.concat(node)\r\n },\r\n _updateFields: function() {\r\n this.options.dataConverter.updateChildrenKeys();\r\n this._updateSelection();\r\n this._updateExpansion()\r\n },\r\n getSelectedNodesKeys: function() {\r\n return this._selectedNodesKeys\r\n },\r\n getExpandedNodesKeys: function() {\r\n return this._expandedNodesKeys\r\n },\r\n getData: function() {\r\n return this._dataStructure\r\n },\r\n getFullData: function() {\r\n return this._initialDataStructure\r\n },\r\n getNodeByItem: function(item) {\r\n var result = null;\r\n each(this._dataStructure, (function(_, node) {\r\n if (node.internalFields.item === item) {\r\n result = node;\r\n return false\r\n }\r\n }));\r\n return result\r\n },\r\n getNodesByItems: function(items) {\r\n var that = this;\r\n var nodes = [];\r\n each(items, (function(_, item) {\r\n var node = that.getNodeByItem(item);\r\n node && nodes.push(node)\r\n }));\r\n return nodes\r\n },\r\n getNodeByKey: function(key, data) {\r\n return this._getByKey(data || this._getDataBySelectionMode(), key)\r\n },\r\n getTreeNodes: function() {\r\n return this.options.dataConverter.convertToPublicNodes(this.getRootNodes())\r\n },\r\n getItemsCount: function() {\r\n return this.options.dataConverter.getItemsCount()\r\n },\r\n getVisibleItemsCount: function() {\r\n return this.options.dataConverter.getVisibleItemsCount()\r\n },\r\n getPublicNode: function(node) {\r\n return node.internalFields.publicNode\r\n },\r\n getRootNodes: function() {\r\n return this.getChildrenNodes(this.options.rootValue)\r\n },\r\n getChildrenNodes: function(parentKey) {\r\n return query(this._dataStructure, {\r\n langParams: this.options.langParams\r\n }).filter([\"internalFields.parentKey\", parentKey]).toArray()\r\n },\r\n getIndexByKey: function(key) {\r\n return this.options.dataConverter.getIndexByKey(key)\r\n },\r\n addItem: function(item) {\r\n this._addNode(item);\r\n this._updateFields()\r\n },\r\n removeItem: function(key) {\r\n this._removeNode(key);\r\n this._updateFields()\r\n },\r\n toggleSelection: function(key, state, selectRecursive) {\r\n var isSingleModeUnselect = this._isSingleModeUnselect(state);\r\n var node = this._getByKey(selectRecursive || isSingleModeUnselect ? this._initialDataStructure : this._dataStructure, key);\r\n this._setFieldState(node, SELECTED, state);\r\n if (this.options.recursiveSelection && !selectRecursive) {\r\n state ? this._setChildrenSelection() : this._toggleChildrenSelection(node, state);\r\n this._setParentSelection()\r\n }\r\n this._selectedNodesKeys = this._updateNodesKeysArray(SELECTED)\r\n },\r\n _isSingleModeUnselect: function(selectionState) {\r\n return !this.options.multipleSelection && !selectionState\r\n },\r\n toggleNodeDisabledState: function(key, state) {\r\n var node = this.getNodeByKey(key);\r\n this._setFieldState(node, DISABLED, state)\r\n },\r\n toggleSelectAll: function(state) {\r\n if (!isDefined(state)) {\r\n return\r\n }\r\n var that = this;\r\n var lastSelectedKey = that._selectedNodesKeys[that._selectedNodesKeys.length - 1];\r\n var dataStructure = that._isSingleModeUnselect(state) ? this._initialDataStructure : this._dataStructure;\r\n each(dataStructure, (function(index, node) {\r\n if (!that._isNodeVisible(node)) {\r\n return\r\n }\r\n that._setFieldState(node, SELECTED, state)\r\n }));\r\n that._selectedNodesKeys = that._updateNodesKeysArray(SELECTED);\r\n if (!state && that.options.selectionRequired) {\r\n that.toggleSelection(lastSelectedKey, true)\r\n }\r\n },\r\n isAllSelected: function() {\r\n if (this.getSelectedNodesKeys().length) {\r\n return this.getSelectedNodesKeys().length === this.getVisibleItemsCount() ? true : void 0\r\n } else {\r\n return false\r\n }\r\n },\r\n toggleExpansion: function(key, state) {\r\n var node = this.getNodeByKey(key);\r\n this._setFieldState(node, EXPANDED, state);\r\n if (state) {\r\n this._updateExpansion(key)\r\n }\r\n this._expandedNodesKeys = this._updateNodesKeysArray(EXPANDED)\r\n },\r\n isFiltered: function(item) {\r\n return !this.options.searchValue.length || !!this._filterDataStructure(this.options.searchValue, [item]).length\r\n },\r\n _createCriteria: function(selector, value, operation) {\r\n var searchFilter = [];\r\n if (!Array.isArray(selector)) {\r\n return [selector, operation, value]\r\n }\r\n each(selector, (function(i, item) {\r\n searchFilter.push([item, operation, value], \"or\")\r\n }));\r\n searchFilter.pop();\r\n return searchFilter\r\n },\r\n _filterDataStructure: function(filterValue, dataStructure) {\r\n var selector = this.options.searchExpr || this.options.dataAccessors.getters.display;\r\n var operation = uiSearchBoxMixin.getOperationBySearchMode(this.options.searchMode);\r\n var criteria = this._createCriteria(selector, filterValue, operation);\r\n dataStructure = dataStructure || this._initialDataStructure;\r\n return query(dataStructure, {\r\n langParams: this.options.langParams\r\n }).filter(criteria).toArray()\r\n },\r\n search: function(searchValue) {\r\n var that = this;\r\n var matches = this._filterDataStructure(searchValue);\r\n var dataConverter = this.options.dataConverter;\r\n ! function lookForParents(matches, index) {\r\n var length = matches.length;\r\n while (index < length) {\r\n var node = matches[index];\r\n if (node.internalFields.parentKey === that.options.rootValue) {\r\n index++;\r\n continue\r\n }\r\n var parent = dataConverter.getParentNode(node);\r\n if (!parent) {\r\n errors.log(\"W1007\", node.internalFields.parentKey, node.internalFields.key);\r\n index++;\r\n continue\r\n }\r\n if (!parent.internalFields.expanded) {\r\n that._setFieldState(parent, EXPANDED, true)\r\n }\r\n if (matches.includes(parent)) {\r\n index++;\r\n continue\r\n }\r\n matches.splice(index, 0, parent);\r\n lookForParents(matches, index)\r\n }\r\n }(matches, 0);\r\n if (this.options.sort) {\r\n matches = storeHelper.queryByOptions(query(matches), {\r\n sort: this.options.sort,\r\n langParams: this.options.langParams\r\n }).toArray()\r\n }\r\n dataConverter._indexByKey = {};\r\n each(matches, (function(index, node) {\r\n node.internalFields.childrenKeys = [];\r\n dataConverter._indexByKey[node.internalFields.key] = index\r\n }));\r\n dataConverter._dataStructure = matches;\r\n dataConverter.setChildrenKeys();\r\n return dataConverter._dataStructure\r\n }\r\n});\r\nexport default DataAdapter;\r\n","/**\r\n * DevExtreme (esm/ui/hierarchical_collection/ui.hierarchical_collection_widget.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 compileGetter,\r\n compileSetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n getImageContainer\r\n} from \"../../core/utils/icon\";\r\nimport HierarchicalDataAdapter from \"./ui.data_adapter\";\r\nimport CollectionWidget from \"../collection/ui.collection_widget.edit\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../core/templates/bindable_template\";\r\nimport {\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar HierarchicalCollectionWidget = CollectionWidget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n keyExpr: \"id\",\r\n displayExpr: \"text\",\r\n selectedExpr: \"selected\",\r\n disabledExpr: \"disabled\",\r\n itemsExpr: \"items\",\r\n hoverStateEnabled: true,\r\n parentIdExpr: \"parentId\",\r\n expandedExpr: \"expanded\"\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._initAccessors();\r\n this._initDataAdapter();\r\n this._initDynamicTemplates()\r\n },\r\n _initDataSource: function() {\r\n this.callBase();\r\n this._dataSource && this._dataSource.paginate(false)\r\n },\r\n _initDataAdapter: function() {\r\n var accessors = this._createDataAdapterAccessors();\r\n this._dataAdapter = new HierarchicalDataAdapter(extend({\r\n dataAccessors: {\r\n getters: accessors.getters,\r\n setters: accessors.setters\r\n },\r\n items: this.option(\"items\")\r\n }, this._getDataAdapterOptions()))\r\n },\r\n _getDataAdapterOptions: noop,\r\n _getItemExtraPropNames: noop,\r\n _initDynamicTemplates: function() {\r\n var fields = [\"text\", \"html\", \"items\", \"icon\"].concat(this._getItemExtraPropNames());\r\n this._templateManager.addDefaultTemplates({\r\n item: new BindableTemplate(this._addContent.bind(this), fields, this.option(\"integrationOptions.watchMethod\"), {\r\n text: this._displayGetter,\r\n items: this._itemsGetter\r\n })\r\n })\r\n },\r\n _addContent: function($container, itemData) {\r\n $container.html(itemData.html).append(this._getIconContainer(itemData)).append(this._getTextContainer(itemData))\r\n },\r\n _getIconContainer: function(itemData) {\r\n return itemData.icon ? getImageContainer(itemData.icon) : void 0\r\n },\r\n _getTextContainer: function(itemData) {\r\n return $(\"\").text(itemData.text)\r\n },\r\n _initAccessors: function() {\r\n var that = this;\r\n each(this._getAccessors(), (function(_, accessor) {\r\n that._compileAccessor(accessor)\r\n }));\r\n this._compileDisplayGetter()\r\n },\r\n _getAccessors: function() {\r\n return [\"key\", \"selected\", \"items\", \"disabled\", \"parentId\", \"expanded\"]\r\n },\r\n _getChildNodes: function(node) {\r\n var that = this;\r\n var arr = [];\r\n each(node.internalFields.childrenKeys, (function(_, key) {\r\n var childNode = that._dataAdapter.getNodeByKey(key);\r\n arr.push(childNode)\r\n }));\r\n return arr\r\n },\r\n _hasChildren: function(node) {\r\n return node && node.internalFields.childrenKeys.length\r\n },\r\n _compileAccessor: function(optionName) {\r\n var getter = \"_\" + optionName + \"Getter\";\r\n var setter = \"_\" + optionName + \"Setter\";\r\n var optionExpr = this.option(optionName + \"Expr\");\r\n if (!optionExpr) {\r\n this[getter] = noop;\r\n this[setter] = noop;\r\n return\r\n } else if (isFunction(optionExpr)) {\r\n this[setter] = function(obj, value) {\r\n obj[optionExpr()] = value\r\n };\r\n this[getter] = function(obj) {\r\n return obj[optionExpr()]\r\n };\r\n return\r\n }\r\n this[getter] = compileGetter(optionExpr);\r\n this[setter] = compileSetter(optionExpr)\r\n },\r\n _createDataAdapterAccessors: function() {\r\n var that = this;\r\n var accessors = {\r\n getters: {},\r\n setters: {}\r\n };\r\n each(this._getAccessors(), (function(_, accessor) {\r\n var getterName = \"_\" + accessor + \"Getter\";\r\n var setterName = \"_\" + accessor + \"Setter\";\r\n var newAccessor = \"parentId\" === accessor ? \"parentKey\" : accessor;\r\n accessors.getters[newAccessor] = that[getterName];\r\n accessors.setters[newAccessor] = that[setterName]\r\n }));\r\n accessors.getters.display = !this._displayGetter ? itemData => itemData.text : this._displayGetter;\r\n return accessors\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._addWidgetClass()\r\n },\r\n _addWidgetClass: function() {\r\n this._focusTarget().addClass(this._widgetClass())\r\n },\r\n _widgetClass: noop,\r\n _renderItemFrame: function(index, itemData) {\r\n var $itemFrame = this.callBase.apply(this, arguments);\r\n $itemFrame.toggleClass(DISABLED_STATE_CLASS, !!this._disabledGetter(itemData));\r\n return $itemFrame\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"displayExpr\":\r\n case \"keyExpr\":\r\n this._initAccessors();\r\n this._initDynamicTemplates();\r\n this.repaint();\r\n break;\r\n case \"itemsExpr\":\r\n case \"selectedExpr\":\r\n case \"disabledExpr\":\r\n case \"expandedExpr\":\r\n case \"parentIdExpr\":\r\n this._initAccessors();\r\n this._initDataAdapter();\r\n this.repaint();\r\n break;\r\n case \"items\":\r\n this._initDataAdapter();\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default HierarchicalCollectionWidget;\r\n","/**\r\n * DevExtreme (esm/ui/context_menu/ui.menu_base.edit.strategy.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 map\r\n} from \"../../core/utils/iterator\";\r\nimport PlainEditStrategy from \"../collection/ui.collection_widget.edit.strategy.plain\";\r\nclass MenuBaseEditStrategy extends PlainEditStrategy {\r\n _getPlainItems() {\r\n return map(this._collectionWidget.option(\"items\"), (function getMenuItems(item) {\r\n return item.items ? [item].concat(map(item.items, getMenuItems)) : item\r\n }))\r\n }\r\n _stringifyItem(item) {\r\n return JSON.stringify(item, (key, value) => {\r\n if (\"template\" === key) {\r\n return this._getTemplateString(value)\r\n }\r\n return value\r\n })\r\n }\r\n _getTemplateString(template) {\r\n var result;\r\n if (\"object\" === typeof template) {\r\n result = $(template).text()\r\n } else {\r\n result = template.toString()\r\n }\r\n return result\r\n }\r\n}\r\nexport default MenuBaseEditStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/context_menu/ui.menu_base.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 $ from \"../../core/renderer\";\r\nimport {\r\n noop,\r\n asyncNoop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isPlainObject,\r\n isObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n render\r\n} from \"../widget/utils.ink_ripple\";\r\nimport HierarchicalCollectionWidget from \"../hierarchical_collection/ui.hierarchical_collection_widget\";\r\nimport MenuBaseEditStrategy from \"./ui.menu_base.edit.strategy\";\r\nimport devices from \"../../core/devices\";\r\nimport MenuItem from \"../collection/item\";\r\nvar DX_MENU_CLASS = \"dx-menu\";\r\nvar DX_MENU_NO_ICONS_CLASS = DX_MENU_CLASS + \"-no-icons\";\r\nvar DX_MENU_BASE_CLASS = \"dx-menu-base\";\r\nvar ITEM_CLASS = DX_MENU_CLASS + \"-item\";\r\nvar DX_ITEM_CONTENT_CLASS = ITEM_CLASS + \"-content\";\r\nvar DX_MENU_SELECTED_ITEM_CLASS = ITEM_CLASS + \"-selected\";\r\nvar DX_MENU_ITEM_WRAPPER_CLASS = ITEM_CLASS + \"-wrapper\";\r\nvar DX_MENU_ITEMS_CONTAINER_CLASS = DX_MENU_CLASS + \"-items-container\";\r\nvar DX_MENU_ITEM_EXPANDED_CLASS = ITEM_CLASS + \"-expanded\";\r\nvar DX_MENU_SEPARATOR_CLASS = DX_MENU_CLASS + \"-separator\";\r\nvar DX_MENU_ITEM_LAST_GROUP_ITEM = DX_MENU_CLASS + \"-last-group-item\";\r\nvar DX_ITEM_HAS_TEXT = ITEM_CLASS + \"-has-text\";\r\nvar DX_ITEM_HAS_ICON = ITEM_CLASS + \"-has-icon\";\r\nvar DX_ITEM_HAS_SUBMENU = ITEM_CLASS + \"-has-submenu\";\r\nvar DX_MENU_ITEM_POPOUT_CLASS = ITEM_CLASS + \"-popout\";\r\nvar DX_MENU_ITEM_POPOUT_CONTAINER_CLASS = DX_MENU_ITEM_POPOUT_CLASS + \"-container\";\r\nvar DX_MENU_ITEM_CAPTION_CLASS = ITEM_CLASS + \"-text\";\r\nvar SINGLE_SELECTION_MODE = \"single\";\r\nvar DEFAULT_DELAY = {\r\n show: 50,\r\n hide: 300\r\n};\r\nvar DX_MENU_ITEM_CAPTION_URL_CLASS = \"\".concat(DX_MENU_ITEM_CAPTION_CLASS, \"-with-url\");\r\nvar DX_ICON_WITH_URL_CLASS = \"dx-icon-with-url\";\r\nvar DX_ITEM_URL_CLASS = \"dx-item-url\";\r\nclass MenuBase extends HierarchicalCollectionWidget {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n items: [],\r\n cssClass: \"\",\r\n activeStateEnabled: true,\r\n showSubmenuMode: {\r\n name: \"onHover\",\r\n delay: {\r\n show: 50,\r\n hide: 300\r\n }\r\n },\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n from: 0,\r\n to: 1,\r\n duration: 100\r\n },\r\n hide: {\r\n type: \"fade\",\r\n from: 1,\r\n to: 0,\r\n duration: 100\r\n }\r\n },\r\n selectByClick: false,\r\n focusOnSelectedItem: false,\r\n keyExpr: null,\r\n _itemAttributes: {\r\n role: \"menuitem\"\r\n },\r\n useInkRipple: false\r\n })\r\n }\r\n _itemDataKey() {\r\n return \"dxMenuItemDataKey\"\r\n }\r\n _itemClass() {\r\n return ITEM_CLASS\r\n }\r\n _setAriaSelectionAttribute() {}\r\n _selectedItemClass() {\r\n return DX_MENU_SELECTED_ITEM_CLASS\r\n }\r\n _widgetClass() {\r\n return DX_MENU_BASE_CLASS\r\n }\r\n _focusTarget() {\r\n return this._itemContainer()\r\n }\r\n _clean() {\r\n this.option(\"focusedElement\", null);\r\n super._clean()\r\n }\r\n _supportedKeys() {\r\n return extend(super._supportedKeys(), {\r\n space: () => {\r\n var $item = $(this.option(\"focusedElement\"));\r\n if (!$item.length || !this._isSelectionEnabled()) {\r\n return\r\n }\r\n this.selectItem($item[0])\r\n },\r\n pageUp: noop,\r\n pageDown: noop\r\n })\r\n }\r\n _isSelectionEnabled() {\r\n return this.option(\"selectionMode\") === SINGLE_SELECTION_MODE\r\n }\r\n _init() {\r\n this._activeStateUnit = \".\".concat(ITEM_CLASS);\r\n super._init();\r\n this._renderSelectedItem();\r\n this._initActions()\r\n }\r\n _getLinkContainer(iconContainer, textContainer, _ref) {\r\n var {\r\n linkAttr: linkAttr,\r\n url: url\r\n } = _ref;\r\n null === iconContainer || void 0 === iconContainer ? void 0 : iconContainer.addClass(DX_ICON_WITH_URL_CLASS);\r\n null === textContainer || void 0 === textContainer ? void 0 : textContainer.addClass(DX_MENU_ITEM_CAPTION_URL_CLASS);\r\n var linkAttributes = isObject(linkAttr) ? linkAttr : {};\r\n return $(\"\").addClass(DX_ITEM_URL_CLASS).attr(_extends({}, linkAttributes, {\r\n href: url\r\n })).append(iconContainer).append(textContainer)\r\n }\r\n _addContent($container, itemData) {\r\n var {\r\n html: html,\r\n url: url\r\n } = itemData;\r\n var iconContainer = this._getIconContainer(itemData);\r\n var textContainer = this._getTextContainer(itemData);\r\n $container.html(html);\r\n if (url) {\r\n var link = this._getLinkContainer(iconContainer, textContainer, itemData);\r\n $container.append(link)\r\n } else {\r\n $container.append(iconContainer).append(textContainer)\r\n }\r\n $container.append(this._getPopoutContainer(itemData));\r\n this._addContentClasses(itemData, $container.parent())\r\n }\r\n _getTextContainer(itemData) {\r\n var {\r\n text: text\r\n } = itemData;\r\n if (!text) {\r\n return\r\n }\r\n var $itemContainer = $(\"\").addClass(DX_MENU_ITEM_CAPTION_CLASS);\r\n var itemText = isPlainObject(itemData) ? text : String(itemData);\r\n return $itemContainer.text(itemText)\r\n }\r\n _getItemExtraPropNames() {\r\n return [\"url\", \"linkAttr\"]\r\n }\r\n _getPopoutContainer(itemData) {\r\n var items = itemData.items;\r\n var $popOutContainer;\r\n if (items && items.length) {\r\n var $popOutImage = $(\"
\").addClass(DX_MENU_ITEM_POPOUT_CLASS);\r\n $popOutContainer = $(\"\").addClass(DX_MENU_ITEM_POPOUT_CONTAINER_CLASS).append($popOutImage)\r\n }\r\n return $popOutContainer\r\n }\r\n _getDataAdapterOptions() {\r\n return {\r\n rootValue: 0,\r\n multipleSelection: false,\r\n recursiveSelection: false,\r\n recursiveExpansion: false,\r\n searchValue: \"\"\r\n }\r\n }\r\n _selectByItem(selectedItem) {\r\n if (!selectedItem) {\r\n return\r\n }\r\n var nodeToSelect = this._dataAdapter.getNodeByItem(selectedItem);\r\n this._dataAdapter.toggleSelection(nodeToSelect.internalFields.key, true)\r\n }\r\n _renderSelectedItem() {\r\n var selectedKeys = this._dataAdapter.getSelectedNodesKeys();\r\n var selectedKey = selectedKeys.length && selectedKeys[0];\r\n var selectedItem = this.option(\"selectedItem\");\r\n if (!selectedKey) {\r\n this._selectByItem(selectedItem);\r\n return\r\n }\r\n var node = this._dataAdapter.getNodeByKey(selectedKey);\r\n if (false === node.selectable) {\r\n return\r\n }\r\n if (!selectedItem) {\r\n this.option(\"selectedItem\", node.internalFields.item);\r\n return\r\n }\r\n if (selectedItem !== node.internalFields.item) {\r\n this._dataAdapter.toggleSelection(selectedKey, false);\r\n this._selectByItem(selectedItem)\r\n }\r\n }\r\n _initActions() {}\r\n _initMarkup() {\r\n super._initMarkup();\r\n this.option(\"useInkRipple\") && this._renderInkRipple()\r\n }\r\n _renderInkRipple() {\r\n this._inkRipple = render()\r\n }\r\n _toggleActiveState($element, value, e) {\r\n super._toggleActiveState.apply(this, arguments);\r\n if (!this._inkRipple) {\r\n return\r\n }\r\n var config = {\r\n element: $element,\r\n event: e\r\n };\r\n if (value) {\r\n this._inkRipple.showWave(config)\r\n } else {\r\n this._inkRipple.hideWave(config)\r\n }\r\n }\r\n _getShowSubmenuMode() {\r\n var optionValue = this.option(\"showSubmenuMode\");\r\n optionValue = isObject(optionValue) ? optionValue.name : optionValue;\r\n return this._isDesktopDevice() ? optionValue : \"onClick\"\r\n }\r\n _initSelectedItems() {}\r\n _isDesktopDevice() {\r\n return \"desktop\" === devices.real().deviceType\r\n }\r\n _initEditStrategy() {\r\n var Strategy = MenuBaseEditStrategy;\r\n this._editStrategy = new Strategy(this)\r\n }\r\n _addCustomCssClass($element) {\r\n $element.addClass(this.option(\"cssClass\"))\r\n }\r\n _itemWrapperSelector() {\r\n return \".\".concat(DX_MENU_ITEM_WRAPPER_CLASS)\r\n }\r\n _hoverStartHandler(e) {\r\n var $itemElement = this._getItemElementByEventArgs(e);\r\n if (!$itemElement || this._isItemDisabled($itemElement)) {\r\n return\r\n }\r\n e.stopPropagation();\r\n if (\"onHover\" === this._getShowSubmenuMode()) {\r\n clearTimeout(this._showSubmenusTimeout);\r\n this._showSubmenusTimeout = setTimeout(this._showSubmenu.bind(this, $itemElement), this._getSubmenuDelay(\"show\"))\r\n }\r\n }\r\n _getAvailableItems($itemElements) {\r\n return super._getAvailableItems($itemElements).filter((function() {\r\n return \"hidden\" !== $(this).css(\"visibility\")\r\n }))\r\n }\r\n _isItemDisabled($item) {\r\n return this._disabledGetter($item.data(this._itemDataKey()))\r\n }\r\n _showSubmenu($itemElement) {\r\n this._addExpandedClass($itemElement)\r\n }\r\n _addExpandedClass(itemElement) {\r\n $(itemElement).addClass(DX_MENU_ITEM_EXPANDED_CLASS)\r\n }\r\n _getSubmenuDelay(action) {\r\n var {\r\n delay: delay\r\n } = this.option(\"showSubmenuMode\");\r\n if (!isDefined(delay)) {\r\n return DEFAULT_DELAY[action]\r\n }\r\n return isObject(delay) ? delay[action] : delay\r\n }\r\n _getItemElementByEventArgs(eventArgs) {\r\n var $target = $(eventArgs.target);\r\n if ($target.hasClass(this._itemClass()) || $target.get(0) === eventArgs.currentTarget) {\r\n return $target\r\n }\r\n while (!$target.hasClass(this._itemClass())) {\r\n $target = $target.parent();\r\n if ($target.hasClass(\"dx-submenu\")) {\r\n return null\r\n }\r\n }\r\n return $target\r\n }\r\n _hoverEndHandler() {\r\n clearTimeout(this._showSubmenusTimeout)\r\n }\r\n _hasSubmenu(node) {\r\n return node && node.internalFields.childrenKeys.length\r\n }\r\n _renderContentImpl() {\r\n this._renderItems(this._dataAdapter.getRootNodes())\r\n }\r\n _renderItems(nodes, submenuContainer) {\r\n if (nodes.length) {\r\n this.hasIcons = false;\r\n var $nodeContainer = this._renderContainer(this.$element(), submenuContainer);\r\n var firstVisibleIndex = -1;\r\n var nextGroupFirstIndex = -1;\r\n each(nodes, (index, node) => {\r\n var isVisibleNode = false !== node.visible;\r\n if (isVisibleNode && firstVisibleIndex < 0) {\r\n firstVisibleIndex = index\r\n }\r\n var isBeginGroup = firstVisibleIndex < index && (node.beginGroup || index === nextGroupFirstIndex);\r\n if (isBeginGroup) {\r\n nextGroupFirstIndex = isVisibleNode ? index : index + 1\r\n }\r\n if (index === nextGroupFirstIndex && firstVisibleIndex < index) {\r\n this._renderSeparator($nodeContainer)\r\n }\r\n this._renderItem(index, node, $nodeContainer)\r\n });\r\n if (!this.hasIcons) {\r\n $nodeContainer.addClass(DX_MENU_NO_ICONS_CLASS)\r\n }\r\n }\r\n }\r\n _renderContainer($wrapper) {\r\n var $container = $(\"
    \");\r\n this.setAria(\"role\", \"none\", $container);\r\n return $container.appendTo($wrapper).addClass(DX_MENU_ITEMS_CONTAINER_CLASS)\r\n }\r\n _createDOMElement($nodeContainer) {\r\n var $node = $(\"
  • \");\r\n this.setAria(\"role\", \"none\", $node);\r\n return $node.appendTo($nodeContainer).addClass(DX_MENU_ITEM_WRAPPER_CLASS)\r\n }\r\n _renderItem(index, node, $nodeContainer, $nodeElement) {\r\n var items = this.option(\"items\");\r\n var $node = $nodeElement || this._createDOMElement($nodeContainer);\r\n if (items[index + 1] && items[index + 1].beginGroup) {\r\n $node.addClass(DX_MENU_ITEM_LAST_GROUP_ITEM)\r\n }\r\n var $itemFrame = super._renderItem(index, node.internalFields.item, $node);\r\n if (node.internalFields.item === this.option(\"selectedItem\")) {\r\n $itemFrame.addClass(DX_MENU_SELECTED_ITEM_CLASS)\r\n }\r\n $itemFrame.attr(\"tabIndex\", -1);\r\n if (this._hasSubmenu(node)) {\r\n this.setAria(\"haspopup\", \"true\", $itemFrame)\r\n }\r\n }\r\n _renderItemFrame(index, itemData, $itemContainer) {\r\n var $itemFrame = $itemContainer.children(\".\".concat(ITEM_CLASS));\r\n return $itemFrame.length ? $itemFrame : super._renderItemFrame.apply(this, arguments)\r\n }\r\n _refreshItem($item, item) {\r\n var node = this._dataAdapter.getNodeByItem(item);\r\n var index = $item.data(this._itemIndexKey());\r\n var $nodeContainer = $item.closest(\"ul\");\r\n var $nodeElement = $item.closest(\"li\");\r\n this._renderItem(index, node, $nodeContainer, $nodeElement)\r\n }\r\n _addContentClasses(itemData, $itemFrame) {\r\n var hasText = itemData.text ? !!itemData.text.length : false;\r\n var hasIcon = !!itemData.icon;\r\n var hasSubmenu = itemData.items ? !!itemData.items.length : false;\r\n $itemFrame.toggleClass(DX_ITEM_HAS_TEXT, hasText);\r\n $itemFrame.toggleClass(DX_ITEM_HAS_ICON, hasIcon);\r\n if (!this.hasIcons) {\r\n this.hasIcons = hasIcon\r\n }\r\n $itemFrame.toggleClass(DX_ITEM_HAS_SUBMENU, hasSubmenu)\r\n }\r\n _getItemContent($itemFrame) {\r\n var $itemContent = super._getItemContent($itemFrame);\r\n if (!$itemContent.length) {\r\n $itemContent = $itemFrame.children(\".\".concat(DX_ITEM_CONTENT_CLASS))\r\n }\r\n return $itemContent\r\n }\r\n _postprocessRenderItem(args) {\r\n var $itemElement = $(args.itemElement);\r\n var selectedIndex = this._dataAdapter.getSelectedNodesKeys();\r\n if (!selectedIndex.length || !this._selectedGetter(args.itemData) || !this._isItemSelectable(args.itemData)) {\r\n this._setAriaSelectionAttribute($itemElement, \"false\");\r\n return\r\n }\r\n var node = this._dataAdapter.getNodeByItem(args.itemData);\r\n if (node.internalFields.key === selectedIndex[0]) {\r\n $itemElement.addClass(this._selectedItemClass());\r\n this._setAriaSelectionAttribute($itemElement, \"true\")\r\n } else {\r\n this._setAriaSelectionAttribute($itemElement, \"false\")\r\n }\r\n }\r\n _isItemSelectable(item) {\r\n return false !== item.selectable\r\n }\r\n _renderSeparator($itemsContainer) {\r\n $(\"
  • \").appendTo($itemsContainer).addClass(DX_MENU_SEPARATOR_CLASS)\r\n }\r\n _itemClickHandler(e) {\r\n if (e._skipHandling) {\r\n return\r\n }\r\n var itemClickActionHandler = this._createAction(this._updateSubmenuVisibilityOnClick.bind(this));\r\n this._itemDXEventHandler(e, \"onItemClick\", {}, {\r\n beforeExecute: this._itemClick,\r\n afterExecute: itemClickActionHandler.bind(this)\r\n });\r\n e._skipHandling = true\r\n }\r\n _itemClick(actionArgs) {\r\n var args = actionArgs.args[0];\r\n var link = args.event.target.getElementsByClassName(DX_ITEM_URL_CLASS)[0];\r\n if (args.itemData.url && link) {\r\n link.click()\r\n }\r\n }\r\n _updateSubmenuVisibilityOnClick(actionArgs) {\r\n this._updateSelectedItemOnClick(actionArgs);\r\n if (\"onClick\" === this._getShowSubmenuMode()) {\r\n this._addExpandedClass(actionArgs.args[0].itemElement)\r\n }\r\n }\r\n _updateSelectedItemOnClick(actionArgs) {\r\n var args = actionArgs.args ? actionArgs.args[0] : actionArgs;\r\n if (!this._isItemSelectAllowed(args.itemData)) {\r\n return\r\n }\r\n var selectedItemKey = this._dataAdapter.getSelectedNodesKeys();\r\n var selectedNode = selectedItemKey.length && this._dataAdapter.getNodeByKey(selectedItemKey[0]);\r\n if (selectedNode) {\r\n this._toggleItemSelection(selectedNode, false)\r\n }\r\n if (!selectedNode || selectedNode.internalFields.item !== args.itemData) {\r\n this.selectItem(args.itemData)\r\n } else {\r\n this._fireSelectionChangeEvent(null, this.option(\"selectedItem\"));\r\n this._setOptionWithoutOptionChange(\"selectedItem\", null)\r\n }\r\n }\r\n _isItemSelectAllowed(item) {\r\n var isSelectByClickEnabled = this._isSelectionEnabled() && this.option(\"selectByClick\");\r\n return !this._isContainerEmpty() && isSelectByClickEnabled && this._isItemSelectable(item) && !this._itemsGetter(item)\r\n }\r\n _isContainerEmpty() {\r\n return this._itemContainer().is(\":empty\")\r\n }\r\n _syncSelectionOptions() {\r\n return asyncNoop()\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"showSubmenuMode\":\r\n break;\r\n case \"selectedItem\":\r\n var node = this._dataAdapter.getNodeByItem(args.value);\r\n var selectedKey = this._dataAdapter.getSelectedNodesKeys()[0];\r\n if (node && node.internalFields.key !== selectedKey) {\r\n if (false === node.selectable) {\r\n break\r\n }\r\n if (selectedKey) {\r\n this._toggleItemSelection(this._dataAdapter.getNodeByKey(selectedKey), false)\r\n }\r\n this._toggleItemSelection(node, true);\r\n this._updateSelectedItems()\r\n }\r\n break;\r\n case \"cssClass\":\r\n case \"position\":\r\n case \"selectByClick\":\r\n case \"animation\":\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _toggleItemSelection(node, value) {\r\n var itemElement = this._getElementByItem(node.internalFields.item);\r\n itemElement && $(itemElement).toggleClass(DX_MENU_SELECTED_ITEM_CLASS);\r\n this._dataAdapter.toggleSelection(node.internalFields.key, value)\r\n }\r\n _getElementByItem(itemData) {\r\n var result;\r\n each(this._itemElements(), (_, itemElement) => {\r\n if ($(itemElement).data(this._itemDataKey()) !== itemData) {\r\n return true\r\n }\r\n result = itemElement;\r\n return false\r\n });\r\n return result\r\n }\r\n _updateSelectedItems(oldSelection, newSelection) {\r\n if (oldSelection || newSelection) {\r\n this._fireSelectionChangeEvent(newSelection, oldSelection)\r\n }\r\n }\r\n _fireSelectionChangeEvent(addedSelection, removedSelection) {\r\n this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })({\r\n addedItems: [addedSelection],\r\n removedItems: [removedSelection]\r\n })\r\n }\r\n selectItem(itemElement) {\r\n var itemData = itemElement.nodeType ? this._getItemData(itemElement) : itemElement;\r\n var selectedKey = this._dataAdapter.getSelectedNodesKeys()[0];\r\n var selectedItem = this.option(\"selectedItem\");\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n if (node.internalFields.key !== selectedKey) {\r\n if (selectedKey) {\r\n this._toggleItemSelection(this._dataAdapter.getNodeByKey(selectedKey), false)\r\n }\r\n this._toggleItemSelection(node, true);\r\n this._updateSelectedItems(selectedItem, itemData);\r\n this._setOptionWithoutOptionChange(\"selectedItem\", itemData)\r\n }\r\n }\r\n unselectItem(itemElement) {\r\n var itemData = itemElement.nodeType ? this._getItemData(itemElement) : itemElement;\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n var selectedItem = this.option(\"selectedItem\");\r\n if (node.internalFields.selected) {\r\n this._toggleItemSelection(node, false);\r\n this._updateSelectedItems(selectedItem, null);\r\n this._setOptionWithoutOptionChange(\"selectedItem\", null)\r\n }\r\n }\r\n}\r\nMenuBase.ItemClass = MenuItem;\r\nexport default MenuBase;\r\n","/**\r\n * DevExtreme (esm/ui/context_menu/ui.context_menu.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 eventsEngine from \"../../events/core/events_engine\";\r\nimport Guid from \"../../core/guid\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isObject,\r\n isRenderer,\r\n isWindow,\r\n isFunction,\r\n isPlainObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n contains\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n hasWindow,\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport fx from \"../../animation/fx\";\r\nimport animationPosition from \"../../animation/position\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport Overlay from \"../overlay/ui.overlay\";\r\nimport MenuBase from \"./ui.menu_base\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n name as contextMenuEventName\r\n} from \"../../events/contextmenu\";\r\nimport holdEvent from \"../../events/hold\";\r\nvar DX_MENU_CLASS = \"dx-menu\";\r\nvar DX_MENU_ITEM_CLASS = DX_MENU_CLASS + \"-item\";\r\nvar DX_MENU_ITEM_EXPANDED_CLASS = DX_MENU_ITEM_CLASS + \"-expanded\";\r\nvar DX_MENU_PHONE_CLASS = \"dx-menu-phone-overlay\";\r\nvar DX_MENU_ITEMS_CONTAINER_CLASS = DX_MENU_CLASS + \"-items-container\";\r\nvar DX_MENU_ITEM_WRAPPER_CLASS = DX_MENU_ITEM_CLASS + \"-wrapper\";\r\nvar DX_SUBMENU_CLASS = \"dx-submenu\";\r\nvar DX_CONTEXT_MENU_CLASS = \"dx-context-menu\";\r\nvar DX_HAS_CONTEXT_MENU_CLASS = \"dx-has-context-menu\";\r\nvar DX_STATE_DISABLED_CLASS = \"dx-state-disabled\";\r\nvar DX_STATE_FOCUSED_CLASS = \"dx-state-focused\";\r\nvar DX_STATE_HOVER_CLASS = \"dx-state-hover\";\r\nvar OVERLAY_CONTENT_CLASS = \"dx-overlay-content\";\r\nvar FOCUS_UP = \"up\";\r\nvar FOCUS_DOWN = \"down\";\r\nvar FOCUS_LEFT = \"left\";\r\nvar FOCUS_RIGHT = \"right\";\r\nvar FOCUS_FIRST = \"first\";\r\nvar FOCUS_LAST = \"last\";\r\nvar ACTIONS = [\"onShowing\", \"onShown\", \"onSubmenuCreated\", \"onHiding\", \"onHidden\", \"onPositioning\", \"onLeftFirstItem\", \"onLeftLastItem\", \"onCloseRootSubmenu\", \"onExpandLastSubmenu\"];\r\nvar LOCAL_SUBMENU_DIRECTIONS = [FOCUS_UP, FOCUS_DOWN, FOCUS_FIRST, FOCUS_LAST];\r\nvar DEFAULT_SHOW_EVENT = \"dxcontextmenu\";\r\nvar window = getWindow();\r\nclass ContextMenu extends MenuBase {\r\n getShowEvent(showEventOption) {\r\n var result = null;\r\n if (isObject(showEventOption)) {\r\n if (null !== showEventOption.name) {\r\n result = showEventOption.name || DEFAULT_SHOW_EVENT\r\n }\r\n } else {\r\n result = showEventOption\r\n }\r\n return result\r\n }\r\n getShowDelay(showEventOption) {\r\n return isObject(showEventOption) && showEventOption.delay\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n showEvent: DEFAULT_SHOW_EVENT,\r\n hideOnOutsideClick: true,\r\n position: {\r\n at: \"top left\",\r\n my: \"top left\"\r\n },\r\n onShowing: null,\r\n onShown: null,\r\n onSubmenuCreated: null,\r\n onHiding: null,\r\n onHidden: null,\r\n onPositioning: null,\r\n submenuDirection: \"auto\",\r\n visible: false,\r\n target: void 0,\r\n onLeftFirstItem: null,\r\n onLeftLastItem: null,\r\n onCloseRootSubmenu: null,\r\n onExpandLastSubmenu: null\r\n })\r\n }\r\n _defaultOptionsRules() {\r\n return super._defaultOptionsRules().concat([{\r\n device: () => !hasWindow(),\r\n options: {\r\n animation: null\r\n }\r\n }])\r\n }\r\n _setDeprecatedOptions() {\r\n super._setDeprecatedOptions();\r\n extend(this._deprecatedOptions, {\r\n closeOnOutsideClick: {\r\n since: \"22.2\",\r\n alias: \"hideOnOutsideClick\"\r\n }\r\n })\r\n }\r\n _initActions() {\r\n this._actions = {};\r\n each(ACTIONS, (index, action) => {\r\n this._actions[action] = this._createActionByOption(action) || noop\r\n })\r\n }\r\n _setOptionsByReference() {\r\n super._setOptionsByReference();\r\n extend(this._optionsByReference, {\r\n animation: true,\r\n selectedItem: true\r\n })\r\n }\r\n _focusInHandler() {}\r\n _itemContainer() {\r\n return this._overlay ? this._overlay.$content() : $()\r\n }\r\n _eventBindingTarget() {\r\n return this._itemContainer()\r\n }\r\n itemsContainer() {\r\n return this._overlay ? this._overlay.$content() : void 0\r\n }\r\n _supportedKeys() {\r\n return extend(super._supportedKeys(), {\r\n space: () => {\r\n var $item = $(this.option(\"focusedElement\"));\r\n this.hide();\r\n if (!$item.length || !this._isSelectionEnabled()) {\r\n return\r\n }\r\n this.selectItem($item[0])\r\n },\r\n escape: this.hide\r\n })\r\n }\r\n _getActiveItem() {\r\n var $availableItems = this._getAvailableItems();\r\n var $focusedItem = $availableItems.filter(\".\".concat(DX_STATE_FOCUSED_CLASS));\r\n var $hoveredItem = $availableItems.filter(\".\".concat(DX_STATE_HOVER_CLASS));\r\n var $hoveredItemContainer = $hoveredItem.closest(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS));\r\n if ($hoveredItemContainer.find(\".\".concat(DX_MENU_ITEM_CLASS)).index($focusedItem) >= 0) {\r\n return $focusedItem\r\n }\r\n if ($hoveredItem.length) {\r\n return $hoveredItem\r\n }\r\n return super._getActiveItem()\r\n }\r\n _moveFocus(location) {\r\n var $items = this._getItemsByLocation(location);\r\n var $oldTarget = this._getActiveItem(true);\r\n var $hoveredItem = this.itemsContainer().find(\".\".concat(DX_STATE_HOVER_CLASS));\r\n var $focusedItem = $(this.option(\"focusedElement\"));\r\n var $activeItemHighlighted = !!($focusedItem.length || $hoveredItem.length);\r\n var $newTarget;\r\n switch (location) {\r\n case FOCUS_UP:\r\n $newTarget = $activeItemHighlighted ? this._prevItem($items) : $oldTarget;\r\n this._setFocusedElement($newTarget);\r\n if ($oldTarget.is($items.first())) {\r\n this._actions.onLeftFirstItem($oldTarget)\r\n }\r\n break;\r\n case FOCUS_DOWN:\r\n $newTarget = $activeItemHighlighted ? this._nextItem($items) : $oldTarget;\r\n this._setFocusedElement($newTarget);\r\n if ($oldTarget.is($items.last())) {\r\n this._actions.onLeftLastItem($oldTarget)\r\n }\r\n break;\r\n case FOCUS_RIGHT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._hideSubmenuHandler() : this._expandSubmenuHandler($items, location);\r\n this._setFocusedElement($newTarget);\r\n break;\r\n case FOCUS_LEFT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._expandSubmenuHandler($items, location) : this._hideSubmenuHandler();\r\n this._setFocusedElement($newTarget);\r\n break;\r\n case FOCUS_FIRST:\r\n $newTarget = $items.first();\r\n this._setFocusedElement($newTarget);\r\n break;\r\n case FOCUS_LAST:\r\n $newTarget = $items.last();\r\n this._setFocusedElement($newTarget);\r\n break;\r\n default:\r\n return super._moveFocus(location)\r\n }\r\n }\r\n _setFocusedElement($element) {\r\n if ($element && 0 !== $element.length) {\r\n this.option(\"focusedElement\", getPublicElement($element))\r\n }\r\n }\r\n _getItemsByLocation(location) {\r\n var $activeItem = this._getActiveItem(true);\r\n var $items;\r\n if (LOCAL_SUBMENU_DIRECTIONS.includes(location)) {\r\n $items = $activeItem.closest(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS)).children().children()\r\n }\r\n $items = this._getAvailableItems($items);\r\n return $items\r\n }\r\n _getAriaTarget() {\r\n return this.$element()\r\n }\r\n _refreshActiveDescendant() {\r\n if (isDefined(this._overlay)) {\r\n var $target = this._overlay.$content();\r\n super._refreshActiveDescendant($target)\r\n }\r\n }\r\n _hideSubmenuHandler() {\r\n var $curItem = this._getActiveItem(true);\r\n var $parentItem = $curItem.parents(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS)).first();\r\n if ($parentItem.length) {\r\n this._hideSubmenusOnSameLevel($parentItem);\r\n this._hideSubmenu($curItem.closest(\".\".concat(DX_SUBMENU_CLASS)));\r\n return $parentItem\r\n }\r\n this._actions.onCloseRootSubmenu($curItem);\r\n return $curItem\r\n }\r\n _expandSubmenuHandler($items, location) {\r\n var $curItem = this._getActiveItem(true);\r\n var itemData = this._getItemData($curItem);\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n var isItemHasSubmenu = this._hasSubmenu(node);\r\n var $submenu = $curItem.children(\".\".concat(DX_SUBMENU_CLASS));\r\n if (isItemHasSubmenu && !$curItem.hasClass(DX_STATE_DISABLED_CLASS)) {\r\n if (!$submenu.length || \"hidden\" === $submenu.css(\"visibility\")) {\r\n this._showSubmenu($curItem)\r\n }\r\n return this._nextItem(this._getItemsByLocation(location))\r\n }\r\n this._actions.onExpandLastSubmenu($curItem);\r\n return\r\n }\r\n _clean() {\r\n if (this._overlay) {\r\n this._overlay.$element().remove();\r\n this._overlay = null\r\n }\r\n this._detachShowContextMenuEvents(this._getTarget());\r\n super._clean()\r\n }\r\n _initMarkup() {\r\n this.$element().addClass(DX_HAS_CONTEXT_MENU_CLASS);\r\n super._initMarkup()\r\n }\r\n _render() {\r\n super._render();\r\n this._renderVisibility(this.option(\"visible\"));\r\n this._addWidgetClass()\r\n }\r\n _renderContentImpl() {\r\n this._detachShowContextMenuEvents(this._getTarget());\r\n this._attachShowContextMenuEvents()\r\n }\r\n _attachKeyboardEvents() {\r\n !this._keyboardListenerId && this._focusTarget().length && super._attachKeyboardEvents()\r\n }\r\n _renderContextMenuOverlay() {\r\n if (this._overlay) {\r\n return\r\n }\r\n var overlayOptions = this._getOverlayOptions();\r\n this._overlay = this._createComponent($(\"
    \").appendTo(this._$element), Overlay, overlayOptions);\r\n var $overlayContent = this._overlay.$content();\r\n $overlayContent.addClass(DX_CONTEXT_MENU_CLASS);\r\n this._addCustomCssClass($overlayContent);\r\n this._addPlatformDependentClass($overlayContent);\r\n this._attachContextMenuEvent()\r\n }\r\n preventShowingDefaultContextMenuAboveOverlay() {\r\n var $itemContainer = this._itemContainer();\r\n var eventName = addNamespace(contextMenuEventName, this.NAME);\r\n eventsEngine.off($itemContainer, eventName, \".\".concat(DX_SUBMENU_CLASS));\r\n eventsEngine.on($itemContainer, eventName, \".\".concat(DX_SUBMENU_CLASS), (e => {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n eventsEngine.off($itemContainer, eventName, \".\".concat(DX_SUBMENU_CLASS))\r\n }).bind(this))\r\n }\r\n _itemContextMenuHandler(e) {\r\n super._itemContextMenuHandler(e);\r\n e.stopPropagation()\r\n }\r\n _addPlatformDependentClass($element) {\r\n if (devices.current().phone) {\r\n $element.addClass(DX_MENU_PHONE_CLASS)\r\n }\r\n }\r\n _detachShowContextMenuEvents(target) {\r\n var showEvent = this.getShowEvent(this.option(\"showEvent\"));\r\n if (!showEvent) {\r\n return\r\n }\r\n var eventName = addNamespace(showEvent, this.NAME);\r\n if (this._showContextMenuEventHandler) {\r\n eventsEngine.off(domAdapter.getDocument(), eventName, target, this._showContextMenuEventHandler)\r\n } else {\r\n eventsEngine.off($(target), eventName)\r\n }\r\n }\r\n _attachShowContextMenuEvents() {\r\n var target = this._getTarget();\r\n var showEvent = this.getShowEvent(this.option(\"showEvent\"));\r\n if (!showEvent) {\r\n return\r\n }\r\n var eventName = addNamespace(showEvent, this.NAME);\r\n var contextMenuAction = this._createAction(e => {\r\n var delay = this.getShowDelay(this.option(\"showEvent\"));\r\n if (delay) {\r\n setTimeout(() => this._show(e.event), delay)\r\n } else {\r\n this._show(e.event)\r\n }\r\n }, {\r\n validatingTargetName: \"target\"\r\n });\r\n var handler = e => contextMenuAction({\r\n event: e,\r\n target: $(e.currentTarget)\r\n });\r\n contextMenuAction = this._createAction(contextMenuAction);\r\n if (isRenderer(target) || target.nodeType || isWindow(target)) {\r\n this._showContextMenuEventHandler = void 0;\r\n eventsEngine.on(target, eventName, handler)\r\n } else {\r\n this._showContextMenuEventHandler = handler;\r\n eventsEngine.on(domAdapter.getDocument(), eventName, target, this._showContextMenuEventHandler)\r\n }\r\n }\r\n _hoverEndHandler(e) {\r\n super._hoverEndHandler(e);\r\n e.stopPropagation()\r\n }\r\n _renderDimensions() {}\r\n _renderContainer($wrapper, submenuContainer) {\r\n var $holder = submenuContainer || this._itemContainer();\r\n $wrapper = $(\"
    \");\r\n $wrapper.appendTo($holder).addClass(DX_SUBMENU_CLASS).css(\"visibility\", submenuContainer ? \"hidden\" : \"visible\");\r\n if (!$wrapper.parent().hasClass(OVERLAY_CONTENT_CLASS)) {\r\n this._addCustomCssClass($wrapper)\r\n }\r\n var $itemsContainer = super._renderContainer($wrapper);\r\n if (submenuContainer) {\r\n return $itemsContainer\r\n }\r\n if (this.option(\"width\")) {\r\n return $itemsContainer.css(\"minWidth\", this.option(\"width\"))\r\n }\r\n if (this.option(\"height\")) {\r\n return $itemsContainer.css(\"minHeight\", this.option(\"height\"))\r\n }\r\n return $itemsContainer\r\n }\r\n _renderSubmenuItems(node, $itemFrame) {\r\n this._renderItems(this._getChildNodes(node), $itemFrame);\r\n this._actions.onSubmenuCreated({\r\n itemElement: getPublicElement($itemFrame),\r\n itemData: node.internalFields.item,\r\n submenuElement: getPublicElement($itemFrame.children(\".\".concat(DX_SUBMENU_CLASS)))\r\n })\r\n }\r\n _getOverlayOptions() {\r\n var position = this.option(\"position\");\r\n var overlayOptions = {\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n animation: this.option(\"animation\"),\r\n innerOverlay: true,\r\n hideOnOutsideClick: e => this._hideOnOutsideClickHandler(e),\r\n propagateOutsideClick: true,\r\n hideOnParentScroll: true,\r\n deferRendering: false,\r\n position: {\r\n at: position.at,\r\n my: position.my,\r\n of: this._getTarget(),\r\n collision: \"flipfit\"\r\n },\r\n shading: false,\r\n showTitle: false,\r\n height: \"auto\",\r\n width: \"auto\",\r\n onShown: this._overlayShownActionHandler.bind(this),\r\n onHiding: this._overlayHidingActionHandler.bind(this),\r\n onHidden: this._overlayHiddenActionHandler.bind(this),\r\n visualContainer: window\r\n };\r\n return overlayOptions\r\n }\r\n _overlayShownActionHandler(arg) {\r\n this._actions.onShown(arg)\r\n }\r\n _overlayHidingActionHandler(arg) {\r\n this._actions.onHiding(arg);\r\n if (!arg.cancel) {\r\n this._hideAllShownSubmenus();\r\n this._setOptionWithoutOptionChange(\"visible\", false)\r\n }\r\n }\r\n _overlayHiddenActionHandler(arg) {\r\n this._actions.onHidden(arg)\r\n }\r\n _shouldHideOnOutsideClick(e) {\r\n var {\r\n closeOnOutsideClick: closeOnOutsideClick,\r\n hideOnOutsideClick: hideOnOutsideClick\r\n } = this.option();\r\n if (isFunction(hideOnOutsideClick)) {\r\n return hideOnOutsideClick(e)\r\n } else if (isFunction(closeOnOutsideClick)) {\r\n return closeOnOutsideClick(e)\r\n } else {\r\n return hideOnOutsideClick || closeOnOutsideClick\r\n }\r\n }\r\n _hideOnOutsideClickHandler(e) {\r\n if (!this._shouldHideOnOutsideClick(e)) {\r\n return false\r\n }\r\n if (domAdapter.isDocument(e.target)) {\r\n return true\r\n }\r\n var $activeItemContainer = this._getActiveItemsContainer(e.target);\r\n var $itemContainers = this._getItemsContainers();\r\n var $clickedItem = this._searchActiveItem(e.target);\r\n var $rootItem = this.$element().parents(\".\".concat(DX_MENU_ITEM_CLASS));\r\n var isRootItemClicked = $clickedItem[0] === $rootItem[0] && $clickedItem.length && $rootItem.length;\r\n var isInnerOverlayClicked = this._isIncludeOverlay($activeItemContainer, $itemContainers) && $clickedItem.length;\r\n if (isInnerOverlayClicked || isRootItemClicked) {\r\n if (\"onClick\" === this._getShowSubmenuMode()) {\r\n this._hideAllShownChildSubmenus($clickedItem)\r\n }\r\n return false\r\n }\r\n return true\r\n }\r\n _getActiveItemsContainer(target) {\r\n return $(target).closest(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS))\r\n }\r\n _getItemsContainers() {\r\n return this._overlay.$content().find(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS))\r\n }\r\n _searchActiveItem(target) {\r\n return $(target).closest(\".\".concat(DX_MENU_ITEM_CLASS)).eq(0)\r\n }\r\n _isIncludeOverlay($activeOverlay, $allOverlays) {\r\n var isSame = false;\r\n each($allOverlays, (index, $overlay) => {\r\n if ($activeOverlay.is($overlay) && !isSame) {\r\n isSame = true\r\n }\r\n });\r\n return isSame\r\n }\r\n _hideAllShownChildSubmenus($clickedItem) {\r\n var $submenuElements = $clickedItem.find(\".\".concat(DX_SUBMENU_CLASS));\r\n var shownSubmenus = extend([], this._shownSubmenus);\r\n if ($submenuElements.length > 0) {\r\n each(shownSubmenus, (index, $submenu) => {\r\n var $context = this._searchActiveItem($submenu.context).parent();\r\n if ($context.parent().is($clickedItem.parent().parent()) && !$context.is($clickedItem.parent())) {\r\n this._hideSubmenu($submenu)\r\n }\r\n })\r\n }\r\n }\r\n _showSubmenu($item) {\r\n var node = this._dataAdapter.getNodeByItem(this._getItemData($item));\r\n this._hideSubmenusOnSameLevel($item);\r\n if (!this._hasSubmenu(node)) {\r\n return\r\n }\r\n var $submenu = $item.children(\".\".concat(DX_SUBMENU_CLASS));\r\n var isSubmenuRendered = $submenu.length;\r\n super._showSubmenu($item);\r\n if (!isSubmenuRendered) {\r\n this._renderSubmenuItems(node, $item)\r\n }\r\n if (!this._isSubmenuVisible($submenu)) {\r\n this._drawSubmenu($item)\r\n }\r\n }\r\n _hideSubmenusOnSameLevel($item) {\r\n var $expandedItems = $item.parent(\".\".concat(DX_MENU_ITEM_WRAPPER_CLASS)).siblings().find(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS));\r\n if ($expandedItems.length) {\r\n $expandedItems.removeClass(DX_MENU_ITEM_EXPANDED_CLASS);\r\n this._hideSubmenu($expandedItems.find(\".\".concat(DX_SUBMENU_CLASS)))\r\n }\r\n }\r\n _hideSubmenuGroup($submenu) {\r\n if (this._isSubmenuVisible($submenu)) {\r\n this._hideSubmenuCore($submenu)\r\n }\r\n }\r\n _isSubmenuVisible($submenu) {\r\n return \"visible\" === $submenu.css(\"visibility\")\r\n }\r\n _drawSubmenu($itemElement) {\r\n var animation = this.option(\"animation\") ? this.option(\"animation\").show : {};\r\n var $submenu = $itemElement.children(\".\".concat(DX_SUBMENU_CLASS));\r\n var submenuPosition = this._getSubmenuPosition($itemElement);\r\n if (this._overlay && this._overlay.option(\"visible\")) {\r\n if (!isDefined(this._shownSubmenus)) {\r\n this._shownSubmenus = []\r\n }\r\n if (!this._shownSubmenus.includes($submenu)) {\r\n this._shownSubmenus.push($submenu)\r\n }\r\n if (animation) {\r\n fx.stop($submenu)\r\n }\r\n animationPosition.setup($submenu, submenuPosition);\r\n if (animation) {\r\n if (isPlainObject(animation.to)) {\r\n animation.to.position = submenuPosition\r\n }\r\n this._animate($submenu, animation)\r\n }\r\n $submenu.css(\"visibility\", \"visible\")\r\n }\r\n }\r\n _animate($container, options) {\r\n fx.animate($container, options)\r\n }\r\n _getSubmenuPosition($rootItem) {\r\n var submenuDirection = this.option(\"submenuDirection\").toLowerCase();\r\n var $rootItemWrapper = $rootItem.parent(\".\".concat(DX_MENU_ITEM_WRAPPER_CLASS));\r\n var position = {\r\n collision: \"flip\",\r\n of: $rootItemWrapper,\r\n offset: {\r\n h: 0,\r\n v: -1\r\n }\r\n };\r\n switch (submenuDirection) {\r\n case \"left\":\r\n position.at = \"left top\";\r\n position.my = \"right top\";\r\n break;\r\n case \"right\":\r\n position.at = \"right top\";\r\n position.my = \"left top\";\r\n break;\r\n default:\r\n if (this.option(\"rtlEnabled\")) {\r\n position.at = \"left top\";\r\n position.my = \"right top\"\r\n } else {\r\n position.at = \"right top\";\r\n position.my = \"left top\"\r\n }\r\n }\r\n return position\r\n }\r\n _updateSubmenuVisibilityOnClick(actionArgs) {\r\n if (!actionArgs.args.length) {\r\n return\r\n }\r\n var itemData = actionArgs.args[0].itemData;\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n if (!node) {\r\n return\r\n }\r\n var $itemElement = $(actionArgs.args[0].itemElement);\r\n var $submenu = $itemElement.find(\".\".concat(DX_SUBMENU_CLASS));\r\n var shouldRenderSubmenu = this._hasSubmenu(node) && !$submenu.length;\r\n if (shouldRenderSubmenu) {\r\n this._renderSubmenuItems(node, $itemElement);\r\n $submenu = $itemElement.find(\".\".concat(DX_SUBMENU_CLASS))\r\n }\r\n if ($itemElement.context === $submenu.context && \"visible\" === $submenu.css(\"visibility\")) {\r\n return\r\n }\r\n this._updateSelectedItemOnClick(actionArgs);\r\n var notCloseMenuOnItemClick = itemData && false === itemData.closeMenuOnClick;\r\n if (!itemData || itemData.disabled || notCloseMenuOnItemClick) {\r\n return\r\n }\r\n if (0 === $submenu.length) {\r\n var $prevSubmenu = $($itemElement.parents(\".\".concat(DX_SUBMENU_CLASS))[0]);\r\n this._hideSubmenu($prevSubmenu);\r\n if (!actionArgs.canceled && this._overlay && this._overlay.option(\"visible\")) {\r\n this.option(\"visible\", false)\r\n }\r\n } else {\r\n if (this._shownSubmenus && this._shownSubmenus.length > 0) {\r\n if (this._shownSubmenus[0].is($submenu)) {\r\n this._hideSubmenu($submenu)\r\n }\r\n }\r\n this._showSubmenu($itemElement)\r\n }\r\n }\r\n _hideSubmenu($curSubmenu) {\r\n var shownSubmenus = extend([], this._shownSubmenus);\r\n each(shownSubmenus, (index, $submenu) => {\r\n if ($curSubmenu.is($submenu) || contains($curSubmenu[0], $submenu[0])) {\r\n $submenu.parent().removeClass(DX_MENU_ITEM_EXPANDED_CLASS);\r\n this._hideSubmenuCore($submenu)\r\n }\r\n })\r\n }\r\n _hideSubmenuCore($submenu) {\r\n var index = this._shownSubmenus.indexOf($submenu);\r\n var animation = this.option(\"animation\") ? this.option(\"animation\").hide : null;\r\n if (index >= 0) {\r\n this._shownSubmenus.splice(index, 1)\r\n }\r\n this._stopAnimate($submenu);\r\n animation && this._animate($submenu, animation);\r\n $submenu.css(\"visibility\", \"hidden\")\r\n }\r\n _stopAnimate($container) {\r\n fx.stop($container, true)\r\n }\r\n _hideAllShownSubmenus() {\r\n var shownSubmenus = extend([], this._shownSubmenus);\r\n var $expandedItems = this._overlay.$content().find(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS));\r\n $expandedItems.removeClass(DX_MENU_ITEM_EXPANDED_CLASS);\r\n each(shownSubmenus, (_, $submenu) => {\r\n this._hideSubmenu($submenu)\r\n })\r\n }\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._renderContentImpl()\r\n }\r\n }\r\n _optionChanged(args) {\r\n if (ACTIONS.includes(args.name)) {\r\n this._initActions();\r\n return\r\n }\r\n switch (args.name) {\r\n case \"visible\":\r\n this._renderVisibility(args.value);\r\n break;\r\n case \"showEvent\":\r\n case \"position\":\r\n case \"submenuDirection\":\r\n this._invalidate();\r\n break;\r\n case \"target\":\r\n args.previousValue && this._detachShowContextMenuEvents(args.previousValue);\r\n this._invalidate();\r\n break;\r\n case \"closeOnOutsideClick\":\r\n case \"hideOnOutsideClick\":\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _renderVisibility(showing) {\r\n return showing ? this._show() : this._hide()\r\n }\r\n _toggleVisibility() {}\r\n _show(event) {\r\n var args = {\r\n jQEvent: event\r\n };\r\n var promise = (new Deferred).reject().promise();\r\n this._actions.onShowing(args);\r\n if (args.cancel) {\r\n return promise\r\n }\r\n var position = this._positionContextMenu(event);\r\n if (position) {\r\n var _event$originalEvent;\r\n if (!this._overlay) {\r\n this._renderContextMenuOverlay();\r\n this._overlay.$content().addClass(this._widgetClass());\r\n this._renderFocusState();\r\n this._attachHoverEvents();\r\n this._attachClickEvent();\r\n this._renderItems(this._dataAdapter.getRootNodes())\r\n }\r\n this._setOptionWithoutOptionChange(\"visible\", true);\r\n this._overlay.option(\"position\", position);\r\n promise = this._overlay.show();\r\n event && event.stopPropagation();\r\n this._setAriaAttributes();\r\n if ((null === event || void 0 === event ? void 0 : null === (_event$originalEvent = event.originalEvent) || void 0 === _event$originalEvent ? void 0 : _event$originalEvent.type) === holdEvent.name) {\r\n this.preventShowingDefaultContextMenuAboveOverlay()\r\n }\r\n }\r\n return promise\r\n }\r\n _setAriaAttributes() {\r\n this._overlayContentId = \"dx-\".concat(new Guid);\r\n this.setAria(\"owns\", this._overlayContentId);\r\n this.setAria({\r\n id: this._overlayContentId,\r\n role: \"menu\"\r\n }, this._overlay.$content())\r\n }\r\n _cleanAriaAttributes() {\r\n this._overlay && this.setAria(\"id\", null, this._overlay.$content());\r\n this.setAria(\"owns\", void 0)\r\n }\r\n _getTarget() {\r\n return this.option(\"target\") || this.option(\"position\").of || $(domAdapter.getDocument())\r\n }\r\n _getContextMenuPosition() {\r\n return extend({}, this.option(\"position\"), {\r\n of: this._getTarget()\r\n })\r\n }\r\n _positionContextMenu(jQEvent) {\r\n var position = this._getContextMenuPosition();\r\n var isInitialPosition = this._isInitialOptionValue(\"position\");\r\n var positioningAction = this._createActionByOption(\"onPositioning\");\r\n if (jQEvent && jQEvent.preventDefault && isInitialPosition) {\r\n position.of = jQEvent\r\n }\r\n var actionArgs = {\r\n position: position,\r\n event: jQEvent\r\n };\r\n positioningAction(actionArgs);\r\n if (actionArgs.cancel) {\r\n position = null\r\n } else if (actionArgs.event) {\r\n actionArgs.event.cancel = true;\r\n jQEvent.preventDefault()\r\n }\r\n return position\r\n }\r\n _refresh() {\r\n if (!hasWindow()) {\r\n super._refresh()\r\n } else if (this._overlay) {\r\n var lastPosition = this._overlay.option(\"position\");\r\n super._refresh();\r\n this._overlay && this._overlay.option(\"position\", lastPosition)\r\n } else {\r\n super._refresh()\r\n }\r\n }\r\n _hide() {\r\n var promise;\r\n if (this._overlay) {\r\n promise = this._overlay.hide();\r\n this._setOptionWithoutOptionChange(\"visible\", false)\r\n }\r\n this._cleanAriaAttributes();\r\n this.option(\"focusedElement\", null);\r\n return promise || (new Deferred).reject().promise()\r\n }\r\n toggle(showing) {\r\n var visible = this.option(\"visible\");\r\n showing = void 0 === showing ? !visible : showing;\r\n return this._renderVisibility(showing)\r\n }\r\n show() {\r\n return this.toggle(true)\r\n }\r\n hide() {\r\n return this.toggle(false)\r\n }\r\n}\r\nregisterComponent(\"dxContextMenu\", ContextMenu);\r\nexport default ContextMenu;\r\n","/**\r\n * DevExtreme (esm/ui/context_menu.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ContextMenu from \"./context_menu/ui.context_menu\";\r\nexport default ContextMenu;\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/context_menu/m_context_menu.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getPublicElement\r\n} from \"../../../../core/element\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport ContextMenu from \"../../../../ui/context_menu\";\r\nimport modules from \"../m_modules\";\r\nvar CONTEXT_MENU = \"dx-context-menu\";\r\nvar viewName = {\r\n columnHeadersView: \"header\",\r\n rowsView: \"content\",\r\n footerView: \"footer\",\r\n headerPanel: \"headerPanel\"\r\n};\r\nvar VIEW_NAMES = [\"columnHeadersView\", \"rowsView\", \"footerView\", \"headerPanel\"];\r\nvar ContextMenuController = modules.ViewController.inherit({\r\n init() {\r\n this.createAction(\"onContextMenuPreparing\")\r\n },\r\n getContextMenuItems(dxEvent) {\r\n if (!dxEvent) {\r\n return false\r\n }\r\n var that = this;\r\n var $targetElement = $(dxEvent.target);\r\n var $element;\r\n var $targetRowElement;\r\n var $targetCellElement;\r\n var menuItems;\r\n each(VIEW_NAMES, (function() {\r\n var _a, _b;\r\n var view = that.getView(this);\r\n $element = view && view.element();\r\n if ($element && ($element.is($targetElement) || $element.find($targetElement).length)) {\r\n $targetCellElement = $targetElement.closest(\".dx-row > td, .dx-row > tr\");\r\n $targetRowElement = $targetCellElement.parent();\r\n var rowIndex = view.getRowIndex($targetRowElement);\r\n var columnIndex = $targetCellElement[0] && $targetCellElement[0].cellIndex;\r\n var rowOptions = $targetRowElement.data(\"options\");\r\n var options = {\r\n event: dxEvent,\r\n targetElement: getPublicElement($targetElement),\r\n target: viewName[this],\r\n rowIndex: rowIndex,\r\n row: view._getRows()[rowIndex],\r\n columnIndex: columnIndex,\r\n column: null === (_b = null === (_a = null === rowOptions || void 0 === rowOptions ? void 0 : rowOptions.cells) || void 0 === _a ? void 0 : _a[columnIndex]) || void 0 === _b ? void 0 : _b.column\r\n };\r\n options.items = view.getContextMenuItems && view.getContextMenuItems(options);\r\n that.executeAction(\"onContextMenuPreparing\", options);\r\n that._contextMenuPrepared(options);\r\n menuItems = options.items;\r\n if (menuItems) {\r\n return false\r\n }\r\n }\r\n return\r\n }));\r\n return menuItems\r\n },\r\n _contextMenuPrepared: noop\r\n});\r\nvar ContextMenuView = modules.View.inherit({\r\n _renderCore() {\r\n var that = this;\r\n var $element = that.element().addClass(CONTEXT_MENU);\r\n this.setAria(\"role\", \"presentation\", $element);\r\n this._createComponent($element, ContextMenu, {\r\n onPositioning(actionArgs) {\r\n var {\r\n event: event\r\n } = actionArgs;\r\n var contextMenuInstance = actionArgs.component;\r\n var items = that.getController(\"contextMenu\").getContextMenuItems(event);\r\n if (items) {\r\n contextMenuInstance.option(\"items\", items);\r\n event.stopPropagation()\r\n } else {\r\n actionArgs.cancel = true\r\n }\r\n },\r\n onItemClick(params) {\r\n params.itemData.onItemClick && params.itemData.onItemClick(params)\r\n },\r\n cssClass: that.getWidgetContainerClass(),\r\n target: that.component.$element()\r\n })\r\n }\r\n});\r\nexport var contextMenuModule = {\r\n defaultOptions: () => ({\r\n onContextMenuPreparing: null\r\n }),\r\n controllers: {\r\n contextMenu: ContextMenuController\r\n },\r\n views: {\r\n contextMenuView: ContextMenuView\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/context_menu.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n contextMenuModule\r\n} from \"../../../grids/grid_core/context_menu/m_context_menu\";\r\nimport treeListCore from \"../m_core\";\r\ntreeListCore.registerModule(\"contextMenu\", contextMenuModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/error_handling/m_error_handling.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport modules from \"../m_modules\";\r\nvar ERROR_ROW_CLASS = \"dx-error-row\";\r\nvar ERROR_MESSAGE_CLASS = \"dx-error-message\";\r\nvar ERROR_CLOSEBUTTON_CLASS = \"dx-closebutton\";\r\nvar ACTION_CLASS = \"action\";\r\nvar ErrorHandlingController = modules.ViewController.inherit({\r\n init() {\r\n this._columnHeadersView = this.getView(\"columnHeadersView\");\r\n this._rowsView = this.getView(\"rowsView\")\r\n },\r\n _createErrorRow(error, $tableElements) {\r\n var that = this;\r\n var $errorRow;\r\n var $closeButton;\r\n var $errorMessage = this._renderErrorMessage(error);\r\n if ($tableElements) {\r\n $errorRow = $(\"
\").addClass(ERROR_ROW_CLASS);\r\n $closeButton = $(\"
\").addClass(ERROR_CLOSEBUTTON_CLASS).addClass(that.addWidgetPrefix(ACTION_CLASS));\r\n eventsEngine.on($closeButton, clickEventName, that.createAction(args => {\r\n var e = args.event;\r\n var $errorRow;\r\n var errorRowIndex = $(e.currentTarget).closest(\".\".concat(ERROR_ROW_CLASS)).index();\r\n e.stopPropagation();\r\n each($tableElements, (_, tableElement) => {\r\n $errorRow = $(tableElement).children(\"tbody\").children(\"tr\").eq(errorRowIndex);\r\n that.removeErrorRow($errorRow)\r\n });\r\n that.getController(\"resizing\") && that.getController(\"resizing\").fireContentReadyAction()\r\n }));\r\n $(\"
\").attr({\r\n colSpan: that.getController(\"columns\").getVisibleColumns().length,\r\n role: \"presentation\"\r\n }).prepend($closeButton).append($errorMessage).appendTo($errorRow);\r\n return $errorRow\r\n }\r\n return $errorMessage\r\n },\r\n _renderErrorMessage(error) {\r\n var message = error.url ? error.message.replace(error.url, \"\") : error.message || error;\r\n var $message = $(\"
\").addClass(ERROR_MESSAGE_CLASS).text(message);\r\n if (error.url) {\r\n $(\"\").attr(\"href\", error.url).text(error.url).appendTo($message)\r\n }\r\n return $message\r\n },\r\n renderErrorRow(error, rowIndex, $popupContent) {\r\n var that = this;\r\n var $errorMessageElement;\r\n var $firstErrorRow;\r\n if ($popupContent) {\r\n $popupContent.find(\".\".concat(ERROR_MESSAGE_CLASS)).remove();\r\n $errorMessageElement = that._createErrorRow(error);\r\n $popupContent.prepend($errorMessageElement);\r\n return $errorMessageElement\r\n }\r\n var viewElement = rowIndex >= 0 || !that._columnHeadersView.isVisible() ? that._rowsView : that._columnHeadersView;\r\n var $tableElements = viewElement.getTableElements();\r\n each($tableElements, (_, tableElement) => {\r\n $errorMessageElement = that._createErrorRow(error, $tableElements);\r\n $firstErrorRow = $firstErrorRow || $errorMessageElement;\r\n if (rowIndex >= 0) {\r\n var $row = viewElement._getRowElements($(tableElement)).eq(rowIndex);\r\n that.removeErrorRow($row.next());\r\n $errorMessageElement.insertAfter($row)\r\n } else {\r\n var $tbody = $(tableElement).children(\"tbody\");\r\n var rowElements = $tbody.children(\"tr\");\r\n if (that._columnHeadersView.isVisible()) {\r\n that.removeErrorRow(rowElements.last());\r\n $(tableElement).append($errorMessageElement)\r\n } else {\r\n that.removeErrorRow(rowElements.first());\r\n $tbody.first().prepend($errorMessageElement)\r\n }\r\n }\r\n });\r\n var resizingController = that.getController(\"resizing\");\r\n resizingController && resizingController.fireContentReadyAction();\r\n return $firstErrorRow\r\n },\r\n removeErrorRow($row) {\r\n if (!$row) {\r\n var $columnHeaders = this._columnHeadersView && this._columnHeadersView.element();\r\n $row = $columnHeaders && $columnHeaders.find(\".\".concat(ERROR_ROW_CLASS));\r\n if (!$row || !$row.length) {\r\n var $rowsViewElement = this._rowsView.element();\r\n $row = $rowsViewElement && $rowsViewElement.find(\".\".concat(ERROR_ROW_CLASS))\r\n }\r\n }\r\n $row && $row.hasClass(ERROR_ROW_CLASS) && $row.remove()\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"errorRowEnabled\":\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport var errorHandlingModule = {\r\n defaultOptions: () => ({\r\n errorRowEnabled: true\r\n }),\r\n controllers: {\r\n errorHandling: ErrorHandlingController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n init() {\r\n var that = this;\r\n var errorHandlingController = that.getController(\"errorHandling\");\r\n that.callBase();\r\n that.dataErrorOccurred.add((error, $popupContent) => {\r\n if (that.option(\"errorRowEnabled\")) {\r\n errorHandlingController.renderErrorRow(error, void 0, $popupContent)\r\n }\r\n });\r\n that.changed.add(e => {\r\n if (e && \"loadError\" === e.changeType) {\r\n return\r\n }\r\n var errorHandlingController = that.getController(\"errorHandling\");\r\n var editingController = that.getController(\"editing\");\r\n if (editingController && !editingController.hasChanges()) {\r\n errorHandlingController && errorHandlingController.removeErrorRow()\r\n }\r\n })\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/error_handling.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n errorHandlingModule\r\n} from \"../../../grids/grid_core/error_handling/m_error_handling\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"errorHandling\", errorHandlingModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/views/m_grid_view.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 $ from \"../../../../core/renderer\";\r\nimport browser from \"../../../../core/utils/browser\";\r\nimport {\r\n deferRender,\r\n deferUpdate\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../../core/utils/position\";\r\nimport {\r\n getHeight,\r\n getInnerWidth,\r\n getOuterWidth,\r\n getWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isDefined,\r\n isNumeric,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../../../core/utils/window\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport * as accessibility from \"../../../../ui/shared/accessibility\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nvar BORDERS_CLASS = \"borders\";\r\nvar TABLE_FIXED_CLASS = \"table-fixed\";\r\nvar IMPORTANT_MARGIN_CLASS = \"important-margin\";\r\nvar GRIDBASE_CONTAINER_CLASS = \"dx-gridbase-container\";\r\nvar GROUP_ROW_SELECTOR = \"tr.dx-group-row\";\r\nvar HIDDEN_COLUMNS_WIDTH = \"adaptiveHidden\";\r\nvar VIEW_NAMES = [\"columnsSeparatorView\", \"blockSeparatorView\", \"trackerView\", \"headerPanel\", \"columnHeadersView\", \"rowsView\", \"footerView\", \"columnChooserView\", \"filterPanelView\", \"pagerView\", \"draggingHeaderView\", \"contextMenuView\", \"errorView\", \"headerFilterView\", \"filterBuilderView\"];\r\nvar isPercentWidth = function(width) {\r\n return isString(width) && width.endsWith(\"%\")\r\n};\r\nvar isPixelWidth = function(width) {\r\n return isString(width) && width.endsWith(\"px\")\r\n};\r\nvar calculateFreeWidth = function(that, widths) {\r\n var contentWidth = that._rowsView.contentWidth();\r\n var totalWidth = that._getTotalWidth(widths, contentWidth);\r\n return contentWidth - totalWidth\r\n};\r\nvar calculateFreeWidthWithCurrentMinWidth = function(that, columnIndex, currentMinWidth, widths) {\r\n return calculateFreeWidth(that, widths.map((width, index) => index === columnIndex ? currentMinWidth : width))\r\n};\r\nvar restoreFocus = function(focusedElement, selectionRange) {\r\n accessibility.hiddenFocus(focusedElement, true);\r\n gridCoreUtils.setSelectionRange(focusedElement, selectionRange)\r\n};\r\nvar resizingControllerMembers = {\r\n _initPostRenderHandlers() {\r\n var dataController = this._dataController;\r\n if (!this._refreshSizesHandler) {\r\n this._refreshSizesHandler = e => {\r\n dataController.changed.remove(this._refreshSizesHandler);\r\n if (this._checkSize()) {\r\n this._refreshSizes(e)\r\n }\r\n };\r\n dataController.changed.add(() => {\r\n dataController.changed.add(this._refreshSizesHandler)\r\n })\r\n }\r\n },\r\n _refreshSizes(e) {\r\n var _a;\r\n var resizeDeferred;\r\n var that = this;\r\n var changeType = e && e.changeType;\r\n var isDelayed = e && e.isDelayed;\r\n var items = that._dataController.items();\r\n if (!e || \"refresh\" === changeType || \"prepend\" === changeType || \"append\" === changeType) {\r\n if (!isDelayed) {\r\n resizeDeferred = that.resize()\r\n }\r\n } else if (\"update\" === changeType) {\r\n if (0 === (null === (_a = e.changeTypes) || void 0 === _a ? void 0 : _a.length)) {\r\n return\r\n }\r\n if ((items.length > 1 || \"insert\" !== e.changeTypes[0]) && !(0 === items.length && \"remove\" === e.changeTypes[0]) && !e.needUpdateDimensions) {\r\n resizeDeferred = new Deferred;\r\n this._waitAsyncTemplates().done(() => {\r\n deferUpdate(() => deferRender(() => deferUpdate(() => {\r\n that._setScrollerSpacing();\r\n that._rowsView.resize();\r\n resizeDeferred.resolve()\r\n })))\r\n }).fail(resizeDeferred.reject)\r\n } else {\r\n resizeDeferred = that.resize()\r\n }\r\n }\r\n if (changeType && \"updateSelection\" !== changeType && \"updateFocusedRow\" !== changeType && \"pageIndex\" !== changeType && !isDelayed) {\r\n when(resizeDeferred).done(() => {\r\n that._setAriaLabel();\r\n that.fireContentReadyAction()\r\n })\r\n }\r\n },\r\n fireContentReadyAction() {\r\n this.component._fireContentReadyAction()\r\n },\r\n _getWidgetAriaLabel: () => \"dxDataGrid-ariaDataGrid\",\r\n _setAriaLabel() {\r\n this.component.setAria(\"label\", messageLocalization.format(this._getWidgetAriaLabel(), this._dataController.totalItemsCount(), this.component.columnCount()), this.component.$element().children(\".\".concat(GRIDBASE_CONTAINER_CLASS)))\r\n },\r\n _getBestFitWidths() {\r\n var _a;\r\n var rowsView = this._rowsView;\r\n var columnHeadersView = this._columnHeadersView;\r\n var widths = rowsView.getColumnWidths();\r\n if (!(null === widths || void 0 === widths ? void 0 : widths.length)) {\r\n var headersTableElement = columnHeadersView.getTableElement();\r\n columnHeadersView.setTableElement(null === (_a = rowsView.getTableElement()) || void 0 === _a ? void 0 : _a.children(\".dx-header\"));\r\n widths = columnHeadersView.getColumnWidths();\r\n columnHeadersView.setTableElement(headersTableElement)\r\n }\r\n return widths\r\n },\r\n _setVisibleWidths(visibleColumns, widths) {\r\n var columnsController = this._columnsController;\r\n columnsController.beginUpdate();\r\n each(visibleColumns, (index, column) => {\r\n var columnId = columnsController.getColumnId(column);\r\n columnsController.columnOption(columnId, \"visibleWidth\", widths[index])\r\n });\r\n columnsController.endUpdate()\r\n },\r\n _toggleBestFitModeForView(view, className, isBestFit) {\r\n if (!view || !view.isVisible()) {\r\n return\r\n }\r\n var $rowsTables = this._rowsView.getTableElements();\r\n var $viewTables = view.getTableElements();\r\n each($rowsTables, (index, tableElement) => {\r\n var $tableBody;\r\n var $rowsTable = $(tableElement);\r\n var $viewTable = $viewTables.eq(index);\r\n if ($viewTable && $viewTable.length) {\r\n if (isBestFit) {\r\n $tableBody = $viewTable.children(\"tbody\").appendTo($rowsTable)\r\n } else {\r\n $tableBody = $rowsTable.children(\".\".concat(className)).appendTo($viewTable)\r\n }\r\n $tableBody.toggleClass(className, isBestFit);\r\n $tableBody.toggleClass(this.addWidgetPrefix(\"best-fit\"), isBestFit)\r\n }\r\n })\r\n },\r\n _toggleBestFitMode(isBestFit) {\r\n var $rowsTable = this._rowsView.getTableElement();\r\n var $rowsFixedTable = this._rowsView.getTableElements().eq(1);\r\n if (!$rowsTable) {\r\n return\r\n }\r\n $rowsTable.css(\"tableLayout\", isBestFit ? \"auto\" : \"fixed\");\r\n $rowsTable.children(\"colgroup\").css(\"display\", isBestFit ? \"none\" : \"\");\r\n each($rowsFixedTable.find(GROUP_ROW_SELECTOR), (idx, item) => {\r\n $(item).css(\"display\", isBestFit ? \"none\" : \"\")\r\n });\r\n $rowsFixedTable.toggleClass(this.addWidgetPrefix(TABLE_FIXED_CLASS), !isBestFit);\r\n this._toggleBestFitModeForView(this._columnHeadersView, \"dx-header\", isBestFit);\r\n this._toggleBestFitModeForView(this._footerView, \"dx-footer\", isBestFit);\r\n if (this._needStretch()) {\r\n $rowsTable.get(0).style.width = isBestFit ? \"auto\" : \"\"\r\n }\r\n },\r\n _toggleContentMinHeight(value) {\r\n var scrollable = this._rowsView.getScrollable();\r\n var $contentElement = this._rowsView._findContentElement();\r\n if (false === (null === scrollable || void 0 === scrollable ? void 0 : scrollable.option(\"useNative\"))) {\r\n $contentElement.css({\r\n minHeight: value ? gridCoreUtils.getContentHeightLimit(browser) : \"\"\r\n })\r\n }\r\n },\r\n _synchronizeColumns() {\r\n var columnsController = this._columnsController;\r\n var visibleColumns = columnsController.getVisibleColumns();\r\n var columnAutoWidth = this.option(\"columnAutoWidth\");\r\n var wordWrapEnabled = this.option(\"wordWrapEnabled\");\r\n var hasUndefinedColumnWidth = visibleColumns.some(column => !isDefined(column.width));\r\n var needBestFit = this._needBestFit();\r\n var hasMinWidth = false;\r\n var resetBestFitMode;\r\n var isColumnWidthsCorrected = false;\r\n var resultWidths = [];\r\n var focusedElement;\r\n var selectionRange;\r\n !needBestFit && each(visibleColumns, (index, column) => {\r\n if (\"auto\" === column.width) {\r\n needBestFit = true;\r\n return false\r\n }\r\n return\r\n });\r\n each(visibleColumns, (index, column) => {\r\n if (column.minWidth) {\r\n hasMinWidth = true;\r\n return false\r\n }\r\n return\r\n });\r\n this._setVisibleWidths(visibleColumns, []);\r\n var $element = this.component.$element();\r\n if (needBestFit) {\r\n focusedElement = domAdapter.getActiveElement($element.get(0));\r\n selectionRange = gridCoreUtils.getSelectionRange(focusedElement);\r\n this._toggleBestFitMode(true);\r\n resetBestFitMode = true\r\n }\r\n this._toggleContentMinHeight(wordWrapEnabled);\r\n if ($element && $element.get(0) && this._maxWidth) {\r\n delete this._maxWidth;\r\n $element[0].style.maxWidth = \"\"\r\n }\r\n deferUpdate(() => {\r\n if (needBestFit) {\r\n resultWidths = this._getBestFitWidths();\r\n each(visibleColumns, (index, column) => {\r\n var columnId = columnsController.getColumnId(column);\r\n columnsController.columnOption(columnId, \"bestFitWidth\", resultWidths[index], true)\r\n })\r\n } else if (hasMinWidth) {\r\n resultWidths = this._getBestFitWidths()\r\n }\r\n each(visibleColumns, (function(index) {\r\n var {\r\n width: width\r\n } = this;\r\n if (\"auto\" !== width) {\r\n if (isDefined(width)) {\r\n resultWidths[index] = isNumeric(width) || isPixelWidth(width) ? parseFloat(width) : width\r\n } else if (!columnAutoWidth) {\r\n resultWidths[index] = void 0\r\n }\r\n }\r\n }));\r\n if (resetBestFitMode) {\r\n this._toggleBestFitMode(false);\r\n resetBestFitMode = false;\r\n if (focusedElement && focusedElement !== domAdapter.getActiveElement()) {\r\n var isFocusOutsideWindow = getBoundingRect(focusedElement).bottom < 0;\r\n if (!isFocusOutsideWindow) {\r\n restoreFocus(focusedElement, selectionRange)\r\n }\r\n }\r\n }\r\n isColumnWidthsCorrected = this._correctColumnWidths(resultWidths, visibleColumns);\r\n if (columnAutoWidth) {\r\n ! function() {\r\n var expandColumnWidth;\r\n each(visibleColumns, (index, column) => {\r\n if (\"groupExpand\" === column.type) {\r\n expandColumnWidth = resultWidths[index]\r\n }\r\n });\r\n each(visibleColumns, (index, column) => {\r\n if (\"groupExpand\" === column.type && expandColumnWidth) {\r\n resultWidths[index] = expandColumnWidth\r\n }\r\n })\r\n }();\r\n if (this._needStretch()) {\r\n this._processStretch(resultWidths, visibleColumns)\r\n }\r\n }\r\n deferRender(() => {\r\n if (needBestFit || isColumnWidthsCorrected || hasUndefinedColumnWidth) {\r\n this._setVisibleWidths(visibleColumns, resultWidths)\r\n }\r\n if (wordWrapEnabled) {\r\n this._toggleContentMinHeight(false)\r\n }\r\n })\r\n })\r\n },\r\n _needBestFit() {\r\n return this.option(\"columnAutoWidth\")\r\n },\r\n _needStretch() {\r\n return this._columnsController.getVisibleColumns().some(c => \"auto\" === c.width && !c.command)\r\n },\r\n _getAverageColumnsWidth(resultWidths) {\r\n var freeWidth = calculateFreeWidth(this, resultWidths);\r\n var columnCountWithoutWidth = resultWidths.filter(width => void 0 === width).length;\r\n return freeWidth / columnCountWithoutWidth\r\n },\r\n _correctColumnWidths(resultWidths, visibleColumns) {\r\n var that = this;\r\n var i;\r\n var hasPercentWidth = false;\r\n var hasAutoWidth = false;\r\n var isColumnWidthsCorrected = false;\r\n var $element = that.component.$element();\r\n var hasWidth = that._hasWidth;\r\n var _loop = function() {\r\n var index = i;\r\n var column = visibleColumns[index];\r\n var isHiddenColumn = resultWidths[index] === HIDDEN_COLUMNS_WIDTH;\r\n var width = resultWidths[index];\r\n var {\r\n minWidth: minWidth\r\n } = column;\r\n if (minWidth) {\r\n if (void 0 === width) {\r\n var averageColumnsWidth = that._getAverageColumnsWidth(resultWidths);\r\n width = averageColumnsWidth\r\n } else if (isPercentWidth(width)) {\r\n var freeWidth = calculateFreeWidthWithCurrentMinWidth(that, index, minWidth, resultWidths);\r\n if (freeWidth < 0) {\r\n width = -1\r\n }\r\n }\r\n }\r\n var realColumnWidth = that._getRealColumnWidth(index, resultWidths.map((columnWidth, columnIndex) => index === columnIndex ? width : columnWidth));\r\n if (minWidth && !isHiddenColumn && realColumnWidth < minWidth) {\r\n resultWidths[index] = minWidth;\r\n isColumnWidthsCorrected = true;\r\n i = -1\r\n }\r\n if (!isDefined(column.width)) {\r\n hasAutoWidth = true\r\n }\r\n if (isPercentWidth(column.width)) {\r\n hasPercentWidth = true\r\n }\r\n };\r\n for (i = 0; i < visibleColumns.length; i++) {\r\n _loop()\r\n }\r\n if (!hasAutoWidth && resultWidths.length) {\r\n var $rowsViewElement = that._rowsView.element();\r\n var contentWidth = that._rowsView.contentWidth();\r\n var scrollbarWidth = that._rowsView.getScrollbarWidth();\r\n var totalWidth = that._getTotalWidth(resultWidths, contentWidth);\r\n if (totalWidth < contentWidth) {\r\n var lastColumnIndex = gridCoreUtils.getLastResizableColumnIndex(visibleColumns, resultWidths);\r\n if (lastColumnIndex >= 0) {\r\n resultWidths[lastColumnIndex] = \"auto\";\r\n isColumnWidthsCorrected = true;\r\n if (false === hasWidth && !hasPercentWidth) {\r\n var borderWidth = that.option(\"showBorders\") ? Math.ceil(getOuterWidth($rowsViewElement) - getInnerWidth($rowsViewElement)) : 0;\r\n that._maxWidth = totalWidth + scrollbarWidth + borderWidth;\r\n $element.css(\"maxWidth\", that._maxWidth)\r\n }\r\n }\r\n }\r\n }\r\n return isColumnWidthsCorrected\r\n },\r\n _processStretch(resultSizes, visibleColumns) {\r\n var groupSize = this._rowsView.contentWidth();\r\n var tableSize = this._getTotalWidth(resultSizes, groupSize);\r\n var unusedIndexes = {\r\n length: 0\r\n };\r\n if (!resultSizes.length) {\r\n return\r\n }\r\n each(visibleColumns, (function(index) {\r\n if (this.width || resultSizes[index] === HIDDEN_COLUMNS_WIDTH) {\r\n unusedIndexes[index] = true;\r\n unusedIndexes.length++\r\n }\r\n }));\r\n var diff = groupSize - tableSize;\r\n var diffElement = Math.floor(diff / (resultSizes.length - unusedIndexes.length));\r\n var onePixelElementsCount = diff - diffElement * (resultSizes.length - unusedIndexes.length);\r\n if (diff >= 0) {\r\n for (var i = 0; i < resultSizes.length; i++) {\r\n if (unusedIndexes[i]) {\r\n continue\r\n }\r\n resultSizes[i] += diffElement;\r\n if (onePixelElementsCount > 0) {\r\n if (onePixelElementsCount < 1) {\r\n resultSizes[i] += onePixelElementsCount;\r\n onePixelElementsCount = 0\r\n } else {\r\n resultSizes[i]++;\r\n onePixelElementsCount--\r\n }\r\n }\r\n }\r\n }\r\n },\r\n _getRealColumnWidth(columnIndex, columnWidths, groupWidth) {\r\n var ratio = 1;\r\n var width = columnWidths[columnIndex];\r\n if (!isPercentWidth(width)) {\r\n return parseFloat(width)\r\n }\r\n var percentTotalWidth = columnWidths.reduce((sum, width, index) => {\r\n if (!isPercentWidth(width)) {\r\n return sum\r\n }\r\n return sum + parseFloat(width)\r\n }, 0);\r\n var pixelTotalWidth = columnWidths.reduce((sum, width) => {\r\n if (!width || width === HIDDEN_COLUMNS_WIDTH || isPercentWidth(width)) {\r\n return sum\r\n }\r\n return sum + parseFloat(width)\r\n }, 0);\r\n groupWidth = groupWidth || this._rowsView.contentWidth();\r\n var freeSpace = groupWidth - pixelTotalWidth;\r\n var percentTotalWidthInPixel = percentTotalWidth * groupWidth / 100;\r\n if (pixelTotalWidth > 0 && percentTotalWidthInPixel + pixelTotalWidth >= groupWidth) {\r\n ratio = percentTotalWidthInPixel > freeSpace ? freeSpace / percentTotalWidthInPixel : 1\r\n }\r\n return parseFloat(width) * groupWidth * ratio / 100\r\n },\r\n _getTotalWidth(widths, groupWidth) {\r\n var result = 0;\r\n for (var i = 0; i < widths.length; i++) {\r\n var width = widths[i];\r\n if (width && width !== HIDDEN_COLUMNS_WIDTH) {\r\n result += this._getRealColumnWidth(i, widths, groupWidth)\r\n }\r\n }\r\n return Math.ceil(result)\r\n },\r\n _getGroupElement() {\r\n return this.component.$element().children().get(0)\r\n },\r\n updateSize(rootElement) {\r\n var $rootElement = $(rootElement);\r\n var importantMarginClass = this.addWidgetPrefix(IMPORTANT_MARGIN_CLASS);\r\n if (void 0 === this._hasHeight && $rootElement && $rootElement.is(\":visible\") && getWidth($rootElement)) {\r\n var $groupElement = $rootElement.children(\".\".concat(this.getWidgetContainerClass()));\r\n if ($groupElement.length) {\r\n $groupElement.detach()\r\n }\r\n this._hasHeight = !!getHeight($rootElement);\r\n var width = getWidth($rootElement);\r\n $rootElement.addClass(importantMarginClass);\r\n this._hasWidth = getWidth($rootElement) === width;\r\n $rootElement.removeClass(importantMarginClass);\r\n if ($groupElement.length) {\r\n $groupElement.appendTo($rootElement)\r\n }\r\n }\r\n },\r\n publicMethods: () => [\"resize\", \"updateDimensions\"],\r\n _waitAsyncTemplates() {\r\n var _a, _b, _c;\r\n return when(null === (_a = this._columnHeadersView) || void 0 === _a ? void 0 : _a.waitAsyncTemplates(true), null === (_b = this._rowsView) || void 0 === _b ? void 0 : _b.waitAsyncTemplates(true), null === (_c = this._footerView) || void 0 === _c ? void 0 : _c.waitAsyncTemplates(true))\r\n },\r\n resize() {\r\n if (this.component._requireResize) {\r\n return\r\n }\r\n var d = new Deferred;\r\n this._waitAsyncTemplates().done(() => {\r\n when(this.updateDimensions()).done(d.resolve).fail(d.reject)\r\n }).fail(d.reject);\r\n return d.promise()\r\n },\r\n updateDimensions(checkSize) {\r\n var that = this;\r\n that._initPostRenderHandlers();\r\n if (!that._checkSize(checkSize)) {\r\n return\r\n }\r\n var prevResult = that._resizeDeferred;\r\n var result = that._resizeDeferred = new Deferred;\r\n when(prevResult).always(() => {\r\n deferRender(() => {\r\n if (that._dataController.isLoaded()) {\r\n that._synchronizeColumns()\r\n }\r\n that._resetGroupElementHeight();\r\n deferUpdate(() => {\r\n deferRender(() => {\r\n deferUpdate(() => {\r\n that._updateDimensionsCore()\r\n })\r\n })\r\n })\r\n }).done(result.resolve).fail(result.reject)\r\n });\r\n return result.promise()\r\n },\r\n _resetGroupElementHeight() {\r\n var groupElement = this._getGroupElement();\r\n var scrollable = this._rowsView.getScrollable();\r\n if (groupElement && groupElement.style.height && (!scrollable || !scrollable.scrollTop())) {\r\n groupElement.style.height = \"\"\r\n }\r\n },\r\n _checkSize(checkSize) {\r\n var $rootElement = this.component.$element();\r\n var isWidgetVisible = $rootElement.is(\":visible\");\r\n var isGridSizeChanged = this._lastWidth !== getWidth($rootElement) || this._lastHeight !== getHeight($rootElement) || this._devicePixelRatio !== getWindow().devicePixelRatio;\r\n return isWidgetVisible && (!checkSize || isGridSizeChanged)\r\n },\r\n _setScrollerSpacingCore() {\r\n var that = this;\r\n var vScrollbarWidth = that._rowsView.getScrollbarWidth();\r\n var hScrollbarWidth = that._rowsView.getScrollbarWidth(true);\r\n deferRender(() => {\r\n that._columnHeadersView && that._columnHeadersView.setScrollerSpacing(vScrollbarWidth);\r\n that._footerView && that._footerView.setScrollerSpacing(vScrollbarWidth);\r\n that._rowsView.setScrollerSpacing(vScrollbarWidth, hScrollbarWidth)\r\n })\r\n },\r\n _setScrollerSpacing() {\r\n var scrollable = this._rowsView.getScrollable();\r\n var isNativeScrolling = true === this.option(\"scrolling.useNative\");\r\n if (!scrollable || isNativeScrolling) {\r\n deferRender(() => {\r\n deferUpdate(() => {\r\n this._setScrollerSpacingCore()\r\n })\r\n })\r\n } else {\r\n this._setScrollerSpacingCore()\r\n }\r\n },\r\n _updateDimensionsCore() {\r\n var that = this;\r\n var dataController = that._dataController;\r\n var editorFactory = that.getController(\"editorFactory\");\r\n var rowsView = that._rowsView;\r\n var $rootElement = that.component.$element();\r\n var groupElement = this._getGroupElement();\r\n var rootElementHeight = getHeight($rootElement);\r\n var height = that.option(\"height\") || $rootElement.get(0).style.height;\r\n var isHeightSpecified = !!height && \"auto\" !== height;\r\n var maxHeight = parseInt($rootElement.css(\"maxHeight\"));\r\n var maxHeightHappened = maxHeight && rootElementHeight >= maxHeight;\r\n var isMaxHeightApplied = groupElement && groupElement.scrollHeight === groupElement.offsetHeight;\r\n that.updateSize($rootElement);\r\n deferRender(() => {\r\n var hasHeight = that._hasHeight || !!maxHeight || isHeightSpecified;\r\n rowsView.hasHeight(hasHeight);\r\n if (maxHeightHappened && !isMaxHeightApplied) {\r\n $(groupElement).css(\"height\", maxHeight)\r\n }\r\n if (!dataController.isLoaded()) {\r\n rowsView.setLoading(dataController.isLoading());\r\n return\r\n }\r\n deferUpdate(() => {\r\n that._updateLastSizes($rootElement);\r\n that._setScrollerSpacing();\r\n each(VIEW_NAMES, (index, viewName) => {\r\n var view = that.getView(viewName);\r\n if (view) {\r\n view.resize()\r\n }\r\n });\r\n editorFactory && editorFactory.resize()\r\n })\r\n })\r\n },\r\n _updateLastSizes($rootElement) {\r\n this._lastWidth = getWidth($rootElement);\r\n this._lastHeight = getHeight($rootElement);\r\n this._devicePixelRatio = getWindow().devicePixelRatio\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"width\":\r\n case \"height\":\r\n this.component._renderDimensions();\r\n this.resize();\r\n case \"renderAsync\":\r\n args.handled = true;\r\n return;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n init() {\r\n this._dataController = this.getController(\"data\");\r\n this._columnsController = this.getController(\"columns\");\r\n this._columnHeadersView = this.getView(\"columnHeadersView\");\r\n this._footerView = this.getView(\"footerView\");\r\n this._rowsView = this.getView(\"rowsView\")\r\n }\r\n};\r\nvar ResizingController = modules.ViewController.inherit(resizingControllerMembers);\r\nvar SynchronizeScrollingController = modules.ViewController.inherit({\r\n _scrollChangedHandler(views, pos, viewName) {\r\n for (var j = 0; j < views.length; j++) {\r\n if (views[j] && views[j].name !== viewName) {\r\n views[j].scrollTo({\r\n left: pos.left,\r\n top: pos.top\r\n })\r\n }\r\n }\r\n },\r\n init() {\r\n var views = [this.getView(\"columnHeadersView\"), this.getView(\"footerView\"), this.getView(\"rowsView\")];\r\n for (var i = 0; i < views.length; i++) {\r\n var view = views[i];\r\n if (view) {\r\n view.scrollChanged.add(this._scrollChangedHandler.bind(this, views))\r\n }\r\n }\r\n }\r\n});\r\nvar GridView = modules.View.inherit({\r\n _endUpdateCore() {\r\n if (this.component._requireResize) {\r\n this.component._requireResize = false;\r\n this._resizingController.resize()\r\n }\r\n },\r\n init() {\r\n this._resizingController = this.getController(\"resizing\");\r\n this._dataController = this.getController(\"data\")\r\n },\r\n getView(name) {\r\n return this.component._views[name]\r\n },\r\n element() {\r\n return this._groupElement\r\n },\r\n optionChanged(args) {\r\n if (isDefined(this._groupElement) && \"showBorders\" === args.name) {\r\n this._groupElement.toggleClass(this.addWidgetPrefix(BORDERS_CLASS), !!args.value);\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n },\r\n _renderViews($groupElement) {\r\n var that = this;\r\n each(VIEW_NAMES, (index, viewName) => {\r\n var view = that.getView(viewName);\r\n if (view) {\r\n view.render($groupElement)\r\n }\r\n })\r\n },\r\n _getTableRoleName: () => \"group\",\r\n render($rootElement) {\r\n var isFirstRender = !this._groupElement;\r\n var $groupElement = this._groupElement || $(\"
\").addClass(this.getWidgetContainerClass());\r\n $groupElement.addClass(GRIDBASE_CONTAINER_CLASS);\r\n $groupElement.toggleClass(this.addWidgetPrefix(BORDERS_CLASS), !!this.option(\"showBorders\"));\r\n this.setAria(\"role\", \"presentation\", $rootElement);\r\n this.component.setAria(\"role\", this._getTableRoleName(), $groupElement);\r\n this._rootElement = $rootElement || this._rootElement;\r\n if (isFirstRender) {\r\n this._groupElement = $groupElement;\r\n hasWindow() && this.getController(\"resizing\").updateSize($rootElement);\r\n $groupElement.appendTo($rootElement)\r\n }\r\n this._renderViews($groupElement)\r\n },\r\n update() {\r\n var $rootElement = this._rootElement;\r\n var $groupElement = this._groupElement;\r\n var resizingController = this.getController(\"resizing\");\r\n if ($rootElement && $groupElement) {\r\n resizingController.resize();\r\n if (this._dataController.isLoaded()) {\r\n this._resizingController.fireContentReadyAction()\r\n }\r\n }\r\n }\r\n});\r\nexport var gridViewModule = {\r\n defaultOptions: () => ({\r\n showBorders: false,\r\n renderAsync: false\r\n }),\r\n controllers: {\r\n resizing: ResizingController,\r\n synchronizeScrolling: SynchronizeScrollingController\r\n },\r\n views: {\r\n gridView: GridView\r\n },\r\n VIEW_NAMES: VIEW_NAMES\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/grid_view.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n gridViewModule\r\n} from \"../../../grids/grid_core/views/m_grid_view\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"gridView\", gridViewModule);\r\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.async.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport CollectionWidgetEdit from \"./ui.collection_widget.edit\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar AsyncCollectionWidget = CollectionWidgetEdit.inherit({\r\n _initMarkup() {\r\n this._deferredItems = [];\r\n this.callBase()\r\n },\r\n _renderItemContent(args) {\r\n var renderContentDeferred = new Deferred;\r\n var itemDeferred = new Deferred;\r\n this._deferredItems[args.index] = itemDeferred;\r\n var $itemContent = this.callBase.call(this, args);\r\n itemDeferred.done(() => {\r\n renderContentDeferred.resolve($itemContent)\r\n });\r\n return renderContentDeferred.promise()\r\n },\r\n _onItemTemplateRendered: function(itemTemplate, renderArgs) {\r\n return () => {\r\n this._deferredItems[renderArgs.index].resolve()\r\n }\r\n },\r\n _postProcessRenderItems: noop,\r\n _renderItemsAsync() {\r\n var d = new Deferred;\r\n when.apply(this, this._deferredItems).done(() => {\r\n this._postProcessRenderItems();\r\n d.resolve()\r\n });\r\n return d.promise()\r\n },\r\n _clean() {\r\n this.callBase();\r\n this._deferredItems = []\r\n }\r\n});\r\nexport default AsyncCollectionWidget;\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/constants.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var TOOLBAR_CLASS = \"dx-toolbar\";\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/ui.toolbar.base.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 getOuterWidth,\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isMaterial,\r\n waitWebFont\r\n} from \"../themes\";\r\nimport {\r\n isPlainObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport registerComponent from \"../../core/component_registrator\";\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 getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport AsyncCollectionWidget from \"../collection/ui.collection_widget.async\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../core/templates/bindable_template\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n TOOLBAR_CLASS\r\n} from \"./constants\";\r\nvar TOOLBAR_BEFORE_CLASS = \"dx-toolbar-before\";\r\nvar TOOLBAR_CENTER_CLASS = \"dx-toolbar-center\";\r\nvar TOOLBAR_AFTER_CLASS = \"dx-toolbar-after\";\r\nvar TOOLBAR_MINI_CLASS = \"dx-toolbar-mini\";\r\nvar TOOLBAR_ITEM_CLASS = \"dx-toolbar-item\";\r\nvar TOOLBAR_LABEL_CLASS = \"dx-toolbar-label\";\r\nvar TOOLBAR_BUTTON_CLASS = \"dx-toolbar-button\";\r\nvar TOOLBAR_ITEMS_CONTAINER_CLASS = \"dx-toolbar-items-container\";\r\nvar TOOLBAR_GROUP_CLASS = \"dx-toolbar-group\";\r\nvar TOOLBAR_COMPACT_CLASS = \"dx-toolbar-compact\";\r\nvar TEXT_BUTTON_MODE = \"text\";\r\nvar DEFAULT_BUTTON_TYPE = \"default\";\r\nvar DEFAULT_DROPDOWNBUTTON_STYLING_MODE = \"contained\";\r\nvar TOOLBAR_ITEM_DATA_KEY = \"dxToolbarItemDataKey\";\r\nvar ANIMATION_TIMEOUT = 15;\r\nclass ToolbarBase extends AsyncCollectionWidget {\r\n _getSynchronizableOptionsForCreateComponent() {\r\n return super._getSynchronizableOptionsForCreateComponent().filter(item => \"disabled\" !== item)\r\n }\r\n _initTemplates() {\r\n super._initTemplates();\r\n var template = new BindableTemplate(function($container, data, rawModel) {\r\n if (isPlainObject(data)) {\r\n var {\r\n text: text,\r\n html: html,\r\n widget: widget\r\n } = data;\r\n if (text) {\r\n $container.text(text).wrapInner(\"
\")\r\n }\r\n if (html) {\r\n $container.html(html)\r\n }\r\n if (\"dxDropDownButton\" === widget) {\r\n var _data$options;\r\n data.options = null !== (_data$options = data.options) && void 0 !== _data$options ? _data$options : {};\r\n if (!isDefined(data.options.stylingMode)) {\r\n data.options.stylingMode = this.option(\"useFlatButtons\") ? TEXT_BUTTON_MODE : DEFAULT_DROPDOWNBUTTON_STYLING_MODE\r\n }\r\n }\r\n if (\"dxButton\" === widget) {\r\n if (this.option(\"useFlatButtons\")) {\r\n var _data$options2, _data$options$styling;\r\n data.options = null !== (_data$options2 = data.options) && void 0 !== _data$options2 ? _data$options2 : {};\r\n data.options.stylingMode = null !== (_data$options$styling = data.options.stylingMode) && void 0 !== _data$options$styling ? _data$options$styling : TEXT_BUTTON_MODE\r\n }\r\n if (this.option(\"useDefaultButtons\")) {\r\n var _data$options3, _data$options$type;\r\n data.options = null !== (_data$options3 = data.options) && void 0 !== _data$options3 ? _data$options3 : {};\r\n data.options.type = null !== (_data$options$type = data.options.type) && void 0 !== _data$options$type ? _data$options$type : DEFAULT_BUTTON_TYPE\r\n }\r\n }\r\n } else {\r\n $container.text(String(data))\r\n }\r\n this._getTemplate(\"dx-polymorph-widget\").render({\r\n container: $container,\r\n model: rawModel,\r\n parent: this\r\n })\r\n }.bind(this), [\"text\", \"html\", \"widget\", \"options\"], this.option(\"integrationOptions.watchMethod\"));\r\n this._templateManager.addDefaultTemplates({\r\n item: template,\r\n menuItem: template\r\n })\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n renderAs: \"topToolbar\",\r\n grouped: false,\r\n useFlatButtons: false,\r\n useDefaultButtons: false\r\n })\r\n }\r\n _defaultOptionsRules() {\r\n return super._defaultOptionsRules().concat([{\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n useFlatButtons: true\r\n }\r\n }])\r\n }\r\n _itemContainer() {\r\n return this._$toolbarItemsContainer.find([\".\".concat(TOOLBAR_BEFORE_CLASS), \".\".concat(TOOLBAR_CENTER_CLASS), \".\".concat(TOOLBAR_AFTER_CLASS)].join(\",\"))\r\n }\r\n _itemClass() {\r\n return TOOLBAR_ITEM_CLASS\r\n }\r\n _itemDataKey() {\r\n return TOOLBAR_ITEM_DATA_KEY\r\n }\r\n _dimensionChanged() {\r\n if (this._disposed) {\r\n return\r\n }\r\n this._arrangeItems();\r\n this._applyCompactMode()\r\n }\r\n _initMarkup() {\r\n this._renderToolbar();\r\n this._renderSections();\r\n super._initMarkup()\r\n }\r\n _render() {\r\n super._render();\r\n this._renderItemsAsync();\r\n this._updateDimensionsInMaterial()\r\n }\r\n _postProcessRenderItems() {\r\n this._arrangeItems()\r\n }\r\n _renderToolbar() {\r\n this.$element().addClass(TOOLBAR_CLASS);\r\n this._$toolbarItemsContainer = $(\"
\").addClass(TOOLBAR_ITEMS_CONTAINER_CLASS).appendTo(this.$element());\r\n this.setAria(\"role\", \"toolbar\")\r\n }\r\n _renderSections() {\r\n var $container = this._$toolbarItemsContainer;\r\n each([\"before\", \"center\", \"after\"], (_, section) => {\r\n var sectionClass = \"dx-toolbar-\".concat(section);\r\n var $section = $container.find(\".\".concat(sectionClass));\r\n if (!$section.length) {\r\n this[\"_$\".concat(section, \"Section\")] = $(\"
\").addClass(sectionClass).appendTo($container)\r\n }\r\n })\r\n }\r\n _arrangeItems(elementWidth) {\r\n var _elementWidth;\r\n elementWidth = null !== (_elementWidth = elementWidth) && void 0 !== _elementWidth ? _elementWidth : getWidth(this.$element());\r\n this._$centerSection.css({\r\n margin: \"0 auto\",\r\n float: \"none\"\r\n });\r\n var beforeRect = getBoundingRect(this._$beforeSection.get(0));\r\n var afterRect = getBoundingRect(this._$afterSection.get(0));\r\n this._alignCenterSection(beforeRect, afterRect, elementWidth);\r\n var $label = this._$toolbarItemsContainer.find(\".\".concat(TOOLBAR_LABEL_CLASS)).eq(0);\r\n var $section = $label.parent();\r\n if (!$label.length) {\r\n return\r\n }\r\n var labelOffset = beforeRect.width ? beforeRect.width : $label.position().left;\r\n var widthBeforeSection = $section.hasClass(TOOLBAR_BEFORE_CLASS) ? 0 : labelOffset;\r\n var widthAfterSection = $section.hasClass(TOOLBAR_AFTER_CLASS) ? 0 : afterRect.width;\r\n var elemsAtSectionWidth = 0;\r\n $section.children().not(\".\".concat(TOOLBAR_LABEL_CLASS)).each((function() {\r\n elemsAtSectionWidth += getOuterWidth(this)\r\n }));\r\n var freeSpace = elementWidth - elemsAtSectionWidth;\r\n var sectionMaxWidth = Math.max(freeSpace - widthBeforeSection - widthAfterSection, 0);\r\n if ($section.hasClass(TOOLBAR_BEFORE_CLASS)) {\r\n this._alignSection(this._$beforeSection, sectionMaxWidth)\r\n } else {\r\n var labelPaddings = getOuterWidth($label) - getWidth($label);\r\n $label.css(\"maxWidth\", sectionMaxWidth - labelPaddings)\r\n }\r\n }\r\n _alignCenterSection(beforeRect, afterRect, elementWidth) {\r\n this._alignSection(this._$centerSection, elementWidth - beforeRect.width - afterRect.width);\r\n var isRTL = this.option(\"rtlEnabled\");\r\n var leftRect = isRTL ? afterRect : beforeRect;\r\n var rightRect = isRTL ? beforeRect : afterRect;\r\n var centerRect = getBoundingRect(this._$centerSection.get(0));\r\n if (leftRect.right > centerRect.left || centerRect.right > rightRect.left) {\r\n this._$centerSection.css({\r\n marginLeft: leftRect.width,\r\n marginRight: rightRect.width,\r\n float: leftRect.width > rightRect.width ? \"none\" : \"right\"\r\n })\r\n }\r\n }\r\n _alignSection($section, maxWidth) {\r\n var $labels = $section.find(\".\".concat(TOOLBAR_LABEL_CLASS));\r\n var labels = $labels.toArray();\r\n maxWidth -= this._getCurrentLabelsPaddings(labels);\r\n var currentWidth = this._getCurrentLabelsWidth(labels);\r\n var difference = Math.abs(currentWidth - maxWidth);\r\n if (maxWidth < currentWidth) {\r\n labels = labels.reverse();\r\n this._alignSectionLabels(labels, difference, false)\r\n } else {\r\n this._alignSectionLabels(labels, difference, true)\r\n }\r\n }\r\n _alignSectionLabels(labels, difference, expanding) {\r\n var getRealLabelWidth = function(label) {\r\n return getBoundingRect(label).width\r\n };\r\n for (var i = 0; i < labels.length; i++) {\r\n var $label = $(labels[i]);\r\n var currentLabelWidth = Math.ceil(getRealLabelWidth(labels[i]));\r\n var labelMaxWidth = void 0;\r\n if (expanding) {\r\n $label.css(\"maxWidth\", \"inherit\")\r\n }\r\n var possibleLabelWidth = Math.ceil(expanding ? getRealLabelWidth(labels[i]) : currentLabelWidth);\r\n if (possibleLabelWidth < difference) {\r\n labelMaxWidth = expanding ? possibleLabelWidth : 0;\r\n difference -= possibleLabelWidth\r\n } else {\r\n labelMaxWidth = expanding ? currentLabelWidth + difference : currentLabelWidth - difference;\r\n $label.css(\"maxWidth\", labelMaxWidth);\r\n break\r\n }\r\n $label.css(\"maxWidth\", labelMaxWidth)\r\n }\r\n }\r\n _applyCompactMode() {\r\n var $element = this.$element();\r\n $element.removeClass(TOOLBAR_COMPACT_CLASS);\r\n if (this.option(\"compactMode\") && this._getSummaryItemsWidth(this.itemElements(), true) > getWidth($element)) {\r\n $element.addClass(TOOLBAR_COMPACT_CLASS)\r\n }\r\n }\r\n _getCurrentLabelsWidth(labels) {\r\n var width = 0;\r\n labels.forEach((function(label, index) {\r\n width += getOuterWidth(label)\r\n }));\r\n return width\r\n }\r\n _getCurrentLabelsPaddings(labels) {\r\n var padding = 0;\r\n labels.forEach((function(label, index) {\r\n padding += getOuterWidth(label) - getWidth(label)\r\n }));\r\n return padding\r\n }\r\n _renderItem(index, item, itemContainer, $after) {\r\n var _item$location, _item$text;\r\n var location = null !== (_item$location = item.location) && void 0 !== _item$location ? _item$location : \"center\";\r\n var container = null !== itemContainer && void 0 !== itemContainer ? itemContainer : this[\"_$\".concat(location, \"Section\")];\r\n var itemHasText = !!(null !== (_item$text = item.text) && void 0 !== _item$text ? _item$text : item.html);\r\n var itemElement = super._renderItem(index, item, container, $after);\r\n itemElement.toggleClass(TOOLBAR_BUTTON_CLASS, !itemHasText).toggleClass(TOOLBAR_LABEL_CLASS, itemHasText).addClass(item.cssClass);\r\n return itemElement\r\n }\r\n _renderGroupedItems() {\r\n each(this.option(\"items\"), (groupIndex, group) => {\r\n var _group$location;\r\n var groupItems = group.items;\r\n var $container = $(\"
\").addClass(TOOLBAR_GROUP_CLASS);\r\n var location = null !== (_group$location = group.location) && void 0 !== _group$location ? _group$location : \"center\";\r\n if (!groupItems || !groupItems.length) {\r\n return\r\n }\r\n each(groupItems, (itemIndex, item) => {\r\n this._renderItem(itemIndex, item, $container, null)\r\n });\r\n this._$toolbarItemsContainer.find(\".dx-toolbar-\".concat(location)).append($container)\r\n })\r\n }\r\n _renderItems(items) {\r\n var grouped = this.option(\"grouped\") && items.length && items[0].items;\r\n grouped ? this._renderGroupedItems() : super._renderItems(items)\r\n }\r\n _getToolbarItems() {\r\n var _this$option;\r\n return null !== (_this$option = this.option(\"items\")) && void 0 !== _this$option ? _this$option : []\r\n }\r\n _renderContentImpl() {\r\n var items = this._getToolbarItems();\r\n this.$element().toggleClass(TOOLBAR_MINI_CLASS, 0 === items.length);\r\n if (this._renderedItemsCount) {\r\n this._renderItems(items.slice(this._renderedItemsCount))\r\n } else {\r\n this._renderItems(items)\r\n }\r\n this._applyCompactMode()\r\n }\r\n _renderEmptyMessage() {}\r\n _clean() {\r\n this._$toolbarItemsContainer.children().empty();\r\n this.$element().empty();\r\n delete this._$beforeSection;\r\n delete this._$centerSection;\r\n delete this._$afterSection\r\n }\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._arrangeItems()\r\n }\r\n }\r\n _isVisible() {\r\n return getWidth(this.$element()) > 0 && getHeight(this.$element()) > 0\r\n }\r\n _getIndexByItem(item) {\r\n return this._getToolbarItems().indexOf(item)\r\n }\r\n _itemOptionChanged(item, property, value) {\r\n super._itemOptionChanged.apply(this, [item, property, value]);\r\n this._arrangeItems()\r\n }\r\n _optionChanged(_ref) {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n switch (name) {\r\n case \"width\":\r\n super._optionChanged.apply(this, arguments);\r\n this._dimensionChanged();\r\n break;\r\n case \"renderAs\":\r\n case \"useFlatButtons\":\r\n case \"useDefaultButtons\":\r\n this._invalidate();\r\n break;\r\n case \"compactMode\":\r\n this._applyCompactMode();\r\n break;\r\n case \"grouped\":\r\n break;\r\n default:\r\n super._optionChanged.apply(this, arguments)\r\n }\r\n }\r\n _dispose() {\r\n super._dispose();\r\n clearTimeout(this._waitParentAnimationTimeout)\r\n }\r\n _updateDimensionsInMaterial() {\r\n if (isMaterial()) {\r\n Promise.all([(() => new Promise(resolve => {\r\n var check = () => {\r\n var readyToResolve = true;\r\n this.$element().parents().each((_, parent) => {\r\n if (fx.isAnimating($(parent))) {\r\n readyToResolve = false;\r\n return false\r\n }\r\n });\r\n if (readyToResolve) {\r\n resolve()\r\n }\r\n return readyToResolve\r\n };\r\n var runCheck = () => {\r\n clearTimeout(this._waitParentAnimationTimeout);\r\n this._waitParentAnimationTimeout = setTimeout(() => check() || runCheck(), ANIMATION_TIMEOUT)\r\n };\r\n runCheck()\r\n }))(), (() => {\r\n var $labels = this.$element().find(\".\".concat(TOOLBAR_LABEL_CLASS));\r\n var promises = [];\r\n $labels.each((_, label) => {\r\n var text = $(label).text();\r\n var fontWeight = $(label).css(\"fontWeight\");\r\n promises.push(waitWebFont(text, fontWeight))\r\n });\r\n return Promise.all(promises)\r\n })()]).then(() => {\r\n this._dimensionChanged()\r\n })\r\n }\r\n }\r\n}\r\nregisterComponent(\"dxToolbarBase\", ToolbarBase);\r\nexport default ToolbarBase;\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/ui.toolbar.utils.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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\nvar BUTTON_GROUP_CLASS = \"dx-buttongroup\";\r\nvar TOOLBAR_ITEMS = [\"dxAutocomplete\", \"dxButton\", \"dxCheckBox\", \"dxDateBox\", \"dxMenu\", \"dxSelectBox\", \"dxTabs\", \"dxTextBox\", \"dxButtonGroup\", \"dxDropDownButton\"];\r\nvar getItemInstance = function($element) {\r\n var itemData = $element.data && $element.data();\r\n var dxComponents = itemData && itemData.dxComponents;\r\n var widgetName = dxComponents && dxComponents[0];\r\n return widgetName && itemData[widgetName]\r\n};\r\nexport function toggleItemFocusableElementTabIndex(context, item) {\r\n var _itemData$options;\r\n if (!context) {\r\n return\r\n }\r\n var $item = context._findItemElementByItem(item);\r\n if (!$item.length) {\r\n return\r\n }\r\n var itemData = context._getItemData($item);\r\n var isItemNotFocusable = !!(null !== (_itemData$options = itemData.options) && void 0 !== _itemData$options && _itemData$options.disabled || itemData.disabled || context.option(\"disabled\"));\r\n var {\r\n widget: widget\r\n } = itemData;\r\n if (widget && -1 !== TOOLBAR_ITEMS.indexOf(widget)) {\r\n var $widget = $item.find(widget.toLowerCase().replace(\"dx\", \".dx-\"));\r\n if ($widget.length) {\r\n var _itemInstance$_focusT, _itemData$options2;\r\n var itemInstance = getItemInstance($widget);\r\n if (!itemInstance) {\r\n return\r\n }\r\n var $focusTarget = null === (_itemInstance$_focusT = itemInstance._focusTarget) || void 0 === _itemInstance$_focusT ? void 0 : _itemInstance$_focusT.call(itemInstance);\r\n if (\"dxDropDownButton\" === widget) {\r\n $focusTarget = $focusTarget && $focusTarget.find(\".\".concat(BUTTON_GROUP_CLASS))\r\n } else {\r\n var _$focusTarget;\r\n $focusTarget = null !== (_$focusTarget = $focusTarget) && void 0 !== _$focusTarget ? _$focusTarget : $(itemInstance.element())\r\n }\r\n var tabIndex = null === (_itemData$options2 = itemData.options) || void 0 === _itemData$options2 ? void 0 : _itemData$options2.tabIndex;\r\n if (isItemNotFocusable) {\r\n $focusTarget.attr(\"tabIndex\", -1)\r\n } else {\r\n $focusTarget.attr(\"tabIndex\", null !== tabIndex && void 0 !== tabIndex ? tabIndex : 0)\r\n }\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/strategy/toolbar.multiline.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 getOuterWidth\r\n} from \"../../../core/utils/size\";\r\nvar TOOLBAR_LABEL_CLASS = \"dx-toolbar-label\";\r\nexport class MultiLineStrategy {\r\n constructor(toolbar) {\r\n this._toolbar = toolbar\r\n }\r\n _initMarkup() {}\r\n _updateMenuVisibility() {}\r\n _renderMenuItems() {}\r\n _renderItem() {}\r\n _getMenuItems() {}\r\n _getToolbarItems() {\r\n var _this$_toolbar$option;\r\n return null !== (_this$_toolbar$option = this._toolbar.option(\"items\")) && void 0 !== _this$_toolbar$option ? _this$_toolbar$option : []\r\n }\r\n _getItemsWidth() {\r\n return this._toolbar._getSummaryItemsWidth(this._toolbar.itemElements(), true)\r\n }\r\n _arrangeItems() {\r\n var $label = this._toolbar._$toolbarItemsContainer.find(\".\".concat(TOOLBAR_LABEL_CLASS)).eq(0);\r\n if (!$label.length) {\r\n return\r\n }\r\n var elementWidth = getWidth(this._toolbar.$element());\r\n var labelPaddings = getOuterWidth($label) - getWidth($label);\r\n $label.css(\"maxWidth\", elementWidth - labelPaddings)\r\n }\r\n _hideOverflowItems() {}\r\n _dimensionChanged() {}\r\n _itemOptionChanged() {}\r\n _optionChanged() {}\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/list/item.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 CollectionWidgetItem from \"../collection/item\";\r\nvar LIST_ITEM_BADGE_CONTAINER_CLASS = \"dx-list-item-badge-container\";\r\nvar LIST_ITEM_BADGE_CLASS = \"dx-list-item-badge\";\r\nvar BADGE_CLASS = \"dx-badge\";\r\nvar LIST_ITEM_CHEVRON_CONTAINER_CLASS = \"dx-list-item-chevron-container\";\r\nvar LIST_ITEM_CHEVRON_CLASS = \"dx-list-item-chevron\";\r\nvar ListItem = CollectionWidgetItem.inherit({\r\n _renderWatchers: function() {\r\n this.callBase();\r\n this._startWatcher(\"badge\", this._renderBadge.bind(this));\r\n this._startWatcher(\"showChevron\", this._renderShowChevron.bind(this))\r\n },\r\n _renderBadge: function(badge) {\r\n this._$element.children(\".\" + LIST_ITEM_BADGE_CONTAINER_CLASS).remove();\r\n if (!badge) {\r\n return\r\n }\r\n var $badge = $(\"
\").addClass(LIST_ITEM_BADGE_CONTAINER_CLASS).append($(\"
\").addClass(LIST_ITEM_BADGE_CLASS).addClass(BADGE_CLASS).text(badge));\r\n var $chevron = this._$element.children(\".\" + LIST_ITEM_CHEVRON_CONTAINER_CLASS).first();\r\n $chevron.length > 0 ? $badge.insertBefore($chevron) : $badge.appendTo(this._$element)\r\n },\r\n _renderShowChevron: function(showChevron) {\r\n this._$element.children(\".\" + LIST_ITEM_CHEVRON_CONTAINER_CLASS).remove();\r\n if (!showChevron) {\r\n return\r\n }\r\n var $chevronContainer = $(\"
\").addClass(LIST_ITEM_CHEVRON_CONTAINER_CLASS);\r\n var $chevron = $(\"
\").addClass(LIST_ITEM_CHEVRON_CLASS);\r\n $chevronContainer.append($chevron).appendTo(this._$element)\r\n }\r\n});\r\nexport default ListItem;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scroll_view.native.pull_down.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport NativeStrategy from \"./ui.scrollable.native\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar SCROLLVIEW_PULLDOWN_REFRESHING_CLASS = \"dx-scrollview-pull-down-loading\";\r\nvar SCROLLVIEW_PULLDOWN_READY_CLASS = \"dx-scrollview-pull-down-ready\";\r\nvar SCROLLVIEW_PULLDOWN_IMAGE_CLASS = \"dx-scrollview-pull-down-image\";\r\nvar SCROLLVIEW_PULLDOWN_INDICATOR_CLASS = \"dx-scrollview-pull-down-indicator\";\r\nvar SCROLLVIEW_PULLDOWN_TEXT_CLASS = \"dx-scrollview-pull-down-text\";\r\nvar SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS = \"dx-scrollview-pull-down-text-visible\";\r\nvar STATE_RELEASED = 0;\r\nvar STATE_READY = 1;\r\nvar STATE_REFRESHING = 2;\r\nvar STATE_LOADING = 3;\r\nvar PULLDOWN_RELEASE_TIME = 400;\r\nvar PullDownNativeScrollViewStrategy = NativeStrategy.inherit({\r\n _init: function(scrollView) {\r\n this.callBase(scrollView);\r\n this._$topPocket = scrollView._$topPocket;\r\n this._$pullDown = scrollView._$pullDown;\r\n this._$refreshingText = scrollView._$refreshingText;\r\n this._$scrollViewContent = $(scrollView.content());\r\n this._$container = $(scrollView.container());\r\n this._initCallbacks()\r\n },\r\n _initCallbacks: function() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n render: function() {\r\n this.callBase();\r\n this._renderPullDown();\r\n this._releaseState()\r\n },\r\n _renderPullDown: function() {\r\n var $image = $(\"
\").addClass(SCROLLVIEW_PULLDOWN_IMAGE_CLASS);\r\n var $loadContainer = $(\"
\").addClass(SCROLLVIEW_PULLDOWN_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"
\")).$element();\r\n var $text = this._$pullDownText = $(\"
\").addClass(SCROLLVIEW_PULLDOWN_TEXT_CLASS);\r\n this._$pullingDownText = $(\"
\").text(this.option(\"pullingDownText\")).appendTo($text);\r\n this._$pulledDownText = $(\"
\").text(this.option(\"pulledDownText\")).appendTo($text);\r\n this._$refreshingText = $(\"
\").text(this.option(\"refreshingText\")).appendTo($text);\r\n this._$pullDown.empty().append($image).append($loadContainer.append($loadIndicator)).append($text)\r\n },\r\n _releaseState: function() {\r\n this._state = STATE_RELEASED;\r\n this._refreshPullDownText()\r\n },\r\n _refreshPullDownText: function() {\r\n var that = this;\r\n var pullDownTextItems = [{\r\n element: this._$pullingDownText,\r\n visibleState: STATE_RELEASED\r\n }, {\r\n element: this._$pulledDownText,\r\n visibleState: STATE_READY\r\n }, {\r\n element: this._$refreshingText,\r\n visibleState: STATE_REFRESHING\r\n }];\r\n each(pullDownTextItems, (function(_, item) {\r\n var action = that._state === item.visibleState ? \"addClass\" : \"removeClass\";\r\n item.element[action](SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS)\r\n }))\r\n },\r\n update: function() {\r\n this.callBase();\r\n this._setTopPocketOffset()\r\n },\r\n _updateDimensions: function() {\r\n this.callBase();\r\n this._topPocketSize = this._$topPocket.get(0).clientHeight;\r\n var contentEl = this._$scrollViewContent.get(0);\r\n var containerEl = this._$container.get(0);\r\n this._bottomBoundary = Math.max(contentEl.clientHeight - containerEl.clientHeight, 0)\r\n },\r\n _allowedDirections: function() {\r\n var allowedDirections = this.callBase();\r\n allowedDirections.vertical = allowedDirections.vertical || this._pullDownEnabled;\r\n return allowedDirections\r\n },\r\n _setTopPocketOffset: function() {\r\n this._$topPocket.css({\r\n top: -this._topPocketSize\r\n })\r\n },\r\n handleEnd: function() {\r\n this.callBase();\r\n this._complete()\r\n },\r\n handleStop: function() {\r\n this.callBase();\r\n this._complete()\r\n },\r\n _complete: function() {\r\n if (this._state === STATE_READY) {\r\n this._setPullDownOffset(this._topPocketSize);\r\n clearTimeout(this._pullDownRefreshTimeout);\r\n this._pullDownRefreshTimeout = setTimeout(function() {\r\n this._pullDownRefreshing()\r\n }.bind(this), 400)\r\n }\r\n },\r\n _setPullDownOffset: function(offset) {\r\n move(this._$topPocket, {\r\n top: offset\r\n });\r\n move(this._$scrollViewContent, {\r\n top: offset\r\n })\r\n },\r\n handleScroll: function(e) {\r\n this.callBase(e);\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n var currentLocation = this.location().top;\r\n var scrollDelta = (this._location || 0) - currentLocation;\r\n this._location = currentLocation;\r\n if (this._isPullDown()) {\r\n this._pullDownReady()\r\n } else if (scrollDelta > 0 && this._isReachBottom()) {\r\n this._reachBottom()\r\n } else {\r\n this._stateReleased()\r\n }\r\n },\r\n _isPullDown: function() {\r\n return this._pullDownEnabled && this._location >= this._topPocketSize\r\n },\r\n _isReachBottom: function() {\r\n return this._reachBottomEnabled && Math.round(this._bottomBoundary + Math.floor(this._location)) <= 1\r\n },\r\n _reachBottom: function() {\r\n if (this._state === STATE_LOADING) {\r\n return\r\n }\r\n this._state = STATE_LOADING;\r\n this.reachBottomCallbacks.fire()\r\n },\r\n _pullDownReady: function() {\r\n if (this._state === STATE_READY) {\r\n return\r\n }\r\n this._state = STATE_READY;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText()\r\n },\r\n _stateReleased: function() {\r\n if (this._state === STATE_RELEASED) {\r\n return\r\n }\r\n this._$pullDown.removeClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._releaseState()\r\n },\r\n _pullDownRefreshing: function() {\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n this._state = STATE_REFRESHING;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText();\r\n this.pullDownCallbacks.fire()\r\n },\r\n pullDownEnable: function(enabled) {\r\n if (enabled) {\r\n this._updateDimensions();\r\n this._setTopPocketOffset()\r\n }\r\n this._pullDownEnabled = enabled\r\n },\r\n reachBottomEnable: function(enabled) {\r\n this._reachBottomEnabled = enabled\r\n },\r\n pendingRelease: function() {\r\n this._state = STATE_READY\r\n },\r\n release: function() {\r\n var deferred = new Deferred;\r\n this._updateDimensions();\r\n clearTimeout(this._releaseTimeout);\r\n if (this._state === STATE_LOADING) {\r\n this._state = STATE_RELEASED\r\n }\r\n this._releaseTimeout = setTimeout(function() {\r\n this._setPullDownOffset(0);\r\n this._stateReleased();\r\n this.releaseCallbacks.fire();\r\n this._updateAction();\r\n deferred.resolve()\r\n }.bind(this), PULLDOWN_RELEASE_TIME);\r\n return deferred.promise()\r\n },\r\n dispose: function() {\r\n clearTimeout(this._pullDownRefreshTimeout);\r\n clearTimeout(this._releaseTimeout);\r\n this.callBase()\r\n }\r\n});\r\nexport default PullDownNativeScrollViewStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scroll_view.native.swipe_down.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport {\r\n eventData\r\n} from \"../../events/utils/index\";\r\nimport NativeStrategy from \"./ui.scrollable.native\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS = \"dx-scrollview-pull-down-loading\";\r\nvar SCROLLVIEW_PULLDOWN_INDICATOR_CLASS = \"dx-scrollview-pull-down-indicator\";\r\nvar SCROLLVIEW_PULLDOWN_REFRESHING_CLASS = \"dx-scrollview-pull-down-refreshing\";\r\nvar PULLDOWN_ICON_CLASS = \"dx-icon-pulldown\";\r\nvar STATE_RELEASED = 0;\r\nvar STATE_READY = 1;\r\nvar STATE_REFRESHING = 2;\r\nvar STATE_TOUCHED = 4;\r\nvar STATE_PULLED = 5;\r\nvar SwipeDownNativeScrollViewStrategy = NativeStrategy.inherit({\r\n _init: function(scrollView) {\r\n this.callBase(scrollView);\r\n this._$topPocket = scrollView._$topPocket;\r\n this._$pullDown = scrollView._$pullDown;\r\n this._$scrollViewContent = $(scrollView.content());\r\n this._$container = $(scrollView.container());\r\n this._initCallbacks();\r\n this._location = 0\r\n },\r\n _initCallbacks: function() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n render: function() {\r\n this.callBase();\r\n this._renderPullDown();\r\n this._releaseState()\r\n },\r\n _renderPullDown: function() {\r\n var $loadContainer = $(\"
\").addClass(SCROLLVIEW_PULLDOWN_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"
\")).$element();\r\n this._$icon = $(\"
\").addClass(PULLDOWN_ICON_CLASS);\r\n this._$pullDown.empty().append(this._$icon).append($loadContainer.append($loadIndicator))\r\n },\r\n _releaseState: function() {\r\n this._state = STATE_RELEASED;\r\n this._releasePullDown();\r\n this._updateDimensions()\r\n },\r\n _releasePullDown: function() {\r\n this._$pullDown.css({\r\n opacity: 0\r\n })\r\n },\r\n _updateDimensions: function() {\r\n this.callBase();\r\n this._topPocketSize = this._$topPocket.get(0).clientHeight;\r\n var contentEl = this._$scrollViewContent.get(0);\r\n var containerEl = this._$container.get(0);\r\n this._bottomBoundary = Math.max(contentEl.clientHeight - containerEl.clientHeight, 0)\r\n },\r\n _allowedDirections: function() {\r\n var allowedDirections = this.callBase();\r\n allowedDirections.vertical = allowedDirections.vertical || this._pullDownEnabled;\r\n return allowedDirections\r\n },\r\n handleInit: function(e) {\r\n this.callBase(e);\r\n if (this._state === STATE_RELEASED && 0 === this._location) {\r\n this._startClientY = eventData(e.originalEvent).y;\r\n this._state = STATE_TOUCHED\r\n }\r\n },\r\n handleMove: function(e) {\r\n this.callBase(e);\r\n this._deltaY = eventData(e.originalEvent).y - this._startClientY;\r\n if (this._state === STATE_TOUCHED) {\r\n if (this._pullDownEnabled && this._deltaY > 0) {\r\n this._state = STATE_PULLED\r\n } else {\r\n this._complete()\r\n }\r\n }\r\n if (this._state === STATE_PULLED) {\r\n e.preventDefault();\r\n this._movePullDown()\r\n }\r\n },\r\n _movePullDown: function() {\r\n var pullDownHeight = this._getPullDownHeight();\r\n var top = Math.min(3 * pullDownHeight, this._deltaY + this._getPullDownStartPosition());\r\n var angle = 180 * top / pullDownHeight / 3;\r\n this._$pullDown.css({\r\n opacity: 1\r\n }).toggleClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS, top < pullDownHeight);\r\n move(this._$pullDown, {\r\n top: top\r\n });\r\n this._$icon.css({\r\n transform: \"rotate(\" + angle + \"deg)\"\r\n })\r\n },\r\n _isPullDown: function() {\r\n return this._pullDownEnabled && this._state === STATE_PULLED && this._deltaY >= this._getPullDownHeight() - this._getPullDownStartPosition()\r\n },\r\n _getPullDownHeight: function() {\r\n return Math.round(.05 * getOuterHeight(this._$element))\r\n },\r\n _getPullDownStartPosition: function() {\r\n return -Math.round(1.5 * getOuterHeight(this._$pullDown))\r\n },\r\n handleEnd: function() {\r\n if (this._isPullDown()) {\r\n this._pullDownRefreshing()\r\n }\r\n this._complete()\r\n },\r\n handleStop: function() {\r\n this._complete()\r\n },\r\n _complete: function() {\r\n if (this._state === STATE_TOUCHED || this._state === STATE_PULLED) {\r\n this._releaseState()\r\n }\r\n },\r\n handleScroll: function(e) {\r\n this.callBase(e);\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n var currentLocation = this.location().top;\r\n var scrollDelta = this._location - currentLocation;\r\n this._location = currentLocation;\r\n if (scrollDelta > 0 && this._isReachBottom()) {\r\n this._reachBottom()\r\n } else {\r\n this._stateReleased()\r\n }\r\n },\r\n _isReachBottom: function() {\r\n return this._reachBottomEnabled && Math.round(this._bottomBoundary + Math.floor(this._location)) <= 1\r\n },\r\n _reachBottom: function() {\r\n this.reachBottomCallbacks.fire()\r\n },\r\n _stateReleased: function() {\r\n if (this._state === STATE_RELEASED) {\r\n return\r\n }\r\n this._$pullDown.removeClass(SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS);\r\n this._releaseState()\r\n },\r\n _pullDownRefreshing: function() {\r\n this._state = STATE_REFRESHING;\r\n this._pullDownRefreshHandler()\r\n },\r\n _pullDownRefreshHandler: function() {\r\n this._refreshPullDown();\r\n this.pullDownCallbacks.fire()\r\n },\r\n _refreshPullDown: function() {\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS);\r\n move(this._$pullDown, {\r\n top: this._getPullDownHeight()\r\n })\r\n },\r\n pullDownEnable: function(enabled) {\r\n this._$topPocket.toggle(enabled);\r\n this._pullDownEnabled = enabled\r\n },\r\n reachBottomEnable: function(enabled) {\r\n this._reachBottomEnabled = enabled\r\n },\r\n pendingRelease: function() {\r\n this._state = STATE_READY\r\n },\r\n release: function() {\r\n var deferred = new Deferred;\r\n this._updateDimensions();\r\n clearTimeout(this._releaseTimeout);\r\n this._releaseTimeout = setTimeout(function() {\r\n this._stateReleased();\r\n this.releaseCallbacks.fire();\r\n this._updateAction();\r\n deferred.resolve()\r\n }.bind(this), 800);\r\n return deferred.promise()\r\n },\r\n dispose: function() {\r\n clearTimeout(this._pullDownRefreshTimeout);\r\n clearTimeout(this._releaseTimeout);\r\n this.callBase()\r\n }\r\n});\r\nexport default SwipeDownNativeScrollViewStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scroll_view.simulated.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n executeAsync\r\n} from \"../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nvar math = Math;\r\nimport {\r\n Scroller,\r\n SimulatedStrategy\r\n} from \"./ui.scrollable.simulated\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nvar SCROLLVIEW_PULLDOWN_REFRESHING_CLASS = \"dx-scrollview-pull-down-loading\";\r\nvar SCROLLVIEW_PULLDOWN_READY_CLASS = \"dx-scrollview-pull-down-ready\";\r\nvar SCROLLVIEW_PULLDOWN_IMAGE_CLASS = \"dx-scrollview-pull-down-image\";\r\nvar SCROLLVIEW_PULLDOWN_INDICATOR_CLASS = \"dx-scrollview-pull-down-indicator\";\r\nvar SCROLLVIEW_PULLDOWN_TEXT_CLASS = \"dx-scrollview-pull-down-text\";\r\nvar SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS = \"dx-scrollview-pull-down-text-visible\";\r\nvar STATE_RELEASED = 0;\r\nvar STATE_READY = 1;\r\nvar STATE_REFRESHING = 2;\r\nvar STATE_LOADING = 3;\r\nvar ScrollViewScroller = Scroller.inherit({\r\n ctor: function() {\r\n this._topPocketSize = 0;\r\n this._bottomPocketSize = 0;\r\n this.callBase.apply(this, arguments);\r\n this._initCallbacks();\r\n this._releaseState()\r\n },\r\n _releaseState: function() {\r\n this._state = STATE_RELEASED;\r\n this._refreshPullDownText()\r\n },\r\n _refreshPullDownText: function() {\r\n var that = this;\r\n var pullDownTextItems = [{\r\n element: this._$pullingDownText,\r\n visibleState: STATE_RELEASED\r\n }, {\r\n element: this._$pulledDownText,\r\n visibleState: STATE_READY\r\n }, {\r\n element: this._$refreshingText,\r\n visibleState: STATE_REFRESHING\r\n }];\r\n each(pullDownTextItems, (function(_, item) {\r\n var action = that._state === item.visibleState ? \"addClass\" : \"removeClass\";\r\n item.element[action](SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS)\r\n }))\r\n },\r\n _initCallbacks: function() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n _updateBounds: function() {\r\n var considerPockets = \"horizontal\" !== this._direction;\r\n if (considerPockets) {\r\n this._topPocketSize = this._$topPocket.get(0).clientHeight;\r\n this._bottomPocketSize = this._$bottomPocket.get(0).clientHeight;\r\n var containerEl = this._$container.get(0);\r\n var contentEl = this._$content.get(0);\r\n this._bottomBoundary = Math.max(contentEl.clientHeight - this._bottomPocketSize - containerEl.clientHeight, 0)\r\n }\r\n this.callBase()\r\n },\r\n _updateScrollbar: function() {\r\n this._scrollbar.option({\r\n containerSize: this._containerSize(),\r\n contentSize: this._contentSize() - this._topPocketSize - this._bottomPocketSize,\r\n scaleRatio: this._getScaleRatio()\r\n })\r\n },\r\n _moveContent: function() {\r\n this.callBase();\r\n if (this._isPullDown()) {\r\n this._pullDownReady()\r\n } else if (this._isReachBottom()) {\r\n this._reachBottomReady()\r\n } else if (this._state !== STATE_RELEASED) {\r\n this._stateReleased()\r\n }\r\n },\r\n _moveScrollbar: function() {\r\n this._scrollbar.moveTo(this._topPocketSize + this._location)\r\n },\r\n _isPullDown: function() {\r\n return this._pullDownEnabled && this._location >= 0\r\n },\r\n _isReachBottom: function() {\r\n var containerEl = this._$container.get(0);\r\n return this._reachBottomEnabled && Math.round(this._bottomBoundary - Math.ceil(containerEl.scrollTop)) <= 1\r\n },\r\n _scrollComplete: function() {\r\n if (this._inBounds() && this._state === STATE_READY) {\r\n this._pullDownRefreshing()\r\n } else if (this._inBounds() && this._state === STATE_LOADING) {\r\n this._reachBottomLoading()\r\n } else {\r\n this.callBase()\r\n }\r\n },\r\n _reachBottomReady: function() {\r\n if (this._state === STATE_LOADING) {\r\n return\r\n }\r\n this._state = STATE_LOADING;\r\n this._minOffset = this._getMinOffset()\r\n },\r\n _getMaxOffset: function() {\r\n return -this._topPocketSize\r\n },\r\n _getMinOffset: function() {\r\n return math.min(this.callBase(), -this._topPocketSize)\r\n },\r\n _reachBottomLoading: function() {\r\n this.reachBottomCallbacks.fire()\r\n },\r\n _pullDownReady: function() {\r\n if (this._state === STATE_READY) {\r\n return\r\n }\r\n this._state = STATE_READY;\r\n this._maxOffset = 0;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText()\r\n },\r\n _stateReleased: function() {\r\n if (this._state === STATE_RELEASED) {\r\n return\r\n }\r\n this._releaseState();\r\n this._updateBounds();\r\n this._$pullDown.removeClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this.releaseCallbacks.fire()\r\n },\r\n _pullDownRefreshing: function() {\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n this._state = STATE_REFRESHING;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText();\r\n this.pullDownCallbacks.fire()\r\n },\r\n _releaseHandler: function() {\r\n if (this._state === STATE_RELEASED) {\r\n this._moveToBounds()\r\n }\r\n this._update();\r\n if (this._releaseTask) {\r\n this._releaseTask.abort()\r\n }\r\n this._releaseTask = executeAsync(this._release.bind(this));\r\n return this._releaseTask.promise\r\n },\r\n _release: function() {\r\n this._stateReleased();\r\n this._scrollComplete()\r\n },\r\n _reachBottomEnablingHandler: function(enabled) {\r\n if (this._reachBottomEnabled === enabled) {\r\n return\r\n }\r\n this._reachBottomEnabled = enabled;\r\n this._updateBounds()\r\n },\r\n _pullDownEnablingHandler: function(enabled) {\r\n if (this._pullDownEnabled === enabled) {\r\n return\r\n }\r\n this._pullDownEnabled = enabled;\r\n this._considerTopPocketChange();\r\n this._updateHandler()\r\n },\r\n _considerTopPocketChange: function() {\r\n this._location -= getHeight(this._$topPocket) || -this._topPocketSize;\r\n this._maxOffset = 0;\r\n this._move()\r\n },\r\n _pendingReleaseHandler: function() {\r\n this._state = STATE_READY\r\n },\r\n dispose: function() {\r\n if (this._releaseTask) {\r\n this._releaseTask.abort()\r\n }\r\n this.callBase()\r\n }\r\n});\r\nvar SimulatedScrollViewStrategy = SimulatedStrategy.inherit({\r\n _init: function(scrollView) {\r\n this.callBase(scrollView);\r\n this._$pullDown = scrollView._$pullDown;\r\n this._$topPocket = scrollView._$topPocket;\r\n this._$bottomPocket = scrollView._$bottomPocket;\r\n this._initCallbacks()\r\n },\r\n _initCallbacks: function() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n render: function() {\r\n this._renderPullDown();\r\n this.callBase()\r\n },\r\n _renderPullDown: function() {\r\n var $image = $(\"
\").addClass(SCROLLVIEW_PULLDOWN_IMAGE_CLASS);\r\n var $loadContainer = $(\"
\").addClass(SCROLLVIEW_PULLDOWN_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"
\")).$element();\r\n var $text = this._$pullDownText = $(\"
\").addClass(SCROLLVIEW_PULLDOWN_TEXT_CLASS);\r\n this._$pullingDownText = $(\"
\").text(this.option(\"pullingDownText\")).appendTo($text);\r\n this._$pulledDownText = $(\"
\").text(this.option(\"pulledDownText\")).appendTo($text);\r\n this._$refreshingText = $(\"
\").text(this.option(\"refreshingText\")).appendTo($text);\r\n this._$pullDown.empty().append($image).append($loadContainer.append($loadIndicator)).append($text)\r\n },\r\n pullDownEnable: function(enabled) {\r\n this._eventHandler(\"pullDownEnabling\", enabled)\r\n },\r\n reachBottomEnable: function(enabled) {\r\n this._eventHandler(\"reachBottomEnabling\", enabled)\r\n },\r\n _createScroller: function(direction) {\r\n var that = this;\r\n var scroller = that._scrollers[direction] = new ScrollViewScroller(that._scrollerOptions(direction));\r\n scroller.pullDownCallbacks.add((function() {\r\n that.pullDownCallbacks.fire()\r\n }));\r\n scroller.releaseCallbacks.add((function() {\r\n that.releaseCallbacks.fire()\r\n }));\r\n scroller.reachBottomCallbacks.add((function() {\r\n that.reachBottomCallbacks.fire()\r\n }))\r\n },\r\n _scrollerOptions: function(direction) {\r\n return extend(this.callBase(direction), {\r\n $topPocket: this._$topPocket,\r\n $bottomPocket: this._$bottomPocket,\r\n $pullDown: this._$pullDown,\r\n $pullDownText: this._$pullDownText,\r\n $pullingDownText: this._$pullingDownText,\r\n $pulledDownText: this._$pulledDownText,\r\n $refreshingText: this._$refreshingText\r\n })\r\n },\r\n pendingRelease: function() {\r\n this._eventHandler(\"pendingRelease\")\r\n },\r\n release: function() {\r\n return this._eventHandler(\"release\").done(this._updateAction)\r\n },\r\n location: function() {\r\n var location = this.callBase();\r\n location.top += getHeight(this._$topPocket);\r\n return location\r\n },\r\n dispose: function() {\r\n each(this._scrollers, (function() {\r\n this.dispose()\r\n }));\r\n this.callBase()\r\n }\r\n});\r\nexport default SimulatedScrollViewStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scroll_view.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 devices from \"../../core/devices\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport PullDownStrategy from \"./ui.scroll_view.native.pull_down\";\r\nimport SwipeDownStrategy from \"./ui.scroll_view.native.swipe_down\";\r\nimport SimulatedStrategy from \"./ui.scroll_view.simulated\";\r\nimport Scrollable from \"./ui.scrollable\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n isMaterial\r\n} from \"./../themes\";\r\nimport LoadPanel from \"../load_panel\";\r\nvar SCROLLVIEW_CLASS = \"dx-scrollview\";\r\nvar SCROLLVIEW_CONTENT_CLASS = SCROLLVIEW_CLASS + \"-content\";\r\nvar SCROLLVIEW_TOP_POCKET_CLASS = SCROLLVIEW_CLASS + \"-top-pocket\";\r\nvar SCROLLVIEW_BOTTOM_POCKET_CLASS = SCROLLVIEW_CLASS + \"-bottom-pocket\";\r\nvar SCROLLVIEW_PULLDOWN_CLASS = SCROLLVIEW_CLASS + \"-pull-down\";\r\nvar SCROLLVIEW_REACHBOTTOM_CLASS = SCROLLVIEW_CLASS + \"-scrollbottom\";\r\nvar SCROLLVIEW_REACHBOTTOM_INDICATOR_CLASS = SCROLLVIEW_REACHBOTTOM_CLASS + \"-indicator\";\r\nvar SCROLLVIEW_REACHBOTTOM_TEXT_CLASS = SCROLLVIEW_REACHBOTTOM_CLASS + \"-text\";\r\nvar SCROLLVIEW_LOADPANEL = SCROLLVIEW_CLASS + \"-loadpanel\";\r\nvar refreshStrategies = {\r\n pullDown: PullDownStrategy,\r\n swipeDown: SwipeDownStrategy,\r\n simulated: SimulatedStrategy\r\n};\r\nvar isServerSide = !hasWindow();\r\nvar scrollViewServerConfig = {\r\n finishLoading: noop,\r\n release: noop,\r\n refresh: noop,\r\n scrollOffset: () => ({\r\n top: 0,\r\n left: 0\r\n }),\r\n _optionChanged: function(args) {\r\n if (\"onUpdated\" !== args.name) {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n};\r\nvar ScrollView = Scrollable.inherit(isServerSide ? scrollViewServerConfig : {\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n pullingDownText: messageLocalization.format(\"dxScrollView-pullingDownText\"),\r\n pulledDownText: messageLocalization.format(\"dxScrollView-pulledDownText\"),\r\n refreshingText: messageLocalization.format(\"dxScrollView-refreshingText\"),\r\n reachBottomText: messageLocalization.format(\"dxScrollView-reachBottomText\"),\r\n onPullDown: null,\r\n onReachBottom: null,\r\n refreshStrategy: \"pullDown\"\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n var realDevice = devices.real();\r\n return \"android\" === realDevice.platform\r\n },\r\n options: {\r\n refreshStrategy: \"swipeDown\"\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n pullingDownText: \"\",\r\n pulledDownText: \"\",\r\n refreshingText: \"\",\r\n reachBottomText: \"\"\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._loadingIndicatorEnabled = true\r\n },\r\n _initScrollableMarkup: function() {\r\n this.callBase();\r\n this.$element().addClass(SCROLLVIEW_CLASS);\r\n this._initContent();\r\n this._initTopPocket();\r\n this._initBottomPocket();\r\n this._initLoadPanel()\r\n },\r\n _initContent: function() {\r\n var $content = $(\"
\").addClass(SCROLLVIEW_CONTENT_CLASS);\r\n this._$content.wrapInner($content)\r\n },\r\n _initTopPocket: function() {\r\n var $topPocket = this._$topPocket = $(\"
\").addClass(SCROLLVIEW_TOP_POCKET_CLASS);\r\n var $pullDown = this._$pullDown = $(\"
\").addClass(SCROLLVIEW_PULLDOWN_CLASS);\r\n $topPocket.append($pullDown);\r\n this._$content.prepend($topPocket)\r\n },\r\n _initBottomPocket: function() {\r\n var $bottomPocket = this._$bottomPocket = $(\"
\").addClass(SCROLLVIEW_BOTTOM_POCKET_CLASS);\r\n var $reachBottom = this._$reachBottom = $(\"
\").addClass(SCROLLVIEW_REACHBOTTOM_CLASS);\r\n var $loadContainer = $(\"
\").addClass(SCROLLVIEW_REACHBOTTOM_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"
\")).$element();\r\n var $text = this._$reachBottomText = $(\"
\").addClass(SCROLLVIEW_REACHBOTTOM_TEXT_CLASS);\r\n this._updateReachBottomText();\r\n $reachBottom.append($loadContainer.append($loadIndicator)).append($text);\r\n $bottomPocket.append($reachBottom);\r\n this._$content.append($bottomPocket)\r\n },\r\n _initLoadPanel: function() {\r\n var $loadPanelElement = $(\"
\").addClass(SCROLLVIEW_LOADPANEL).appendTo(this.$element());\r\n var loadPanelOptions = {\r\n shading: false,\r\n delay: 400,\r\n message: this.option(\"refreshingText\"),\r\n position: {\r\n of: this.$element()\r\n }\r\n };\r\n this._loadPanel = this._createComponent($loadPanelElement, LoadPanel, loadPanelOptions)\r\n },\r\n _updateReachBottomText: function() {\r\n this._$reachBottomText.text(this.option(\"reachBottomText\"))\r\n },\r\n _createStrategy: function() {\r\n var strategyName = this.option(\"useNative\") ? this.option(\"refreshStrategy\") : \"simulated\";\r\n var strategyClass = refreshStrategies[strategyName];\r\n this._strategy = new strategyClass(this);\r\n this._strategy.pullDownCallbacks.add(this._pullDownHandler.bind(this));\r\n this._strategy.releaseCallbacks.add(this._releaseHandler.bind(this));\r\n this._strategy.reachBottomCallbacks.add(this._reachBottomHandler.bind(this))\r\n },\r\n _createActions: function() {\r\n this.callBase();\r\n this._pullDownAction = this._createActionByOption(\"onPullDown\");\r\n this._reachBottomAction = this._createActionByOption(\"onReachBottom\");\r\n this._tryRefreshPocketState()\r\n },\r\n _tryRefreshPocketState: function() {\r\n this._pullDownEnable(this.hasActionSubscription(\"onPullDown\"));\r\n this._reachBottomEnable(this.hasActionSubscription(\"onReachBottom\"))\r\n },\r\n on: function(eventName) {\r\n var result = this.callBase.apply(this, arguments);\r\n if (\"pullDown\" === eventName || \"reachBottom\" === eventName) {\r\n this._tryRefreshPocketState()\r\n }\r\n return result\r\n },\r\n _pullDownEnable: function(enabled) {\r\n if (0 === arguments.length) {\r\n return this._pullDownEnabled\r\n }\r\n if (this._$pullDown && this._strategy) {\r\n this._$pullDown.toggle(enabled);\r\n this._strategy.pullDownEnable(enabled);\r\n this._pullDownEnabled = enabled\r\n }\r\n },\r\n _reachBottomEnable: function(enabled) {\r\n if (0 === arguments.length) {\r\n return this._reachBottomEnabled\r\n }\r\n if (this._$reachBottom && this._strategy) {\r\n this._$reachBottom.toggle(enabled);\r\n this._strategy.reachBottomEnable(enabled);\r\n this._reachBottomEnabled = enabled\r\n }\r\n },\r\n _pullDownHandler: function() {\r\n this._loadingIndicator(false);\r\n this._pullDownLoading()\r\n },\r\n _loadingIndicator: function(value) {\r\n if (arguments.length < 1) {\r\n return this._loadingIndicatorEnabled\r\n }\r\n this._loadingIndicatorEnabled = value\r\n },\r\n _pullDownLoading: function() {\r\n this.startLoading();\r\n this._pullDownAction()\r\n },\r\n _reachBottomHandler: function() {\r\n this._loadingIndicator(false);\r\n this._reachBottomLoading()\r\n },\r\n _reachBottomLoading: function() {\r\n this.startLoading();\r\n this._reachBottomAction()\r\n },\r\n _releaseHandler: function() {\r\n this.finishLoading();\r\n this._loadingIndicator(true)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"onPullDown\":\r\n case \"onReachBottom\":\r\n this._createActions();\r\n break;\r\n case \"pullingDownText\":\r\n case \"pulledDownText\":\r\n case \"refreshingText\":\r\n case \"refreshStrategy\":\r\n this._invalidate();\r\n break;\r\n case \"reachBottomText\":\r\n this._updateReachBottomText();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n content: function() {\r\n return getPublicElement(this._$content.children().eq(1))\r\n },\r\n release: function(preventReachBottom) {\r\n if (void 0 !== preventReachBottom) {\r\n this.toggleLoading(!preventReachBottom)\r\n }\r\n return this._strategy.release()\r\n },\r\n toggleLoading: function(showOrHide) {\r\n this._reachBottomEnable(showOrHide)\r\n },\r\n refresh: function() {\r\n if (!this.hasActionSubscription(\"onPullDown\")) {\r\n return\r\n }\r\n this._strategy.pendingRelease();\r\n this._pullDownLoading()\r\n },\r\n startLoading: function() {\r\n if (this._loadingIndicator() && this.$element().is(\":visible\")) {\r\n this._loadPanel.show()\r\n }\r\n this._lock()\r\n },\r\n finishLoading: function() {\r\n this._loadPanel.hide();\r\n this._unlock()\r\n },\r\n _dispose: function() {\r\n this._strategy.dispose();\r\n this.callBase();\r\n if (this._loadPanel) {\r\n this._loadPanel.$element().remove()\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxScrollView\", ScrollView);\r\nexport default ScrollView;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ScrollView from \"./scroll_view/ui.scroll_view\";\r\nexport default ScrollView;\r\n","/**\r\n * DevExtreme (esm/ui/shared/grouped_data_converter_mixin.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isObject\r\n} from \"../../core/utils/type\";\r\nvar isCorrectStructure = data => Array.isArray(data) && data.every(item => {\r\n var hasTwoFields = 2 === Object.keys(item).length;\r\n var hasCorrectFields = \"key\" in item && \"items\" in item;\r\n return hasTwoFields && hasCorrectFields && Array.isArray(item.items)\r\n});\r\nexport default {\r\n _getSpecificDataSourceOption: function() {\r\n var dataSource = this.option(\"dataSource\");\r\n var hasSimpleItems = false;\r\n var data = {};\r\n if (this._getGroupedOption() && isCorrectStructure(dataSource)) {\r\n data = dataSource.reduce((accumulator, item) => {\r\n var items = item.items.map(innerItem => {\r\n if (!isObject(innerItem)) {\r\n innerItem = {\r\n text: innerItem\r\n };\r\n hasSimpleItems = true\r\n }\r\n if (!(\"key\" in innerItem)) {\r\n innerItem.key = item.key\r\n }\r\n return innerItem\r\n });\r\n return accumulator.concat(items)\r\n }, []);\r\n dataSource = {\r\n store: {\r\n type: \"array\",\r\n data: data\r\n },\r\n group: {\r\n selector: \"key\",\r\n keepInitialKeyOrder: true\r\n }\r\n };\r\n if (hasSimpleItems) {\r\n dataSource.searchExpr = \"text\"\r\n }\r\n }\r\n return dataSource\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/utils/type_conversion.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function toNumber(attribute) {\r\n return attribute ? Number(attribute.replace(\"px\", \"\")) : 0\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/get_element_style.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n titleize\r\n} from \"../../../../core/utils/inflector\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../../../core/utils/window\";\r\nimport {\r\n toNumber\r\n} from \"../../../utils/type_conversion\";\r\nexport function getElementStyle(el) {\r\n var _getWindow$getCompute, _getWindow;\r\n return el && hasWindow() ? null === (_getWindow$getCompute = (_getWindow = getWindow()).getComputedStyle) || void 0 === _getWindow$getCompute ? void 0 : _getWindow$getCompute.call(_getWindow, el) : null\r\n}\r\nexport function getElementMargin(element, side) {\r\n var style = getElementStyle(element);\r\n return style ? toNumber(style[\"margin\".concat(titleize(side))]) : 0\r\n}\r\nexport function getElementPadding(element, side) {\r\n var style = getElementStyle(element);\r\n return style ? toNumber(style[\"padding\".concat(titleize(side))]) : 0\r\n}\r\nexport function getElementOverflowX(element) {\r\n var style = getElementStyle(element);\r\n return style ? style.overflowX : \"visible\"\r\n}\r\nexport function getElementOverflowY(element) {\r\n var style = getElementStyle(element);\r\n return style ? style.overflowY : \"visible\"\r\n}\r\nexport function getElementTransform(element) {\r\n var style = getElementStyle(element);\r\n return style ? style.transform : \"\"\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.base.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n setHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n ensureDefined,\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 getImageContainer\r\n} from \"../../core/utils/icon\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n end as swipeEventEnd\r\n} from \"../../events/swipe\";\r\nimport {\r\n nativeScrolling\r\n} from \"../../core/utils/support\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n render\r\n} from \"../widget/utils.ink_ripple\";\r\nimport devices from \"../../core/devices\";\r\nimport ListItem from \"./item\";\r\nimport Button from \"../button\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n current,\r\n isMaterial\r\n} from \"../themes\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport ScrollView from \"../scroll_view\";\r\nimport {\r\n deviceDependentOptions\r\n} from \"../scroll_view/ui.scrollable.device\";\r\nimport CollectionWidget from \"../collection/ui.collection_widget.live_update\";\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 DataConverterMixin from \"../shared/grouped_data_converter_mixin\";\r\nimport {\r\n getElementMargin\r\n} from \"../../renovation/ui/scroll_view/utils/get_element_style\";\r\nimport Guid from \"../../core/guid\";\r\nvar LIST_CLASS = \"dx-list\";\r\nvar LIST_ITEM_CLASS = \"dx-list-item\";\r\nvar LIST_ITEM_SELECTOR = \".\" + LIST_ITEM_CLASS;\r\nvar LIST_ITEM_ICON_CONTAINER_CLASS = \"dx-list-item-icon-container\";\r\nvar LIST_ITEM_ICON_CLASS = \"dx-list-item-icon\";\r\nvar LIST_GROUP_CLASS = \"dx-list-group\";\r\nvar LIST_GROUP_HEADER_CLASS = \"dx-list-group-header\";\r\nvar LIST_GROUP_BODY_CLASS = \"dx-list-group-body\";\r\nvar LIST_COLLAPSIBLE_GROUPS_CLASS = \"dx-list-collapsible-groups\";\r\nvar LIST_GROUP_COLLAPSED_CLASS = \"dx-list-group-collapsed\";\r\nvar LIST_GROUP_HEADER_INDICATOR_CLASS = \"dx-list-group-header-indicator\";\r\nvar LIST_HAS_NEXT_CLASS = \"dx-has-next\";\r\nvar LIST_NEXT_BUTTON_CLASS = \"dx-list-next-button\";\r\nvar WRAP_ITEM_TEXT_CLASS = \"dx-wrap-item-text\";\r\nvar SELECT_ALL_ITEM_SELECTOR = \".dx-list-select-all\";\r\nvar LIST_ITEM_DATA_KEY = \"dxListItemData\";\r\nvar LIST_FEEDBACK_SHOW_TIMEOUT = 70;\r\nvar groupItemsGetter = compileGetter(\"items\");\r\nvar _scrollView;\r\nexport var ListBase = CollectionWidget.inherit({\r\n _activeStateUnit: [LIST_ITEM_SELECTOR, SELECT_ALL_ITEM_SELECTOR].join(\",\"),\r\n _supportedKeys: function() {\r\n var that = this;\r\n var moveFocusPerPage = function(direction) {\r\n var $item = getEdgeVisibleItem(direction);\r\n var isFocusedItem = $item.is(that.option(\"focusedElement\"));\r\n if (isFocusedItem) {\r\n ! function($item, direction) {\r\n var resultPosition = $item.position().top;\r\n if (\"prev\" === direction) {\r\n resultPosition = $item.position().top - getHeight(that.$element()) + getOuterHeight($item)\r\n }\r\n that.scrollTo(resultPosition)\r\n }($item, direction);\r\n $item = getEdgeVisibleItem(direction)\r\n }\r\n that.option(\"focusedElement\", getPublicElement($item));\r\n that.scrollToItem($item)\r\n };\r\n\r\n function getEdgeVisibleItem(direction) {\r\n var scrollTop = that.scrollTop();\r\n var containerHeight = getHeight(that.$element());\r\n var $item = $(that.option(\"focusedElement\"));\r\n var isItemVisible = true;\r\n if (!$item.length) {\r\n return $()\r\n }\r\n while (isItemVisible) {\r\n var $nextItem = $item[direction]();\r\n if (!$nextItem.length) {\r\n break\r\n }\r\n var nextItemLocation = $nextItem.position().top + getOuterHeight($nextItem) / 2;\r\n isItemVisible = nextItemLocation < containerHeight + scrollTop && nextItemLocation > scrollTop;\r\n if (isItemVisible) {\r\n $item = $nextItem\r\n }\r\n }\r\n return $item\r\n }\r\n return extend(this.callBase(), {\r\n leftArrow: noop,\r\n rightArrow: noop,\r\n pageUp: function() {\r\n moveFocusPerPage(\"prev\");\r\n return false\r\n },\r\n pageDown: function() {\r\n moveFocusPerPage(\"next\");\r\n return false\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n pullRefreshEnabled: false,\r\n scrollingEnabled: true,\r\n selectByClick: true,\r\n showScrollbar: \"onScroll\",\r\n useNativeScrolling: true,\r\n bounceEnabled: true,\r\n scrollByContent: true,\r\n scrollByThumb: false,\r\n pullingDownText: messageLocalization.format(\"dxList-pullingDownText\"),\r\n pulledDownText: messageLocalization.format(\"dxList-pulledDownText\"),\r\n refreshingText: messageLocalization.format(\"dxList-refreshingText\"),\r\n pageLoadingText: messageLocalization.format(\"dxList-pageLoadingText\"),\r\n onScroll: null,\r\n onPullRefresh: null,\r\n onPageLoading: null,\r\n pageLoadMode: \"scrollBottom\",\r\n nextButtonText: messageLocalization.format(\"dxList-nextButtonText\"),\r\n onItemSwipe: null,\r\n grouped: false,\r\n onGroupRendered: null,\r\n collapsibleGroups: false,\r\n groupTemplate: \"group\",\r\n indicateLoading: true,\r\n activeStateEnabled: true,\r\n _itemAttributes: {\r\n role: \"option\"\r\n },\r\n useInkRipple: false,\r\n wrapItemText: false,\r\n _swipeEnabled: true,\r\n showChevronExpr: function(data) {\r\n return data ? data.showChevron : void 0\r\n },\r\n badgeExpr: function(data) {\r\n return data ? data.badge : void 0\r\n }\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n var themeName = current();\r\n return this.callBase().concat(deviceDependentOptions(), [{\r\n device: function() {\r\n return !nativeScrolling\r\n },\r\n options: {\r\n useNativeScrolling: false\r\n }\r\n }, {\r\n device: function(_device) {\r\n return !nativeScrolling && !devices.isSimulator() && \"desktop\" === devices.real().deviceType && \"generic\" === _device.platform\r\n },\r\n options: {\r\n showScrollbar: \"onHover\",\r\n pageLoadMode: \"nextButton\"\r\n }\r\n }, {\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 return isMaterial(themeName)\r\n },\r\n options: {\r\n pullingDownText: \"\",\r\n pulledDownText: \"\",\r\n refreshingText: \"\",\r\n pageLoadingText: \"\",\r\n useInkRipple: true\r\n }\r\n }])\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._updateLoadingState(true)\r\n }\r\n },\r\n _itemClass: function() {\r\n return LIST_ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return LIST_ITEM_DATA_KEY\r\n },\r\n _itemContainer: function() {\r\n return this._$container\r\n },\r\n _saveSelectionChangeEvent: function(e) {\r\n this._selectionChangeEventInstance = e\r\n },\r\n _getSelectionChangeEvent: function() {\r\n return this._selectionChangeEventInstance\r\n },\r\n _refreshItemElements: function() {\r\n if (!this.option(\"grouped\")) {\r\n this._itemElementsCache = this._itemContainer().children(this._itemSelector())\r\n } else {\r\n this._itemElementsCache = this._itemContainer().children(\".\" + LIST_GROUP_CLASS).children(\".\" + LIST_GROUP_BODY_CLASS).children(this._itemSelector())\r\n }\r\n },\r\n _modifyByChanges: function() {\r\n this.callBase.apply(this, arguments);\r\n this._refreshItemElements();\r\n this._updateLoadingState(true)\r\n },\r\n reorderItem: function(itemElement, toItemElement) {\r\n var promise = this.callBase(itemElement, toItemElement);\r\n return promise.done((function() {\r\n this._refreshItemElements()\r\n }))\r\n },\r\n deleteItem: function(itemElement) {\r\n var promise = this.callBase(itemElement);\r\n return promise.done((function() {\r\n this._refreshItemElements()\r\n }))\r\n },\r\n _itemElements: function() {\r\n return this._itemElementsCache\r\n },\r\n _itemSelectHandler: function(e) {\r\n if (\"single\" === this.option(\"selectionMode\") && this.isItemSelected(e.currentTarget)) {\r\n return\r\n }\r\n return this.callBase(e)\r\n },\r\n _allowDynamicItemsAppend: function() {\r\n return true\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._dataController.resetDataSourcePageIndex();\r\n this._$container = this.$element();\r\n this._initScrollView();\r\n this._feedbackShowTimeout = LIST_FEEDBACK_SHOW_TIMEOUT;\r\n this._createGroupRenderAction()\r\n },\r\n _scrollBottomMode: function() {\r\n return \"scrollBottom\" === this.option(\"pageLoadMode\")\r\n },\r\n _nextButtonMode: function() {\r\n return \"nextButton\" === this.option(\"pageLoadMode\")\r\n },\r\n _dataSourceOptions: function() {\r\n var scrollBottom = this._scrollBottomMode();\r\n var nextButton = this._nextButtonMode();\r\n return extend(this.callBase(), {\r\n paginate: ensureDefined(scrollBottom || nextButton, true)\r\n })\r\n },\r\n _getGroupedOption: function() {\r\n return this.option(\"grouped\")\r\n },\r\n _getGroupContainerByIndex: function(groupIndex) {\r\n return this._itemContainer().find(\".\".concat(LIST_GROUP_CLASS)).eq(groupIndex).find(\".\".concat(LIST_GROUP_BODY_CLASS))\r\n },\r\n _dataSourceFromUrlLoadMode: function() {\r\n return \"raw\"\r\n },\r\n _initScrollView: function() {\r\n var scrollingEnabled = this.option(\"scrollingEnabled\");\r\n var pullRefreshEnabled = scrollingEnabled && this.option(\"pullRefreshEnabled\");\r\n var autoPagingEnabled = scrollingEnabled && this._scrollBottomMode() && !!this._dataController.getDataSource();\r\n this._scrollView = this._createComponent(this.$element(), getScrollView(), {\r\n height: this.option(\"height\"),\r\n width: this.option(\"width\"),\r\n disabled: this.option(\"disabled\") || !scrollingEnabled,\r\n onScroll: this._scrollHandler.bind(this),\r\n onPullDown: pullRefreshEnabled ? this._pullDownHandler.bind(this) : null,\r\n onReachBottom: autoPagingEnabled ? this._scrollBottomHandler.bind(this) : null,\r\n showScrollbar: this.option(\"showScrollbar\"),\r\n useNative: this.option(\"useNativeScrolling\"),\r\n bounceEnabled: this.option(\"bounceEnabled\"),\r\n scrollByContent: this.option(\"scrollByContent\"),\r\n scrollByThumb: this.option(\"scrollByThumb\"),\r\n pullingDownText: this.option(\"pullingDownText\"),\r\n pulledDownText: this.option(\"pulledDownText\"),\r\n refreshingText: this.option(\"refreshingText\"),\r\n reachBottomText: this.option(\"pageLoadingText\"),\r\n useKeyboard: false\r\n });\r\n this._$container = $(this._scrollView.content());\r\n if (this.option(\"wrapItemText\")) {\r\n this._$container.addClass(WRAP_ITEM_TEXT_CLASS)\r\n }\r\n this._createScrollViewActions()\r\n },\r\n _createScrollViewActions: function() {\r\n this._scrollAction = this._createActionByOption(\"onScroll\");\r\n this._pullRefreshAction = this._createActionByOption(\"onPullRefresh\");\r\n this._pageLoadingAction = this._createActionByOption(\"onPageLoading\")\r\n },\r\n _scrollHandler: function(e) {\r\n this._scrollAction && this._scrollAction(e)\r\n },\r\n _initTemplates: function() {\r\n this._templateManager.addDefaultTemplates({\r\n group: new BindableTemplate((function($container, data) {\r\n if (isPlainObject(data)) {\r\n if (data.key) {\r\n $container.text(data.key)\r\n }\r\n } else {\r\n $container.text(String(data))\r\n }\r\n }), [\"key\"], this.option(\"integrationOptions.watchMethod\"))\r\n });\r\n this.callBase()\r\n },\r\n _prepareDefaultItemTemplate: function(data, $container) {\r\n this.callBase(data, $container);\r\n if (data.icon) {\r\n var $icon = getImageContainer(data.icon).addClass(LIST_ITEM_ICON_CLASS);\r\n var $iconContainer = $(\"
\").addClass(LIST_ITEM_ICON_CONTAINER_CLASS);\r\n $iconContainer.append($icon);\r\n $container.prepend($iconContainer)\r\n }\r\n },\r\n _getBindableFields: function() {\r\n return [\"text\", \"html\", \"icon\"]\r\n },\r\n _updateLoadingState: function(tryLoadMore) {\r\n var dataController = this._dataController;\r\n var shouldLoadNextPage = this._scrollBottomMode() && tryLoadMore && !dataController.isLoading() && !this._isLastPage();\r\n if (this._shouldContinueLoading(shouldLoadNextPage)) {\r\n this._infiniteDataLoading()\r\n } else {\r\n this._scrollView.release(!shouldLoadNextPage && !dataController.isLoading());\r\n this._toggleNextButton(this._shouldRenderNextButton() && !this._isLastPage());\r\n this._loadIndicationSuppressed(false)\r\n }\r\n },\r\n _shouldRenderNextButton: function() {\r\n return this._nextButtonMode() && this._dataController.isLoaded()\r\n },\r\n _isDataSourceFirstLoadCompleted: function(newValue) {\r\n if (isDefined(newValue)) {\r\n this._isFirstLoadCompleted = newValue\r\n }\r\n return this._isFirstLoadCompleted\r\n },\r\n _dataSourceLoadingChangedHandler: function(isLoading) {\r\n if (this._loadIndicationSuppressed()) {\r\n return\r\n }\r\n if (isLoading && this.option(\"indicateLoading\")) {\r\n this._showLoadingIndicatorTimer = setTimeout(function() {\r\n var isEmpty = !this._itemElements().length;\r\n var shouldIndicateLoading = !isEmpty || this._isDataSourceFirstLoadCompleted();\r\n if (shouldIndicateLoading) {\r\n var _this$_scrollView;\r\n null === (_this$_scrollView = this._scrollView) || void 0 === _this$_scrollView ? void 0 : _this$_scrollView.startLoading()\r\n }\r\n }.bind(this))\r\n } else {\r\n clearTimeout(this._showLoadingIndicatorTimer);\r\n this._scrollView && this._scrollView.finishLoading()\r\n }\r\n if (!isLoading) {\r\n this._isDataSourceFirstLoadCompleted(false)\r\n }\r\n },\r\n _dataSourceChangedHandler: function() {\r\n if (!this._shouldAppendItems() && hasWindow()) {\r\n this._scrollView && this._scrollView.scrollTo(0)\r\n }\r\n this.callBase.apply(this, arguments);\r\n this._isDataSourceFirstLoadCompleted(true)\r\n },\r\n _refreshContent: function() {\r\n this._prepareContent();\r\n this._fireContentReadyAction()\r\n },\r\n _hideLoadingIfLoadIndicationOff: function() {\r\n if (!this.option(\"indicateLoading\")) {\r\n this._dataSourceLoadingChangedHandler(false)\r\n }\r\n },\r\n _loadIndicationSuppressed: function(value) {\r\n if (!arguments.length) {\r\n return this._isLoadIndicationSuppressed\r\n }\r\n this._isLoadIndicationSuppressed = value\r\n },\r\n _scrollViewIsFull: function() {\r\n var scrollView = this._scrollView;\r\n return !scrollView || getHeight(scrollView.content()) > getHeight(scrollView.container())\r\n },\r\n _pullDownHandler: function(e) {\r\n this._pullRefreshAction(e);\r\n var dataController = this._dataController;\r\n if (dataController.getDataSource() && !dataController.isLoading()) {\r\n this._clearSelectedItems();\r\n dataController.pageIndex(0);\r\n dataController.reload()\r\n } else {\r\n this._updateLoadingState()\r\n }\r\n },\r\n _shouldContinueLoading: function(shouldLoadNextPage) {\r\n var _this$_scrollView$scr, _this$_scrollView$scr2;\r\n var isBottomReached = getHeight(this._scrollView.content()) - getHeight(this._scrollView.container()) < (null !== (_this$_scrollView$scr = null === (_this$_scrollView$scr2 = this._scrollView.scrollOffset()) || void 0 === _this$_scrollView$scr2 ? void 0 : _this$_scrollView$scr2.top) && void 0 !== _this$_scrollView$scr ? _this$_scrollView$scr : 0);\r\n return shouldLoadNextPage && (!this._scrollViewIsFull() || isBottomReached)\r\n },\r\n _infiniteDataLoading: function() {\r\n var isElementVisible = this.$element().is(\":visible\");\r\n if (isElementVisible) {\r\n clearTimeout(this._loadNextPageTimer);\r\n this._loadNextPageTimer = setTimeout(() => {\r\n this._loadNextPage()\r\n })\r\n }\r\n },\r\n _scrollBottomHandler: function(e) {\r\n this._pageLoadingAction(e);\r\n var dataController = this._dataController;\r\n if (!dataController.isLoading() && !this._isLastPage()) {\r\n this._loadNextPage()\r\n } else {\r\n this._updateLoadingState()\r\n }\r\n },\r\n _renderItems: function(items) {\r\n if (this.option(\"grouped\")) {\r\n each(items, this._renderGroup.bind(this));\r\n this._attachGroupCollapseEvent();\r\n this._renderEmptyMessage();\r\n if (isMaterial()) {\r\n this.attachGroupHeaderInkRippleEvents()\r\n }\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n this._refreshItemElements();\r\n this._updateLoadingState(true)\r\n },\r\n _attachGroupCollapseEvent: function() {\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n var selector = \".\" + LIST_GROUP_HEADER_CLASS;\r\n var $element = this.$element();\r\n var collapsibleGroups = this.option(\"collapsibleGroups\");\r\n $element.toggleClass(LIST_COLLAPSIBLE_GROUPS_CLASS, collapsibleGroups);\r\n eventsEngine.off($element, eventName, selector);\r\n if (collapsibleGroups) {\r\n eventsEngine.on($element, eventName, selector, function(e) {\r\n this._createAction(function(e) {\r\n var $group = $(e.event.currentTarget).parent();\r\n this._collapseGroupHandler($group);\r\n if (this.option(\"focusStateEnabled\")) {\r\n this.option(\"focusedElement\", getPublicElement($group.find(\".\" + LIST_ITEM_CLASS).eq(0)))\r\n }\r\n }.bind(this), {\r\n validatingTargetName: \"element\"\r\n })({\r\n event: e\r\n })\r\n }.bind(this))\r\n }\r\n },\r\n _collapseGroupHandler: function($group, toggle) {\r\n var deferred = new Deferred;\r\n if ($group.hasClass(LIST_GROUP_COLLAPSED_CLASS) === toggle) {\r\n return deferred.resolve()\r\n }\r\n var $groupBody = $group.children(\".\" + LIST_GROUP_BODY_CLASS);\r\n var startHeight = getOuterHeight($groupBody);\r\n var endHeight = 0;\r\n if (0 === startHeight) {\r\n setHeight($groupBody, \"auto\");\r\n endHeight = getOuterHeight($groupBody)\r\n }\r\n $group.toggleClass(LIST_GROUP_COLLAPSED_CLASS, toggle);\r\n fx.animate($groupBody, {\r\n type: \"custom\",\r\n from: {\r\n height: startHeight\r\n },\r\n to: {\r\n height: endHeight\r\n },\r\n duration: 200,\r\n complete: function() {\r\n this.updateDimensions();\r\n this._updateLoadingState(true);\r\n deferred.resolve()\r\n }.bind(this)\r\n });\r\n return deferred.promise()\r\n },\r\n _dataSourceLoadErrorHandler: function() {\r\n this._forgetNextPageLoading();\r\n if (this._initialized) {\r\n this._renderEmptyMessage();\r\n this._updateLoadingState()\r\n }\r\n },\r\n _initMarkup: function() {\r\n this._itemElementsCache = $();\r\n this.$element().addClass(LIST_CLASS);\r\n this.callBase();\r\n this.option(\"useInkRipple\") && this._renderInkRipple();\r\n this.setAria({\r\n role: \"group\",\r\n roledescription: \"list\"\r\n }, this.$element());\r\n this._setListAria()\r\n },\r\n _setListAria() {\r\n var {\r\n items: items\r\n } = this.option();\r\n var listArea = null !== items && void 0 !== items && items.length ? {\r\n role: \"listbox\",\r\n label: \"Items\"\r\n } : {\r\n role: void 0,\r\n label: void 0\r\n };\r\n this.setAria(listArea)\r\n },\r\n _focusTarget: function() {\r\n return this._itemContainer()\r\n },\r\n _renderInkRipple: function() {\r\n this._inkRipple = render()\r\n },\r\n _toggleActiveState: function($element, value, e) {\r\n this.callBase.apply(this, arguments);\r\n var that = this;\r\n if (!this._inkRipple) {\r\n return\r\n }\r\n var config = {\r\n element: $element,\r\n event: e\r\n };\r\n if (value) {\r\n if (isMaterial()) {\r\n this._inkRippleTimer = setTimeout((function() {\r\n that._inkRipple.showWave(config)\r\n }), LIST_FEEDBACK_SHOW_TIMEOUT / 2)\r\n } else {\r\n that._inkRipple.showWave(config)\r\n }\r\n } else {\r\n clearTimeout(this._inkRippleTimer);\r\n this._inkRipple.hideWave(config)\r\n }\r\n },\r\n _postprocessRenderItem: function(args) {\r\n this._refreshItemElements();\r\n this.callBase.apply(this, arguments);\r\n if (this.option(\"_swipeEnabled\")) {\r\n this._attachSwipeEvent($(args.itemElement))\r\n }\r\n },\r\n _attachSwipeEvent: function($itemElement) {\r\n var endEventName = addNamespace(swipeEventEnd, this.NAME);\r\n eventsEngine.on($itemElement, endEventName, this._itemSwipeEndHandler.bind(this))\r\n },\r\n _itemSwipeEndHandler: function(e) {\r\n this._itemDXEventHandler(e, \"onItemSwipe\", {\r\n direction: e.offset < 0 ? \"left\" : \"right\"\r\n })\r\n },\r\n _nextButtonHandler: function(e) {\r\n this._pageLoadingAction(e);\r\n var dataController = this._dataController;\r\n if (dataController.getDataSource() && !dataController.isLoading()) {\r\n this._scrollView.toggleLoading(true);\r\n this._$nextButton.detach();\r\n this._loadIndicationSuppressed(true);\r\n this._loadNextPage()\r\n }\r\n },\r\n _renderGroup: function(index, group) {\r\n var $groupElement = $(\"
\").addClass(LIST_GROUP_CLASS).appendTo(this._itemContainer());\r\n var id = \"dx-\".concat((new Guid).toString());\r\n var groupAria = {\r\n role: \"group\",\r\n labelledby: id\r\n };\r\n this.setAria(groupAria, $groupElement);\r\n var $groupHeaderElement = $(\"
\").addClass(LIST_GROUP_HEADER_CLASS).attr(\"id\", id).appendTo($groupElement);\r\n var groupTemplateName = this.option(\"groupTemplate\");\r\n var groupTemplate = this._getTemplate(group.template || groupTemplateName, group, index, $groupHeaderElement);\r\n var renderArgs = {\r\n index: index,\r\n itemData: group,\r\n container: getPublicElement($groupHeaderElement)\r\n };\r\n this._createItemByTemplate(groupTemplate, renderArgs);\r\n if (isMaterial()) {\r\n $(\"
\").addClass(LIST_GROUP_HEADER_INDICATOR_CLASS).prependTo($groupHeaderElement)\r\n }\r\n this._renderingGroupIndex = index;\r\n var $groupBody = $(\"
\").addClass(LIST_GROUP_BODY_CLASS).appendTo($groupElement);\r\n each(groupItemsGetter(group) || [], function(itemIndex, item) {\r\n this._renderItem({\r\n group: index,\r\n item: itemIndex\r\n }, item, $groupBody)\r\n }.bind(this));\r\n this._groupRenderAction({\r\n groupElement: getPublicElement($groupElement),\r\n groupIndex: index,\r\n groupData: group\r\n })\r\n },\r\n downInkRippleHandler: function(e) {\r\n this._toggleActiveState($(e.currentTarget), true, e)\r\n },\r\n upInkRippleHandler: function(e) {\r\n this._toggleActiveState($(e.currentTarget), false)\r\n },\r\n attachGroupHeaderInkRippleEvents: function() {\r\n var selector = \".\" + LIST_GROUP_HEADER_CLASS;\r\n var $element = this.$element();\r\n this._downInkRippleHandler = this._downInkRippleHandler || this.downInkRippleHandler.bind(this);\r\n this._upInkRippleHandler = this._upInkRippleHandler || this.upInkRippleHandler.bind(this);\r\n var downArguments = [$element, \"dxpointerdown\", selector, this._downInkRippleHandler];\r\n var upArguments = [$element, \"dxpointerup dxpointerout\", selector, this._upInkRippleHandler];\r\n eventsEngine.off(...downArguments);\r\n eventsEngine.on(...downArguments);\r\n eventsEngine.off(...upArguments);\r\n eventsEngine.on(...upArguments)\r\n },\r\n _createGroupRenderAction: function() {\r\n this._groupRenderAction = this._createActionByOption(\"onGroupRendered\")\r\n },\r\n _clean: function() {\r\n clearTimeout(this._inkRippleTimer);\r\n if (this._$nextButton) {\r\n this._$nextButton.remove();\r\n this._$nextButton = null\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _dispose: function() {\r\n this._isDataSourceFirstLoadCompleted(false);\r\n clearTimeout(this._holdTimer);\r\n clearTimeout(this._loadNextPageTimer);\r\n clearTimeout(this._showLoadingIndicatorTimer);\r\n this.callBase()\r\n },\r\n _toggleDisabledState: function(value) {\r\n this.callBase(value);\r\n this._scrollView.option(\"disabled\", value || !this.option(\"scrollingEnabled\"))\r\n },\r\n _toggleNextButton: function(value) {\r\n var dataController = this._dataController;\r\n var $nextButton = this._getNextButton();\r\n this.$element().toggleClass(LIST_HAS_NEXT_CLASS, value);\r\n if (value && dataController.isLoaded()) {\r\n $nextButton.appendTo(this._itemContainer())\r\n }\r\n if (!value) {\r\n $nextButton.detach()\r\n }\r\n },\r\n _getNextButton: function() {\r\n if (!this._$nextButton) {\r\n this._$nextButton = this._createNextButton()\r\n }\r\n return this._$nextButton\r\n },\r\n _createNextButton: function() {\r\n var $result = $(\"
\").addClass(LIST_NEXT_BUTTON_CLASS);\r\n var $button = $(\"
\").appendTo($result);\r\n this._createComponent($button, Button, {\r\n text: this.option(\"nextButtonText\"),\r\n onClick: this._nextButtonHandler.bind(this),\r\n type: isMaterial() ? \"default\" : void 0,\r\n integrationOptions: {}\r\n });\r\n return $result\r\n },\r\n _moveFocus: function() {\r\n this.callBase.apply(this, arguments);\r\n this.scrollToItem(this.option(\"focusedElement\"))\r\n },\r\n _refresh: function() {\r\n if (!hasWindow()) {\r\n this.callBase()\r\n } else {\r\n var scrollTop = this._scrollView.scrollTop();\r\n this.callBase();\r\n scrollTop && this._scrollView.scrollTo(scrollTop)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"pageLoadMode\":\r\n this._toggleNextButton(args.value);\r\n this._initScrollView();\r\n break;\r\n case \"dataSource\":\r\n this.callBase(args);\r\n this._initScrollView();\r\n this._isDataSourceFirstLoadCompleted(false);\r\n break;\r\n case \"items\":\r\n this.callBase(args);\r\n this._isDataSourceFirstLoadCompleted(false);\r\n break;\r\n case \"pullingDownText\":\r\n case \"pulledDownText\":\r\n case \"refreshingText\":\r\n case \"pageLoadingText\":\r\n case \"showScrollbar\":\r\n case \"bounceEnabled\":\r\n case \"scrollByContent\":\r\n case \"scrollByThumb\":\r\n case \"useNativeScrolling\":\r\n case \"scrollingEnabled\":\r\n case \"pullRefreshEnabled\":\r\n this._initScrollView();\r\n this._updateLoadingState(true);\r\n break;\r\n case \"nextButtonText\":\r\n case \"onItemSwipe\":\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n case \"onScroll\":\r\n case \"onPullRefresh\":\r\n case \"onPageLoading\":\r\n this._createScrollViewActions();\r\n break;\r\n case \"grouped\":\r\n case \"collapsibleGroups\":\r\n case \"groupTemplate\":\r\n this._invalidate();\r\n break;\r\n case \"wrapItemText\":\r\n this._$container.toggleClass(WRAP_ITEM_TEXT_CLASS, args.value);\r\n break;\r\n case \"onGroupRendered\":\r\n this._createGroupRenderAction();\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n this._scrollView.option(args.name, args.value);\r\n this._scrollView.update();\r\n break;\r\n case \"indicateLoading\":\r\n this._hideLoadingIfLoadIndicationOff();\r\n break;\r\n case \"visible\":\r\n this.callBase(args);\r\n this._scrollView.update();\r\n break;\r\n case \"rtlEnabled\":\r\n this._initScrollView();\r\n this.callBase(args);\r\n break;\r\n case \"showChevronExpr\":\r\n case \"badgeExpr\":\r\n this._invalidate();\r\n break;\r\n case \"_swipeEnabled\":\r\n case \"selectByClick\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _extendActionArgs: function($itemElement) {\r\n if (!this.option(\"grouped\")) {\r\n return this.callBase($itemElement)\r\n }\r\n var $group = $itemElement.closest(\".\" + LIST_GROUP_CLASS);\r\n var $item = $group.find(\".\" + LIST_ITEM_CLASS);\r\n return extend(this.callBase($itemElement), {\r\n itemIndex: {\r\n group: $group.index(),\r\n item: $item.index($itemElement)\r\n }\r\n })\r\n },\r\n expandGroup: function(groupIndex) {\r\n var deferred = new Deferred;\r\n var $group = this._itemContainer().find(\".\" + LIST_GROUP_CLASS).eq(groupIndex);\r\n this._collapseGroupHandler($group, false).done(function() {\r\n deferred.resolveWith(this)\r\n }.bind(this));\r\n return deferred.promise()\r\n },\r\n collapseGroup: function(groupIndex) {\r\n var deferred = new Deferred;\r\n var $group = this._itemContainer().find(\".\" + LIST_GROUP_CLASS).eq(groupIndex);\r\n this._collapseGroupHandler($group, true).done(function() {\r\n deferred.resolveWith(this)\r\n }.bind(this));\r\n return deferred\r\n },\r\n updateDimensions: function() {\r\n var that = this;\r\n var deferred = new Deferred;\r\n if (that._scrollView) {\r\n that._scrollView.update().done((function() {\r\n !that._scrollViewIsFull() && that._updateLoadingState(true);\r\n deferred.resolveWith(that)\r\n }))\r\n } else {\r\n deferred.resolveWith(that)\r\n }\r\n return deferred.promise()\r\n },\r\n reload: function() {\r\n this.callBase();\r\n this.scrollTo(0);\r\n this._pullDownHandler()\r\n },\r\n repaint: function() {\r\n this.scrollTo(0);\r\n this.callBase()\r\n },\r\n scrollTop: function() {\r\n return this._scrollView.scrollOffset().top\r\n },\r\n clientHeight: function() {\r\n return this._scrollView.clientHeight()\r\n },\r\n scrollHeight: function() {\r\n return this._scrollView.scrollHeight()\r\n },\r\n scrollBy: function(distance) {\r\n this._scrollView.scrollBy(distance)\r\n },\r\n scrollTo: function(location) {\r\n this._scrollView.scrollTo(location)\r\n },\r\n scrollToItem: function(itemElement) {\r\n var $item = this._editStrategy.getItemElement(itemElement);\r\n var item = null === $item || void 0 === $item ? void 0 : $item.get(0);\r\n this._scrollView.scrollToElement(item, {\r\n bottom: getElementMargin(item, \"bottom\")\r\n })\r\n },\r\n _dimensionChanged: function() {\r\n this.updateDimensions()\r\n }\r\n}).include(DataConverterMixin);\r\nListBase.ItemClass = ListItem;\r\n\r\nfunction getScrollView() {\r\n return _scrollView || ScrollView\r\n}\r\nexport function setScrollView(value) {\r\n _scrollView = value\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/internal/ui.toolbar.menu.list.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n ListBase\r\n} from \"../../list/ui.list.base\";\r\nvar TOOLBAR_MENU_ACTION_CLASS = \"dx-toolbar-menu-action\";\r\nvar TOOLBAR_HIDDEN_BUTTON_CLASS = \"dx-toolbar-hidden-button\";\r\nvar TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS = \"dx-toolbar-hidden-button-group\";\r\nvar TOOLBAR_MENU_SECTION_CLASS = \"dx-toolbar-menu-section\";\r\nvar TOOLBAR_MENU_CUSTOM_CLASS = \"dx-toolbar-menu-custom\";\r\nvar TOOLBAR_MENU_LAST_SECTION_CLASS = \"dx-toolbar-menu-last-section\";\r\nvar SCROLLVIEW_CONTENT_CLASS = \"dx-scrollview-content\";\r\nexport default class ToolbarMenuList extends ListBase {\r\n _init() {\r\n super._init();\r\n this._activeStateUnit = \".\".concat(TOOLBAR_MENU_ACTION_CLASS, \":not(.\").concat(TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS, \")\")\r\n }\r\n _initMarkup() {\r\n this._renderSections();\r\n super._initMarkup();\r\n this._setMenuRole()\r\n }\r\n _getSections() {\r\n return this._itemContainer().children()\r\n }\r\n _itemElements() {\r\n return this._getSections().children(this._itemSelector())\r\n }\r\n _renderSections() {\r\n var $container = this._itemContainer();\r\n each([\"before\", \"center\", \"after\", \"menu\"], (_, section) => {\r\n var sectionName = \"_$\".concat(section, \"Section\");\r\n if (!this[sectionName]) {\r\n this[sectionName] = $(\"
\").addClass(TOOLBAR_MENU_SECTION_CLASS)\r\n }\r\n this[sectionName].appendTo($container)\r\n })\r\n }\r\n _renderItems() {\r\n super._renderItems.apply(this, arguments);\r\n this._updateSections()\r\n }\r\n _setMenuRole() {\r\n var $menuContainer = this.$element().find(\".\".concat(SCROLLVIEW_CONTENT_CLASS));\r\n $menuContainer.attr(\"role\", \"menu\")\r\n }\r\n _updateSections() {\r\n var $sections = this.$element().find(\".\".concat(TOOLBAR_MENU_SECTION_CLASS));\r\n $sections.removeClass(TOOLBAR_MENU_LAST_SECTION_CLASS);\r\n $sections.not(\":empty\").eq(-1).addClass(TOOLBAR_MENU_LAST_SECTION_CLASS)\r\n }\r\n _renderItem(index, item, itemContainer, $after) {\r\n var _item$location;\r\n var location = null !== (_item$location = item.location) && void 0 !== _item$location ? _item$location : \"menu\";\r\n var $container = this[\"_$\".concat(location, \"Section\")];\r\n var itemElement = super._renderItem(index, item, $container, $after);\r\n if (this._getItemTemplateName({\r\n itemData: item\r\n })) {\r\n itemElement.addClass(TOOLBAR_MENU_CUSTOM_CLASS)\r\n }\r\n if (\"menu\" === location || \"dxButton\" === item.widget || \"dxButtonGroup\" === item.widget || item.isAction) {\r\n itemElement.addClass(TOOLBAR_MENU_ACTION_CLASS)\r\n }\r\n if (\"dxButton\" === item.widget) {\r\n itemElement.addClass(TOOLBAR_HIDDEN_BUTTON_CLASS)\r\n }\r\n if (\"dxButtonGroup\" === item.widget) {\r\n itemElement.addClass(TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS)\r\n }\r\n itemElement.addClass(item.cssClass);\r\n return itemElement\r\n }\r\n _getItemTemplateName(args) {\r\n var template = super._getItemTemplateName(args);\r\n var data = args.itemData;\r\n var menuTemplate = data && data.menuItemTemplate;\r\n return menuTemplate || template\r\n }\r\n _dataSourceOptions() {\r\n return {\r\n paginate: false\r\n }\r\n }\r\n _itemClickHandler(e, args, config) {\r\n if ($(e.target).closest(\".\".concat(TOOLBAR_MENU_ACTION_CLASS)).length) {\r\n super._itemClickHandler(e, args, config)\r\n }\r\n }\r\n _clean() {\r\n this._getSections().empty();\r\n super._clean()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/popup/popup_drag.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n locate,\r\n move\r\n} from \"../../animation/translator\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n getOffset,\r\n getOuterWidth,\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport {\r\n fitIntoRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n isWindow\r\n} from \"../../core/utils/type\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n start as dragStartEvent,\r\n move as dragMoveEvent,\r\n end as dragEndEvent\r\n} from \"../../events/drag\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nvar KEYBOARD_DRAG_STEP = 5;\r\nclass PopupDrag {\r\n constructor(config) {\r\n this.init(config)\r\n }\r\n init(_ref) {\r\n var {\r\n dragEnabled: dragEnabled,\r\n handle: handle,\r\n draggableElement: draggableElement,\r\n positionController: positionController\r\n } = _ref;\r\n this._positionController = positionController;\r\n this._draggableElement = draggableElement;\r\n this._handle = handle;\r\n this._dragEnabled = dragEnabled;\r\n this.unsubscribe();\r\n if (!dragEnabled) {\r\n return\r\n }\r\n this.subscribe()\r\n }\r\n moveDown(e) {\r\n this._moveTo(KEYBOARD_DRAG_STEP, 0, e)\r\n }\r\n moveUp(e) {\r\n this._moveTo(-KEYBOARD_DRAG_STEP, 0, e)\r\n }\r\n moveLeft(e) {\r\n this._moveTo(0, -KEYBOARD_DRAG_STEP, e)\r\n }\r\n moveRight(e) {\r\n this._moveTo(0, KEYBOARD_DRAG_STEP, e)\r\n }\r\n subscribe() {\r\n var eventNames = this._getEventNames();\r\n eventsEngine.on(this._handle, eventNames.startEventName, e => {\r\n this._dragStartHandler(e)\r\n });\r\n eventsEngine.on(this._handle, eventNames.updateEventName, e => {\r\n this._dragUpdateHandler(e)\r\n });\r\n eventsEngine.on(this._handle, eventNames.endEventName, e => {\r\n this._dragEndHandler(e)\r\n })\r\n }\r\n unsubscribe() {\r\n var eventNames = this._getEventNames();\r\n eventsEngine.off(this._handle, eventNames.startEventName);\r\n eventsEngine.off(this._handle, eventNames.updateEventName);\r\n eventsEngine.off(this._handle, eventNames.endEventName)\r\n }\r\n _getEventNames() {\r\n var startEventName = addNamespace(dragStartEvent, \"overlayDrag\");\r\n var updateEventName = addNamespace(dragMoveEvent, \"overlayDrag\");\r\n var endEventName = addNamespace(dragEndEvent, \"overlayDrag\");\r\n return {\r\n startEventName: startEventName,\r\n updateEventName: updateEventName,\r\n endEventName: endEventName\r\n }\r\n }\r\n _dragStartHandler(e) {\r\n var allowedOffsets = this._getAllowedOffsets();\r\n this._prevOffset = {\r\n x: 0,\r\n y: 0\r\n };\r\n e.targetElements = [];\r\n e.maxTopOffset = allowedOffsets.top;\r\n e.maxBottomOffset = allowedOffsets.bottom;\r\n e.maxLeftOffset = allowedOffsets.left;\r\n e.maxRightOffset = allowedOffsets.right\r\n }\r\n _dragUpdateHandler(e) {\r\n var targetOffset = {\r\n top: e.offset.y - this._prevOffset.y,\r\n left: e.offset.x - this._prevOffset.x\r\n };\r\n this._moveByOffset(targetOffset);\r\n this._prevOffset = e.offset\r\n }\r\n _dragEndHandler(event) {\r\n this._positionController.dragHandled();\r\n this._positionController.detectVisualPositionChange(event)\r\n }\r\n _moveTo(top, left, e) {\r\n if (!this._dragEnabled) {\r\n return\r\n }\r\n e.preventDefault();\r\n e.stopPropagation();\r\n var offset = this._fitOffsetIntoAllowedRange(top, left);\r\n this._moveByOffset(offset);\r\n this._dragEndHandler(e)\r\n }\r\n _fitOffsetIntoAllowedRange(top, left) {\r\n var allowedOffsets = this._getAllowedOffsets();\r\n return {\r\n top: fitIntoRange(top, -allowedOffsets.top, allowedOffsets.bottom),\r\n left: fitIntoRange(left, -allowedOffsets.left, allowedOffsets.right)\r\n }\r\n }\r\n _getContainerDimensions() {\r\n var document = domAdapter.getDocument();\r\n var container = this._positionController.$dragResizeContainer.get(0);\r\n var containerWidth = getOuterWidth(container);\r\n var containerHeight = getOuterHeight(container);\r\n if (isWindow(container)) {\r\n containerHeight = Math.max(document.body.clientHeight, containerHeight);\r\n containerWidth = Math.max(document.body.clientWidth, containerWidth)\r\n }\r\n return {\r\n width: containerWidth,\r\n height: containerHeight\r\n }\r\n }\r\n _getContainerPosition() {\r\n var container = this._positionController.$dragResizeContainer.get(0);\r\n return isWindow(container) ? {\r\n top: 0,\r\n left: 0\r\n } : getOffset(container)\r\n }\r\n _getElementPosition() {\r\n return getOffset(this._draggableElement)\r\n }\r\n _getInnerDelta() {\r\n var containerDimensions = this._getContainerDimensions();\r\n var elementDimensions = this._getElementDimensions();\r\n return {\r\n x: containerDimensions.width - elementDimensions.width,\r\n y: containerDimensions.height - elementDimensions.height\r\n }\r\n }\r\n _getOuterDelta() {\r\n var {\r\n width: width,\r\n height: height\r\n } = this._getElementDimensions();\r\n var outsideDragFactor = this._positionController.outsideDragFactor;\r\n return {\r\n x: width * outsideDragFactor,\r\n y: height * outsideDragFactor\r\n }\r\n }\r\n _getFullDelta() {\r\n var fullDelta = this._getInnerDelta();\r\n var outerDelta = this._getOuterDelta();\r\n return {\r\n x: fullDelta.x + outerDelta.x,\r\n y: fullDelta.y + outerDelta.y\r\n }\r\n }\r\n _getElementDimensions() {\r\n return {\r\n width: this._draggableElement.offsetWidth,\r\n height: this._draggableElement.offsetHeight\r\n }\r\n }\r\n _getAllowedOffsets() {\r\n var fullDelta = this._getFullDelta();\r\n var isDragAllowed = fullDelta.y >= 0 && fullDelta.x >= 0;\r\n if (!isDragAllowed) {\r\n return {\r\n top: 0,\r\n bottom: 0,\r\n left: 0,\r\n right: 0\r\n }\r\n }\r\n var elementPosition = this._getElementPosition();\r\n var containerPosition = this._getContainerPosition();\r\n var outerDelta = this._getOuterDelta();\r\n return {\r\n top: elementPosition.top - containerPosition.top + outerDelta.y,\r\n bottom: -elementPosition.top + containerPosition.top + fullDelta.y,\r\n left: elementPosition.left - containerPosition.left + outerDelta.x,\r\n right: -elementPosition.left + containerPosition.left + fullDelta.x\r\n }\r\n }\r\n _moveByOffset(offset) {\r\n var currentPosition = locate(this._draggableElement);\r\n var newPosition = {\r\n left: currentPosition.left + offset.left,\r\n top: currentPosition.top + offset.top\r\n };\r\n move(this._draggableElement, newPosition)\r\n }\r\n}\r\nexport default PopupDrag;\r\n","/**\r\n * DevExtreme (esm/ui/resizable.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 getOuterWidth,\r\n getOuterHeight,\r\n getInnerWidth,\r\n getInnerHeight,\r\n getWidth,\r\n getHeight\r\n} from \"../core/utils/size\";\r\nimport {\r\n locate,\r\n move\r\n} from \"../animation/translator\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport DOMComponent from \"../core/dom_component\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n pairToObject\r\n} from \"../core/utils/common\";\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 fitIntoRange,\r\n inRange\r\n} from \"../core/utils/math\";\r\nimport {\r\n isPlainObject,\r\n isFunction,\r\n isWindow\r\n} from \"../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n start as dragEventStart,\r\n move as dragEventMove,\r\n end as dragEventEnd\r\n} from \"../events/drag\";\r\nimport {\r\n addNamespace\r\n} from \"../events/utils/index\";\r\nimport {\r\n triggerResizeEvent\r\n} from \"../events/visibility_change\";\r\nvar RESIZABLE = \"dxResizable\";\r\nvar RESIZABLE_CLASS = \"dx-resizable\";\r\nvar RESIZABLE_RESIZING_CLASS = \"dx-resizable-resizing\";\r\nvar RESIZABLE_HANDLE_CLASS = \"dx-resizable-handle\";\r\nvar RESIZABLE_HANDLE_TOP_CLASS = \"dx-resizable-handle-top\";\r\nvar RESIZABLE_HANDLE_BOTTOM_CLASS = \"dx-resizable-handle-bottom\";\r\nvar RESIZABLE_HANDLE_LEFT_CLASS = \"dx-resizable-handle-left\";\r\nvar RESIZABLE_HANDLE_RIGHT_CLASS = \"dx-resizable-handle-right\";\r\nvar RESIZABLE_HANDLE_CORNER_CLASS = \"dx-resizable-handle-corner\";\r\nvar DRAGSTART_START_EVENT_NAME = addNamespace(dragEventStart, RESIZABLE);\r\nvar DRAGSTART_EVENT_NAME = addNamespace(dragEventMove, RESIZABLE);\r\nvar DRAGSTART_END_EVENT_NAME = addNamespace(dragEventEnd, RESIZABLE);\r\nvar SIDE_BORDER_WIDTH_STYLES = {\r\n left: \"borderLeftWidth\",\r\n top: \"borderTopWidth\",\r\n right: \"borderRightWidth\",\r\n bottom: \"borderBottomWidth\"\r\n};\r\nvar Resizable = DOMComponent.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n handles: \"all\",\r\n step: \"1\",\r\n stepPrecision: \"simple\",\r\n area: void 0,\r\n minWidth: 30,\r\n maxWidth: 1 / 0,\r\n minHeight: 30,\r\n maxHeight: 1 / 0,\r\n onResizeStart: null,\r\n onResize: null,\r\n onResizeEnd: null,\r\n roundStepValue: true,\r\n keepAspectRatio: true\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(RESIZABLE_CLASS)\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderHandles()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderActions()\r\n },\r\n _renderActions: function() {\r\n this._resizeStartAction = this._createActionByOption(\"onResizeStart\");\r\n this._resizeEndAction = this._createActionByOption(\"onResizeEnd\");\r\n this._resizeAction = this._createActionByOption(\"onResize\")\r\n },\r\n _renderHandles: function() {\r\n this._handles = [];\r\n var handles = this.option(\"handles\");\r\n if (\"none\" === handles || !handles) {\r\n return\r\n }\r\n var directions = \"all\" === handles ? [\"top\", \"bottom\", \"left\", \"right\"] : handles.split(\" \");\r\n var activeHandlesMap = {};\r\n each(directions, (index, handleName) => {\r\n activeHandlesMap[handleName] = true;\r\n this._renderHandle(handleName)\r\n });\r\n activeHandlesMap.bottom && activeHandlesMap.right && this._renderHandle(\"corner-bottom-right\");\r\n activeHandlesMap.bottom && activeHandlesMap.left && this._renderHandle(\"corner-bottom-left\");\r\n activeHandlesMap.top && activeHandlesMap.right && this._renderHandle(\"corner-top-right\");\r\n activeHandlesMap.top && activeHandlesMap.left && this._renderHandle(\"corner-top-left\");\r\n this._attachEventHandlers()\r\n },\r\n _renderHandle: function(handleName) {\r\n var $handle = $(\"
\").addClass(RESIZABLE_HANDLE_CLASS).addClass(RESIZABLE_HANDLE_CLASS + \"-\" + handleName).appendTo(this.$element());\r\n this._handles.push($handle)\r\n },\r\n _attachEventHandlers: function() {\r\n if (this.option(\"disabled\")) {\r\n return\r\n }\r\n var handlers = {};\r\n handlers[DRAGSTART_START_EVENT_NAME] = this._dragStartHandler.bind(this);\r\n handlers[DRAGSTART_EVENT_NAME] = this._dragHandler.bind(this);\r\n handlers[DRAGSTART_END_EVENT_NAME] = this._dragEndHandler.bind(this);\r\n this._handles.forEach(handleElement => {\r\n eventsEngine.on(handleElement, handlers, {\r\n direction: \"both\",\r\n immediate: true\r\n })\r\n })\r\n },\r\n _detachEventHandlers: function() {\r\n this._handles.forEach(handleElement => {\r\n eventsEngine.off(handleElement)\r\n })\r\n },\r\n _toggleEventHandlers: function(shouldAttachEvents) {\r\n shouldAttachEvents ? this._attachEventHandlers() : this._detachEventHandlers()\r\n },\r\n _getElementSize: function() {\r\n var $element = this.$element();\r\n return \"border-box\" === $element.css(\"boxSizing\") ? {\r\n width: getOuterWidth($element),\r\n height: getOuterHeight($element)\r\n } : {\r\n width: getWidth($element),\r\n height: getHeight($element)\r\n }\r\n },\r\n _dragStartHandler: function(e) {\r\n var $element = this.$element();\r\n if ($element.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n e.cancel = true;\r\n return\r\n }\r\n this._toggleResizingClass(true);\r\n this._movingSides = this._getMovingSides(e);\r\n this._elementLocation = locate($element);\r\n this._elementSize = this._getElementSize();\r\n this._renderDragOffsets(e);\r\n this._resizeStartAction({\r\n event: e,\r\n width: this._elementSize.width,\r\n height: this._elementSize.height,\r\n handles: this._movingSides\r\n });\r\n e.targetElements = null\r\n },\r\n _toggleResizingClass: function(value) {\r\n this.$element().toggleClass(RESIZABLE_RESIZING_CLASS, value)\r\n },\r\n _renderDragOffsets: function(e) {\r\n var area = this._getArea();\r\n if (!area) {\r\n return\r\n }\r\n var $handle = $(e.target).closest(\".\" + RESIZABLE_HANDLE_CLASS);\r\n var handleWidth = getOuterWidth($handle);\r\n var handleHeight = getOuterHeight($handle);\r\n var handleOffset = $handle.offset();\r\n var areaOffset = area.offset;\r\n var scrollOffset = this._getAreaScrollOffset();\r\n e.maxLeftOffset = this._leftMaxOffset = handleOffset.left - areaOffset.left - scrollOffset.scrollX;\r\n e.maxRightOffset = this._rightMaxOffset = areaOffset.left + area.width - handleOffset.left - handleWidth + scrollOffset.scrollX;\r\n e.maxTopOffset = this._topMaxOffset = handleOffset.top - areaOffset.top - scrollOffset.scrollY;\r\n e.maxBottomOffset = this._bottomMaxOffset = areaOffset.top + area.height - handleOffset.top - handleHeight + scrollOffset.scrollY\r\n },\r\n _getBorderWidth: function($element, direction) {\r\n if (isWindow($element.get(0))) {\r\n return 0\r\n }\r\n var borderWidth = $element.css(SIDE_BORDER_WIDTH_STYLES[direction]);\r\n return parseInt(borderWidth) || 0\r\n },\r\n _proportionate: function(direction, value) {\r\n var size = this._elementSize;\r\n var factor = \"x\" === direction ? size.width / size.height : size.height / size.width;\r\n return value * factor\r\n },\r\n _getProportionalDelta: function(_ref) {\r\n var {\r\n x: x,\r\n y: y\r\n } = _ref;\r\n var proportionalY = this._proportionate(\"y\", x);\r\n if (proportionalY >= y) {\r\n return {\r\n x: x,\r\n y: proportionalY\r\n }\r\n }\r\n var proportionalX = this._proportionate(\"x\", y);\r\n if (proportionalX >= x) {\r\n return {\r\n x: proportionalX,\r\n y: y\r\n }\r\n }\r\n return {\r\n x: 0,\r\n y: 0\r\n }\r\n },\r\n _getDirectionName: function(axis) {\r\n var sides = this._movingSides;\r\n if (\"x\" === axis) {\r\n return sides.left ? \"left\" : \"right\"\r\n } else {\r\n return sides.top ? \"top\" : \"bottom\"\r\n }\r\n },\r\n _fitIntoArea: function(axis, value) {\r\n var _this;\r\n var directionName = this._getDirectionName(axis);\r\n return Math.min(value, null !== (_this = this[\"_\".concat(directionName, \"MaxOffset\")]) && void 0 !== _this ? _this : 1 / 0)\r\n },\r\n _fitDeltaProportionally: function(delta) {\r\n var fittedDelta = _extends({}, delta);\r\n var size = this._elementSize;\r\n var {\r\n minWidth: minWidth,\r\n minHeight: minHeight,\r\n maxWidth: maxWidth,\r\n maxHeight: maxHeight\r\n } = this.option();\r\n var getWidth = () => size.width + fittedDelta.x;\r\n var getHeight = () => size.height + fittedDelta.y;\r\n var isInArea = axis => fittedDelta[axis] === this._fitIntoArea(axis, fittedDelta[axis]);\r\n var isFittedX = () => inRange(getWidth(), minWidth, maxWidth) && isInArea(\"x\");\r\n var isFittedY = () => inRange(getHeight(), minHeight, maxHeight) && isInArea(\"y\");\r\n if (!isFittedX()) {\r\n var x = this._fitIntoArea(\"x\", fitIntoRange(getWidth(), minWidth, maxWidth) - size.width);\r\n fittedDelta = {\r\n x: x,\r\n y: this._proportionate(\"y\", x)\r\n }\r\n }\r\n if (!isFittedY()) {\r\n var y = this._fitIntoArea(\"y\", fitIntoRange(getHeight(), minHeight, maxHeight) - size.height);\r\n fittedDelta = {\r\n x: this._proportionate(\"x\", y),\r\n y: y\r\n }\r\n }\r\n return isFittedX() && isFittedY() ? fittedDelta : {\r\n x: 0,\r\n y: 0\r\n }\r\n },\r\n _fitDelta: function(_ref2) {\r\n var {\r\n x: x,\r\n y: y\r\n } = _ref2;\r\n var size = this._elementSize;\r\n var {\r\n minWidth: minWidth,\r\n minHeight: minHeight,\r\n maxWidth: maxWidth,\r\n maxHeight: maxHeight\r\n } = this.option();\r\n return {\r\n x: fitIntoRange(size.width + x, minWidth, maxWidth) - size.width,\r\n y: fitIntoRange(size.height + y, minHeight, maxHeight) - size.height\r\n }\r\n },\r\n _getDeltaByOffset: function(offset) {\r\n var sides = this._movingSides;\r\n var shouldKeepAspectRatio = this._isCornerHandler(sides) && this.option(\"keepAspectRatio\");\r\n var delta = {\r\n x: offset.x * (sides.left ? -1 : 1),\r\n y: offset.y * (sides.top ? -1 : 1)\r\n };\r\n if (shouldKeepAspectRatio) {\r\n var proportionalDelta = this._getProportionalDelta(delta);\r\n var fittedProportionalDelta = this._fitDeltaProportionally(proportionalDelta);\r\n delta = fittedProportionalDelta\r\n } else {\r\n var fittedDelta = this._fitDelta(delta);\r\n var roundedFittedDelta = this._roundByStep(fittedDelta);\r\n delta = roundedFittedDelta\r\n }\r\n return delta\r\n },\r\n _updatePosition: function(delta, _ref3) {\r\n var {\r\n width: width,\r\n height: height\r\n } = _ref3;\r\n var location = this._elementLocation;\r\n var sides = this._movingSides;\r\n var $element = this.$element();\r\n var elementRect = this._getElementSize();\r\n var offsetTop = delta.y * (sides.top ? -1 : 1) - ((elementRect.height || height) - height);\r\n var offsetLeft = delta.x * (sides.left ? -1 : 1) - ((elementRect.width || width) - width);\r\n move($element, {\r\n top: location.top + (sides.top ? offsetTop : 0),\r\n left: location.left + (sides.left ? offsetLeft : 0)\r\n })\r\n },\r\n _dragHandler: function(e) {\r\n var offset = this._getOffset(e);\r\n var delta = this._getDeltaByOffset(offset);\r\n var dimensions = this._updateDimensions(delta);\r\n this._updatePosition(delta, dimensions);\r\n this._triggerResizeAction(e, dimensions)\r\n },\r\n _updateDimensions: function(delta) {\r\n var isAbsoluteSize = size => \"px\" === size.substring(size.length - 2);\r\n var isStepPrecisionStrict = \"strict\" === this.option(\"stepPrecision\");\r\n var size = this._elementSize;\r\n var width = size.width + delta.x;\r\n var height = size.height + delta.y;\r\n var elementStyle = this.$element().get(0).style;\r\n var shouldRenderWidth = delta.x || isStepPrecisionStrict || isAbsoluteSize(elementStyle.width);\r\n var shouldRenderHeight = delta.y || isStepPrecisionStrict || isAbsoluteSize(elementStyle.height);\r\n if (shouldRenderWidth) {\r\n this.option({\r\n width: width\r\n })\r\n }\r\n if (shouldRenderHeight) {\r\n this.option({\r\n height: height\r\n })\r\n }\r\n return {\r\n width: shouldRenderWidth ? width : size.width,\r\n height: shouldRenderHeight ? height : size.height\r\n }\r\n },\r\n _triggerResizeAction: function(e, _ref4) {\r\n var {\r\n width: width,\r\n height: height\r\n } = _ref4;\r\n this._resizeAction({\r\n event: e,\r\n width: this.option(\"width\") || width,\r\n height: this.option(\"height\") || height,\r\n handles: this._movingSides\r\n });\r\n triggerResizeEvent(this.$element())\r\n },\r\n _isCornerHandler: sides => 0 === Object.values(sides).reduce((xor, value) => xor ^ value, 0),\r\n _getOffset: function(e) {\r\n var offset = e.offset;\r\n var sides = this._movingSides;\r\n if (!sides.left && !sides.right) {\r\n offset.x = 0\r\n }\r\n if (!sides.top && !sides.bottom) {\r\n offset.y = 0\r\n }\r\n return offset\r\n },\r\n _roundByStep: function(delta) {\r\n return \"strict\" === this.option(\"stepPrecision\") ? this._roundStrict(delta) : this._roundNotStrict(delta)\r\n },\r\n _getSteps: function() {\r\n return pairToObject(this.option(\"step\"), !this.option(\"roundStepValue\"))\r\n },\r\n _roundNotStrict: function(delta) {\r\n var steps = this._getSteps();\r\n return {\r\n x: delta.x - delta.x % steps.h,\r\n y: delta.y - delta.y % steps.v\r\n }\r\n },\r\n _roundStrict: function(delta) {\r\n var sides = this._movingSides;\r\n var offset = {\r\n x: delta.x * (sides.left ? -1 : 1),\r\n y: delta.y * (sides.top ? -1 : 1)\r\n };\r\n var steps = this._getSteps();\r\n var location = this._elementLocation;\r\n var size = this._elementSize;\r\n var xPos = sides.left ? location.left : location.left + size.width;\r\n var yPos = sides.top ? location.top : location.top + size.height;\r\n var newXShift = (xPos + offset.x) % steps.h;\r\n var newYShift = (yPos + offset.y) % steps.v;\r\n var sign = Math.sign || (x => {\r\n x = +x;\r\n if (0 === x || isNaN(x)) {\r\n return x\r\n }\r\n return x > 0 ? 1 : -1\r\n });\r\n var separatorOffset = (steps, offset) => (1 + .2 * sign(offset)) % 1 * steps;\r\n var isSmallOffset = (offset, steps) => Math.abs(offset) < .2 * steps;\r\n var newOffsetX = offset.x - newXShift;\r\n var newOffsetY = offset.y - newYShift;\r\n if (newXShift > separatorOffset(steps.h, offset.x)) {\r\n newOffsetX += steps.h\r\n }\r\n if (newYShift > separatorOffset(steps.v, offset.y)) {\r\n newOffsetY += steps.v\r\n }\r\n var roundedOffset_x = (sides.left || sides.right) && !isSmallOffset(offset.x, steps.h) ? newOffsetX : 0,\r\n roundedOffset_y = (sides.top || sides.bottom) && !isSmallOffset(offset.y, steps.v) ? newOffsetY : 0;\r\n return {\r\n x: roundedOffset_x * (sides.left ? -1 : 1),\r\n y: roundedOffset_y * (sides.top ? -1 : 1)\r\n }\r\n },\r\n _getMovingSides: function(e) {\r\n var $target = $(e.target);\r\n var hasCornerTopLeftClass = $target.hasClass(RESIZABLE_HANDLE_CORNER_CLASS + \"-top-left\");\r\n var hasCornerTopRightClass = $target.hasClass(RESIZABLE_HANDLE_CORNER_CLASS + \"-top-right\");\r\n var hasCornerBottomLeftClass = $target.hasClass(RESIZABLE_HANDLE_CORNER_CLASS + \"-bottom-left\");\r\n var hasCornerBottomRightClass = $target.hasClass(RESIZABLE_HANDLE_CORNER_CLASS + \"-bottom-right\");\r\n return {\r\n top: $target.hasClass(RESIZABLE_HANDLE_TOP_CLASS) || hasCornerTopLeftClass || hasCornerTopRightClass,\r\n left: $target.hasClass(RESIZABLE_HANDLE_LEFT_CLASS) || hasCornerTopLeftClass || hasCornerBottomLeftClass,\r\n bottom: $target.hasClass(RESIZABLE_HANDLE_BOTTOM_CLASS) || hasCornerBottomLeftClass || hasCornerBottomRightClass,\r\n right: $target.hasClass(RESIZABLE_HANDLE_RIGHT_CLASS) || hasCornerTopRightClass || hasCornerBottomRightClass\r\n }\r\n },\r\n _getArea: function() {\r\n var area = this.option(\"area\");\r\n if (isFunction(area)) {\r\n area = area.call(this)\r\n }\r\n if (isPlainObject(area)) {\r\n return this._getAreaFromObject(area)\r\n }\r\n return this._getAreaFromElement(area)\r\n },\r\n _getAreaScrollOffset: function() {\r\n var area = this.option(\"area\");\r\n var isElement = !isFunction(area) && !isPlainObject(area);\r\n var scrollOffset = {\r\n scrollY: 0,\r\n scrollX: 0\r\n };\r\n if (isElement) {\r\n var areaElement = $(area)[0];\r\n if (isWindow(areaElement)) {\r\n scrollOffset.scrollX = areaElement.pageXOffset;\r\n scrollOffset.scrollY = areaElement.pageYOffset\r\n }\r\n }\r\n return scrollOffset\r\n },\r\n _getAreaFromObject: function(area) {\r\n var result = {\r\n width: area.right - area.left,\r\n height: area.bottom - area.top,\r\n offset: {\r\n left: area.left,\r\n top: area.top\r\n }\r\n };\r\n this._correctAreaGeometry(result);\r\n return result\r\n },\r\n _getAreaFromElement: function(area) {\r\n var $area = $(area);\r\n var result;\r\n if ($area.length) {\r\n result = {\r\n width: getInnerWidth($area),\r\n height: getInnerHeight($area),\r\n offset: extend({\r\n top: 0,\r\n left: 0\r\n }, isWindow($area[0]) ? {} : $area.offset())\r\n };\r\n this._correctAreaGeometry(result, $area)\r\n }\r\n return result\r\n },\r\n _correctAreaGeometry: function(result, $area) {\r\n var areaBorderLeft = $area ? this._getBorderWidth($area, \"left\") : 0;\r\n var areaBorderTop = $area ? this._getBorderWidth($area, \"top\") : 0;\r\n result.offset.left += areaBorderLeft + this._getBorderWidth(this.$element(), \"left\");\r\n result.offset.top += areaBorderTop + this._getBorderWidth(this.$element(), \"top\");\r\n result.width -= getOuterWidth(this.$element()) - getInnerWidth(this.$element());\r\n result.height -= getOuterHeight(this.$element()) - getInnerHeight(this.$element())\r\n },\r\n _dragEndHandler: function(e) {\r\n var $element = this.$element();\r\n this._resizeEndAction({\r\n event: e,\r\n width: getOuterWidth($element),\r\n height: getOuterHeight($element),\r\n handles: this._movingSides\r\n });\r\n this._toggleResizingClass(false)\r\n },\r\n _renderWidth: function(width) {\r\n this.option(\"width\", fitIntoRange(width, this.option(\"minWidth\"), this.option(\"maxWidth\")))\r\n },\r\n _renderHeight: function(height) {\r\n this.option(\"height\", fitIntoRange(height, this.option(\"minHeight\"), this.option(\"maxHeight\")))\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"disabled\":\r\n this._toggleEventHandlers(!args.value);\r\n this.callBase(args);\r\n break;\r\n case \"handles\":\r\n this._invalidate();\r\n break;\r\n case \"minWidth\":\r\n case \"maxWidth\":\r\n hasWindow() && this._renderWidth(getOuterWidth(this.$element()));\r\n break;\r\n case \"minHeight\":\r\n case \"maxHeight\":\r\n hasWindow() && this._renderHeight(getOuterHeight(this.$element()));\r\n break;\r\n case \"onResize\":\r\n case \"onResizeStart\":\r\n case \"onResizeEnd\":\r\n this._renderActions();\r\n break;\r\n case \"area\":\r\n case \"stepPrecision\":\r\n case \"step\":\r\n case \"roundStepValue\":\r\n case \"keepAspectRatio\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clean: function() {\r\n this.$element().find(\".\" + RESIZABLE_HANDLE_CLASS).remove()\r\n },\r\n _useTemplates: function() {\r\n return false\r\n }\r\n});\r\nregisterComponent(RESIZABLE, Resizable);\r\nexport default Resizable;\r\n","/**\r\n * DevExtreme (esm/ui/popup/popup_position_controller.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"fullScreen\", \"forceApplyBindings\", \"dragOutsideBoundary\", \"dragAndResizeArea\", \"outsideDragFactor\"];\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n originalViewPort\r\n} from \"../../core/utils/view_port\";\r\nimport {\r\n OverlayPositionController\r\n} from \"../overlay/overlay_position_controller\";\r\nvar window = getWindow();\r\nclass PopupPositionController extends OverlayPositionController {\r\n constructor(_ref) {\r\n var {\r\n fullScreen: fullScreen,\r\n forceApplyBindings: forceApplyBindings,\r\n dragOutsideBoundary: dragOutsideBoundary,\r\n dragAndResizeArea: dragAndResizeArea,\r\n outsideDragFactor: outsideDragFactor\r\n } = _ref, args = _objectWithoutPropertiesLoose(_ref, _excluded);\r\n super(args);\r\n this._props = _extends({}, this._props, {\r\n fullScreen: fullScreen,\r\n forceApplyBindings: forceApplyBindings,\r\n dragOutsideBoundary: dragOutsideBoundary,\r\n dragAndResizeArea: dragAndResizeArea,\r\n outsideDragFactor: outsideDragFactor\r\n });\r\n this._$dragResizeContainer = void 0;\r\n this._updateDragResizeContainer()\r\n }\r\n set fullScreen(fullScreen) {\r\n this._props.fullScreen = fullScreen;\r\n if (fullScreen) {\r\n this._fullScreenEnabled()\r\n } else {\r\n this._fullScreenDisabled()\r\n }\r\n }\r\n get $dragResizeContainer() {\r\n return this._$dragResizeContainer\r\n }\r\n get outsideDragFactor() {\r\n if (this._props.dragOutsideBoundary) {\r\n return 1\r\n }\r\n return this._props.outsideDragFactor\r\n }\r\n set dragAndResizeArea(dragAndResizeArea) {\r\n this._props.dragAndResizeArea = dragAndResizeArea;\r\n this._updateDragResizeContainer()\r\n }\r\n set dragOutsideBoundary(dragOutsideBoundary) {\r\n this._props.dragOutsideBoundary = dragOutsideBoundary;\r\n this._updateDragResizeContainer()\r\n }\r\n set outsideDragFactor(outsideDragFactor) {\r\n this._props.outsideDragFactor = outsideDragFactor\r\n }\r\n updateContainer(containerProp) {\r\n super.updateContainer(containerProp);\r\n this._updateDragResizeContainer()\r\n }\r\n dragHandled() {\r\n this.restorePositionOnNextRender(false)\r\n }\r\n resizeHandled() {\r\n this.restorePositionOnNextRender(false)\r\n }\r\n positionContent() {\r\n if (this._props.fullScreen) {\r\n move(this._$content, {\r\n top: 0,\r\n left: 0\r\n });\r\n this.detectVisualPositionChange()\r\n } else {\r\n var _this$_props$forceApp, _this$_props;\r\n null === (_this$_props$forceApp = (_this$_props = this._props).forceApplyBindings) || void 0 === _this$_props$forceApp ? void 0 : _this$_props$forceApp.call(_this$_props);\r\n super.positionContent()\r\n }\r\n }\r\n _updateDragResizeContainer() {\r\n this._$dragResizeContainer = this._getDragResizeContainer()\r\n }\r\n _getDragResizeContainer() {\r\n if (this._props.dragOutsideBoundary) {\r\n return $(window)\r\n }\r\n if (this._props.dragAndResizeArea) {\r\n return $(this._props.dragAndResizeArea)\r\n }\r\n var isContainerDefined = originalViewPort().get(0) || this._props.container;\r\n return isContainerDefined ? this._$markupContainer : $(window)\r\n }\r\n _getVisualContainer() {\r\n if (this._props.fullScreen) {\r\n return $(window)\r\n }\r\n return super._getVisualContainer()\r\n }\r\n _fullScreenEnabled() {\r\n this.restorePositionOnNextRender(false)\r\n }\r\n _fullScreenDisabled() {\r\n this.restorePositionOnNextRender(true)\r\n }\r\n}\r\nexport {\r\n PopupPositionController\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/popup/popup_overflow_manager.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar overflowManagerMock = {\r\n setOverflow: noop,\r\n restoreOverflow: noop\r\n};\r\nexport var createBodyOverflowManager = () => {\r\n if (!hasWindow()) {\r\n return overflowManagerMock\r\n }\r\n var window = getWindow();\r\n var documentElement = domAdapter.getDocument().documentElement;\r\n var body = domAdapter.getBody();\r\n var isIosDevice = \"ios\" === devices.real().platform;\r\n var prevSettings = {\r\n overflow: null,\r\n overflowX: null,\r\n overflowY: null,\r\n paddingRight: null,\r\n position: null,\r\n top: null,\r\n left: null\r\n };\r\n var setBodyPaddingRight = () => {\r\n var scrollBarWidth = window.innerWidth - documentElement.clientWidth;\r\n if (prevSettings.paddingRight || scrollBarWidth <= 0) {\r\n return\r\n }\r\n var paddingRight = window.getComputedStyle(body).getPropertyValue(\"padding-right\");\r\n var computedBodyPaddingRight = parseInt(paddingRight, 10);\r\n prevSettings.paddingRight = computedBodyPaddingRight;\r\n body.style.setProperty(\"padding-right\", \"\".concat(computedBodyPaddingRight + scrollBarWidth, \"px\"))\r\n };\r\n var restoreBodyPaddingRight = () => {\r\n if (!isDefined(prevSettings.paddingRight)) {\r\n return\r\n }\r\n if (prevSettings.paddingRight) {\r\n body.style.setProperty(\"padding-right\", \"\".concat(prevSettings.paddingRight, \"px\"))\r\n } else {\r\n body.style.removeProperty(\"padding-right\")\r\n }\r\n prevSettings.paddingRight = null\r\n };\r\n return {\r\n setOverflow: isIosDevice ? () => {\r\n if (isDefined(prevSettings.position) || \"fixed\" === body.style.position) {\r\n return\r\n }\r\n var {\r\n scrollY: scrollY,\r\n scrollX: scrollX\r\n } = window;\r\n prevSettings.position = body.style.position;\r\n prevSettings.top = body.style.top;\r\n prevSettings.left = body.style.left;\r\n body.style.setProperty(\"position\", \"fixed\");\r\n body.style.setProperty(\"top\", \"\".concat(-scrollY, \"px\"));\r\n body.style.setProperty(\"left\", \"\".concat(-scrollX, \"px\"))\r\n } : () => {\r\n setBodyPaddingRight();\r\n if (prevSettings.overflow || \"hidden\" === body.style.overflow) {\r\n return\r\n }\r\n prevSettings.overflow = body.style.overflow;\r\n prevSettings.overflowX = body.style.overflowX;\r\n prevSettings.overflowY = body.style.overflowY;\r\n body.style.setProperty(\"overflow\", \"hidden\")\r\n },\r\n restoreOverflow: isIosDevice ? () => {\r\n if (!isDefined(prevSettings.position)) {\r\n return\r\n }\r\n var scrollY = -parseInt(body.style.top, 10);\r\n var scrollX = -parseInt(body.style.left, 10);\r\n [\"position\", \"top\", \"left\"].forEach(property => {\r\n if (prevSettings[property]) {\r\n body.style.setProperty(property, prevSettings[property])\r\n } else {\r\n body.style.removeProperty(property)\r\n }\r\n });\r\n window.scrollTo(scrollX, scrollY);\r\n prevSettings.position = null\r\n } : () => {\r\n restoreBodyPaddingRight();\r\n [\"overflow\", \"overflowX\", \"overflowY\"].forEach(property => {\r\n if (!isDefined(prevSettings[property])) {\r\n return\r\n }\r\n var propertyInKebabCase = property.replace(/(X)|(Y)/, symbol => \"-\".concat(symbol.toLowerCase()));\r\n if (prevSettings[property]) {\r\n body.style.setProperty(propertyInKebabCase, prevSettings[property])\r\n } else {\r\n body.style.removeProperty(propertyInKebabCase)\r\n }\r\n prevSettings[property] = null\r\n })\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/popup/ui.popup.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n EmptyTemplate\r\n} from \"../../core/templates/empty_template\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n camelize\r\n} from \"../../core/utils/inflector\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n getVisibleHeight,\r\n addOffsetToMaxHeight,\r\n addOffsetToMinHeight,\r\n getVerticalOffsets,\r\n getOuterWidth,\r\n getWidth,\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport {\r\n isDefined,\r\n isObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n compare as compareVersions\r\n} from \"../../core/utils/version\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n triggerResizeEvent\r\n} from \"../../events/visibility_change\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport PopupDrag from \"./popup_drag\";\r\nimport Resizable from \"../resizable\";\r\nimport Button from \"../button\";\r\nimport Overlay from \"../overlay/ui.overlay\";\r\nimport {\r\n isMaterial,\r\n current as currentTheme\r\n} from \"../themes\";\r\nimport \"../toolbar/ui.toolbar.base\";\r\nimport resizeObserverSingleton from \"../../core/resize_observer\";\r\nimport * as zIndexPool from \"../overlay/z_index\";\r\nimport {\r\n PopupPositionController\r\n} from \"./popup_position_controller\";\r\nimport {\r\n createBodyOverflowManager\r\n} from \"./popup_overflow_manager\";\r\nvar window = getWindow();\r\nvar POPUP_CLASS = \"dx-popup\";\r\nvar POPUP_WRAPPER_CLASS = \"dx-popup-wrapper\";\r\nvar POPUP_FULL_SCREEN_CLASS = \"dx-popup-fullscreen\";\r\nvar POPUP_FULL_SCREEN_WIDTH_CLASS = \"dx-popup-fullscreen-width\";\r\nvar POPUP_NORMAL_CLASS = \"dx-popup-normal\";\r\nvar POPUP_CONTENT_CLASS = \"dx-popup-content\";\r\nvar POPUP_CONTENT_SCROLLABLE_CLASS = \"dx-popup-content-scrollable\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar POPUP_DRAGGABLE_CLASS = \"dx-popup-draggable\";\r\nvar POPUP_TITLE_CLASS = \"dx-popup-title\";\r\nvar POPUP_TITLE_CLOSEBUTTON_CLASS = \"dx-closebutton\";\r\nvar POPUP_BOTTOM_CLASS = \"dx-popup-bottom\";\r\nvar POPUP_HAS_CLOSE_BUTTON_CLASS = \"dx-has-close-button\";\r\nvar TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\r\nvar POPUP_CONTENT_FLEX_HEIGHT_CLASS = \"dx-popup-flex-height\";\r\nvar POPUP_CONTENT_INHERIT_HEIGHT_CLASS = \"dx-popup-inherit-height\";\r\nvar ALLOWED_TOOLBAR_ITEM_ALIASES = [\"cancel\", \"clear\", \"done\"];\r\nvar BUTTON_DEFAULT_TYPE = \"default\";\r\nvar BUTTON_NORMAL_TYPE = \"normal\";\r\nvar BUTTON_TEXT_MODE = \"text\";\r\nvar BUTTON_CONTAINED_MODE = \"contained\";\r\nvar IS_OLD_SAFARI = browser.safari && compareVersions(browser.version, [11]) < 0;\r\nvar HEIGHT_STRATEGIES = {\r\n static: \"\",\r\n inherit: POPUP_CONTENT_INHERIT_HEIGHT_CLASS,\r\n flex: POPUP_CONTENT_FLEX_HEIGHT_CLASS\r\n};\r\nvar getButtonPlace = name => {\r\n var device = devices.current();\r\n var platform = device.platform;\r\n var toolbar = \"bottom\";\r\n var location = \"before\";\r\n if (\"ios\" === platform) {\r\n switch (name) {\r\n case \"cancel\":\r\n toolbar = \"top\";\r\n break;\r\n case \"clear\":\r\n toolbar = \"top\";\r\n location = \"after\";\r\n break;\r\n case \"done\":\r\n location = \"after\"\r\n }\r\n } else if (\"android\" === platform) {\r\n switch (name) {\r\n case \"cancel\":\r\n case \"done\":\r\n location = \"after\"\r\n }\r\n }\r\n return {\r\n toolbar: toolbar,\r\n location: location\r\n }\r\n};\r\nvar Popup = Overlay.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n upArrow: e => {\r\n var _this$_drag;\r\n null === (_this$_drag = this._drag) || void 0 === _this$_drag ? void 0 : _this$_drag.moveUp(e)\r\n },\r\n downArrow: e => {\r\n var _this$_drag2;\r\n null === (_this$_drag2 = this._drag) || void 0 === _this$_drag2 ? void 0 : _this$_drag2.moveDown(e)\r\n },\r\n leftArrow: e => {\r\n var _this$_drag3;\r\n null === (_this$_drag3 = this._drag) || void 0 === _this$_drag3 ? void 0 : _this$_drag3.moveLeft(e)\r\n },\r\n rightArrow: e => {\r\n var _this$_drag4;\r\n null === (_this$_drag4 = this._drag) || void 0 === _this$_drag4 ? void 0 : _this$_drag4.moveRight(e)\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n fullScreen: false,\r\n title: \"\",\r\n showTitle: true,\r\n titleTemplate: \"title\",\r\n onTitleRendered: null,\r\n dragOutsideBoundary: false,\r\n dragEnabled: false,\r\n dragAndResizeArea: void 0,\r\n enableBodyScroll: true,\r\n outsideDragFactor: 0,\r\n onResizeStart: null,\r\n onResize: null,\r\n onResizeEnd: null,\r\n resizeEnabled: false,\r\n toolbarItems: [],\r\n showCloseButton: false,\r\n bottomTemplate: \"bottom\",\r\n useDefaultToolbarButtons: false,\r\n useFlatToolbarButtons: false,\r\n autoResizeEnabled: true\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n var themeName = currentTheme();\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n animation: this._iosAnimation\r\n }\r\n }, {\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n animation: this._androidAnimation\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n showCloseButton: true\r\n }\r\n }, {\r\n device: function(_device) {\r\n return \"desktop\" === devices.real().deviceType && \"generic\" === _device.platform\r\n },\r\n options: {\r\n dragEnabled: true\r\n }\r\n }, {\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 return isMaterial(themeName)\r\n },\r\n options: {\r\n useDefaultToolbarButtons: true,\r\n useFlatToolbarButtons: true,\r\n showCloseButton: false\r\n }\r\n }])\r\n },\r\n _iosAnimation: {\r\n show: {\r\n type: \"slide\",\r\n duration: 400,\r\n from: {\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\"\r\n }\r\n },\r\n to: {\r\n position: {\r\n my: \"center\",\r\n at: \"center\"\r\n }\r\n }\r\n },\r\n hide: {\r\n type: \"slide\",\r\n duration: 400,\r\n from: {\r\n opacity: 1,\r\n position: {\r\n my: \"center\",\r\n at: \"center\"\r\n }\r\n },\r\n to: {\r\n opacity: 1,\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\"\r\n }\r\n }\r\n }\r\n },\r\n _androidAnimation: function() {\r\n return this.option(\"fullScreen\") ? {\r\n show: {\r\n type: \"slide\",\r\n duration: 300,\r\n from: {\r\n top: \"30%\",\r\n opacity: 0\r\n },\r\n to: {\r\n top: 0,\r\n opacity: 1\r\n }\r\n },\r\n hide: {\r\n type: \"slide\",\r\n duration: 300,\r\n from: {\r\n top: 0,\r\n opacity: 1\r\n },\r\n to: {\r\n top: \"30%\",\r\n opacity: 0\r\n }\r\n }\r\n } : {\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 },\r\n _init: function() {\r\n var popupWrapperClassExternal = this.option(\"_wrapperClassExternal\");\r\n var popupWrapperClasses = popupWrapperClassExternal ? \"\".concat(POPUP_WRAPPER_CLASS, \" \").concat(popupWrapperClassExternal) : POPUP_WRAPPER_CLASS;\r\n this.callBase();\r\n this._createBodyOverflowManager();\r\n this._updateResizeCallbackSkipCondition();\r\n this.$element().addClass(POPUP_CLASS);\r\n this.$wrapper().addClass(popupWrapperClasses);\r\n this._$popupContent = this._$content.wrapInner($(\"
\").addClass(POPUP_CONTENT_CLASS)).children().eq(0);\r\n this._toggleContentScrollClass();\r\n this.$overlayContent().attr(\"role\", \"dialog\")\r\n },\r\n _render: function() {\r\n var isFullscreen = this.option(\"fullScreen\");\r\n this._toggleFullScreenClass(isFullscreen);\r\n this.callBase()\r\n },\r\n _createBodyOverflowManager: function() {\r\n this._bodyOverflowManager = createBodyOverflowManager()\r\n },\r\n _toggleFullScreenClass: function(value) {\r\n this.$overlayContent().toggleClass(POPUP_FULL_SCREEN_CLASS, value).toggleClass(POPUP_NORMAL_CLASS, !value)\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n title: new EmptyTemplate,\r\n bottom: new EmptyTemplate\r\n })\r\n },\r\n _getActionsList: function() {\r\n return this.callBase().concat([\"onResizeStart\", \"onResize\", \"onResizeEnd\"])\r\n },\r\n _contentResizeHandler: function(entry) {\r\n if (!this._shouldSkipContentResize(entry)) {\r\n this._renderGeometry({\r\n shouldOnlyReposition: true\r\n })\r\n }\r\n },\r\n _doesShowAnimationChangeDimensions: function() {\r\n var animation = this.option(\"animation\");\r\n return [\"to\", \"from\"].some(prop => {\r\n var _animation$show;\r\n var config = null === animation || void 0 === animation ? void 0 : null === (_animation$show = animation.show) || void 0 === _animation$show ? void 0 : _animation$show[prop];\r\n return isObject(config) && (\"width\" in config || \"height\" in config)\r\n })\r\n },\r\n _updateResizeCallbackSkipCondition() {\r\n var doesShowAnimationChangeDimensions = this._doesShowAnimationChangeDimensions();\r\n this._shouldSkipContentResize = entry => doesShowAnimationChangeDimensions && this._showAnimationProcessing || this._areContentDimensionsRendered(entry)\r\n },\r\n _observeContentResize: function(shouldObserve) {\r\n if (!this.option(\"useResizeObserver\")) {\r\n return\r\n }\r\n var contentElement = this._$content.get(0);\r\n if (shouldObserve) {\r\n resizeObserverSingleton.observe(contentElement, entry => {\r\n this._contentResizeHandler(entry)\r\n })\r\n } else {\r\n resizeObserverSingleton.unobserve(contentElement)\r\n }\r\n },\r\n _areContentDimensionsRendered: function(entry) {\r\n var _entry$contentBoxSize, _this$_renderedDimens3, _this$_renderedDimens4;\r\n var contentBox = null === (_entry$contentBoxSize = entry.contentBoxSize) || void 0 === _entry$contentBoxSize ? void 0 : _entry$contentBoxSize[0];\r\n if (contentBox) {\r\n var _this$_renderedDimens, _this$_renderedDimens2;\r\n return parseInt(contentBox.inlineSize, 10) === (null === (_this$_renderedDimens = this._renderedDimensions) || void 0 === _this$_renderedDimens ? void 0 : _this$_renderedDimens.width) && parseInt(contentBox.blockSize, 10) === (null === (_this$_renderedDimens2 = this._renderedDimensions) || void 0 === _this$_renderedDimens2 ? void 0 : _this$_renderedDimens2.height)\r\n }\r\n var contentRect = entry.contentRect;\r\n return parseInt(contentRect.width, 10) === (null === (_this$_renderedDimens3 = this._renderedDimensions) || void 0 === _this$_renderedDimens3 ? void 0 : _this$_renderedDimens3.width) && parseInt(contentRect.height, 10) === (null === (_this$_renderedDimens4 = this._renderedDimensions) || void 0 === _this$_renderedDimens4 ? void 0 : _this$_renderedDimens4.height)\r\n },\r\n _renderContent() {\r\n this.callBase();\r\n this._observeContentResize(true)\r\n },\r\n _renderContentImpl: function() {\r\n this._renderTitle();\r\n this.callBase();\r\n this._renderResize();\r\n this._renderBottom()\r\n },\r\n _renderTitle: function() {\r\n var items = this._getToolbarItems(\"top\");\r\n var titleText = this.option(\"title\");\r\n var showTitle = this.option(\"showTitle\");\r\n if (showTitle && !!titleText) {\r\n items.unshift({\r\n location: devices.current().ios ? \"center\" : \"before\",\r\n text: titleText\r\n })\r\n }\r\n if (showTitle || items.length > 0) {\r\n this._$title && this._$title.remove();\r\n var $title = $(\"
\").addClass(POPUP_TITLE_CLASS).insertBefore(this.$content());\r\n this._$title = this._renderTemplateByType(\"titleTemplate\", items, $title).addClass(POPUP_TITLE_CLASS);\r\n this._renderDrag();\r\n this._executeTitleRenderAction(this._$title);\r\n this._$title.toggleClass(POPUP_HAS_CLOSE_BUTTON_CLASS, this._hasCloseButton())\r\n } else if (this._$title) {\r\n this._$title.detach()\r\n }\r\n },\r\n _renderTemplateByType: function(optionName, data, $container, additionalToolbarOptions) {\r\n var {\r\n rtlEnabled: rtlEnabled,\r\n useDefaultToolbarButtons: useDefaultToolbarButtons,\r\n useFlatToolbarButtons: useFlatToolbarButtons,\r\n disabled: disabled\r\n } = this.option();\r\n var template = this._getTemplateByOption(optionName);\r\n var toolbarTemplate = template instanceof EmptyTemplate;\r\n if (toolbarTemplate) {\r\n var integrationOptions = extend({}, this.option(\"integrationOptions\"), {\r\n skipTemplates: [\"content\", \"title\"]\r\n });\r\n var toolbarOptions = extend(additionalToolbarOptions, {\r\n items: data,\r\n rtlEnabled: rtlEnabled,\r\n useDefaultButtons: useDefaultToolbarButtons,\r\n useFlatButtons: useFlatToolbarButtons,\r\n disabled: disabled,\r\n integrationOptions: integrationOptions\r\n });\r\n this._getTemplate(\"dx-polymorph-widget\").render({\r\n container: $container,\r\n model: {\r\n widget: this._getToolbarName(),\r\n options: toolbarOptions\r\n }\r\n });\r\n var $toolbar = $container.children(\"div\");\r\n $container.replaceWith($toolbar);\r\n return $toolbar\r\n } else {\r\n var $result = $(template.render({\r\n container: getPublicElement($container)\r\n }));\r\n if ($result.hasClass(TEMPLATE_WRAPPER_CLASS)) {\r\n $container.replaceWith($result);\r\n $container = $result\r\n }\r\n return $container\r\n }\r\n },\r\n _getToolbarName: function() {\r\n return \"dxToolbarBase\"\r\n },\r\n _renderVisibilityAnimate: function(visible) {\r\n return this.callBase(visible)\r\n },\r\n _hide() {\r\n this._observeContentResize(false);\r\n return this.callBase()\r\n },\r\n _executeTitleRenderAction: function($titleElement) {\r\n this._getTitleRenderAction()({\r\n titleElement: getPublicElement($titleElement)\r\n })\r\n },\r\n _getTitleRenderAction: function() {\r\n return this._titleRenderAction || this._createTitleRenderAction()\r\n },\r\n _createTitleRenderAction: function() {\r\n return this._titleRenderAction = this._createActionByOption(\"onTitleRendered\", {\r\n element: this.element(),\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _getCloseButton: function() {\r\n return {\r\n toolbar: \"top\",\r\n location: \"after\",\r\n template: this._getCloseButtonRenderer()\r\n }\r\n },\r\n _getCloseButtonRenderer: function() {\r\n return (_, __, container) => {\r\n var $button = $(\"
\").addClass(POPUP_TITLE_CLOSEBUTTON_CLASS);\r\n this._createComponent($button, Button, {\r\n icon: \"close\",\r\n onClick: this._createToolbarItemAction(void 0),\r\n stylingMode: \"text\",\r\n integrationOptions: {}\r\n });\r\n $(container).append($button)\r\n }\r\n },\r\n _getToolbarItems: function(toolbar) {\r\n var toolbarItems = this.option(\"toolbarItems\");\r\n var toolbarsItems = [];\r\n this._toolbarItemClasses = [];\r\n var currentPlatform = devices.current().platform;\r\n var index = 0;\r\n each(toolbarItems, (_, data) => {\r\n var isShortcut = isDefined(data.shortcut);\r\n var item = isShortcut ? getButtonPlace(data.shortcut) : data;\r\n if (isShortcut && \"ios\" === currentPlatform && index < 2) {\r\n item.toolbar = \"top\";\r\n index++\r\n }\r\n item.toolbar = data.toolbar || item.toolbar || \"top\";\r\n if (item && item.toolbar === toolbar) {\r\n if (isShortcut) {\r\n extend(item, {\r\n location: data.location\r\n }, this._getToolbarItemByAlias(data))\r\n }\r\n var isLTROrder = \"generic\" === currentPlatform;\r\n if (\"done\" === data.shortcut && isLTROrder || \"cancel\" === data.shortcut && !isLTROrder) {\r\n toolbarsItems.unshift(item)\r\n } else {\r\n toolbarsItems.push(item)\r\n }\r\n }\r\n });\r\n if (\"top\" === toolbar && this._hasCloseButton()) {\r\n toolbarsItems.push(this._getCloseButton())\r\n }\r\n return toolbarsItems\r\n },\r\n _hasCloseButton() {\r\n return this.option(\"showCloseButton\") && this.option(\"showTitle\")\r\n },\r\n _getLocalizationKey: itemType => \"done\" === itemType.toLowerCase() ? \"OK\" : camelize(itemType, true),\r\n _getToolbarItemByAlias: function(data) {\r\n var that = this;\r\n var itemType = data.shortcut;\r\n if (!ALLOWED_TOOLBAR_ITEM_ALIASES.includes(itemType)) {\r\n return false\r\n }\r\n var itemConfig = extend({\r\n text: messageLocalization.format(this._getLocalizationKey(itemType)),\r\n onClick: this._createToolbarItemAction(data.onClick),\r\n integrationOptions: {},\r\n type: that.option(\"useDefaultToolbarButtons\") ? BUTTON_DEFAULT_TYPE : BUTTON_NORMAL_TYPE,\r\n stylingMode: that.option(\"useFlatToolbarButtons\") ? BUTTON_TEXT_MODE : BUTTON_CONTAINED_MODE\r\n }, data.options || {});\r\n var itemClass = POPUP_CLASS + \"-\" + itemType;\r\n this._toolbarItemClasses.push(itemClass);\r\n return {\r\n template: function(_, __, container) {\r\n var $toolbarItem = $(\"
\").addClass(itemClass).appendTo(container);\r\n that._createComponent($toolbarItem, Button, itemConfig)\r\n }\r\n }\r\n },\r\n _createToolbarItemAction: function(clickAction) {\r\n return this._createAction(clickAction, {\r\n afterExecute: function(e) {\r\n e.component.hide()\r\n }\r\n })\r\n },\r\n _renderBottom: function() {\r\n var items = this._getToolbarItems(\"bottom\");\r\n if (items.length) {\r\n this._$bottom && this._$bottom.remove();\r\n var $bottom = $(\"
\").addClass(POPUP_BOTTOM_CLASS).insertAfter(this.$content());\r\n this._$bottom = this._renderTemplateByType(\"bottomTemplate\", items, $bottom, {\r\n compactMode: true\r\n }).addClass(POPUP_BOTTOM_CLASS);\r\n this._toggleClasses()\r\n } else {\r\n this._$bottom && this._$bottom.detach()\r\n }\r\n },\r\n _toggleDisabledState: function(value) {\r\n this.callBase(...arguments);\r\n this.$content().toggleClass(DISABLED_STATE_CLASS, Boolean(value))\r\n },\r\n _toggleClasses: function() {\r\n var aliases = ALLOWED_TOOLBAR_ITEM_ALIASES;\r\n each(aliases, (_, alias) => {\r\n var className = POPUP_CLASS + \"-\" + alias;\r\n if (this._toolbarItemClasses.includes(className)) {\r\n this.$wrapper().addClass(className + \"-visible\");\r\n this._$bottom.addClass(className)\r\n } else {\r\n this.$wrapper().removeClass(className + \"-visible\");\r\n this._$bottom.removeClass(className)\r\n }\r\n })\r\n },\r\n _toggleFocusClass(isFocused, $element) {\r\n this.callBase(isFocused, $element);\r\n if (isFocused && !zIndexPool.isLastZIndexInStack(this._zIndex)) {\r\n var zIndex = zIndexPool.create(this._zIndexInitValue());\r\n zIndexPool.remove(this._zIndex);\r\n this._zIndex = zIndex;\r\n this._$wrapper.css(\"zIndex\", zIndex);\r\n this._$content.css(\"zIndex\", zIndex)\r\n }\r\n },\r\n _toggleContentScrollClass() {\r\n var isNativeScrollingEnabled = !this.option(\"preventScrollEvents\");\r\n this.$content().toggleClass(POPUP_CONTENT_SCROLLABLE_CLASS, isNativeScrollingEnabled)\r\n },\r\n _getPositionControllerConfig() {\r\n var {\r\n fullScreen: fullScreen,\r\n forceApplyBindings: forceApplyBindings,\r\n dragOutsideBoundary: dragOutsideBoundary,\r\n dragAndResizeArea: dragAndResizeArea,\r\n outsideDragFactor: outsideDragFactor\r\n } = this.option();\r\n return extend({}, this.callBase(), {\r\n fullScreen: fullScreen,\r\n forceApplyBindings: forceApplyBindings,\r\n dragOutsideBoundary: dragOutsideBoundary,\r\n dragAndResizeArea: dragAndResizeArea,\r\n outsideDragFactor: outsideDragFactor\r\n })\r\n },\r\n _initPositionController() {\r\n this._positionController = new PopupPositionController(this._getPositionControllerConfig())\r\n },\r\n _getDragTarget: function() {\r\n return this.topToolbar()\r\n },\r\n _renderGeometry: function(options) {\r\n var {\r\n visible: visible,\r\n useResizeObserver: useResizeObserver\r\n } = this.option();\r\n if (visible && hasWindow()) {\r\n var isAnimated = this._showAnimationProcessing;\r\n var shouldRepeatAnimation = isAnimated && !(null !== options && void 0 !== options && options.forceStopAnimation) && useResizeObserver;\r\n this._isAnimationPaused = shouldRepeatAnimation || void 0;\r\n this._stopAnimation();\r\n if (null !== options && void 0 !== options && options.shouldOnlyReposition) {\r\n this._renderPosition(false)\r\n } else {\r\n this._renderGeometryImpl(null === options || void 0 === options ? void 0 : options.isDimensionChange)\r\n }\r\n if (shouldRepeatAnimation) {\r\n this._animateShowing();\r\n this._isAnimationPaused = void 0\r\n }\r\n }\r\n },\r\n _cacheDimensions: function() {\r\n if (!this.option(\"useResizeObserver\")) {\r\n return\r\n }\r\n this._renderedDimensions = {\r\n width: parseInt(getWidth(this._$content), 10),\r\n height: parseInt(getHeight(this._$content), 10)\r\n }\r\n },\r\n _renderGeometryImpl: function() {\r\n var isDimensionChange = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : false;\r\n if (!isDimensionChange) {\r\n this._resetContentHeight()\r\n }\r\n this.callBase();\r\n this._cacheDimensions();\r\n this._setContentHeight()\r\n },\r\n _resetContentHeight: function() {\r\n var height = this._getOptionValue(\"height\");\r\n if (\"auto\" === height) {\r\n this.$content().css({\r\n height: \"auto\",\r\n maxHeight: \"none\"\r\n })\r\n }\r\n },\r\n _renderDrag: function() {\r\n var $dragTarget = this._getDragTarget();\r\n var dragEnabled = this.option(\"dragEnabled\");\r\n if (!$dragTarget) {\r\n return\r\n }\r\n var config = {\r\n dragEnabled: dragEnabled,\r\n handle: $dragTarget.get(0),\r\n draggableElement: this._$content.get(0),\r\n positionController: this._positionController\r\n };\r\n if (this._drag) {\r\n this._drag.init(config)\r\n } else {\r\n this._drag = new PopupDrag(config)\r\n }\r\n this.$overlayContent().toggleClass(POPUP_DRAGGABLE_CLASS, dragEnabled)\r\n },\r\n _renderResize: function() {\r\n this._resizable = this._createComponent(this._$content, Resizable, {\r\n handles: this.option(\"resizeEnabled\") ? \"all\" : \"none\",\r\n onResizeEnd: e => {\r\n this._resizeEndHandler(e);\r\n this._observeContentResize(true)\r\n },\r\n onResize: e => {\r\n this._setContentHeight();\r\n this._actions.onResize(e)\r\n },\r\n onResizeStart: e => {\r\n this._observeContentResize(false);\r\n this._actions.onResizeStart(e)\r\n },\r\n minHeight: 100,\r\n minWidth: 100,\r\n area: this._positionController.$dragResizeContainer,\r\n keepAspectRatio: false\r\n })\r\n },\r\n _resizeEndHandler: function(e) {\r\n var width = this._resizable.option(\"width\");\r\n var height = this._resizable.option(\"height\");\r\n width && this._setOptionWithoutOptionChange(\"width\", width);\r\n height && this._setOptionWithoutOptionChange(\"height\", height);\r\n this._cacheDimensions();\r\n this._positionController.resizeHandled();\r\n this._positionController.detectVisualPositionChange(e.event);\r\n this._actions.onResizeEnd(e)\r\n },\r\n _setContentHeight: function() {\r\n (this.option(\"forceApplyBindings\") || noop)();\r\n var overlayContent = this.$overlayContent().get(0);\r\n var currentHeightStrategyClass = this._chooseHeightStrategy(overlayContent);\r\n this.$content().css(this._getHeightCssStyles(currentHeightStrategyClass, overlayContent));\r\n this._setHeightClasses(this.$overlayContent(), currentHeightStrategyClass)\r\n },\r\n _heightStrategyChangeOffset: function(currentHeightStrategyClass, popupVerticalPaddings) {\r\n return currentHeightStrategyClass === HEIGHT_STRATEGIES.flex ? -popupVerticalPaddings : 0\r\n },\r\n _chooseHeightStrategy: function(overlayContent) {\r\n var isAutoWidth = \"auto\" === overlayContent.style.width || \"\" === overlayContent.style.width;\r\n var currentHeightStrategyClass = HEIGHT_STRATEGIES.static;\r\n if (this._isAutoHeight() && this.option(\"autoResizeEnabled\")) {\r\n if (isAutoWidth || IS_OLD_SAFARI) {\r\n currentHeightStrategyClass = HEIGHT_STRATEGIES.inherit\r\n } else {\r\n currentHeightStrategyClass = HEIGHT_STRATEGIES.flex\r\n }\r\n }\r\n return currentHeightStrategyClass\r\n },\r\n _getHeightCssStyles: function(currentHeightStrategyClass, overlayContent) {\r\n var cssStyles = {};\r\n var contentMaxHeight = this._getOptionValue(\"maxHeight\", overlayContent);\r\n var contentMinHeight = this._getOptionValue(\"minHeight\", overlayContent);\r\n var popupHeightParts = this._splitPopupHeight();\r\n var toolbarsAndVerticalOffsetsHeight = popupHeightParts.header + popupHeightParts.footer + popupHeightParts.contentVerticalOffsets + popupHeightParts.popupVerticalOffsets + this._heightStrategyChangeOffset(currentHeightStrategyClass, popupHeightParts.popupVerticalPaddings);\r\n if (currentHeightStrategyClass === HEIGHT_STRATEGIES.static) {\r\n if (!this._isAutoHeight() || contentMaxHeight || contentMinHeight) {\r\n var overlayHeight = this.option(\"fullScreen\") ? Math.min(getBoundingRect(overlayContent).height, getWindow().innerHeight) : getBoundingRect(overlayContent).height;\r\n var contentHeight = overlayHeight - toolbarsAndVerticalOffsetsHeight;\r\n cssStyles = {\r\n height: Math.max(0, contentHeight),\r\n minHeight: \"auto\",\r\n maxHeight: \"auto\"\r\n }\r\n }\r\n } else {\r\n var container = $(this._positionController.$visualContainer).get(0);\r\n var maxHeightValue = addOffsetToMaxHeight(contentMaxHeight, -toolbarsAndVerticalOffsetsHeight, container);\r\n var minHeightValue = addOffsetToMinHeight(contentMinHeight, -toolbarsAndVerticalOffsetsHeight, container);\r\n cssStyles = {\r\n height: \"auto\",\r\n minHeight: minHeightValue,\r\n maxHeight: maxHeightValue\r\n }\r\n }\r\n return cssStyles\r\n },\r\n _setHeightClasses: function($container, currentClass) {\r\n var excessClasses = \"\";\r\n for (var name in HEIGHT_STRATEGIES) {\r\n if (HEIGHT_STRATEGIES[name] !== currentClass) {\r\n excessClasses += \" \" + HEIGHT_STRATEGIES[name]\r\n }\r\n }\r\n $container.removeClass(excessClasses).addClass(currentClass)\r\n },\r\n _isAutoHeight: function() {\r\n return \"auto\" === this.$overlayContent().get(0).style.height\r\n },\r\n _splitPopupHeight: function() {\r\n var topToolbar = this.topToolbar();\r\n var bottomToolbar = this.bottomToolbar();\r\n return {\r\n header: getVisibleHeight(topToolbar && topToolbar.get(0)),\r\n footer: getVisibleHeight(bottomToolbar && bottomToolbar.get(0)),\r\n contentVerticalOffsets: getVerticalOffsets(this.$overlayContent().get(0), true),\r\n popupVerticalOffsets: getVerticalOffsets(this.$content().get(0), true),\r\n popupVerticalPaddings: getVerticalOffsets(this.$content().get(0), false)\r\n }\r\n },\r\n _isAllWindowCovered: function() {\r\n return this.callBase() || this.option(\"fullScreen\")\r\n },\r\n _renderDimensions: function() {\r\n if (this.option(\"fullScreen\")) {\r\n this.$overlayContent().css({\r\n width: \"100%\",\r\n height: \"100%\",\r\n minWidth: \"\",\r\n maxWidth: \"\",\r\n minHeight: \"\",\r\n maxHeight: \"\"\r\n })\r\n } else {\r\n this.callBase()\r\n }\r\n if (hasWindow()) {\r\n this._renderFullscreenWidthClass()\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n this._renderGeometry({\r\n isDimensionChange: true\r\n })\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n this._observeContentResize(false)\r\n },\r\n _dispose: function() {\r\n this.callBase();\r\n this._toggleBodyScroll(true)\r\n },\r\n _renderFullscreenWidthClass: function() {\r\n this.$overlayContent().toggleClass(POPUP_FULL_SCREEN_WIDTH_CLASS, getOuterWidth(this.$overlayContent()) === getWidth(window))\r\n },\r\n _toggleSafariScrolling() {\r\n if (!this.option(\"enableBodyScroll\")) {\r\n return\r\n }\r\n this.callBase()\r\n },\r\n _toggleBodyScroll: function(enabled) {\r\n if (!this._bodyOverflowManager) {\r\n return\r\n }\r\n var {\r\n setOverflow: setOverflow,\r\n restoreOverflow: restoreOverflow\r\n } = this._bodyOverflowManager;\r\n if (enabled) {\r\n restoreOverflow()\r\n } else {\r\n setOverflow()\r\n }\r\n },\r\n refreshPosition: function() {\r\n this._renderPosition()\r\n },\r\n _optionChanged: function(args) {\r\n var _this$_resizable2;\r\n var {\r\n value: value,\r\n name: name\r\n } = args;\r\n switch (name) {\r\n case \"disabled\":\r\n this.callBase(args);\r\n this._renderTitle();\r\n this._renderBottom();\r\n break;\r\n case \"animation\":\r\n this._updateResizeCallbackSkipCondition();\r\n break;\r\n case \"enableBodyScroll\":\r\n this._toggleBodyScroll(value);\r\n break;\r\n case \"showTitle\":\r\n case \"title\":\r\n case \"titleTemplate\":\r\n this._renderTitle();\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent());\r\n break;\r\n case \"bottomTemplate\":\r\n this._renderBottom();\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent());\r\n break;\r\n case \"container\":\r\n this.callBase(args);\r\n if (this.option(\"resizeEnabled\")) {\r\n var _this$_resizable;\r\n null === (_this$_resizable = this._resizable) || void 0 === _this$_resizable ? void 0 : _this$_resizable.option(\"area\", this._positionController.$dragResizeContainer)\r\n }\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n null === (_this$_resizable2 = this._resizable) || void 0 === _this$_resizable2 ? void 0 : _this$_resizable2.option(name, value);\r\n break;\r\n case \"onTitleRendered\":\r\n this._createTitleRenderAction(value);\r\n break;\r\n case \"toolbarItems\":\r\n case \"useDefaultToolbarButtons\":\r\n case \"useFlatToolbarButtons\":\r\n var shouldRenderGeometry = !args.fullName.match(/^toolbarItems((\\[\\d+\\])(\\.(options|visible).*)?)?$/);\r\n this._renderTitle();\r\n this._renderBottom();\r\n if (shouldRenderGeometry) {\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent())\r\n }\r\n break;\r\n case \"dragEnabled\":\r\n this._renderDrag();\r\n break;\r\n case \"dragAndResizeArea\":\r\n this._positionController.dragAndResizeArea = value;\r\n if (this.option(\"resizeEnabled\")) {\r\n this._resizable.option(\"area\", this._positionController.$dragResizeContainer)\r\n }\r\n this._positionController.positionContent();\r\n break;\r\n case \"dragOutsideBoundary\":\r\n this._positionController.dragOutsideBoundary = value;\r\n if (this.option(\"resizeEnabled\")) {\r\n this._resizable.option(\"area\", this._positionController.$dragResizeContainer)\r\n }\r\n break;\r\n case \"outsideDragFactor\":\r\n this._positionController.outsideDragFactor = value;\r\n break;\r\n case \"resizeEnabled\":\r\n this._renderResize();\r\n this._renderGeometry();\r\n break;\r\n case \"autoResizeEnabled\":\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent());\r\n break;\r\n case \"fullScreen\":\r\n this._positionController.fullScreen = value;\r\n this._toggleFullScreenClass(value);\r\n this._toggleSafariScrolling();\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent());\r\n break;\r\n case \"showCloseButton\":\r\n this._renderTitle();\r\n break;\r\n case \"preventScrollEvents\":\r\n this.callBase(args);\r\n this._toggleContentScrollClass();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n bottomToolbar: function() {\r\n return this._$bottom\r\n },\r\n topToolbar: function() {\r\n return this._$title\r\n },\r\n $content: function() {\r\n return this._$popupContent\r\n },\r\n content: function() {\r\n return getPublicElement(this.$content())\r\n },\r\n $overlayContent: function() {\r\n return this._$content\r\n }\r\n});\r\nregisterComponent(\"dxPopup\", Popup);\r\nexport default Popup;\r\n","/**\r\n * DevExtreme (esm/ui/popup/ui.popup.full.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 Popup from \"../popup/ui.popup\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nexport default class PopupFull extends Popup {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n preventScrollEvents: false\r\n })\r\n }\r\n _getToolbarName() {\r\n return \"dxToolbar\"\r\n }\r\n}\r\nPopupFull.defaultOptions = function(rule) {\r\n Popup.defaultOptions(rule)\r\n};\r\nregisterComponent(\"dxPopup\", PopupFull);\r\n","/**\r\n * DevExtreme (esm/ui/popup.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Popup from \"./popup/ui.popup.full\";\r\nexport default Popup;\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/internal/ui.toolbar.menu.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight\r\n} from \"../../../core/utils/size\";\r\nimport $ from \"../../../core/renderer\";\r\nimport devices from \"../../../core/devices\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport Widget from \"../../widget/ui.widget\";\r\nimport Button from \"../../button\";\r\nimport ToolbarMenuList from \"./ui.toolbar.menu.list\";\r\nimport {\r\n isMaterial\r\n} from \"../../themes\";\r\nimport {\r\n ChildDefaultTemplate\r\n} from \"../../../core/templates/child_default_template\";\r\nimport {\r\n toggleItemFocusableElementTabIndex\r\n} from \"../ui.toolbar.utils\";\r\nimport {\r\n getWindow\r\n} from \"../../../core/utils/window\";\r\nimport \"../../popup\";\r\nvar DROP_DOWN_MENU_CLASS = \"dx-dropdownmenu\";\r\nvar DROP_DOWN_MENU_POPUP_CLASS = \"dx-dropdownmenu-popup\";\r\nvar DROP_DOWN_MENU_POPUP_WRAPPER_CLASS = \"dx-dropdownmenu-popup-wrapper\";\r\nvar DROP_DOWN_MENU_LIST_CLASS = \"dx-dropdownmenu-list\";\r\nvar DROP_DOWN_MENU_BUTTON_CLASS = \"dx-dropdownmenu-button\";\r\nvar POPUP_BOUNDARY_VERTICAL_OFFSET = 10;\r\nvar POPUP_VERTICAL_OFFSET = 3;\r\nexport default class DropDownMenu extends Widget {\r\n _supportedKeys() {\r\n var extension = {};\r\n if (!this.option(\"opened\") || !this._list.option(\"focusedElement\")) {\r\n extension = this._button._supportedKeys()\r\n }\r\n return extend(super._supportedKeys(), extension, {\r\n tab: function() {\r\n this._popup && this._popup.hide()\r\n }\r\n })\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n items: [],\r\n onItemClick: null,\r\n dataSource: null,\r\n itemTemplate: \"item\",\r\n onButtonClick: null,\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true,\r\n opened: false,\r\n onItemRendered: null,\r\n closeOnClick: true,\r\n useInkRipple: false,\r\n container: void 0,\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n from: 0,\r\n to: 1\r\n },\r\n hide: {\r\n type: \"fade\",\r\n to: 0\r\n }\r\n }\r\n })\r\n }\r\n _defaultOptionsRules() {\r\n return super._defaultOptionsRules().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 return isMaterial()\r\n },\r\n options: {\r\n useInkRipple: true,\r\n animation: {\r\n show: {\r\n type: \"pop\",\r\n duration: 200,\r\n from: {\r\n scale: 0\r\n },\r\n to: {\r\n scale: 1\r\n }\r\n },\r\n hide: {\r\n type: \"pop\",\r\n duration: 200,\r\n from: {\r\n scale: 1\r\n },\r\n to: {\r\n scale: 0\r\n }\r\n }\r\n }\r\n }\r\n }])\r\n }\r\n _init() {\r\n super._init();\r\n this.$element().addClass(DROP_DOWN_MENU_CLASS);\r\n this._initItemClickAction();\r\n this._initButtonClickAction()\r\n }\r\n _initItemClickAction() {\r\n this._itemClickAction = this._createActionByOption(\"onItemClick\")\r\n }\r\n _initButtonClickAction() {\r\n this._buttonClickAction = this._createActionByOption(\"onButtonClick\")\r\n }\r\n _initTemplates() {\r\n this._templateManager.addDefaultTemplates({\r\n content: new ChildDefaultTemplate(\"content\")\r\n });\r\n super._initTemplates()\r\n }\r\n _initMarkup() {\r\n this._renderButton();\r\n super._initMarkup()\r\n }\r\n _render() {\r\n super._render();\r\n this.setAria({\r\n haspopup: true,\r\n expanded: this.option(\"opened\")\r\n })\r\n }\r\n _renderContentImpl() {\r\n if (this.option(\"opened\")) {\r\n this._renderPopup()\r\n }\r\n }\r\n _clean() {\r\n this._cleanFocusState();\r\n this._list && this._list.$element().remove();\r\n this._popup && this._popup.$element().remove();\r\n delete this._list;\r\n delete this._popup\r\n }\r\n _renderButton() {\r\n var $button = this.$element().addClass(DROP_DOWN_MENU_BUTTON_CLASS);\r\n this._button = this._createComponent($button, Button, {\r\n icon: \"overflow\",\r\n template: \"content\",\r\n useInkRipple: this.option(\"useInkRipple\"),\r\n hoverStateEnabled: false,\r\n focusStateEnabled: false,\r\n onClick: e => {\r\n this.option(\"opened\", !this.option(\"opened\"));\r\n this._buttonClickAction(e)\r\n }\r\n })\r\n }\r\n _toggleActiveState($element, value, e) {\r\n this._button._toggleActiveState($element, value, e)\r\n }\r\n _toggleMenuVisibility(opened) {\r\n var state = null !== opened && void 0 !== opened ? opened : !this._popup.option(\"visible\");\r\n if (opened) {\r\n this._renderPopup()\r\n }\r\n this._popup.toggle(state);\r\n this.setAria(\"expanded\", state)\r\n }\r\n _renderPopup() {\r\n if (this._$popup) {\r\n return\r\n }\r\n this._$popup = $(\"
\").appendTo(this.$element());\r\n var {\r\n rtlEnabled: rtlEnabled,\r\n container: container,\r\n animation: animation\r\n } = this.option();\r\n this._popup = this._createComponent(this._$popup, \"dxPopup\", {\r\n onInitialized(_ref) {\r\n var {\r\n component: component\r\n } = _ref;\r\n component.$wrapper().addClass(DROP_DOWN_MENU_POPUP_WRAPPER_CLASS).addClass(DROP_DOWN_MENU_POPUP_CLASS)\r\n },\r\n deferRendering: false,\r\n contentTemplate: contentElement => this._renderList(contentElement),\r\n _ignoreFunctionValueDeprecation: true,\r\n maxHeight: () => this._getMaxHeight(),\r\n position: {\r\n my: \"top \".concat(rtlEnabled ? \"left\" : \"right\"),\r\n at: \"bottom \".concat(rtlEnabled ? \"left\" : \"right\"),\r\n collision: \"fit flip\",\r\n offset: {\r\n v: POPUP_VERTICAL_OFFSET\r\n },\r\n of: this.$element()\r\n },\r\n animation: animation,\r\n onOptionChanged: _ref2 => {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref2;\r\n if (\"visible\" === name) {\r\n this.option(\"opened\", value)\r\n }\r\n },\r\n container: container,\r\n autoResizeEnabled: false,\r\n height: \"auto\",\r\n width: \"auto\",\r\n hideOnOutsideClick: e => this._closeOutsideDropDownHandler(e),\r\n hideOnParentScroll: true,\r\n shading: false,\r\n dragEnabled: false,\r\n showTitle: false,\r\n fullScreen: false,\r\n _fixWrapperPosition: true\r\n })\r\n }\r\n _getMaxHeight() {\r\n var $element = this.$element();\r\n var offsetTop = $element.offset().top;\r\n var windowHeight = getOuterHeight(getWindow());\r\n var maxHeight = Math.max(offsetTop, windowHeight - offsetTop - getOuterHeight($element));\r\n return Math.min(windowHeight, maxHeight - POPUP_VERTICAL_OFFSET - POPUP_BOUNDARY_VERTICAL_OFFSET)\r\n }\r\n _closeOutsideDropDownHandler(e) {\r\n var isOutsideClick = !$(e.target).closest(this.$element()).length;\r\n return isOutsideClick\r\n }\r\n _renderList(contentElement) {\r\n var $content = $(contentElement);\r\n $content.addClass(DROP_DOWN_MENU_LIST_CLASS);\r\n this._list = this._createComponent($content, ToolbarMenuList, {\r\n dataSource: this._getListDataSource(),\r\n pageLoadMode: \"scrollBottom\",\r\n indicateLoading: false,\r\n noDataText: \"\",\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n onItemClick: e => {\r\n if (this.option(\"closeOnClick\")) {\r\n this.option(\"opened\", false)\r\n }\r\n this._itemClickAction(e)\r\n },\r\n tabIndex: -1,\r\n focusStateEnabled: false,\r\n activeStateEnabled: true,\r\n onItemRendered: this.option(\"onItemRendered\"),\r\n _itemAttributes: {\r\n role: \"menuitem\"\r\n }\r\n })\r\n }\r\n _itemOptionChanged(item, property, value) {\r\n var _this$_list;\r\n null === (_this$_list = this._list) || void 0 === _this$_list ? void 0 : _this$_list._itemOptionChanged(item, property, value);\r\n toggleItemFocusableElementTabIndex(this._list, item)\r\n }\r\n _getListDataSource() {\r\n var _this$option;\r\n return null !== (_this$option = this.option(\"dataSource\")) && void 0 !== _this$option ? _this$option : this.option(\"items\")\r\n }\r\n _setListDataSource() {\r\n var _this$_list2;\r\n null === (_this$_list2 = this._list) || void 0 === _this$_list2 ? void 0 : _this$_list2.option(\"dataSource\", this._getListDataSource());\r\n delete this._deferRendering\r\n }\r\n _getKeyboardListeners() {\r\n return super._getKeyboardListeners().concat([this._list])\r\n }\r\n _toggleVisibility(visible) {\r\n super._toggleVisibility(visible);\r\n this._button.option(\"visible\", visible)\r\n }\r\n _optionChanged(args) {\r\n var _this$_list3, _this$_list4, _this$_list5;\r\n var {\r\n name: name,\r\n value: value\r\n } = args;\r\n switch (name) {\r\n case \"items\":\r\n case \"dataSource\":\r\n if (!this.option(\"opened\")) {\r\n this._deferRendering = true\r\n } else {\r\n this._setListDataSource()\r\n }\r\n break;\r\n case \"itemTemplate\":\r\n null === (_this$_list3 = this._list) || void 0 === _this$_list3 ? void 0 : _this$_list3.option(name, this._getTemplate(value));\r\n break;\r\n case \"onItemClick\":\r\n this._initItemClickAction();\r\n break;\r\n case \"onButtonClick\":\r\n this._buttonClickAction();\r\n break;\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n case \"focusStateEnabled\":\r\n null === (_this$_list4 = this._list) || void 0 === _this$_list4 ? void 0 : _this$_list4.option(name, value);\r\n super._optionChanged(args);\r\n break;\r\n case \"onItemRendered\":\r\n null === (_this$_list5 = this._list) || void 0 === _this$_list5 ? void 0 : _this$_list5.option(name, value);\r\n break;\r\n case \"opened\":\r\n if (this._deferRendering) {\r\n this._setListDataSource()\r\n }\r\n this._toggleMenuVisibility(value);\r\n this._updateFocusableItemsTabIndex();\r\n break;\r\n case \"closeOnClick\":\r\n break;\r\n case \"container\":\r\n this._popup && this._popup.option(name, value);\r\n break;\r\n case \"disabled\":\r\n if (this._list) {\r\n this._updateFocusableItemsTabIndex()\r\n }\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _updateFocusableItemsTabIndex() {\r\n this.option(\"items\").forEach(item => toggleItemFocusableElementTabIndex(this._list, item))\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/strategy/toolbar.singleline.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 getOuterWidth\r\n} from \"../../../core/utils/size\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n grep,\r\n deferRender\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport DropDownMenu from \"../internal/ui.toolbar.menu\";\r\nimport {\r\n compileGetter\r\n} from \"../../../core/utils/data\";\r\nvar INVISIBLE_STATE_CLASS = \"dx-state-invisible\";\r\nvar TOOLBAR_DROP_DOWN_MENU_CONTAINER_CLASS = \"dx-toolbar-menu-container\";\r\nvar TOOLBAR_BUTTON_CLASS = \"dx-toolbar-button\";\r\nvar TOOLBAR_AUTO_HIDE_ITEM_CLASS = \"dx-toolbar-item-auto-hide\";\r\nvar TOOLBAR_HIDDEN_ITEM = \"dx-toolbar-item-invisible\";\r\nexport class SingleLineStrategy {\r\n constructor(toolbar) {\r\n this._toolbar = toolbar\r\n }\r\n _initMarkup() {\r\n deferRender(() => {\r\n this._renderOverflowMenu();\r\n this._renderMenuItems()\r\n })\r\n }\r\n _renderOverflowMenu() {\r\n if (!this._hasVisibleMenuItems()) {\r\n return\r\n }\r\n this._renderMenuButtonContainer();\r\n var $menu = $(\"
\").appendTo(this._overflowMenuContainer());\r\n var itemClickAction = this._toolbar._createActionByOption(\"onItemClick\");\r\n var menuItemTemplate = this._toolbar._getTemplateByOption(\"menuItemTemplate\");\r\n this._menu = this._toolbar._createComponent($menu, DropDownMenu, {\r\n disabled: this._toolbar.option(\"disabled\"),\r\n itemTemplate: () => menuItemTemplate,\r\n onItemClick: e => {\r\n itemClickAction(e)\r\n },\r\n container: this._toolbar.option(\"menuContainer\"),\r\n onOptionChanged: _ref => {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n if (\"opened\" === name) {\r\n this._toolbar.option(\"overflowMenuVisible\", value)\r\n }\r\n if (\"items\" === name) {\r\n this._updateMenuVisibility(value)\r\n }\r\n }\r\n })\r\n }\r\n renderMenuItems() {\r\n if (!this._menu) {\r\n this._renderOverflowMenu()\r\n }\r\n this._menu && this._menu.option(\"items\", this._getMenuItems());\r\n if (this._menu && !this._menu.option(\"items\").length) {\r\n this._menu.option(\"opened\", false)\r\n }\r\n }\r\n _renderMenuButtonContainer() {\r\n this._$overflowMenuContainer = $(\"
\").appendTo(this._toolbar._$afterSection).addClass(TOOLBAR_BUTTON_CLASS).addClass(TOOLBAR_DROP_DOWN_MENU_CONTAINER_CLASS)\r\n }\r\n _overflowMenuContainer() {\r\n return this._$overflowMenuContainer\r\n }\r\n _updateMenuVisibility(menuItems) {\r\n var items = null !== menuItems && void 0 !== menuItems ? menuItems : this._getMenuItems();\r\n var isMenuVisible = items.length && this._hasVisibleMenuItems(items);\r\n this._toggleMenuVisibility(isMenuVisible)\r\n }\r\n _toggleMenuVisibility(value) {\r\n if (!this._overflowMenuContainer()) {\r\n return\r\n }\r\n this._overflowMenuContainer().toggleClass(INVISIBLE_STATE_CLASS, !value)\r\n }\r\n _renderMenuItems() {\r\n deferRender(() => {\r\n this.renderMenuItems()\r\n })\r\n }\r\n _dimensionChanged() {\r\n this.renderMenuItems()\r\n }\r\n _getToolbarItems() {\r\n var _this$_toolbar$option;\r\n return grep(null !== (_this$_toolbar$option = this._toolbar.option(\"items\")) && void 0 !== _this$_toolbar$option ? _this$_toolbar$option : [], item => !this._toolbar._isMenuItem(item))\r\n }\r\n _getHiddenItems() {\r\n return this._toolbar._itemContainer().children(\".\".concat(TOOLBAR_AUTO_HIDE_ITEM_CLASS, \".\").concat(TOOLBAR_HIDDEN_ITEM)).not(\".\".concat(INVISIBLE_STATE_CLASS))\r\n }\r\n _getMenuItems() {\r\n var _this$_toolbar$option2, _this$_restoreItems;\r\n var menuItems = grep(null !== (_this$_toolbar$option2 = this._toolbar.option(\"items\")) && void 0 !== _this$_toolbar$option2 ? _this$_toolbar$option2 : [], item => this._toolbar._isMenuItem(item));\r\n var $hiddenItems = this._getHiddenItems();\r\n this._restoreItems = null !== (_this$_restoreItems = this._restoreItems) && void 0 !== _this$_restoreItems ? _this$_restoreItems : [];\r\n var overflowItems = [].slice.call($hiddenItems).map(hiddenItem => {\r\n var itemData = this._toolbar._getItemData(hiddenItem);\r\n var $itemContainer = $(hiddenItem);\r\n var $itemMarkup = $itemContainer.children();\r\n return extend({\r\n menuItemTemplate: () => {\r\n this._restoreItems.push({\r\n container: $itemContainer,\r\n item: $itemMarkup\r\n });\r\n var $container = $(\"
\").addClass(TOOLBAR_AUTO_HIDE_ITEM_CLASS);\r\n return $container.append($itemMarkup)\r\n }\r\n }, itemData)\r\n });\r\n return [...overflowItems, ...menuItems]\r\n }\r\n _hasVisibleMenuItems(items) {\r\n var menuItems = null !== items && void 0 !== items ? items : this._toolbar.option(\"items\");\r\n var result = false;\r\n var optionGetter = compileGetter(\"visible\");\r\n var overflowGetter = compileGetter(\"locateInMenu\");\r\n each(menuItems, (function(index, item) {\r\n var itemVisible = optionGetter(item, {\r\n functionsAsIs: true\r\n });\r\n var itemOverflow = overflowGetter(item, {\r\n functionsAsIs: true\r\n });\r\n if (false !== itemVisible && (\"auto\" === itemOverflow || \"always\" === itemOverflow) || \"menu\" === item.location) {\r\n result = true\r\n }\r\n }));\r\n return result\r\n }\r\n _arrangeItems() {\r\n var _this$_restoreItems2;\r\n this._toolbar._$centerSection.css({\r\n margin: \"0 auto\",\r\n float: \"none\"\r\n });\r\n each(null !== (_this$_restoreItems2 = this._restoreItems) && void 0 !== _this$_restoreItems2 ? _this$_restoreItems2 : [], (function(_, obj) {\r\n $(obj.container).append(obj.item)\r\n }));\r\n this._restoreItems = [];\r\n var elementWidth = getWidth(this._toolbar.$element());\r\n this._hideOverflowItems(elementWidth);\r\n return elementWidth\r\n }\r\n _hideOverflowItems(elementWidth) {\r\n var _elementWidth;\r\n var overflowItems = this._toolbar.$element().find(\".\".concat(TOOLBAR_AUTO_HIDE_ITEM_CLASS));\r\n if (!overflowItems.length) {\r\n return\r\n }\r\n elementWidth = null !== (_elementWidth = elementWidth) && void 0 !== _elementWidth ? _elementWidth : getWidth(this._toolbar.$element());\r\n $(overflowItems).removeClass(TOOLBAR_HIDDEN_ITEM);\r\n var itemsWidth = this._getItemsWidth();\r\n while (overflowItems.length && elementWidth < itemsWidth) {\r\n var $item = overflowItems.eq(-1);\r\n itemsWidth -= getOuterWidth($item);\r\n $item.addClass(TOOLBAR_HIDDEN_ITEM);\r\n overflowItems.splice(-1, 1)\r\n }\r\n }\r\n _getItemsWidth() {\r\n return this._toolbar._getSummaryItemsWidth([this._toolbar._$beforeSection, this._toolbar._$centerSection, this._toolbar._$afterSection])\r\n }\r\n _itemOptionChanged(item, property, value) {\r\n if (\"disabled\" === property || \"options.disabled\" === property) {\r\n if (this._toolbar._isMenuItem(item)) {\r\n var _this$_menu;\r\n null === (_this$_menu = this._menu) || void 0 === _this$_menu ? void 0 : _this$_menu._itemOptionChanged(item, property, value);\r\n return\r\n }\r\n }\r\n this.renderMenuItems()\r\n }\r\n _renderItem(item, itemElement) {\r\n if (\"auto\" === item.locateInMenu) {\r\n itemElement.addClass(TOOLBAR_AUTO_HIDE_ITEM_CLASS)\r\n }\r\n }\r\n _optionChanged(name, value) {\r\n var _this$_menu2, _this$_menu3, _this$_menu4, _this$_menu5, _this$_menu6;\r\n switch (name) {\r\n case \"disabled\":\r\n null === (_this$_menu2 = this._menu) || void 0 === _this$_menu2 ? void 0 : _this$_menu2.option(name, value);\r\n break;\r\n case \"overflowMenuVisible\":\r\n null === (_this$_menu3 = this._menu) || void 0 === _this$_menu3 ? void 0 : _this$_menu3.option(\"opened\", value);\r\n break;\r\n case \"onItemClick\":\r\n null === (_this$_menu4 = this._menu) || void 0 === _this$_menu4 ? void 0 : _this$_menu4.option(name, value);\r\n break;\r\n case \"menuContainer\":\r\n null === (_this$_menu5 = this._menu) || void 0 === _this$_menu5 ? void 0 : _this$_menu5.option(\"container\", value);\r\n break;\r\n case \"menuItemTemplate\":\r\n null === (_this$_menu6 = this._menu) || void 0 === _this$_menu6 ? void 0 : _this$_menu6.option(\"itemTemplate\", value)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/ui.toolbar.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport ToolbarBase from \"./ui.toolbar.base\";\r\nimport {\r\n toggleItemFocusableElementTabIndex\r\n} from \"./ui.toolbar.utils\";\r\nimport {\r\n MultiLineStrategy\r\n} from \"./strategy/toolbar.multiline\";\r\nimport {\r\n SingleLineStrategy\r\n} from \"./strategy/toolbar.singleline\";\r\nvar TOOLBAR_MULTILINE_CLASS = \"dx-toolbar-multiline\";\r\nvar TOOLBAR_AUTO_HIDE_TEXT_CLASS = \"dx-toolbar-text-auto-hide\";\r\nclass Toolbar extends ToolbarBase {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n menuItemTemplate: \"menuItem\",\r\n menuContainer: void 0,\r\n overflowMenuVisible: false,\r\n multiline: false\r\n })\r\n }\r\n _isMultiline() {\r\n return this.option(\"multiline\")\r\n }\r\n _dimensionChanged(dimension) {\r\n if (\"height\" === dimension) {\r\n return\r\n }\r\n super._dimensionChanged();\r\n this._layoutStrategy._dimensionChanged()\r\n }\r\n _initMarkup() {\r\n super._initMarkup();\r\n this._updateFocusableItemsTabIndex();\r\n this._layoutStrategy._initMarkup()\r\n }\r\n _renderToolbar() {\r\n super._renderToolbar();\r\n this._renderLayoutStrategy()\r\n }\r\n _itemContainer() {\r\n if (this._isMultiline()) {\r\n return this._$toolbarItemsContainer\r\n }\r\n return super._itemContainer()\r\n }\r\n _renderLayoutStrategy() {\r\n this.$element().toggleClass(TOOLBAR_MULTILINE_CLASS, this._isMultiline());\r\n this._layoutStrategy = this._isMultiline() ? new MultiLineStrategy(this) : new SingleLineStrategy(this)\r\n }\r\n _renderSections() {\r\n if (this._isMultiline()) {\r\n return\r\n }\r\n return super._renderSections()\r\n }\r\n _postProcessRenderItems() {\r\n this._layoutStrategy._hideOverflowItems();\r\n this._layoutStrategy._updateMenuVisibility();\r\n super._postProcessRenderItems();\r\n this._layoutStrategy._renderMenuItems()\r\n }\r\n _renderItem(index, item, itemContainer, $after) {\r\n var itemElement = super._renderItem(index, item, itemContainer, $after);\r\n this._layoutStrategy._renderItem(item, itemElement);\r\n var {\r\n widget: widget,\r\n showText: showText\r\n } = item;\r\n if (\"dxButton\" === widget && \"inMenu\" === showText) {\r\n itemElement.toggleClass(TOOLBAR_AUTO_HIDE_TEXT_CLASS)\r\n }\r\n return itemElement\r\n }\r\n _getItemsWidth() {\r\n return this._layoutStrategy._getItemsWidth()\r\n }\r\n _getMenuItems() {\r\n return this._layoutStrategy._getMenuItems()\r\n }\r\n _getToolbarItems() {\r\n return this._layoutStrategy._getToolbarItems()\r\n }\r\n _arrangeItems() {\r\n if (this.$element().is(\":hidden\")) {\r\n return\r\n }\r\n var elementWidth = this._layoutStrategy._arrangeItems();\r\n if (!this._isMultiline()) {\r\n super._arrangeItems(elementWidth)\r\n }\r\n }\r\n _itemOptionChanged(item, property, value) {\r\n if (!this._isMenuItem(item)) {\r\n super._itemOptionChanged(item, property, value)\r\n }\r\n this._layoutStrategy._itemOptionChanged(item, property, value);\r\n if (\"disabled\" === property || \"options.disabled\" === property) {\r\n toggleItemFocusableElementTabIndex(this, item)\r\n }\r\n if (\"location\" === property) {\r\n this.repaint()\r\n }\r\n }\r\n _updateFocusableItemsTabIndex() {\r\n this._getToolbarItems().forEach(item => toggleItemFocusableElementTabIndex(this, item))\r\n }\r\n _isMenuItem(itemData) {\r\n return \"menu\" === itemData.location || \"always\" === itemData.locateInMenu\r\n }\r\n _isToolbarItem(itemData) {\r\n return void 0 === itemData.location || \"never\" === itemData.locateInMenu\r\n }\r\n _optionChanged(_ref) {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n this._layoutStrategy._optionChanged(name, value);\r\n switch (name) {\r\n case \"menuContainer\":\r\n case \"menuItemTemplate\":\r\n case \"overflowMenuVisible\":\r\n break;\r\n case \"multiline\":\r\n this._invalidate();\r\n break;\r\n case \"disabled\":\r\n super._optionChanged.apply(this, arguments);\r\n this._updateFocusableItemsTabIndex();\r\n break;\r\n default:\r\n super._optionChanged.apply(this, arguments)\r\n }\r\n }\r\n updateDimensions() {\r\n this._dimensionChanged()\r\n }\r\n}\r\nregisterComponent(\"dxToolbar\", Toolbar);\r\nexport default Toolbar;\r\n","/**\r\n * DevExtreme (esm/ui/toolbar.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Toolbar from \"./toolbar/ui.toolbar\";\r\nexport default Toolbar;\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/header_panel/m_header_panel.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 $ from \"../../../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n getPathParts\r\n} from \"../../../../core/utils/data\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport Toolbar from \"../../../../ui/toolbar\";\r\nimport {\r\n ColumnsView\r\n} from \"../views/m_columns_view\";\r\nvar HEADER_PANEL_CLASS = \"header-panel\";\r\nvar TOOLBAR_BUTTON_CLASS = \"toolbar-button\";\r\nvar TOOLBAR_ARIA_LABEL = \"-ariaToolbar\";\r\nvar DEFAULT_TOOLBAR_ITEM_NAMES = [\"addRowButton\", \"applyFilterButton\", \"columnChooserButton\", \"exportButton\", \"groupPanel\", \"revertButton\", \"saveButton\", \"searchPanel\"];\r\nvar members = {\r\n _getToolbarItems: () => [],\r\n _getButtonContainer() {\r\n return $(\"
\").addClass(this.addWidgetPrefix(TOOLBAR_BUTTON_CLASS))\r\n },\r\n _getToolbarButtonClass(specificClass) {\r\n var secondClass = specificClass ? \" \".concat(specificClass) : \"\";\r\n return this.addWidgetPrefix(TOOLBAR_BUTTON_CLASS) + secondClass\r\n },\r\n _getToolbarOptions() {\r\n var userToolbarOptions = this.option(\"toolbar\");\r\n var options = {\r\n toolbarOptions: {\r\n items: this._getToolbarItems(),\r\n visible: null === userToolbarOptions || void 0 === userToolbarOptions ? void 0 : userToolbarOptions.visible,\r\n disabled: null === userToolbarOptions || void 0 === userToolbarOptions ? void 0 : userToolbarOptions.disabled,\r\n onItemRendered(e) {\r\n var itemRenderedCallback = e.itemData.onItemRendered;\r\n if (itemRenderedCallback) {\r\n itemRenderedCallback(e)\r\n }\r\n }\r\n }\r\n };\r\n var userItems = null === userToolbarOptions || void 0 === userToolbarOptions ? void 0 : userToolbarOptions.items;\r\n options.toolbarOptions.items = this._normalizeToolbarItems(options.toolbarOptions.items, userItems);\r\n this.executeAction(\"onToolbarPreparing\", options);\r\n if (options.toolbarOptions && !isDefined(options.toolbarOptions.visible)) {\r\n var toolbarItems = options.toolbarOptions.items;\r\n options.toolbarOptions.visible = !!(null === toolbarItems || void 0 === toolbarItems ? void 0 : toolbarItems.length)\r\n }\r\n return options.toolbarOptions\r\n },\r\n _normalizeToolbarItems(defaultItems, userItems) {\r\n defaultItems.forEach(button => {\r\n if (!DEFAULT_TOOLBAR_ITEM_NAMES.includes(button.name)) {\r\n throw new Error(\"Default toolbar item '\".concat(button.name, \"' is not added to DEFAULT_TOOLBAR_ITEM_NAMES\"))\r\n }\r\n });\r\n var defaultProps = {\r\n location: \"after\"\r\n };\r\n var isArray = Array.isArray(userItems);\r\n if (!isDefined(userItems)) {\r\n return defaultItems\r\n }\r\n if (!isArray) {\r\n userItems = [userItems]\r\n }\r\n var defaultButtonsByNames = {};\r\n defaultItems.forEach(button => {\r\n defaultButtonsByNames[button.name] = button\r\n });\r\n var normalizedItems = userItems.map(button => {\r\n if (isString(button)) {\r\n button = {\r\n name: button\r\n }\r\n }\r\n if (isDefined(button.name)) {\r\n if (isDefined(defaultButtonsByNames[button.name])) {\r\n button = extend(true, {}, defaultButtonsByNames[button.name], button)\r\n } else if (DEFAULT_TOOLBAR_ITEM_NAMES.includes(button.name)) {\r\n button = _extends(_extends({}, button), {\r\n visible: false\r\n })\r\n }\r\n }\r\n return extend(true, {}, defaultProps, button)\r\n });\r\n return isArray ? normalizedItems : normalizedItems[0]\r\n },\r\n _renderCore() {\r\n if (!this._toolbar) {\r\n var $headerPanel = this.element();\r\n $headerPanel.addClass(this.addWidgetPrefix(HEADER_PANEL_CLASS));\r\n var label = messageLocalization.format(this.component.NAME + TOOLBAR_ARIA_LABEL);\r\n var $toolbar = $(\"
\").attr(\"aria-label\", label).appendTo($headerPanel);\r\n this._toolbar = this._createComponent($toolbar, Toolbar, this._toolbarOptions)\r\n } else {\r\n this._toolbar.option(this._toolbarOptions)\r\n }\r\n },\r\n _columnOptionChanged: noop,\r\n _handleDataChanged() {\r\n if (this._requireReady) {\r\n this.render()\r\n }\r\n },\r\n init() {\r\n this.callBase();\r\n this.createAction(\"onToolbarPreparing\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n render() {\r\n this._toolbarOptions = this._getToolbarOptions();\r\n this.callBase.apply(this, arguments)\r\n },\r\n setToolbarItemDisabled(name, disabled) {\r\n var toolbar = this._toolbar;\r\n if (!toolbar) {\r\n return\r\n }\r\n var items = toolbar.option(\"items\") || [];\r\n var itemIndex = items.findIndex(item => item.name === name);\r\n if (itemIndex < 0) {\r\n return\r\n }\r\n var item = toolbar.option(\"items[\".concat(itemIndex, \"]\"));\r\n toolbar.option(\"items[\".concat(itemIndex, \"].disabled\"), disabled);\r\n if (item.options) {\r\n toolbar.option(\"items[\".concat(itemIndex, \"].options.disabled\"), disabled)\r\n }\r\n },\r\n updateToolbarDimensions() {\r\n var _a;\r\n null === (_a = this._toolbar) || void 0 === _a ? void 0 : _a.updateDimensions()\r\n },\r\n getHeaderPanel() {\r\n return this.element()\r\n },\r\n getHeight() {\r\n return this.getElementHeight()\r\n },\r\n optionChanged(args) {\r\n if (\"onToolbarPreparing\" === args.name) {\r\n this._invalidate();\r\n args.handled = true\r\n }\r\n if (\"toolbar\" === args.name) {\r\n args.handled = true;\r\n if (this._toolbar) {\r\n var parts = getPathParts(args.fullName);\r\n var optionName = args.fullName.replace(/^toolbar\\./, \"\");\r\n if (1 === parts.length) {\r\n var toolbarOptions = this._getToolbarOptions();\r\n this._toolbar.option(toolbarOptions)\r\n } else if (\"items\" === parts[1]) {\r\n if (2 === parts.length) {\r\n var _toolbarOptions = this._getToolbarOptions();\r\n this._toolbar.option(\"items\", _toolbarOptions.items)\r\n } else if (3 === parts.length) {\r\n var normalizedItem = this._normalizeToolbarItems(this._getToolbarItems(), args.value);\r\n this._toolbar.option(optionName, normalizedItem)\r\n } else if (parts.length >= 4) {\r\n this._toolbar.option(optionName, args.value)\r\n }\r\n } else {\r\n this._toolbar.option(optionName, args.value)\r\n }\r\n }\r\n }\r\n this.callBase(args)\r\n },\r\n isVisible() {\r\n return !!(this._toolbarOptions && this._toolbarOptions.visible)\r\n },\r\n allowDragging: noop,\r\n hasGroupedColumns: noop\r\n};\r\nvar HeaderPanel = ColumnsView.inherit(members);\r\nexport var headerPanelModule = {\r\n defaultOptions: () => ({}),\r\n views: {\r\n headerPanel: HeaderPanel\r\n },\r\n extenders: {\r\n controllers: {\r\n resizing: {\r\n _updateDimensionsCore() {\r\n this.callBase.apply(this, arguments);\r\n this.getView(\"headerPanel\").updateToolbarDimensions()\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/header_panel.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n headerPanelModule\r\n} from \"../../../grids/grid_core/header_panel/m_header_panel\";\r\nimport gridCore from \"../m_core\";\r\nexport var HeaderPanel = headerPanelModule.views.headerPanel;\r\ngridCore.registerModule(\"headerPanel\", headerPanelModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/m_widget_base.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport \"./module_not_extended/column_headers\";\r\nimport \"./m_columns_controller\";\r\nimport \"./m_data_controller\";\r\nimport \"./module_not_extended/sorting\";\r\nimport \"./module_not_extended/rows\";\r\nimport \"./module_not_extended/context_menu\";\r\nimport \"./module_not_extended/error_handling\";\r\nimport \"./module_not_extended/grid_view\";\r\nimport \"./module_not_extended/header_panel\";\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport $ from \"../../../core/renderer\";\r\nimport browser from \"../../../core/utils/browser\";\r\nimport {\r\n deferRender,\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n logger\r\n} from \"../../../core/utils/console\";\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 isFunction,\r\n isString\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n isMaterial\r\n} from \"../../../ui/themes\";\r\nimport Widget from \"../../../ui/widget/ui.widget\";\r\nimport gridCoreUtils from \"../../grids/grid_core/m_utils\";\r\nimport gridCore from \"./m_core\";\r\nvar DATAGRID_ROW_SELECTOR = \".dx-row\";\r\nvar DATAGRID_DEPRECATED_TEMPLATE_WARNING = \"Specifying grid templates with the jQuery selector name is now deprecated. Use the DOM Node or the jQuery object that references this selector instead.\";\r\ngridCore.registerModulesOrder([\"stateStoring\", \"columns\", \"selection\", \"editorFactory\", \"columnChooser\", \"grouping\", \"editing\", \"editingRowBased\", \"editingFormBased\", \"editingCellBased\", \"masterDetail\", \"validating\", \"adaptivity\", \"data\", \"virtualScrolling\", \"columnHeaders\", \"filterRow\", \"headerPanel\", \"headerFilter\", \"sorting\", \"search\", \"rows\", \"pager\", \"columnsResizingReordering\", \"contextMenu\", \"keyboardNavigation\", \"errorHandling\", \"summary\", \"columnFixing\", \"export\", \"gridView\"]);\r\nvar DataGrid = Widget.inherit({\r\n _activeStateUnit: DATAGRID_ROW_SELECTOR,\r\n _getDefaultOptions() {\r\n var result = this.callBase();\r\n each(gridCore.modules, (function() {\r\n if (isFunction(this.defaultOptions)) {\r\n extend(true, result, this.defaultOptions())\r\n }\r\n }));\r\n return result\r\n },\r\n _setDeprecatedOptions() {\r\n this.callBase();\r\n extend(this._deprecatedOptions, {\r\n useKeyboard: {\r\n since: \"19.2\",\r\n alias: \"keyboardNavigation.enabled\"\r\n },\r\n rowTemplate: {\r\n since: \"21.2\",\r\n message: 'Use the \"dataRowTemplate\" option instead'\r\n },\r\n \"columnChooser.allowSearch\": {\r\n since: \"23.1\",\r\n message: 'Use the \"columnChooser.search.enabled\" option instead'\r\n },\r\n \"columnChooser.searchTimeout\": {\r\n since: \"23.1\",\r\n message: 'Use the \"columnChooser.search.timeout\" option instead'\r\n }\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n showRowLines: true\r\n }\r\n }, {\r\n device: () => isMaterial(),\r\n options: {\r\n showRowLines: true,\r\n showColumnLines: false,\r\n headerFilter: {\r\n height: 315\r\n },\r\n editing: {\r\n useIcons: true\r\n },\r\n selection: {\r\n showCheckBoxesMode: \"always\"\r\n }\r\n }\r\n }, {\r\n device: () => browser.webkit,\r\n options: {\r\n loadingTimeout: 30,\r\n loadPanel: {\r\n animation: {\r\n show: {\r\n easing: \"cubic-bezier(1, 0, 1, 0)\",\r\n duration: 500,\r\n from: {\r\n opacity: 0\r\n },\r\n to: {\r\n opacity: 1\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }, {\r\n device: device => \"desktop\" !== device.deviceType,\r\n options: {\r\n grouping: {\r\n expandMode: \"rowClick\"\r\n }\r\n }\r\n }])\r\n },\r\n _init() {\r\n this.callBase();\r\n gridCoreUtils.logHeaderFilterDeprecatedWarningIfNeed(this);\r\n gridCore.processModules(this, gridCore);\r\n gridCore.callModuleItemsMethod(this, \"init\")\r\n },\r\n _clean: noop,\r\n _optionChanged(args) {\r\n gridCore.callModuleItemsMethod(this, \"optionChanged\", [args]);\r\n if (!args.handled) {\r\n this.callBase(args)\r\n }\r\n },\r\n _dimensionChanged() {\r\n this.updateDimensions(true)\r\n },\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this.updateDimensions()\r\n }\r\n },\r\n _initMarkup() {\r\n this.callBase.apply(this, arguments);\r\n this.getView(\"gridView\").render(this.$element())\r\n },\r\n _renderContentImpl() {\r\n this.getView(\"gridView\").update()\r\n },\r\n _renderContent() {\r\n var that = this;\r\n deferRender(() => {\r\n that._renderContentImpl()\r\n })\r\n },\r\n _getTemplate(templateName) {\r\n var template = templateName;\r\n if (isString(template) && template.startsWith(\"#\")) {\r\n template = $(templateName);\r\n logger.warn(DATAGRID_DEPRECATED_TEMPLATE_WARNING)\r\n }\r\n return this.callBase(template)\r\n },\r\n _dispose() {\r\n this.callBase();\r\n gridCore.callModuleItemsMethod(this, \"dispose\")\r\n },\r\n isReady() {\r\n return this.getController(\"data\").isReady()\r\n },\r\n beginUpdate() {\r\n this.callBase();\r\n gridCore.callModuleItemsMethod(this, \"beginUpdate\")\r\n },\r\n endUpdate() {\r\n gridCore.callModuleItemsMethod(this, \"endUpdate\");\r\n this.callBase()\r\n },\r\n getController(name) {\r\n return this._controllers[name]\r\n },\r\n getView(name) {\r\n return this._views[name]\r\n },\r\n focus(element) {\r\n this.getController(\"keyboardNavigation\").focus(element)\r\n }\r\n});\r\nDataGrid.registerModule = gridCore.registerModule.bind(gridCore);\r\nregisterComponent(\"dxDataGrid\", DataGrid);\r\nexport default DataGrid;\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/state_storing/m_state_storing_core.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n fromPromise\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 sessionStorage\r\n} from \"../../../../core/utils/storage\";\r\nimport {\r\n isDefined,\r\n isEmptyObject,\r\n isPlainObject\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n getWindow\r\n} from \"../../../../core/utils/window\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport modules from \"../m_modules\";\r\nvar DATE_REGEX = /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)Z$/;\r\nvar parseDates = function parseDates(state) {\r\n if (!state) {\r\n return\r\n }\r\n each(state, (key, value) => {\r\n if (isPlainObject(value) || Array.isArray(value)) {\r\n parseDates(value)\r\n } else if (\"string\" === typeof value) {\r\n var date = DATE_REGEX.exec(value);\r\n if (date) {\r\n state[key] = new Date(Date.UTC(+date[1], +date[2] - 1, +date[3], +date[4], +date[5], +date[6]))\r\n }\r\n }\r\n })\r\n};\r\nvar StateStoringController = modules.ViewController.inherit(function() {\r\n var getStorage = function(options) {\r\n var storage = \"sessionStorage\" === options.type ? sessionStorage() : getWindow().localStorage;\r\n if (!storage) {\r\n throw new Error(\"E1007\")\r\n }\r\n return storage\r\n };\r\n var getUniqueStorageKey = function(options) {\r\n return isDefined(options.storageKey) ? options.storageKey : \"storage\"\r\n };\r\n return {\r\n _loadState() {\r\n var options = this.option(\"stateStoring\");\r\n if (\"custom\" === options.type) {\r\n return options.customLoad && options.customLoad()\r\n }\r\n try {\r\n return JSON.parse(getStorage(options).getItem(getUniqueStorageKey(options)))\r\n } catch (e) {\r\n errors.log(\"W1022\", \"State storing\", e.message)\r\n }\r\n },\r\n _saveState(state) {\r\n var options = this.option(\"stateStoring\");\r\n if (\"custom\" === options.type) {\r\n options.customSave && options.customSave(state);\r\n return\r\n }\r\n try {\r\n getStorage(options).setItem(getUniqueStorageKey(options), JSON.stringify(state))\r\n } catch (e) {\r\n errors.log(e.message)\r\n }\r\n },\r\n publicMethods: () => [\"state\"],\r\n isEnabled() {\r\n return this.option(\"stateStoring.enabled\")\r\n },\r\n init() {\r\n var that = this;\r\n that._state = {};\r\n that._isLoaded = false;\r\n that._isLoading = false;\r\n that._windowUnloadHandler = function() {\r\n if (void 0 !== that._savingTimeoutID) {\r\n that._saveState(that.state())\r\n }\r\n };\r\n eventsEngine.on(getWindow(), \"unload\", that._windowUnloadHandler);\r\n return that\r\n },\r\n isLoaded() {\r\n return this._isLoaded\r\n },\r\n isLoading() {\r\n return this._isLoading\r\n },\r\n load() {\r\n this._isLoading = true;\r\n var loadResult = fromPromise(this._loadState());\r\n loadResult.always(() => {\r\n this._isLoaded = true;\r\n this._isLoading = false\r\n }).done(state => {\r\n if (null !== state && !isEmptyObject(state)) {\r\n this.state(state)\r\n }\r\n });\r\n return loadResult\r\n },\r\n state(state) {\r\n if (!arguments.length) {\r\n return extend(true, {}, this._state)\r\n }\r\n this._state = extend({}, state);\r\n parseDates(this._state)\r\n },\r\n save() {\r\n var that = this;\r\n clearTimeout(that._savingTimeoutID);\r\n that._savingTimeoutID = setTimeout(() => {\r\n that._saveState(that.state());\r\n that._savingTimeoutID = void 0\r\n }, that.option(\"stateStoring.savingTimeout\"))\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"stateStoring\":\r\n if (this.isEnabled() && !this.isLoading()) {\r\n this.load()\r\n }\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n dispose() {\r\n clearTimeout(this._savingTimeoutID);\r\n eventsEngine.off(getWindow(), \"unload\", this._windowUnloadHandler)\r\n }\r\n }\r\n}());\r\nexport default {\r\n StateStoringController: StateStoringController\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/state_storing/m_state_storing.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n equalByValue,\r\n getKeyHash\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 isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport stateStoringCore from \"./m_state_storing_core\";\r\nvar getDataState = that => {\r\n var pagerView = that.getView(\"pagerView\");\r\n var dataController = that.getController(\"data\");\r\n var state = {\r\n allowedPageSizes: pagerView ? pagerView.getPageSizes() : void 0,\r\n filterPanel: {\r\n filterEnabled: that.option(\"filterPanel.filterEnabled\")\r\n },\r\n filterValue: that.option(\"filterValue\"),\r\n focusedRowKey: that.option(\"focusedRowEnabled\") ? that.option(\"focusedRowKey\") : void 0\r\n };\r\n return extend(state, dataController.getUserState())\r\n};\r\nvar processLoadState = that => {\r\n var columnsController = that.getController(\"columns\");\r\n var selectionController = that.getController(\"selection\");\r\n var exportController = that.getController(\"export\");\r\n var dataController = that.getController(\"data\");\r\n if (columnsController) {\r\n columnsController.columnsChanged.add(() => {\r\n that.updateState({\r\n columns: columnsController.getUserState()\r\n })\r\n })\r\n }\r\n if (selectionController) {\r\n selectionController.selectionChanged.add(e => {\r\n that.updateState({\r\n selectedRowKeys: e.selectedRowKeys,\r\n selectionFilter: e.selectionFilter\r\n })\r\n })\r\n }\r\n if (dataController) {\r\n that._initialPageSize = that.option(\"paging.pageSize\");\r\n that._initialFilterValue = that.option(\"filterValue\");\r\n dataController.changed.add(() => {\r\n var state = getDataState(that);\r\n that.updateState(state)\r\n })\r\n }\r\n if (exportController) {\r\n exportController.selectionOnlyChanged.add(() => {\r\n that.updateState({\r\n exportSelectionOnly: exportController.selectionOnly()\r\n })\r\n })\r\n }\r\n};\r\nvar DEFAULT_FILTER_VALUE = null;\r\nvar getFilterValue = (that, state) => {\r\n var filterSyncController = that.getController(\"filterSync\");\r\n var columnsController = that.getController(\"columns\");\r\n var hasFilterState = state.columns || void 0 !== state.filterValue;\r\n if (filterSyncController) {\r\n if (hasFilterState) {\r\n return state.filterValue || filterSyncController.getFilterValueFromColumns(state.columns)\r\n }\r\n return that._initialFilterValue || filterSyncController.getFilterValueFromColumns(columnsController.getColumns())\r\n }\r\n return DEFAULT_FILTER_VALUE\r\n};\r\nexport var stateStoringModule = {\r\n defaultOptions: () => ({\r\n stateStoring: {\r\n enabled: false,\r\n storageKey: null,\r\n type: \"localStorage\",\r\n customLoad: null,\r\n customSave: null,\r\n savingTimeout: 2e3\r\n }\r\n }),\r\n controllers: {\r\n stateStoring: stateStoringCore.StateStoringController\r\n },\r\n extenders: {\r\n views: {\r\n rowsView: {\r\n init() {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n that.callBase();\r\n dataController.stateLoaded.add(() => {\r\n if (dataController.isLoaded() && !dataController.getDataSource()) {\r\n that.setLoading(false);\r\n that.renderNoDataText();\r\n var columnHeadersView = that.component.getView(\"columnHeadersView\");\r\n columnHeadersView && columnHeadersView.render();\r\n that.component._fireContentReadyAction()\r\n }\r\n })\r\n }\r\n }\r\n },\r\n controllers: {\r\n stateStoring: {\r\n init() {\r\n this.callBase.apply(this, arguments);\r\n processLoadState(this)\r\n },\r\n isLoading() {\r\n return this.callBase() || this.getController(\"data\").isStateLoading()\r\n },\r\n state(state) {\r\n var result = this.callBase.apply(this, arguments);\r\n if (void 0 !== state) {\r\n this.applyState(extend(true, {}, state))\r\n }\r\n return result\r\n },\r\n updateState(state) {\r\n if (this.isEnabled()) {\r\n var oldState = this.state();\r\n var newState = extend({}, oldState, state);\r\n var oldStateHash = getKeyHash(oldState);\r\n var newStateHash = getKeyHash(newState);\r\n if (!equalByValue(oldStateHash, newStateHash)) {\r\n state = extend(true, {}, state);\r\n extend(this._state, state);\r\n this.save()\r\n }\r\n } else {\r\n extend(this._state, state)\r\n }\r\n },\r\n applyState(state) {\r\n var _a;\r\n var {\r\n allowedPageSizes: allowedPageSizes\r\n } = state;\r\n var {\r\n searchText: searchText\r\n } = state;\r\n var {\r\n selectedRowKeys: selectedRowKeys\r\n } = state;\r\n var {\r\n selectionFilter: selectionFilter\r\n } = state;\r\n var exportController = this.getController(\"export\");\r\n var columnsController = this.getController(\"columns\");\r\n var dataController = this.getController(\"data\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var isVirtualScrollingMode = \"virtual\" === scrollingMode || \"infinite\" === scrollingMode;\r\n var showPageSizeSelector = true === this.option(\"pager.visible\") && this.option(\"pager.showPageSizeSelector\");\r\n var hasHeight = null === (_a = this.getView(\"rowsView\")) || void 0 === _a ? void 0 : _a.hasHeight();\r\n this.component.beginUpdate();\r\n if (columnsController) {\r\n columnsController.setUserState(state.columns)\r\n }\r\n if (exportController) {\r\n exportController.selectionOnly(state.exportSelectionOnly)\r\n }\r\n if (!this.option(\"selection.deferred\")) {\r\n this.option(\"selectedRowKeys\", selectedRowKeys || [])\r\n }\r\n this.option(\"selectionFilter\", selectionFilter);\r\n if (allowedPageSizes && \"auto\" === this.option(\"pager.allowedPageSizes\")) {\r\n this.option(\"pager\").allowedPageSizes = allowedPageSizes\r\n }\r\n if (this.option(\"focusedRowEnabled\")) {\r\n this.option(\"focusedRowIndex\", -1);\r\n this.option(\"focusedRowKey\", state.focusedRowKey || null)\r\n }\r\n this.component.endUpdate();\r\n this.option(\"searchPanel.text\", searchText || \"\");\r\n this.option(\"filterValue\", getFilterValue(this, state));\r\n this.option(\"filterPanel.filterEnabled\", state.filterPanel ? state.filterPanel.filterEnabled : true);\r\n this.option(\"paging.pageIndex\", (!isVirtualScrollingMode || hasHeight) && state.pageIndex || 0);\r\n this.option(\"paging.pageSize\", (!isVirtualScrollingMode || showPageSizeSelector) && isDefined(state.pageSize) ? state.pageSize : this._initialPageSize);\r\n dataController && dataController.reset()\r\n }\r\n },\r\n columns: {\r\n _shouldReturnVisibleColumns() {\r\n var result = this.callBase.apply(this, arguments);\r\n var stateStoringController = this.getController(\"stateStoring\");\r\n return result && (!stateStoringController.isEnabled() || stateStoringController.isLoaded())\r\n }\r\n },\r\n data: {\r\n callbackNames() {\r\n return this.callBase().concat([\"stateLoaded\"])\r\n },\r\n _refreshDataSource() {\r\n var {\r\n callBase: callBase\r\n } = this;\r\n var stateStoringController = this.getController(\"stateStoring\");\r\n if (stateStoringController.isEnabled() && !stateStoringController.isLoaded()) {\r\n clearTimeout(this._restoreStateTimeoutID);\r\n var deferred = new Deferred;\r\n this._restoreStateTimeoutID = setTimeout(() => {\r\n stateStoringController.load().always(() => {\r\n this._restoreStateTimeoutID = null\r\n }).done(() => {\r\n callBase.call(this);\r\n this.stateLoaded.fire();\r\n deferred.resolve()\r\n }).fail(error => {\r\n this.stateLoaded.fire();\r\n this._handleLoadError(error || \"Unknown error\");\r\n deferred.reject()\r\n })\r\n });\r\n return deferred.promise()\r\n }\r\n if (!this.isStateLoading()) {\r\n callBase.call(this)\r\n }\r\n },\r\n isLoading() {\r\n var stateStoringController = this.getController(\"stateStoring\");\r\n return this.callBase() || stateStoringController.isLoading()\r\n },\r\n isStateLoading() {\r\n return isDefined(this._restoreStateTimeoutID)\r\n },\r\n isLoaded() {\r\n return this.callBase() && !this.isStateLoading()\r\n },\r\n dispose() {\r\n clearTimeout(this._restoreStateTimeoutID);\r\n this.callBase()\r\n }\r\n },\r\n selection: {\r\n _fireSelectionChanged(options) {\r\n var stateStoringController = this.getController(\"stateStoring\");\r\n var isDeferredSelection = this.option(\"selection.deferred\");\r\n if (stateStoringController.isLoading() && isDeferredSelection) {\r\n return\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/state_storing.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n stateStoringModule\r\n} from \"../../../grids/grid_core/state_storing/m_state_storing\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"stateStoring\", stateStoringModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/selection/m_selection.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 equalByValue\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 each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n touch\r\n} from \"../../../../core/utils/support\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n applyBatch\r\n} from \"../../../../data/array_utils\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport holdEvent from \"../../../../events/hold\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed\r\n} from \"../../../../events/utils/index\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport Selection from \"../../../../ui/selection/selection\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nvar EDITOR_CELL_CLASS = \"dx-editor-cell\";\r\nvar ROW_CLASS = \"dx-row\";\r\nvar ROW_SELECTION_CLASS = \"dx-selection\";\r\nvar SELECT_CHECKBOX_CLASS = \"dx-select-checkbox\";\r\nvar CHECKBOXES_HIDDEN_CLASS = \"dx-select-checkboxes-hidden\";\r\nvar COMMAND_SELECT_CLASS = \"dx-command-select\";\r\nvar SELECTION_DISABLED_CLASS = \"dx-selection-disabled\";\r\nvar DATA_ROW_CLASS = \"dx-data-row\";\r\nvar SHOW_CHECKBOXES_MODE = \"selection.showCheckBoxesMode\";\r\nvar SELECTION_MODE = \"selection.mode\";\r\nvar processLongTap = function(that, dxEvent) {\r\n var selectionController = that.getController(\"selection\");\r\n var rowsView = that.getView(\"rowsView\");\r\n var $row = $(dxEvent.target).closest(\".\".concat(DATA_ROW_CLASS));\r\n var rowIndex = rowsView.getRowIndex($row);\r\n if (rowIndex < 0) {\r\n return\r\n }\r\n if (\"onLongTap\" === that.option(SHOW_CHECKBOXES_MODE)) {\r\n if (selectionController.isSelectionWithCheckboxes()) {\r\n selectionController.stopSelectionWithCheckboxes()\r\n } else {\r\n selectionController.startSelectionWithCheckboxes()\r\n }\r\n } else {\r\n if (\"onClick\" === that.option(SHOW_CHECKBOXES_MODE)) {\r\n selectionController.startSelectionWithCheckboxes()\r\n }\r\n if (\"always\" !== that.option(SHOW_CHECKBOXES_MODE)) {\r\n selectionController.changeItemSelection(rowIndex, {\r\n control: true\r\n })\r\n }\r\n }\r\n};\r\nvar isSeveralRowsSelected = function(that, selectionFilter) {\r\n var keyIndex = 0;\r\n var store = that._dataController.store();\r\n var key = store && store.key();\r\n var isComplexKey = Array.isArray(key);\r\n if (!selectionFilter.length) {\r\n return false\r\n }\r\n if (isComplexKey && Array.isArray(selectionFilter[0]) && \"and\" === selectionFilter[1]) {\r\n for (var i = 0; i < selectionFilter.length; i++) {\r\n if (Array.isArray(selectionFilter[i])) {\r\n if (selectionFilter[i][0] !== key[keyIndex] || \"=\" !== selectionFilter[i][1]) {\r\n return true\r\n }\r\n keyIndex++\r\n }\r\n }\r\n return false\r\n }\r\n return key !== selectionFilter[0]\r\n};\r\nvar selectionCellTemplate = (container, options) => {\r\n var {\r\n component: component\r\n } = options;\r\n var rowsView = component.getView(\"rowsView\");\r\n if (component.option(\"renderAsync\") && !component.option(\"selection.deferred\")) {\r\n options.value = component.isRowSelected(options.row.key)\r\n }\r\n rowsView.renderSelectCheckBoxContainer($(container), options)\r\n};\r\nvar selectionHeaderTemplate = (container, options) => {\r\n var {\r\n column: column\r\n } = options;\r\n var $cellElement = $(container);\r\n var columnHeadersView = options.component.getView(\"columnHeadersView\");\r\n $cellElement.addClass(EDITOR_CELL_CLASS);\r\n columnHeadersView._renderSelectAllCheckBox($cellElement, column);\r\n columnHeadersView._attachSelectAllCheckBoxClickEvent($cellElement)\r\n};\r\nexport class SelectionController extends modules.Controller {\r\n init() {\r\n var _a;\r\n var {\r\n deferred: deferred,\r\n selectAllMode: selectAllMode,\r\n mode: mode\r\n } = null !== (_a = this.option(\"selection\")) && void 0 !== _a ? _a : {};\r\n if (\"infinite\" === this.option(\"scrolling.mode\") && !deferred && \"multiple\" === mode && \"allPages\" === selectAllMode) {\r\n errors.log(\"W1018\")\r\n }\r\n this._dataController = this.getController(\"data\");\r\n this._selectionMode = mode;\r\n this._isSelectionWithCheckboxes = false;\r\n this._selection = this._createSelection();\r\n this._updateSelectColumn();\r\n this.createAction(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n if (!this._dataPushedHandler) {\r\n this._dataPushedHandler = this._handleDataPushed.bind(this);\r\n this._dataController.pushed.add(this._dataPushedHandler)\r\n }\r\n }\r\n _handleDataPushed(changes) {\r\n this._deselectRemovedOnPush(changes);\r\n this._updateSelectedOnPush(changes)\r\n }\r\n _deselectRemovedOnPush(changes) {\r\n var isDeferredSelection = this.option(\"selection.deferred\");\r\n var removedKeys = changes.filter(change => \"remove\" === change.type).map(change => change.key);\r\n if (isDeferredSelection) {\r\n var selectedKeys = this._dataController.items().filter(item => item.isSelected).map(item => item.key);\r\n removedKeys = removedKeys.filter(key => selectedKeys.find(selectedKey => equalByValue(selectedKey, key)))\r\n }\r\n removedKeys.length && this.deselectRows(removedKeys)\r\n }\r\n _updateSelectedOnPush(changes) {\r\n var isDeferredSelection = this.option(\"selection.deferred\");\r\n if (isDeferredSelection) {\r\n return\r\n }\r\n var updateChanges = changes.filter(change => \"update\" === change.type);\r\n var data = this.getSelectedRowsData();\r\n applyBatch({\r\n keyInfo: this._selection.options,\r\n data: data,\r\n changes: updateChanges\r\n })\r\n }\r\n _getSelectionConfig() {\r\n var _a;\r\n var dataController = this._dataController;\r\n var columnsController = this.getController(\"columns\");\r\n var selectionOptions = null !== (_a = this.option(\"selection\")) && void 0 !== _a ? _a : {};\r\n var {\r\n deferred: deferred\r\n } = selectionOptions;\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var virtualPaging = \"virtual\" === scrollingMode || \"infinite\" === scrollingMode;\r\n var allowSelectAll = this.option(\"selection.allowSelectAll\");\r\n var legacyScrollingMode = this.option(\"scrolling.legacyMode\");\r\n return {\r\n selectedKeys: this.option(\"selectedRowKeys\"),\r\n mode: this._selectionMode,\r\n deferred: deferred,\r\n maxFilterLengthInRequest: selectionOptions.maxFilterLengthInRequest,\r\n selectionFilter: this.option(\"selectionFilter\"),\r\n ignoreDisabledItems: true,\r\n allowLoadByRange() {\r\n var hasGroupColumns = columnsController.getGroupColumns().length > 0;\r\n return virtualPaging && !legacyScrollingMode && !hasGroupColumns && allowSelectAll && !deferred\r\n },\r\n key: () => null === dataController || void 0 === dataController ? void 0 : dataController.key(),\r\n keyOf: item => null === dataController || void 0 === dataController ? void 0 : dataController.keyOf(item),\r\n dataFields() {\r\n var _a;\r\n return null === (_a = dataController.dataSource()) || void 0 === _a ? void 0 : _a.select()\r\n },\r\n load(options) {\r\n var _a;\r\n return (null === (_a = dataController.dataSource()) || void 0 === _a ? void 0 : _a.load(options)) || (new Deferred).resolve([])\r\n },\r\n plainItems: () => dataController.items(true),\r\n isItemSelected: item => item.selected,\r\n isSelectableItem: item => \"data\" === (null === item || void 0 === item ? void 0 : item.rowType) && !item.isNewRow,\r\n getItemData: item => isDefined(null === item || void 0 === item ? void 0 : item.rowType) ? (null === item || void 0 === item ? void 0 : item.oldData) || (null === item || void 0 === item ? void 0 : item.data) : item,\r\n filter: () => dataController.getCombinedFilter(deferred),\r\n totalCount: () => dataController.totalCount(),\r\n getLoadOptions(loadItemIndex, focusedItemIndex, shiftItemIndex) {\r\n var _a, _b;\r\n var {\r\n sort: sort,\r\n filter: filter\r\n } = null !== (_b = null === (_a = dataController.dataSource()) || void 0 === _a ? void 0 : _a.lastLoadOptions()) && void 0 !== _b ? _b : {};\r\n var minIndex = Math.min(loadItemIndex, focusedItemIndex);\r\n var maxIndex = Math.max(loadItemIndex, focusedItemIndex);\r\n if (isDefined(shiftItemIndex)) {\r\n minIndex = Math.min(shiftItemIndex, minIndex);\r\n maxIndex = Math.max(shiftItemIndex, maxIndex)\r\n }\r\n var take = maxIndex - minIndex + 1;\r\n return {\r\n skip: minIndex,\r\n take: take,\r\n filter: filter,\r\n sort: sort\r\n }\r\n },\r\n onSelectionChanged: this._updateSelectedItems.bind(this)\r\n }\r\n }\r\n _updateSelectColumn() {\r\n var columnsController = this.getController(\"columns\");\r\n var isSelectColumnVisible = this.isSelectColumnVisible();\r\n columnsController.addCommandColumn({\r\n type: \"selection\",\r\n command: \"select\",\r\n visible: isSelectColumnVisible,\r\n visibleIndex: -1,\r\n dataType: \"boolean\",\r\n alignment: \"center\",\r\n cssClass: COMMAND_SELECT_CLASS,\r\n width: \"auto\",\r\n cellTemplate: selectionCellTemplate,\r\n headerCellTemplate: selectionHeaderTemplate\r\n });\r\n columnsController.columnOption(\"command:select\", \"visible\", isSelectColumnVisible)\r\n }\r\n _createSelection() {\r\n var options = this._getSelectionConfig();\r\n return new Selection(options)\r\n }\r\n _fireSelectionChanged(options) {\r\n var argument = this.option(\"selection.deferred\") ? {\r\n selectionFilter: this.option(\"selectionFilter\")\r\n } : {\r\n selectedRowKeys: this.option(\"selectedRowKeys\")\r\n };\r\n this.selectionChanged.fire(argument);\r\n if (options) {\r\n this.executeAction(\"onSelectionChanged\", options)\r\n }\r\n }\r\n _updateCheckboxesState(options) {\r\n var {\r\n isDeferredMode: isDeferredMode\r\n } = options;\r\n var {\r\n selectionFilter: selectionFilter\r\n } = options;\r\n var {\r\n selectedItemKeys: selectedItemKeys\r\n } = options;\r\n var {\r\n removedItemKeys: removedItemKeys\r\n } = options;\r\n if (\"onClick\" === this.option(SHOW_CHECKBOXES_MODE)) {\r\n if (isDeferredMode ? selectionFilter && isSeveralRowsSelected(this, selectionFilter) : selectedItemKeys.length > 1) {\r\n this.startSelectionWithCheckboxes()\r\n } else if (isDeferredMode ? selectionFilter && !selectionFilter.length : 0 === selectedItemKeys.length && removedItemKeys.length) {\r\n this.stopSelectionWithCheckboxes()\r\n }\r\n }\r\n }\r\n _updateSelectedItems(args) {\r\n var selectionChangedOptions;\r\n var isDeferredMode = this.option(\"selection.deferred\");\r\n var selectionFilter = this._selection.selectionFilter();\r\n var dataController = this._dataController;\r\n var items = dataController.items(true);\r\n var visibleItems = dataController.items();\r\n if (!items) {\r\n return\r\n }\r\n var isSelectionWithCheckboxes = this.isSelectionWithCheckboxes();\r\n var changedItemIndexes = this.getChangedItemIndexes(items);\r\n var visibleChangedItemIndexes = this.getChangedItemIndexes(visibleItems);\r\n this._updateCheckboxesState({\r\n selectedItemKeys: args.selectedItemKeys,\r\n removedItemKeys: args.removedItemKeys,\r\n selectionFilter: selectionFilter,\r\n isDeferredMode: isDeferredMode\r\n });\r\n if (changedItemIndexes.length || isSelectionWithCheckboxes !== this.isSelectionWithCheckboxes()) {\r\n dataController.updateItems({\r\n changeType: \"updateSelection\",\r\n itemIndexes: visibleChangedItemIndexes\r\n })\r\n }\r\n if (isDeferredMode) {\r\n this.option(\"selectionFilter\", selectionFilter);\r\n selectionChangedOptions = {}\r\n } else if (args.addedItemKeys.length || args.removedItemKeys.length) {\r\n this._selectedItemsInternalChange = true;\r\n this.option(\"selectedRowKeys\", args.selectedItemKeys.slice(0));\r\n this._selectedItemsInternalChange = false;\r\n selectionChangedOptions = {\r\n selectedRowsData: args.selectedItems.slice(0),\r\n selectedRowKeys: args.selectedItemKeys.slice(0),\r\n currentSelectedRowKeys: args.addedItemKeys.slice(0),\r\n currentDeselectedRowKeys: args.removedItemKeys.slice(0)\r\n }\r\n }\r\n this._fireSelectionChanged(selectionChangedOptions)\r\n }\r\n getChangedItemIndexes(items) {\r\n var itemIndexes = [];\r\n var isDeferredSelection = this.option(\"selection.deferred\");\r\n for (var i = 0, {\r\n length: length\r\n } = items; i < length; i++) {\r\n var row = items[i];\r\n var isItemSelected = this.isRowSelected(isDeferredSelection ? row.data : row.key);\r\n if (this._selection.isDataItem(row) && row.isSelected !== isItemSelected) {\r\n itemIndexes.push(i)\r\n }\r\n }\r\n return itemIndexes\r\n }\r\n callbackNames() {\r\n return [\"selectionChanged\"]\r\n }\r\n optionChanged(args) {\r\n super.optionChanged(args);\r\n switch (args.name) {\r\n case \"selection\":\r\n var oldSelectionMode = this._selectionMode;\r\n this.init();\r\n if (\"selection.showCheckBoxesMode\" !== args.fullName) {\r\n var selectionMode = this._selectionMode;\r\n var selectedRowKeys = this.option(\"selectedRowKeys\");\r\n if (oldSelectionMode !== selectionMode) {\r\n if (\"single\" === selectionMode) {\r\n if (selectedRowKeys.length > 1) {\r\n selectedRowKeys = [selectedRowKeys[0]]\r\n }\r\n } else if (\"multiple\" !== selectionMode) {\r\n selectedRowKeys = []\r\n }\r\n }\r\n this.selectRows(selectedRowKeys).always(() => {\r\n this._fireSelectionChanged()\r\n })\r\n }\r\n this.getController(\"columns\").updateColumns();\r\n args.handled = true;\r\n break;\r\n case \"selectionFilter\":\r\n this._selection.selectionFilter(args.value);\r\n args.handled = true;\r\n break;\r\n case \"selectedRowKeys\":\r\n var value = args.value || [];\r\n if (Array.isArray(value) && !this._selectedItemsInternalChange && (this.component.getDataSource() || !value.length)) {\r\n this.selectRows(value)\r\n }\r\n args.handled = true\r\n }\r\n }\r\n publicMethods() {\r\n return [\"selectRows\", \"deselectRows\", \"selectRowsByIndexes\", \"getSelectedRowKeys\", \"getSelectedRowsData\", \"clearSelection\", \"selectAll\", \"deselectAll\", \"startSelectionWithCheckboxes\", \"stopSelectionWithCheckboxes\", \"isRowSelected\"]\r\n }\r\n isRowSelected(arg) {\r\n return this._selection.isItemSelected(arg)\r\n }\r\n isSelectColumnVisible() {\r\n return \"multiple\" === this.option(SELECTION_MODE) && (\"always\" === this.option(SHOW_CHECKBOXES_MODE) || \"onClick\" === this.option(SHOW_CHECKBOXES_MODE) || this._isSelectionWithCheckboxes)\r\n }\r\n _isOnePageSelectAll() {\r\n return \"page\" === this.option(\"selection.selectAllMode\")\r\n }\r\n isSelectAll() {\r\n return this._selection.getSelectAllState(this._isOnePageSelectAll())\r\n }\r\n selectAll() {\r\n if (\"onClick\" === this.option(SHOW_CHECKBOXES_MODE)) {\r\n this.startSelectionWithCheckboxes()\r\n }\r\n return this._selection.selectAll(this._isOnePageSelectAll())\r\n }\r\n deselectAll() {\r\n return this._selection.deselectAll(this._isOnePageSelectAll())\r\n }\r\n clearSelection() {\r\n return this.selectedItemKeys([])\r\n }\r\n refresh() {\r\n var _a;\r\n var selectedRowKeys = null !== (_a = this.option(\"selectedRowKeys\")) && void 0 !== _a ? _a : [];\r\n if (!this.option(\"selection.deferred\") && selectedRowKeys.length) {\r\n return this.selectedItemKeys(selectedRowKeys)\r\n }\r\n return (new Deferred).resolve().promise()\r\n }\r\n selectedItemKeys(value, preserve, isDeselect, isSelectAll) {\r\n return this._selection.selectedItemKeys(value, preserve, isDeselect, isSelectAll)\r\n }\r\n getSelectedRowKeys() {\r\n return this._selection.getSelectedItemKeys()\r\n }\r\n selectRows(keys, preserve) {\r\n return this.selectedItemKeys(keys, preserve)\r\n }\r\n deselectRows(keys) {\r\n return this.selectedItemKeys(keys, true, true)\r\n }\r\n selectRowsByIndexes(indexes) {\r\n var items = this._dataController.items();\r\n var keys = [];\r\n if (!Array.isArray(indexes)) {\r\n indexes = Array.prototype.slice.call(arguments, 0)\r\n }\r\n each(indexes, (function() {\r\n var item = items[this];\r\n if (item && \"data\" === item.rowType) {\r\n keys.push(item.key)\r\n }\r\n }));\r\n return this.selectRows(keys)\r\n }\r\n getSelectedRowsData() {\r\n return this._selection.getSelectedItems()\r\n }\r\n loadSelectedItemsWithFilter() {\r\n return this._selection.loadSelectedItemsWithFilter()\r\n }\r\n changeItemSelection(visibleItemIndex, keys, setFocusOnly) {\r\n keys = keys || {};\r\n if (this.isSelectionWithCheckboxes()) {\r\n keys.control = true\r\n }\r\n var loadedItemIndex = visibleItemIndex + this._dataController.getRowIndexOffset() - this._dataController.getRowIndexOffset(true);\r\n return this._selection.changeItemSelection(loadedItemIndex, keys, setFocusOnly)\r\n }\r\n focusedItemIndex(itemIndex) {\r\n if (isDefined(itemIndex)) {\r\n this._selection._focusedItemIndex = itemIndex\r\n } else {\r\n return this._selection._focusedItemIndex\r\n }\r\n return\r\n }\r\n isSelectionWithCheckboxes() {\r\n return \"multiple\" === this.option(SELECTION_MODE) && (\"always\" === this.option(SHOW_CHECKBOXES_MODE) || this._isSelectionWithCheckboxes)\r\n }\r\n startSelectionWithCheckboxes() {\r\n if (\"multiple\" === this.option(SELECTION_MODE) && !this.isSelectionWithCheckboxes()) {\r\n this._isSelectionWithCheckboxes = true;\r\n this._updateSelectColumn();\r\n return true\r\n }\r\n return false\r\n }\r\n stopSelectionWithCheckboxes() {\r\n if (this._isSelectionWithCheckboxes) {\r\n this._isSelectionWithCheckboxes = false;\r\n this._updateSelectColumn();\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\nexport var selectionModule = {\r\n defaultOptions: () => ({\r\n selection: {\r\n mode: \"none\",\r\n showCheckBoxesMode: \"onClick\",\r\n allowSelectAll: true,\r\n selectAllMode: \"allPages\",\r\n maxFilterLengthInRequest: 1500,\r\n deferred: false\r\n },\r\n selectionFilter: [],\r\n selectedRowKeys: []\r\n }),\r\n controllers: {\r\n selection: SelectionController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n init() {\r\n var selectionController = this.getController(\"selection\");\r\n var isDeferredMode = this.option(\"selection.deferred\");\r\n this.callBase.apply(this, arguments);\r\n if (isDeferredMode) {\r\n selectionController._updateCheckboxesState({\r\n isDeferredMode: true,\r\n selectionFilter: this.option(\"selectionFilter\")\r\n })\r\n }\r\n },\r\n _loadDataSource() {\r\n var that = this;\r\n return that.callBase().always(() => {\r\n that.getController(\"selection\").refresh()\r\n })\r\n },\r\n _processDataItem(item, options) {\r\n var selectionController = this.getController(\"selection\");\r\n var hasSelectColumn = selectionController.isSelectColumnVisible();\r\n var isDeferredSelection = options.isDeferredSelection = void 0 === options.isDeferredSelection ? this.option(\"selection.deferred\") : options.isDeferredSelection;\r\n var dataItem = this.callBase.apply(this, arguments);\r\n dataItem.isSelected = selectionController.isRowSelected(isDeferredSelection ? dataItem.data : dataItem.key);\r\n if (hasSelectColumn && dataItem.values) {\r\n for (var i = 0; i < options.visibleColumns.length; i++) {\r\n if (\"select\" === options.visibleColumns[i].command) {\r\n dataItem.values[i] = dataItem.isSelected;\r\n break\r\n }\r\n }\r\n }\r\n return dataItem\r\n },\r\n refresh(options) {\r\n var that = this;\r\n var d = new Deferred;\r\n this.callBase.apply(this, arguments).done(() => {\r\n if (!options || options.selection) {\r\n that.getController(\"selection\").refresh().done(d.resolve).fail(d.reject)\r\n } else {\r\n d.resolve()\r\n }\r\n }).fail(d.reject);\r\n return d.promise()\r\n },\r\n _handleDataChanged(e) {\r\n this.callBase.apply(this, arguments);\r\n if ((!e || \"refresh\" === e.changeType) && !this._repaintChangesOnly) {\r\n this.getController(\"selection\").focusedItemIndex(-1)\r\n }\r\n },\r\n _applyChange(change) {\r\n if (change && \"updateSelection\" === change.changeType) {\r\n change.items.forEach((item, index) => {\r\n var currentItem = this._items[index];\r\n if (currentItem) {\r\n currentItem.isSelected = item.isSelected;\r\n currentItem.values = item.values\r\n }\r\n });\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _endUpdateCore() {\r\n var changes = this._changes;\r\n var isUpdateSelection = changes.length > 1 && changes.every(change => \"updateSelection\" === change.changeType);\r\n if (isUpdateSelection) {\r\n var itemIndexes = changes.map(change => change.itemIndexes || []).reduce((a, b) => a.concat(b));\r\n this._changes = [{\r\n changeType: \"updateSelection\",\r\n itemIndexes: itemIndexes\r\n }]\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n contextMenu: {\r\n _contextMenuPrepared(options) {\r\n var dxEvent = options.event;\r\n if (dxEvent.originalEvent && \"dxhold\" !== dxEvent.originalEvent.type || options.items && options.items.length > 0) {\r\n return\r\n }\r\n processLongTap(this, dxEvent)\r\n }\r\n }\r\n },\r\n views: {\r\n columnHeadersView: {\r\n init() {\r\n this.callBase();\r\n this.getController(\"selection\").selectionChanged.add(this._updateSelectAllValue.bind(this))\r\n },\r\n _updateSelectAllValue() {\r\n var $element = this.element();\r\n var $editor = $element && $element.find(\".\".concat(SELECT_CHECKBOX_CLASS));\r\n if ($element && $editor.length && \"multiple\" === this.option(\"selection.mode\")) {\r\n var selectAllValue = this.getController(\"selection\").isSelectAll();\r\n var hasSelection = false !== selectAllValue;\r\n var isVisible = this.option(\"selection.allowSelectAll\") ? !this.getController(\"data\").isEmpty() : hasSelection;\r\n $editor.dxCheckBox(\"instance\").option({\r\n visible: isVisible,\r\n value: selectAllValue\r\n })\r\n }\r\n },\r\n _handleDataChanged(e) {\r\n this.callBase(e);\r\n if (!e || \"refresh\" === e.changeType || e.repaintChangesOnly && \"update\" === e.changeType) {\r\n this.waitAsyncTemplates().done(() => {\r\n this._updateSelectAllValue()\r\n })\r\n }\r\n },\r\n _renderSelectAllCheckBox($container, column) {\r\n var that = this;\r\n var selectionController = that.getController(\"selection\");\r\n var isEmptyData = that.getController(\"data\").isEmpty();\r\n var groupElement = $(\"
\").appendTo($container).addClass(SELECT_CHECKBOX_CLASS);\r\n that.setAria(\"label\", messageLocalization.format(\"dxDataGrid-ariaSelectAll\"), groupElement);\r\n that.getController(\"editorFactory\").createEditor(groupElement, extend({}, column, {\r\n parentType: \"headerRow\",\r\n dataType: \"boolean\",\r\n value: selectionController.isSelectAll(),\r\n editorOptions: {\r\n visible: !isEmptyData && (that.option(\"selection.allowSelectAll\") || false !== selectionController.isSelectAll())\r\n },\r\n tabIndex: that.option(\"useLegacyKeyboardNavigation\") ? -1 : that.option(\"tabIndex\") || 0,\r\n setValue(value, e) {\r\n var allowSelectAll = that.option(\"selection.allowSelectAll\");\r\n e.component.option(\"visible\", allowSelectAll || false !== e.component.option(\"value\"));\r\n if (!e.event || selectionController.isSelectAll() === value) {\r\n return\r\n }\r\n if (e.value && !allowSelectAll) {\r\n e.component.option(\"value\", false)\r\n } else {\r\n e.value ? selectionController.selectAll() : selectionController.deselectAll()\r\n }\r\n e.event.preventDefault()\r\n }\r\n }));\r\n return groupElement\r\n },\r\n _attachSelectAllCheckBoxClickEvent($element) {\r\n eventsEngine.on($element, clickEventName, this.createAction(e => {\r\n var {\r\n event: event\r\n } = e;\r\n if (!$(event.target).closest(\".\".concat(SELECT_CHECKBOX_CLASS)).length) {\r\n eventsEngine.trigger($(event.currentTarget).children(\".\".concat(SELECT_CHECKBOX_CLASS)), clickEventName)\r\n }\r\n event.preventDefault()\r\n }))\r\n }\r\n },\r\n rowsView: {\r\n renderSelectCheckBoxContainer($container, options) {\r\n if (\"data\" === options.rowType && !options.row.isNewRow) {\r\n $container.addClass(EDITOR_CELL_CLASS);\r\n this._attachCheckBoxClickEvent($container);\r\n this._renderSelectCheckBox($container, options)\r\n } else {\r\n gridCoreUtils.setEmptyText($container)\r\n }\r\n },\r\n _renderSelectCheckBox(container, options) {\r\n var groupElement = $(\"
\").addClass(SELECT_CHECKBOX_CLASS).appendTo(container);\r\n this.setAria(\"label\", messageLocalization.format(\"dxDataGrid-ariaSelectRow\"), groupElement);\r\n this.getController(\"editorFactory\").createEditor(groupElement, extend({}, options.column, {\r\n parentType: \"dataRow\",\r\n dataType: \"boolean\",\r\n lookup: null,\r\n value: options.value,\r\n setValue(value, e) {\r\n var _a;\r\n if (\"keydown\" === (null === (_a = null === e || void 0 === e ? void 0 : e.event) || void 0 === _a ? void 0 : _a.type)) {\r\n eventsEngine.trigger(e.element, clickEventName, e)\r\n }\r\n },\r\n row: options.row\r\n }));\r\n return groupElement\r\n },\r\n _attachCheckBoxClickEvent($element) {\r\n eventsEngine.on($element, clickEventName, this.createAction((function(e) {\r\n var selectionController = this.getController(\"selection\");\r\n var {\r\n event: event\r\n } = e;\r\n var rowIndex = this.getRowIndex($(event.currentTarget).closest(\".\".concat(ROW_CLASS)));\r\n if (rowIndex >= 0) {\r\n selectionController.startSelectionWithCheckboxes();\r\n selectionController.changeItemSelection(rowIndex, {\r\n shift: event.shiftKey\r\n });\r\n if ($(event.target).closest(\".\".concat(SELECT_CHECKBOX_CLASS)).length) {\r\n this.getController(\"data\").updateItems({\r\n changeType: \"updateSelection\",\r\n itemIndexes: [rowIndex]\r\n })\r\n }\r\n }\r\n })))\r\n },\r\n _update(change) {\r\n var that = this;\r\n var tableElements = that.getTableElements();\r\n if (\"updateSelection\" === change.changeType) {\r\n if (tableElements.length > 0) {\r\n each(tableElements, (_, tableElement) => {\r\n each(change.itemIndexes || [], (_, index) => {\r\n var $row;\r\n if (change.items[index]) {\r\n $row = that._getRowElements($(tableElement)).eq(index);\r\n if ($row.length) {\r\n var {\r\n isSelected: isSelected\r\n } = change.items[index];\r\n $row.toggleClass(ROW_SELECTION_CLASS, void 0 === isSelected ? false : isSelected).find(\".\".concat(SELECT_CHECKBOX_CLASS)).dxCheckBox(\"option\", \"value\", isSelected);\r\n that.setAria(\"selected\", isSelected, $row)\r\n }\r\n }\r\n })\r\n });\r\n that._updateCheckboxesClass()\r\n }\r\n } else {\r\n that.callBase(change)\r\n }\r\n },\r\n _createTable() {\r\n var that = this;\r\n var selectionMode = that.option(\"selection.mode\");\r\n var $table = that.callBase.apply(that, arguments);\r\n if (\"none\" !== selectionMode) {\r\n if (\"onLongTap\" === that.option(SHOW_CHECKBOXES_MODE) || !touch) {\r\n eventsEngine.on($table, addNamespace(holdEvent.name, \"dxDataGridRowsView\"), \".\".concat(DATA_ROW_CLASS), that.createAction(e => {\r\n processLongTap(that.component, e.event);\r\n e.event.stopPropagation()\r\n }))\r\n }\r\n eventsEngine.on($table, \"mousedown selectstart\", that.createAction(e => {\r\n var {\r\n event: event\r\n } = e;\r\n if (event.shiftKey) {\r\n event.preventDefault()\r\n }\r\n }))\r\n }\r\n return $table\r\n },\r\n _createRow(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n if (row) {\r\n var {\r\n isSelected: isSelected\r\n } = row;\r\n if (isSelected) {\r\n $row.addClass(ROW_SELECTION_CLASS)\r\n }\r\n var selectionMode = this.option(SELECTION_MODE);\r\n if (\"none\" !== selectionMode) {\r\n this.setAria(\"selected\", isSelected, $row)\r\n }\r\n }\r\n return $row\r\n },\r\n _rowClick(e) {\r\n var dxEvent = e.event;\r\n var isSelectionDisabled = $(dxEvent.target).closest(\".\".concat(SELECTION_DISABLED_CLASS)).length;\r\n if (!this.isClickableElement($(dxEvent.target))) {\r\n if (!isSelectionDisabled && (\"multiple\" !== this.option(SELECTION_MODE) || \"always\" !== this.option(SHOW_CHECKBOXES_MODE))) {\r\n if (this.getController(\"selection\").changeItemSelection(e.rowIndex, {\r\n control: isCommandKeyPressed(dxEvent),\r\n shift: dxEvent.shiftKey\r\n })) {\r\n dxEvent.preventDefault();\r\n e.handled = true\r\n }\r\n }\r\n this.callBase(e)\r\n }\r\n },\r\n isClickableElement($target) {\r\n var isCommandSelect = $target.closest(\".\".concat(COMMAND_SELECT_CLASS)).length;\r\n return !!isCommandSelect\r\n },\r\n _renderCore(change) {\r\n var deferred = this.callBase(change);\r\n this._updateCheckboxesClass();\r\n return deferred\r\n },\r\n _updateCheckboxesClass() {\r\n var tableElements = this.getTableElements();\r\n var selectionController = this.getController(\"selection\");\r\n var isCheckBoxesHidden = selectionController.isSelectColumnVisible() && !selectionController.isSelectionWithCheckboxes();\r\n each(tableElements, (_, tableElement) => {\r\n $(tableElement).toggleClass(CHECKBOXES_HIDDEN_CLASS, isCheckBoxesHidden)\r\n })\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/selection.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n selectionModule\r\n} from \"../../../grids/grid_core/selection/m_selection\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"selection\", selectionModule);\r\n","/**\r\n * DevExtreme (esm/renovation/utils/dom.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function querySelectorInSameDocument(el, selector) {\r\n var _el$getRootNode, _el$getRootNode2;\r\n var root = null !== (_el$getRootNode = null === (_el$getRootNode2 = el.getRootNode) || void 0 === _el$getRootNode2 ? void 0 : _el$getRootNode2.call(el)) && void 0 !== _el$getRootNode ? _el$getRootNode : document;\r\n return root.querySelector(selector)\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/editors/editor.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport Component from \"../common/component\";\r\nimport ValidationEngine from \"../../../ui/validation_engine\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n data\r\n} from \"../../../core/element_data\";\r\nimport Callbacks from \"../../../core/utils/callbacks\";\r\nimport OldEditor from \"../../../ui/editor/editor\";\r\nimport {\r\n querySelectorInSameDocument\r\n} from \"../../utils/dom\";\r\nvar INVALID_MESSAGE_AUTO = \"dx-invalid-message-auto\";\r\nvar VALIDATION_TARGET = \"dx-validation-target\";\r\nexport default class Editor extends Component {\r\n getProps() {\r\n var props = super.getProps();\r\n props.onFocusIn = () => {\r\n var isValidationMessageShownOnFocus = \"auto\" === this.option(\"validationMessageMode\");\r\n if (isValidationMessageShownOnFocus) {\r\n var $validationMessageWrapper = $(querySelectorInSameDocument(this.element(), \".dx-invalid-message.dx-overlay-wrapper\"));\r\n null === $validationMessageWrapper || void 0 === $validationMessageWrapper ? void 0 : $validationMessageWrapper.removeClass(INVALID_MESSAGE_AUTO);\r\n if (this.showValidationMessageTimeout) {\r\n clearTimeout(this.showValidationMessageTimeout)\r\n }\r\n this.showValidationMessageTimeout = setTimeout(() => {\r\n null === $validationMessageWrapper || void 0 === $validationMessageWrapper ? void 0 : $validationMessageWrapper.addClass(INVALID_MESSAGE_AUTO)\r\n }, 150)\r\n }\r\n };\r\n props.saveValueChangeEvent = e => {\r\n this._valueChangeEventInstance = e\r\n };\r\n return props\r\n }\r\n _createElement(element) {\r\n super._createElement(element);\r\n this.showValidationMessageTimeout = void 0;\r\n this.validationRequest = Callbacks();\r\n data(this.$element()[0], VALIDATION_TARGET, this)\r\n }\r\n _render() {\r\n var _this$option;\r\n null === (_this$option = this.option(\"_onMarkupRendered\")) || void 0 === _this$option ? void 0 : _this$option()\r\n }\r\n _initializeComponent() {\r\n super._initializeComponent();\r\n this._valueChangeAction = this._createActionByOption(\"onValueChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n }\r\n _initOptions(options) {\r\n super._initOptions(options);\r\n this.option(ValidationEngine.initValidationOptions(options))\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n validationMessageOffset: {\r\n h: 0,\r\n v: 0\r\n },\r\n validationTooltipOptions: {}\r\n })\r\n }\r\n _bindInnerWidgetOptions(innerWidget, optionsContainer) {\r\n var innerWidgetOptions = extend({}, innerWidget.option());\r\n var syncOptions = () => this._silent(optionsContainer, innerWidgetOptions);\r\n syncOptions();\r\n innerWidget.on(\"optionChanged\", syncOptions)\r\n }\r\n _raiseValidation(value, previousValue) {\r\n var areValuesEmpty = !isDefined(value) && !isDefined(previousValue);\r\n if (value !== previousValue && !areValuesEmpty) {\r\n this.validationRequest.fire({\r\n value: value,\r\n editor: this\r\n })\r\n }\r\n }\r\n _raiseValueChangeAction(value, previousValue) {\r\n var _this$_valueChangeAct;\r\n null === (_this$_valueChangeAct = this._valueChangeAction) || void 0 === _this$_valueChangeAct ? void 0 : _this$_valueChangeAct.call(this, {\r\n element: this.$element(),\r\n previousValue: previousValue,\r\n value: value,\r\n event: this._valueChangeEventInstance\r\n });\r\n this._valueChangeEventInstance = void 0\r\n }\r\n _optionChanged(option) {\r\n var {\r\n name: name,\r\n previousValue: previousValue,\r\n value: value\r\n } = option;\r\n if (name && void 0 !== this._getActionConfigs()[name]) {\r\n this._addAction(name)\r\n }\r\n switch (name) {\r\n case \"value\":\r\n this._raiseValidation(value, previousValue);\r\n this._raiseValueChangeAction(value, previousValue);\r\n break;\r\n case \"onValueChanged\":\r\n this._valueChangeAction = this._createActionByOption(\"onValueChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n break;\r\n case \"isValid\":\r\n case \"validationError\":\r\n case \"validationErrors\":\r\n case \"validationStatus\":\r\n this.option(ValidationEngine.synchronizeValidationOptions(option, this.option()))\r\n }\r\n super._optionChanged(option)\r\n }\r\n reset() {\r\n var {\r\n value: value\r\n } = this._getDefaultOptions();\r\n this.option({\r\n value: value\r\n })\r\n }\r\n _dispose() {\r\n super._dispose();\r\n data(this.element(), VALIDATION_TARGET, null);\r\n if (this.showValidationMessageTimeout) {\r\n clearTimeout(this.showValidationMessageTimeout)\r\n }\r\n }\r\n}\r\nvar prevIsEditor = OldEditor.isEditor;\r\nvar newIsEditor = instance => prevIsEditor(instance) || instance instanceof Editor;\r\nEditor.isEditor = newIsEditor;\r\nOldEditor.isEditor = newIsEditor;\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/editors/check_box.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Editor from \"./editor\";\r\nexport default class CheckBox extends Editor {\r\n _useTemplates() {\r\n return false\r\n }\r\n _isFocused() {\r\n var focusTarget = this.$element()[0];\r\n return focusTarget.classList.contains(\"dx-state-focused\")\r\n }\r\n getSupportedKeyNames() {\r\n return [\"space\"]\r\n }\r\n getProps() {\r\n var props = super.getProps();\r\n if (null !== props.value) {\r\n props.value = Boolean(props.value)\r\n }\r\n return props\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/utils/get_updated_options.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 isPlainObject,\r\n type\r\n} from \"../../../../core/utils/type\";\r\nvar defaultNotDeepCopyArrays = [\"dataSource\", \"selectedRowKeys\"];\r\nvar propsToIgnore = {\r\n integrationOptions: true\r\n};\r\n\r\nfunction getDiffItem(key, value, previousValue) {\r\n return {\r\n path: key,\r\n value: value,\r\n previousValue: previousValue\r\n }\r\n}\r\n\r\nfunction compare(resultPaths, item1, item2, key, fullPropName, notDeepCopyArrays) {\r\n if (propsToIgnore[key]) {\r\n return\r\n }\r\n var type1 = type(item1);\r\n var type2 = type(item2);\r\n if (item1 === item2) {\r\n return\r\n }\r\n if (type1 !== type2) {\r\n resultPaths.push(getDiffItem(key, item2, item1))\r\n } else if (\"object\" === type1) {\r\n if (!isPlainObject(item2)) {\r\n resultPaths.push(getDiffItem(key, item2, item1))\r\n } else {\r\n var diffPaths = objectDiffs(item1, item2, fullPropName, notDeepCopyArrays);\r\n resultPaths.push(...diffPaths.map(item => _extends({}, item, {\r\n path: \"\".concat(key, \".\").concat(item.path)\r\n })))\r\n }\r\n } else if (\"array\" === type1) {\r\n var notDeepCopy = notDeepCopyArrays.some(prop => fullPropName.includes(prop));\r\n if (notDeepCopy && item1 !== item2) {\r\n resultPaths.push(getDiffItem(key, item2, item1))\r\n } else if (item1.length !== item2.length) {\r\n resultPaths.push(getDiffItem(key, item2, item1))\r\n } else {\r\n var _diffPaths = objectDiffs(item1, item2, fullPropName, notDeepCopyArrays);\r\n [].push.apply(resultPaths, _diffPaths.map(item => _extends({}, item, {\r\n path: \"\".concat(key).concat(item.path)\r\n })))\r\n }\r\n } else {\r\n resultPaths.push(getDiffItem(key, item2, item1))\r\n }\r\n}\r\nvar objectDiffsFiltered = propsEnumerator => (oldProps, props, fullPropName, notDeepCopyArrays) => {\r\n var resultPaths = [];\r\n var processItem = !Array.isArray(oldProps) ? propName => {\r\n compare(resultPaths, oldProps[propName], props[propName], propName, \"\".concat(fullPropName, \".\").concat(propName), notDeepCopyArrays)\r\n } : propName => {\r\n compare(resultPaths, oldProps[propName], props[propName], \"[\".concat(propName, \"]\"), \"\".concat(fullPropName, \".\").concat(propName), notDeepCopyArrays)\r\n };\r\n propsEnumerator(oldProps).forEach(processItem);\r\n Object.keys(props).filter(propName => !Object.prototype.hasOwnProperty.call(oldProps, propName) && oldProps[propName] !== props[propName]).forEach(propName => {\r\n resultPaths.push({\r\n path: propName,\r\n value: props[propName],\r\n previousValue: oldProps[propName]\r\n })\r\n });\r\n return resultPaths\r\n};\r\nvar objectDiffs = objectDiffsFiltered(oldProps => Object.keys(oldProps));\r\nvar reactProps = {\r\n key: true,\r\n ref: true,\r\n children: true,\r\n style: true\r\n};\r\nvar objectDiffsWithoutReactProps = objectDiffsFiltered(prop => Object.keys(prop).filter(p => !reactProps[p]));\r\nexport function getUpdatedOptions(oldProps, props) {\r\n var notDeepCopyArrays = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : defaultNotDeepCopyArrays;\r\n return objectDiffsWithoutReactProps(oldProps, props, \"\", notDeepCopyArrays)\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/dom_component_wrapper.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"valueChange\"],\r\n _excluded2 = [\"componentProps\", \"componentType\", \"templateNames\"];\r\nimport {\r\n createVNode\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n renderTemplate,\r\n hasTemplate\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n ConfigContext\r\n} from \"../../common/config_context\";\r\nimport {\r\n getUpdatedOptions\r\n} from \"./utils/get_updated_options\";\r\nvar normalizeProps = props => Object.keys(props).reduce((accumulator, key) => {\r\n if (void 0 !== props[key]) {\r\n accumulator[key] = props[key]\r\n }\r\n return accumulator\r\n}, {});\r\nexport var viewFunction = _ref => {\r\n var {\r\n props: {\r\n componentProps: {\r\n className: className\r\n }\r\n },\r\n restAttributes: restAttributes,\r\n widgetRef: widgetRef\r\n } = _ref;\r\n return normalizeProps(createVNode(1, \"div\", className, null, 1, _extends({}, restAttributes), null, widgetRef))\r\n};\r\nexport var DomComponentWrapperProps = {};\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class DomComponentWrapper extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.widgetRef = infernoCreateRef();\r\n this.getInstance = this.getInstance.bind(this);\r\n this.setupWidget = this.setupWidget.bind(this);\r\n this.updateWidget = this.updateWidget.bind(this)\r\n }\r\n get config() {\r\n if (this.context[ConfigContext.id]) {\r\n return this.context[ConfigContext.id]\r\n }\r\n return ConfigContext.defaultValue\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.setupWidget, []), new InfernoEffect(this.updateWidget, [this.props.componentProps, this.config, this.props.templateNames])]\r\n }\r\n updateEffects() {\r\n var _this$_effects$;\r\n null === (_this$_effects$ = this._effects[1]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.props.componentProps, this.config, this.props.templateNames])\r\n }\r\n setupWidget() {\r\n var componentInstance = new this.props.componentType(this.widgetRef.current, this.properties);\r\n this.instance = componentInstance;\r\n return () => {\r\n componentInstance.dispose();\r\n this.instance = null\r\n }\r\n }\r\n updateWidget() {\r\n var instance = this.getInstance();\r\n if (!instance) {\r\n return\r\n }\r\n var updatedOptions = getUpdatedOptions(this.prevProps || {}, this.properties);\r\n if (updatedOptions.length) {\r\n instance.beginUpdate();\r\n updatedOptions.forEach(_ref2 => {\r\n var {\r\n path: path,\r\n value: value\r\n } = _ref2;\r\n instance.option(path, value)\r\n });\r\n instance.endUpdate()\r\n }\r\n this.prevProps = this.properties\r\n }\r\n get properties() {\r\n var _this$config;\r\n var normalizedProps = normalizeProps(this.props.componentProps);\r\n var {\r\n valueChange: valueChange\r\n } = normalizedProps, restProps = _objectWithoutPropertiesLoose(normalizedProps, _excluded);\r\n var properties = _extends({\r\n rtlEnabled: !!(null !== (_this$config = this.config) && void 0 !== _this$config && _this$config.rtlEnabled),\r\n isRenovated: true\r\n }, restProps);\r\n if (valueChange) {\r\n properties.onValueChanged = _ref3 => {\r\n var {\r\n value: value\r\n } = _ref3;\r\n return valueChange(value)\r\n }\r\n }\r\n var templates = this.props.templateNames;\r\n templates.forEach(name => {\r\n if (hasTemplate(name, properties, this)) {\r\n properties[name] = (item, index, container) => {\r\n renderTemplate(this.props.componentProps[name], {\r\n item: item,\r\n index: index,\r\n container: container\r\n }, this)\r\n }\r\n }\r\n });\r\n return properties\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded2);\r\n return restProps\r\n }\r\n getInstance() {\r\n return this.instance\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n widgetRef: this.widgetRef,\r\n config: this.config,\r\n properties: this.properties,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nDomComponentWrapper.defaultProps = DomComponentWrapperProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/overlays/validation_message.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"accessKey\", \"activeStateEnabled\", \"boundary\", \"className\", \"contentId\", \"disabled\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"mode\", \"offset\", \"onClick\", \"onKeyDown\", \"positionSide\", \"rtlEnabled\", \"tabIndex\", \"target\", \"validationErrors\", \"visible\", \"visualContainer\", \"width\"];\r\nimport {\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport LegacyValidationMessage from \"../../../ui/validation_message\";\r\nimport {\r\n DomComponentWrapper\r\n} from \"../common/dom_component_wrapper\";\r\nimport {\r\n BaseWidgetProps\r\n} from \"../common/base_props\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n componentProps: componentProps,\r\n restAttributes: restAttributes\r\n } = _ref;\r\n return normalizeProps(createComponentVNode(2, DomComponentWrapper, _extends({\r\n componentType: LegacyValidationMessage,\r\n componentProps: componentProps,\r\n templateNames: []\r\n }, restAttributes)))\r\n};\r\nexport var ValidationMessageProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(BaseWidgetProps), Object.getOwnPropertyDescriptors({\r\n mode: \"auto\",\r\n positionSide: \"top\",\r\n offset: Object.freeze({\r\n h: 0,\r\n v: 0\r\n }),\r\n isReactComponentWrapper: true\r\n})));\r\nexport class ValidationMessage extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get componentProps() {\r\n return this.props\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n componentProps: this.componentProps,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nValidationMessage.defaultProps = ValidationMessageProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/common/editor.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"accessKey\", \"activeStateEnabled\", \"aria\", \"children\", \"className\", \"classes\", \"defaultValue\", \"disabled\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"inputAttr\", \"isValid\", \"name\", \"onClick\", \"onFocusIn\", \"onKeyDown\", \"readOnly\", \"rtlEnabled\", \"tabIndex\", \"validationError\", \"validationErrors\", \"validationMessageMode\", \"validationMessagePosition\", \"validationStatus\", \"value\", \"valueChange\", \"visible\", \"width\"];\r\nimport {\r\n createFragment,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport Guid from \"../../../../core/guid\";\r\nimport {\r\n Widget,\r\n WidgetProps\r\n} from \"../../common/widget\";\r\nimport {\r\n BaseWidgetProps\r\n} from \"../../common/base_props\";\r\nimport {\r\n combineClasses\r\n} from \"../../../utils/combine_classes\";\r\nimport {\r\n ValidationMessage\r\n} from \"../../overlays/validation_message\";\r\nvar getCssClasses = model => {\r\n var {\r\n classes: classes,\r\n isValid: isValid,\r\n readOnly: readOnly\r\n } = model;\r\n var classesMap = {\r\n \"dx-state-readonly\": !!readOnly,\r\n \"dx-invalid\": !isValid,\r\n [\"\".concat(classes)]: !!classes\r\n };\r\n return combineClasses(classesMap)\r\n};\r\nexport var viewFunction = viewModel => {\r\n var {\r\n aria: aria,\r\n cssClasses: classes,\r\n isValidationMessageVisible: isValidationMessageVisible,\r\n onFocusIn: onFocusIn,\r\n props: {\r\n accessKey: accessKey,\r\n activeStateEnabled: activeStateEnabled,\r\n children: children,\r\n className: className,\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n height: height,\r\n hint: hint,\r\n hoverStateEnabled: hoverStateEnabled,\r\n onClick: onClick,\r\n onKeyDown: onKeyDown,\r\n rtlEnabled: rtlEnabled,\r\n tabIndex: tabIndex,\r\n validationMessageMode: validationMessageMode,\r\n validationMessagePosition: validationMessagePosition,\r\n visible: visible,\r\n width: width\r\n },\r\n restAttributes: restAttributes,\r\n rootElementRef: rootElementRef,\r\n validationErrors: validationErrors,\r\n validationMessageGuid: validationMessageGuid,\r\n validationMessageTarget: validationMessageTarget,\r\n widgetRef: widgetRef\r\n } = viewModel;\r\n return normalizeProps(createComponentVNode(2, Widget, _extends({\r\n rootElementRef: rootElementRef,\r\n aria: aria,\r\n classes: classes,\r\n activeStateEnabled: activeStateEnabled,\r\n focusStateEnabled: focusStateEnabled,\r\n hoverStateEnabled: hoverStateEnabled,\r\n accessKey: accessKey,\r\n className: className,\r\n rtlEnabled: rtlEnabled,\r\n hint: hint,\r\n disabled: disabled,\r\n height: height,\r\n width: width,\r\n onFocusIn: onFocusIn,\r\n onClick: onClick,\r\n onKeyDown: onKeyDown,\r\n tabIndex: tabIndex,\r\n visible: visible\r\n }, restAttributes, {\r\n children: createFragment([children, isValidationMessageVisible && createComponentVNode(2, ValidationMessage, {\r\n validationErrors: validationErrors,\r\n mode: validationMessageMode,\r\n positionSide: validationMessagePosition,\r\n rtlEnabled: rtlEnabled,\r\n target: validationMessageTarget,\r\n boundary: validationMessageTarget,\r\n visualContainer: validationMessageTarget,\r\n contentId: validationMessageGuid\r\n })], 0)\r\n }), null, widgetRef))\r\n};\r\nexport var EditorProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(BaseWidgetProps), Object.getOwnPropertyDescriptors({\r\n readOnly: false,\r\n name: \"\",\r\n validationError: null,\r\n validationErrors: null,\r\n validationMessageMode: \"auto\",\r\n validationMessagePosition: \"bottom\",\r\n validationStatus: \"valid\",\r\n isValid: true,\r\n inputAttr: Object.freeze({}),\r\n defaultValue: null,\r\n valueChange: () => {}\r\n})));\r\nexport var EditorPropsType = {\r\n get readOnly() {\r\n return EditorProps.readOnly\r\n },\r\n get name() {\r\n return EditorProps.name\r\n },\r\n get validationError() {\r\n return EditorProps.validationError\r\n },\r\n get validationErrors() {\r\n return EditorProps.validationErrors\r\n },\r\n get validationMessageMode() {\r\n return EditorProps.validationMessageMode\r\n },\r\n get validationMessagePosition() {\r\n return EditorProps.validationMessagePosition\r\n },\r\n get validationStatus() {\r\n return EditorProps.validationStatus\r\n },\r\n get isValid() {\r\n return EditorProps.isValid\r\n },\r\n get inputAttr() {\r\n return EditorProps.inputAttr\r\n },\r\n get defaultValue() {\r\n return EditorProps.defaultValue\r\n },\r\n get valueChange() {\r\n return EditorProps.valueChange\r\n },\r\n get className() {\r\n return EditorProps.className\r\n },\r\n get activeStateEnabled() {\r\n return EditorProps.activeStateEnabled\r\n },\r\n get disabled() {\r\n return EditorProps.disabled\r\n },\r\n get focusStateEnabled() {\r\n return EditorProps.focusStateEnabled\r\n },\r\n get hoverStateEnabled() {\r\n return EditorProps.hoverStateEnabled\r\n },\r\n get tabIndex() {\r\n return EditorProps.tabIndex\r\n },\r\n get visible() {\r\n return EditorProps.visible\r\n },\r\n get aria() {\r\n return WidgetProps.aria\r\n },\r\n get classes() {\r\n return WidgetProps.classes\r\n }\r\n};\r\nimport {\r\n convertRulesToOptions\r\n} from \"../../../../core/options/utils\";\r\nimport {\r\n createReRenderEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class Editor extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this.widgetRef = infernoCreateRef();\r\n this.rootElementRef = infernoCreateRef();\r\n this.__getterCache = {};\r\n this.state = {\r\n validationMessageGuid: \"dx-\".concat(new Guid),\r\n isValidationMessageVisible: false,\r\n value: void 0 !== this.props.value ? this.props.value : this.props.defaultValue\r\n };\r\n this.updateValidationMessageVisibility = this.updateValidationMessageVisibility.bind(this);\r\n this.focus = this.focus.bind(this);\r\n this.blur = this.blur.bind(this);\r\n this.onFocusIn = this.onFocusIn.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.updateValidationMessageVisibility, [this.props.isValid, this.props.validationStatus, this.props.validationError, this.props.validationErrors]), createReRenderEffect()]\r\n }\r\n updateEffects() {\r\n var _this$_effects$;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.props.isValid, this.props.validationStatus, this.props.validationError, this.props.validationErrors])\r\n }\r\n updateValidationMessageVisibility() {\r\n this.setState(__state_argument => ({\r\n isValidationMessageVisible: this.shouldShowValidationMessage\r\n }))\r\n }\r\n onFocusIn(event) {\r\n var {\r\n onFocusIn: onFocusIn\r\n } = this.props;\r\n null === onFocusIn || void 0 === onFocusIn ? void 0 : onFocusIn(event)\r\n }\r\n get cssClasses() {\r\n return \"\".concat(getCssClasses(_extends({}, this.props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n })))\r\n }\r\n get shouldShowValidationMessage() {\r\n var _this$validationError;\r\n var {\r\n isValid: isValid,\r\n validationStatus: validationStatus\r\n } = this.props;\r\n var validationErrors = null !== (_this$validationError = this.validationErrors) && void 0 !== _this$validationError ? _this$validationError : [];\r\n var isEditorValid = isValid && \"invalid\" !== validationStatus;\r\n return !isEditorValid && validationErrors.length > 0\r\n }\r\n get aria() {\r\n var {\r\n isValid: isValid,\r\n readOnly: readOnly\r\n } = this.props;\r\n var result = {\r\n readonly: readOnly ? \"true\" : \"false\",\r\n invalid: !isValid ? \"true\" : \"false\"\r\n };\r\n if (this.shouldShowValidationMessage) {\r\n result.describedBy = this.state.validationMessageGuid\r\n }\r\n return _extends({}, result, this.props.aria)\r\n }\r\n get validationErrors() {\r\n if (void 0 !== this.__getterCache.validationErrors) {\r\n return this.__getterCache.validationErrors\r\n }\r\n return this.__getterCache.validationErrors = (() => {\r\n var {\r\n validationError: validationError,\r\n validationErrors: validationErrors\r\n } = this.props;\r\n var allValidationErrors = validationErrors && [...validationErrors];\r\n if (!allValidationErrors && validationError) {\r\n allValidationErrors = [_extends({}, validationError)]\r\n }\r\n return allValidationErrors\r\n })()\r\n }\r\n get validationMessageTarget() {\r\n var _this$rootElementRef;\r\n return null === (_this$rootElementRef = this.rootElementRef) || void 0 === _this$rootElementRef ? void 0 : _this$rootElementRef.current\r\n }\r\n get restAttributes() {\r\n var _this$props$value = _extends({}, this.props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }),\r\n restProps = _objectWithoutPropertiesLoose(_this$props$value, _excluded);\r\n return restProps\r\n }\r\n focus() {\r\n this.widgetRef.current.focus()\r\n }\r\n blur() {\r\n this.widgetRef.current.blur()\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n super.componentWillUpdate();\r\n if (this.props.validationError !== nextProps.validationError || this.props.validationErrors !== nextProps.validationErrors) {\r\n this.__getterCache.validationErrors = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }),\r\n validationMessageGuid: this.state.validationMessageGuid,\r\n isValidationMessageVisible: this.state.isValidationMessageVisible,\r\n rootElementRef: this.rootElementRef,\r\n widgetRef: this.widgetRef,\r\n onFocusIn: this.onFocusIn,\r\n cssClasses: this.cssClasses,\r\n shouldShowValidationMessage: this.shouldShowValidationMessage,\r\n aria: this.aria,\r\n validationErrors: this.validationErrors,\r\n validationMessageTarget: this.validationMessageTarget,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\n\r\nfunction __processTwoWayProps(defaultProps) {\r\n var twoWayProps = [\"value\"];\r\n return Object.keys(defaultProps).reduce((props, propName) => {\r\n var propValue = defaultProps[propName];\r\n var defaultPropName = twoWayProps.some(p => p === propName) ? \"default\" + propName.charAt(0).toUpperCase() + propName.slice(1) : propName;\r\n props[defaultPropName] = propValue;\r\n return props\r\n }, {})\r\n}\r\nEditor.defaultProps = EditorPropsType;\r\nvar __defaultOptionRules = [];\r\nexport function defaultOptions(rule) {\r\n __defaultOptionRules.push(rule);\r\n Editor.defaultProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(Editor.defaultProps), Object.getOwnPropertyDescriptors(__processTwoWayProps(convertRulesToOptions(__defaultOptionRules)))))\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/utils/get_computed_style.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nexport default function getElementComputedStyle(el) {\r\n var _window$getComputedSt;\r\n var window = getWindow();\r\n return el ? null === (_window$getComputedSt = window.getComputedStyle) || void 0 === _window$getComputedSt ? void 0 : _window$getComputedSt.call(window, el) : null\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/check_box/utils.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isMaterial,\r\n isCompact,\r\n current\r\n} from \"../../../../ui/themes\";\r\nvar defaultIconSizes = [\r\n [22, 16],\r\n [18, 16]\r\n];\r\nvar defaultFontSizes = [\r\n [\r\n [12, 8],\r\n [20, 18]\r\n ],\r\n [\r\n [16, 10],\r\n [16, 14]\r\n ]\r\n];\r\n\r\nfunction getThemeType() {\r\n var theme = current();\r\n return {\r\n isMaterialTheme: isMaterial(theme),\r\n isCompactTheme: isCompact(theme)\r\n }\r\n}\r\n\r\nfunction getDefaultIconSize() {\r\n var {\r\n isCompactTheme: isCompactTheme,\r\n isMaterialTheme: isMaterialTheme\r\n } = getThemeType();\r\n return defaultIconSizes[+isMaterialTheme][+isCompactTheme]\r\n}\r\n\r\nfunction getDefaultFontSize(isChecked) {\r\n var {\r\n isCompactTheme: isCompactTheme,\r\n isMaterialTheme: isMaterialTheme\r\n } = getThemeType();\r\n return defaultFontSizes[+isChecked][+isMaterialTheme][+isCompactTheme]\r\n}\r\n\r\nfunction getFontSizeByIconSize(iconSize, isChecked) {\r\n var defaultFontSize = getDefaultFontSize(isChecked);\r\n var defaultIconSize = getDefaultIconSize();\r\n var fontToIconSizeRatio = defaultFontSize / defaultIconSize;\r\n return Math.ceil(fontToIconSizeRatio * iconSize)\r\n}\r\nexport {\r\n getDefaultFontSize,\r\n getDefaultIconSize,\r\n getFontSizeByIconSize\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/check_box/check_box_icon.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 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 _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"isChecked\", \"size\"];\r\nimport {\r\n createVNode\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n normalizeStyles\r\n} from \"@devextreme/runtime/inferno\";\r\nimport getElementComputedStyle from \"../../../utils/get_computed_style\";\r\nimport {\r\n hasWindow\r\n} from \"../../../../core/utils/window\";\r\nimport {\r\n normalizeStyleProp\r\n} from \"../../../../core/utils/style\";\r\nimport {\r\n isNumeric as isNumber\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n getFontSizeByIconSize\r\n} from \"./utils\";\r\nexport var viewFunction = viewModel => {\r\n var {\r\n cssStyles: cssStyles,\r\n elementRef: elementRef\r\n } = viewModel;\r\n return createVNode(1, \"span\", \"dx-checkbox-icon\", null, 1, {\r\n style: normalizeStyles(cssStyles)\r\n }, null, elementRef)\r\n};\r\nexport var CheckBoxIconProps = {\r\n isChecked: false\r\n};\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class CheckBoxIcon extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.elementRef = infernoCreateRef();\r\n this.__getterCache = {};\r\n this.updateFontSize = this.updateFontSize.bind(this);\r\n this.setIconFontSize = this.setIconFontSize.bind(this);\r\n this.getIconSize = this.getIconSize.bind(this);\r\n this.getComputedIconSize = this.getComputedIconSize.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.updateFontSize, [this.props.isChecked, this.props.size])]\r\n }\r\n updateEffects() {\r\n var _this$_effects$;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.props.isChecked, this.props.size])\r\n }\r\n updateFontSize() {\r\n var {\r\n isChecked: isChecked,\r\n size: size\r\n } = this.props;\r\n if (hasWindow() && size) {\r\n var newIconSize = this.getIconSize(size);\r\n var newFontSize = getFontSizeByIconSize(newIconSize, isChecked);\r\n this.setIconFontSize(newFontSize)\r\n }\r\n }\r\n setIconFontSize(fontSize) {\r\n var element = this.elementRef.current;\r\n element.style.fontSize = \"\".concat(fontSize, \"px\")\r\n }\r\n getIconSize(size) {\r\n if (isNumber(size)) {\r\n return size\r\n }\r\n if (size.endsWith(\"px\")) {\r\n return parseInt(size, 10)\r\n }\r\n return this.getComputedIconSize()\r\n }\r\n getComputedIconSize() {\r\n var element = this.elementRef.current;\r\n var iconComputedStyle = getElementComputedStyle(element);\r\n var computedIconSize = parseInt(null === iconComputedStyle || void 0 === iconComputedStyle ? void 0 : iconComputedStyle.width, 10);\r\n return computedIconSize\r\n }\r\n get cssStyles() {\r\n if (void 0 !== this.__getterCache.cssStyles) {\r\n return this.__getterCache.cssStyles\r\n }\r\n return this.__getterCache.cssStyles = (() => {\r\n var {\r\n size: size\r\n } = this.props;\r\n var width = normalizeStyleProp(\"width\", size);\r\n var height = normalizeStyleProp(\"height\", size);\r\n return {\r\n height: height,\r\n width: width\r\n }\r\n })()\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n super.componentWillUpdate();\r\n if (this.props.size !== nextProps.size) {\r\n this.__getterCache.cssStyles = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n elementRef: this.elementRef,\r\n setIconFontSize: this.setIconFontSize,\r\n getIconSize: this.getIconSize,\r\n getComputedIconSize: this.getComputedIconSize,\r\n cssStyles: this.cssStyles,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nCheckBoxIcon.defaultProps = CheckBoxIconProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/check_box/check_box.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"accessKey\", \"activeStateEnabled\", \"aria\", \"className\", \"defaultValue\", \"disabled\", \"enableThreeStateBehavior\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"iconSize\", \"inputAttr\", \"isValid\", \"name\", \"onClick\", \"onFocusIn\", \"onKeyDown\", \"readOnly\", \"rtlEnabled\", \"saveValueChangeEvent\", \"tabIndex\", \"text\", \"validationError\", \"validationErrors\", \"validationMessageMode\", \"validationMessagePosition\", \"validationStatus\", \"value\", \"valueChange\", \"visible\", \"width\"];\r\nimport {\r\n createVNode,\r\n createFragment,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport devices from \"../../../../core/devices\";\r\nimport {\r\n Editor,\r\n EditorProps\r\n} from \"../common/editor\";\r\nimport {\r\n combineClasses\r\n} from \"../../../utils/combine_classes\";\r\nimport {\r\n CheckBoxIcon\r\n} from \"./check_box_icon\";\r\nimport {\r\n WidgetProps\r\n} from \"../../common/widget\";\r\nvar getCssClasses = model => {\r\n var {\r\n text: text,\r\n value: value\r\n } = model;\r\n var checked = value;\r\n var indeterminate = null === checked;\r\n var classesMap = {\r\n \"dx-checkbox\": true,\r\n \"dx-checkbox-checked\": true === checked,\r\n \"dx-checkbox-has-text\": !!text,\r\n \"dx-checkbox-indeterminate\": indeterminate\r\n };\r\n return combineClasses(classesMap)\r\n};\r\nexport var viewFunction = viewModel => {\r\n var {\r\n aria: aria,\r\n cssClasses: classes,\r\n editorRef: editorRef,\r\n keyDown: onKeyDown,\r\n onWidgetClick: onClick,\r\n props: {\r\n accessKey: accessKey,\r\n activeStateEnabled: activeStateEnabled,\r\n className: className,\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n height: height,\r\n hint: hint,\r\n hoverStateEnabled: hoverStateEnabled,\r\n iconSize: iconSize,\r\n isValid: isValid,\r\n name: name,\r\n onFocusIn: onFocusIn,\r\n readOnly: readOnly,\r\n rtlEnabled: rtlEnabled,\r\n tabIndex: tabIndex,\r\n text: text,\r\n validationError: validationError,\r\n validationErrors: validationErrors,\r\n validationMessageMode: validationMessageMode,\r\n validationMessagePosition: validationMessagePosition,\r\n validationStatus: validationStatus,\r\n value: value,\r\n visible: visible,\r\n width: width\r\n },\r\n restAttributes: restAttributes\r\n } = viewModel;\r\n return normalizeProps(createComponentVNode(2, Editor, _extends({\r\n aria: aria,\r\n classes: classes,\r\n onClick: onClick,\r\n onKeyDown: onKeyDown,\r\n accessKey: accessKey,\r\n activeStateEnabled: activeStateEnabled,\r\n focusStateEnabled: focusStateEnabled,\r\n hoverStateEnabled: hoverStateEnabled,\r\n className: className,\r\n disabled: disabled,\r\n readOnly: readOnly,\r\n hint: hint,\r\n height: height,\r\n width: width,\r\n rtlEnabled: rtlEnabled,\r\n tabIndex: tabIndex,\r\n visible: visible,\r\n validationError: validationError,\r\n validationErrors: validationErrors,\r\n validationMessageMode: validationMessageMode,\r\n validationMessagePosition: validationMessagePosition,\r\n validationStatus: validationStatus,\r\n isValid: isValid,\r\n onFocusIn: onFocusIn\r\n }, restAttributes, {\r\n children: createFragment([normalizeProps(createVNode(64, \"input\", null, null, 1, _extends({\r\n type: \"hidden\",\r\n value: \"\".concat(value)\r\n }, name && {\r\n name: name\r\n }))), createVNode(1, \"div\", \"dx-checkbox-container\", [createComponentVNode(2, CheckBoxIcon, {\r\n size: iconSize,\r\n isChecked: true === value\r\n }), text && createVNode(1, \"span\", \"dx-checkbox-text\", text, 0)], 0)], 4)\r\n }), null, editorRef))\r\n};\r\nexport var CheckBoxProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(EditorProps), Object.getOwnPropertyDescriptors({\r\n text: \"\",\r\n enableThreeStateBehavior: false,\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true,\r\n get focusStateEnabled() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n defaultValue: false,\r\n valueChange: () => {}\r\n})));\r\nexport var CheckBoxPropsType = {\r\n get text() {\r\n return CheckBoxProps.text\r\n },\r\n get enableThreeStateBehavior() {\r\n return CheckBoxProps.enableThreeStateBehavior\r\n },\r\n get activeStateEnabled() {\r\n return CheckBoxProps.activeStateEnabled\r\n },\r\n get hoverStateEnabled() {\r\n return CheckBoxProps.hoverStateEnabled\r\n },\r\n get focusStateEnabled() {\r\n return CheckBoxProps.focusStateEnabled\r\n },\r\n get defaultValue() {\r\n return CheckBoxProps.defaultValue\r\n },\r\n get valueChange() {\r\n return CheckBoxProps.valueChange\r\n },\r\n get readOnly() {\r\n return CheckBoxProps.readOnly\r\n },\r\n get name() {\r\n return CheckBoxProps.name\r\n },\r\n get validationError() {\r\n return CheckBoxProps.validationError\r\n },\r\n get validationErrors() {\r\n return CheckBoxProps.validationErrors\r\n },\r\n get validationMessageMode() {\r\n return CheckBoxProps.validationMessageMode\r\n },\r\n get validationMessagePosition() {\r\n return CheckBoxProps.validationMessagePosition\r\n },\r\n get validationStatus() {\r\n return CheckBoxProps.validationStatus\r\n },\r\n get isValid() {\r\n return CheckBoxProps.isValid\r\n },\r\n get inputAttr() {\r\n return CheckBoxProps.inputAttr\r\n },\r\n get className() {\r\n return CheckBoxProps.className\r\n },\r\n get disabled() {\r\n return CheckBoxProps.disabled\r\n },\r\n get tabIndex() {\r\n return CheckBoxProps.tabIndex\r\n },\r\n get visible() {\r\n return CheckBoxProps.visible\r\n },\r\n get aria() {\r\n return WidgetProps.aria\r\n }\r\n};\r\nimport {\r\n convertRulesToOptions\r\n} from \"../../../../core/options/utils\";\r\nimport {\r\n createReRenderEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class CheckBox extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this.editorRef = infernoCreateRef();\r\n this.state = {\r\n value: void 0 !== this.props.value ? this.props.value : this.props.defaultValue\r\n };\r\n this.focus = this.focus.bind(this);\r\n this.blur = this.blur.bind(this);\r\n this.onWidgetClick = this.onWidgetClick.bind(this);\r\n this.keyDown = this.keyDown.bind(this)\r\n }\r\n createEffects() {\r\n return [createReRenderEffect()]\r\n }\r\n onWidgetClick(event) {\r\n var {\r\n enableThreeStateBehavior: enableThreeStateBehavior,\r\n readOnly: readOnly,\r\n saveValueChangeEvent: saveValueChangeEvent\r\n } = this.props;\r\n if (!readOnly) {\r\n null === saveValueChangeEvent || void 0 === saveValueChangeEvent ? void 0 : saveValueChangeEvent(event);\r\n if (enableThreeStateBehavior) {\r\n var __newValue;\r\n this.setState(__state_argument => {\r\n __newValue = null === (void 0 !== this.props.value ? this.props.value : __state_argument.value) || (!(void 0 !== this.props.value ? this.props.value : __state_argument.value) ? null : false);\r\n return {\r\n value: __newValue\r\n }\r\n });\r\n this.props.valueChange(__newValue)\r\n } else {\r\n var _newValue;\r\n this.setState(__state_argument => {\r\n var _ref;\r\n _newValue = !(null !== (_ref = void 0 !== this.props.value ? this.props.value : __state_argument.value) && void 0 !== _ref ? _ref : false);\r\n return {\r\n value: _newValue\r\n }\r\n });\r\n this.props.valueChange(_newValue)\r\n }\r\n }\r\n }\r\n keyDown(e) {\r\n var {\r\n onKeyDown: onKeyDown\r\n } = this.props;\r\n var {\r\n keyName: keyName,\r\n originalEvent: originalEvent,\r\n which: which\r\n } = e;\r\n var result = null === onKeyDown || void 0 === onKeyDown ? void 0 : onKeyDown(e);\r\n if (null !== result && void 0 !== result && result.cancel) {\r\n return result\r\n }\r\n if (\"space\" === keyName || \"space\" === which) {\r\n originalEvent.preventDefault();\r\n this.onWidgetClick(originalEvent)\r\n }\r\n return\r\n }\r\n get cssClasses() {\r\n return getCssClasses(_extends({}, this.props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }))\r\n }\r\n get aria() {\r\n var checked = true === (void 0 !== this.props.value ? this.props.value : this.state.value);\r\n var indeterminate = null === (void 0 !== this.props.value ? this.props.value : this.state.value);\r\n var result = {\r\n role: \"checkbox\",\r\n checked: indeterminate ? \"mixed\" : \"\".concat(checked)\r\n };\r\n return _extends({}, result, this.props.aria)\r\n }\r\n get restAttributes() {\r\n var _this$props$value = _extends({}, this.props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }),\r\n restProps = _objectWithoutPropertiesLoose(_this$props$value, _excluded);\r\n return restProps\r\n }\r\n focus() {\r\n this.editorRef.current.focus()\r\n }\r\n blur() {\r\n this.editorRef.current.blur()\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }),\r\n editorRef: this.editorRef,\r\n onWidgetClick: this.onWidgetClick,\r\n keyDown: this.keyDown,\r\n cssClasses: this.cssClasses,\r\n aria: this.aria,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\n\r\nfunction __processTwoWayProps(defaultProps) {\r\n var twoWayProps = [\"value\"];\r\n return Object.keys(defaultProps).reduce((props, propName) => {\r\n var propValue = defaultProps[propName];\r\n var defaultPropName = twoWayProps.some(p => p === propName) ? \"default\" + propName.charAt(0).toUpperCase() + propName.slice(1) : propName;\r\n props[defaultPropName] = propValue;\r\n return props\r\n }, {})\r\n}\r\nCheckBox.defaultProps = CheckBoxPropsType;\r\nvar __defaultOptionRules = [];\r\nexport function defaultOptions(rule) {\r\n __defaultOptionRules.push(rule);\r\n CheckBox.defaultProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(CheckBox.defaultProps), Object.getOwnPropertyDescriptors(__processTwoWayProps(convertRulesToOptions(__defaultOptionRules)))))\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/check_box/check_box.j.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../../core/component_registrator\";\r\nimport BaseComponent from \"../../../component_wrapper/editors/check_box\";\r\nimport {\r\n CheckBox as CheckBoxComponent,\r\n defaultOptions\r\n} from \"./check_box\";\r\nexport default class CheckBox extends BaseComponent {\r\n getProps() {\r\n var props = super.getProps();\r\n props.onKeyDown = this._wrapKeyDownHandler(props.onKeyDown);\r\n return props\r\n }\r\n focus() {\r\n var _this$viewRef;\r\n return null === (_this$viewRef = this.viewRef) || void 0 === _this$viewRef ? void 0 : _this$viewRef.focus(...arguments)\r\n }\r\n blur() {\r\n var _this$viewRef2;\r\n return null === (_this$viewRef2 = this.viewRef) || void 0 === _this$viewRef2 ? void 0 : _this$viewRef2.blur(...arguments)\r\n }\r\n _getActionConfigs() {\r\n return {\r\n onFocusIn: {},\r\n onClick: {}\r\n }\r\n }\r\n get _propsInfo() {\r\n return {\r\n twoWay: [\r\n [\"value\", \"defaultValue\", \"valueChange\"]\r\n ],\r\n allowNull: [\"defaultValue\", \"validationError\", \"validationErrors\", \"value\"],\r\n elements: [],\r\n templates: [],\r\n props: [\"text\", \"iconSize\", \"enableThreeStateBehavior\", \"activeStateEnabled\", \"hoverStateEnabled\", \"focusStateEnabled\", \"saveValueChangeEvent\", \"defaultValue\", \"valueChange\", \"readOnly\", \"name\", \"validationError\", \"validationErrors\", \"validationMessageMode\", \"validationMessagePosition\", \"validationStatus\", \"isValid\", \"inputAttr\", \"onFocusIn\", \"className\", \"accessKey\", \"disabled\", \"height\", \"hint\", \"onClick\", \"onKeyDown\", \"rtlEnabled\", \"tabIndex\", \"visible\", \"width\", \"aria\", \"value\"]\r\n }\r\n }\r\n get _viewComponent() {\r\n return CheckBoxComponent\r\n }\r\n}\r\nregisterComponent(\"dxCheckBox\", CheckBox);\r\nCheckBox.defaultOptions = defaultOptions;\r\n","/**\r\n * DevExtreme (esm/ui/check_box.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Widget from \"../renovation/ui/editors/check_box/check_box.j\";\r\nexport default Widget;\r\n","/**\r\n * DevExtreme (esm/ui/tree_view/ui.tree_view.base.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n asyncNoop,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n isDefined,\r\n isPrimitive,\r\n isFunction,\r\n isString\r\n} from \"../../core/utils/type\";\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 getPublicElement\r\n} from \"../../core/element\";\r\nimport CheckBox from \"../check_box\";\r\nimport HierarchicalCollectionWidget from \"../hierarchical_collection/ui.hierarchical_collection_widget\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n name as dblclickEvent\r\n} from \"../../events/double_click\";\r\nimport fx from \"../../animation/fx\";\r\nimport Scrollable from \"../scroll_view/ui.scrollable\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n fromPromise,\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n nativeScrolling\r\n} from \"../../core/utils/support\";\r\nimport {\r\n getRelativeOffset\r\n} from \"../../renovation/ui/scroll_view/utils/get_relative_offset\";\r\nimport {\r\n SCROLLABLE_CONTENT_CLASS,\r\n DIRECTION_HORIZONTAL,\r\n DIRECTION_VERTICAL\r\n} from \"../../renovation/ui/scroll_view/common/consts\";\r\nimport {\r\n getImageContainer\r\n} from \"../../core/utils/icon\";\r\nvar WIDGET_CLASS = \"dx-treeview\";\r\nvar NODE_CLASS = \"\".concat(WIDGET_CLASS, \"-node\");\r\nvar NODE_CONTAINER_CLASS = \"\".concat(NODE_CLASS, \"-container\");\r\nvar NODE_LOAD_INDICATOR_CLASS = \"\".concat(NODE_CLASS, \"-loadindicator\");\r\nvar OPENED_NODE_CONTAINER_CLASS = \"\".concat(NODE_CLASS, \"-container-opened\");\r\nvar IS_LEAF = \"\".concat(NODE_CLASS, \"-is-leaf\");\r\nvar ITEM_CLASS = \"\".concat(WIDGET_CLASS, \"-item\");\r\nvar ITEM_WITH_CHECKBOX_CLASS = \"\".concat(ITEM_CLASS, \"-with-checkbox\");\r\nvar ITEM_WITH_CUSTOM_EXPANDER_ICON_CLASS = \"\".concat(ITEM_CLASS, \"-with-custom-expander-icon\");\r\nvar CUSTOM_EXPANDER_ICON_ITEM_CONTAINER_CLASS = \"\".concat(WIDGET_CLASS, \"-custom-expander-icon-item-container\");\r\nvar ITEM_WITHOUT_CHECKBOX_CLASS = \"\".concat(ITEM_CLASS, \"-without-checkbox\");\r\nvar ITEM_DATA_KEY = \"\".concat(ITEM_CLASS, \"-data\");\r\nvar TOGGLE_ITEM_VISIBILITY_CLASS = \"\".concat(WIDGET_CLASS, \"-toggle-item-visibility\");\r\nvar CUSTOM_COLLAPSE_ICON_CLASS = \"\".concat(WIDGET_CLASS, \"-custom-collapse-icon\");\r\nvar CUSTOM_EXPAND_ICON_CLASS = \"\".concat(WIDGET_CLASS, \"-custom-expand-icon\");\r\nvar LOAD_INDICATOR_CLASS = \"\".concat(WIDGET_CLASS, \"-loadindicator\");\r\nvar LOAD_INDICATOR_WRAPPER_CLASS = \"\".concat(WIDGET_CLASS, \"-loadindicator-wrapper\");\r\nvar TOGGLE_ITEM_VISIBILITY_OPENED_CLASS = \"\".concat(WIDGET_CLASS, \"-toggle-item-visibility-opened\");\r\nvar SELECT_ALL_ITEM_CLASS = \"\".concat(WIDGET_CLASS, \"-select-all-item\");\r\nvar INVISIBLE_STATE_CLASS = \"dx-state-invisible\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar SELECTED_ITEM_CLASS = \"dx-state-selected\";\r\nvar EXPAND_EVENT_NAMESPACE = \"dxTreeView_expand\";\r\nvar DATA_ITEM_ID = \"data-item-id\";\r\nvar TreeViewBase = HierarchicalCollectionWidget.inherit({\r\n _supportedKeys: function(e) {\r\n var click = e => {\r\n var $itemElement = $(this.option(\"focusedElement\"));\r\n if (!$itemElement.length) {\r\n return\r\n }\r\n e.target = $itemElement;\r\n e.currentTarget = $itemElement;\r\n this._itemClickHandler(e, $itemElement.children(\".\" + ITEM_CLASS));\r\n var expandEventName = this._getEventNameByOption(this.option(\"expandEvent\"));\r\n var expandByClick = expandEventName === addNamespace(clickEventName, EXPAND_EVENT_NAMESPACE);\r\n if (expandByClick) {\r\n this._expandEventHandler(e)\r\n }\r\n };\r\n var select = e => {\r\n e.preventDefault();\r\n var $focusedElement = $(this.option(\"focusedElement\"));\r\n var checkboxInstance = this._getCheckBoxInstance($focusedElement);\r\n if (!checkboxInstance.option(\"disabled\")) {\r\n var currentState = checkboxInstance.option(\"value\");\r\n this._updateItemSelection(!currentState, $focusedElement.find(\".\" + ITEM_CLASS).get(0), true)\r\n }\r\n };\r\n var toggleExpandedNestedItems = function(state, e) {\r\n if (!this.option(\"expandAllEnabled\")) {\r\n return\r\n }\r\n e.preventDefault();\r\n var $rootElement = $(this.option(\"focusedElement\"));\r\n if (!$rootElement.length) {\r\n return\r\n }\r\n var rootItem = this._getItemData($rootElement.find(\".\".concat(ITEM_CLASS)));\r\n this._toggleExpandedNestedItems([rootItem], state)\r\n };\r\n return extend(this.callBase(), {\r\n enter: this._showCheckboxes() ? select : click,\r\n space: this._showCheckboxes() ? select : click,\r\n asterisk: toggleExpandedNestedItems.bind(this, true),\r\n minus: toggleExpandedNestedItems.bind(this, false)\r\n })\r\n },\r\n _toggleExpandedNestedItems: function(items, state) {\r\n if (!items) {\r\n return\r\n }\r\n for (var i = 0, len = items.length; i < len; i++) {\r\n var item = items[i];\r\n var node = this._dataAdapter.getNodeByItem(item);\r\n this._toggleExpandedState(node, state);\r\n this._toggleExpandedNestedItems(item.items, state)\r\n }\r\n },\r\n _getNodeElement: function(node, cache) {\r\n var key = this._encodeString(node.internalFields.key);\r\n if (cache) {\r\n if (!cache.$nodeByKey) {\r\n cache.$nodeByKey = {};\r\n this.$element().find(\".\".concat(NODE_CLASS)).each((function() {\r\n var $node = $(this);\r\n var key = $node.attr(DATA_ITEM_ID);\r\n cache.$nodeByKey[key] = $node\r\n }))\r\n }\r\n return cache.$nodeByKey[key] || $()\r\n }\r\n var element = this.$element().get(0).querySelector(\"[\".concat(DATA_ITEM_ID, '=\"').concat(key, '\"]'));\r\n return $(element)\r\n },\r\n _activeStateUnit: \".\" + ITEM_CLASS,\r\n _widgetClass: function() {\r\n return WIDGET_CLASS\r\n },\r\n _getDefaultOptions: function() {\r\n var defaultOptions = extend(this.callBase(), {\r\n animationEnabled: true,\r\n dataStructure: \"tree\",\r\n deferRendering: true,\r\n expandAllEnabled: false,\r\n hasItemsExpr: \"hasItems\",\r\n selectNodesRecursive: true,\r\n expandNodesRecursive: true,\r\n showCheckBoxesMode: \"none\",\r\n expandIcon: null,\r\n collapseIcon: null,\r\n selectAllText: messageLocalization.format(\"dxList-selectAll\"),\r\n onItemSelectionChanged: null,\r\n onItemExpanded: null,\r\n onItemCollapsed: null,\r\n scrollDirection: \"vertical\",\r\n useNativeScrolling: true,\r\n virtualModeEnabled: false,\r\n rootValue: 0,\r\n focusStateEnabled: false,\r\n selectionMode: \"multiple\",\r\n expandEvent: \"dblclick\",\r\n selectByClick: false,\r\n createChildren: null,\r\n onSelectAllValueChanged: null\r\n });\r\n return extend(true, defaultOptions, {\r\n integrationOptions: {\r\n useDeferUpdateForTemplates: false\r\n }\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return !nativeScrolling\r\n },\r\n options: {\r\n useNativeScrolling: false\r\n }\r\n }])\r\n },\r\n _initSelectedItems: noop,\r\n _syncSelectionOptions: asyncNoop,\r\n _fireSelectionChanged: function() {\r\n var selectionChangePromise = this._selectionChangePromise;\r\n when(selectionChangePromise).done(function() {\r\n this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })()\r\n }.bind(this))\r\n },\r\n _createSelectAllValueChangedAction: function() {\r\n this._selectAllValueChangedAction = this._createActionByOption(\"onSelectAllValueChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _fireSelectAllValueChanged: function(value) {\r\n this._selectAllValueChangedAction({\r\n value: value\r\n })\r\n },\r\n _checkBoxModeChange: function(value, previousValue) {\r\n if (\"none\" === previousValue || \"none\" === value) {\r\n return\r\n }\r\n var selectAllExists = this._$selectAllItem && this._$selectAllItem.length;\r\n switch (value) {\r\n case \"selectAll\":\r\n if (!selectAllExists) {\r\n this._createSelectAllValueChangedAction();\r\n this._renderSelectAllItem()\r\n }\r\n break;\r\n case \"normal\":\r\n if (selectAllExists) {\r\n this._$selectAllItem.remove();\r\n delete this._$selectAllItem\r\n }\r\n }\r\n },\r\n _removeSelection: function() {\r\n var that = this;\r\n each(this._dataAdapter.getFullData(), (function(_, node) {\r\n if (!that._hasChildren(node)) {\r\n return\r\n }\r\n that._dataAdapter.toggleSelection(node.internalFields.key, false, true)\r\n }))\r\n },\r\n _optionChanged: function(args) {\r\n var {\r\n name: name,\r\n value: value,\r\n previousValue: previousValue\r\n } = args;\r\n switch (name) {\r\n case \"selectAllText\":\r\n if (this._$selectAllItem) {\r\n this._$selectAllItem.dxCheckBox(\"instance\").option(\"text\", value)\r\n }\r\n break;\r\n case \"showCheckBoxesMode\":\r\n this._checkBoxModeChange(value, previousValue);\r\n this._invalidate();\r\n break;\r\n case \"scrollDirection\":\r\n this.getScrollable().option(\"direction\", value);\r\n break;\r\n case \"useNativeScrolling\":\r\n this.getScrollable().option(\"useNative\", value);\r\n break;\r\n case \"items\":\r\n delete this._$selectAllItem;\r\n this.callBase(args);\r\n break;\r\n case \"dataSource\":\r\n this.callBase(args);\r\n this._initDataAdapter();\r\n this._filter = {};\r\n break;\r\n case \"hasItemsExpr\":\r\n this._initAccessors();\r\n this.repaint();\r\n break;\r\n case \"expandEvent\":\r\n this._initExpandEvent();\r\n break;\r\n case \"deferRendering\":\r\n case \"dataStructure\":\r\n case \"rootValue\":\r\n case \"createChildren\":\r\n case \"expandNodesRecursive\":\r\n case \"onItemSelectionChanged\":\r\n case \"onItemExpanded\":\r\n case \"onItemCollapsed\":\r\n case \"expandAllEnabled\":\r\n case \"animationEnabled\":\r\n case \"virtualModeEnabled\":\r\n case \"selectByClick\":\r\n break;\r\n case \"selectionMode\":\r\n this._initDataAdapter();\r\n this.callBase(args);\r\n break;\r\n case \"onSelectAllValueChanged\":\r\n this._createSelectAllValueChangedAction();\r\n break;\r\n case \"selectNodesRecursive\":\r\n this._dataAdapter.setOption(\"recursiveSelection\", args.value);\r\n this.repaint();\r\n break;\r\n case \"expandIcon\":\r\n case \"collapseIcon\":\r\n this.repaint();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _initDataSource: function() {\r\n if (this._useCustomChildrenLoader()) {\r\n this._loadChildrenByCustomLoader(null).done(function(newItems) {\r\n if (newItems && newItems.length) {\r\n this.option(\"items\", newItems)\r\n }\r\n }.bind(this))\r\n } else {\r\n this.callBase();\r\n this._isVirtualMode() && this._initVirtualMode()\r\n }\r\n },\r\n _initVirtualMode: function() {\r\n var filter = this._filter;\r\n if (!filter.custom) {\r\n filter.custom = this._dataSource.filter()\r\n }\r\n if (!filter.internal) {\r\n filter.internal = [this.option(\"parentIdExpr\"), this.option(\"rootValue\")]\r\n }\r\n },\r\n _useCustomChildrenLoader: function() {\r\n return isFunction(this.option(\"createChildren\")) && this._isDataStructurePlain()\r\n },\r\n _loadChildrenByCustomLoader: function(parentNode) {\r\n var invocationResult = this.option(\"createChildren\").call(this, parentNode);\r\n if (Array.isArray(invocationResult)) {\r\n return (new Deferred).resolve(invocationResult).promise()\r\n }\r\n if (invocationResult && isFunction(invocationResult.then)) {\r\n return fromPromise(invocationResult)\r\n }\r\n return (new Deferred).resolve([]).promise()\r\n },\r\n _combineFilter: function() {\r\n if (!this._filter.custom || !this._filter.custom.length) {\r\n return this._filter.internal\r\n }\r\n return [this._filter.custom, this._filter.internal]\r\n },\r\n _dataSourceLoadErrorHandler: function() {\r\n this._renderEmptyMessage()\r\n },\r\n _init: function() {\r\n this._filter = {};\r\n this.callBase();\r\n this._initStoreChangeHandlers()\r\n },\r\n _dataSourceChangedHandler: function(newItems) {\r\n var items = this.option(\"items\");\r\n if (this._initialized && this._isVirtualMode() && items.length) {\r\n return\r\n }\r\n this.option(\"items\", newItems)\r\n },\r\n _removeTreeViewLoadIndicator: function() {\r\n if (!this._treeViewLoadIndicator) {\r\n return\r\n }\r\n this._treeViewLoadIndicator.remove();\r\n this._treeViewLoadIndicator = null\r\n },\r\n _createTreeViewLoadIndicator: function() {\r\n this._treeViewLoadIndicator = $(\"
\").addClass(LOAD_INDICATOR_CLASS);\r\n this._createComponent(this._treeViewLoadIndicator, LoadIndicator, {});\r\n return this._treeViewLoadIndicator\r\n },\r\n _dataSourceLoadingChangedHandler: function(isLoading) {\r\n var resultFilter;\r\n if (this._isVirtualMode()) {\r\n resultFilter = this._combineFilter();\r\n this._dataSource.filter(resultFilter)\r\n }\r\n if (isLoading && !this._dataSource.isLoaded()) {\r\n this.option(\"items\", []);\r\n var $wrapper = $(\"
\").addClass(LOAD_INDICATOR_WRAPPER_CLASS);\r\n this._createTreeViewLoadIndicator().appendTo($wrapper);\r\n this.itemsContainer().append($wrapper);\r\n if (this._isVirtualMode() && this._dataSource.filter() !== resultFilter) {\r\n this._dataSource.filter([])\r\n }\r\n } else {\r\n this._removeTreeViewLoadIndicator()\r\n }\r\n },\r\n _initStoreChangeHandlers: function() {\r\n if (\"plain\" !== this.option(\"dataStructure\")) {\r\n return\r\n }\r\n this._dataSource && this._dataSource.store().on(\"inserted\", newItem => {\r\n this.option().items = this.option(\"items\").concat(newItem);\r\n this._dataAdapter.addItem(newItem);\r\n if (!this._dataAdapter.isFiltered(newItem)) {\r\n return\r\n }\r\n this._updateLevel(this._parentIdGetter(newItem))\r\n }).on(\"removed\", removedKey => {\r\n var node = this._dataAdapter.getNodeByKey(removedKey);\r\n if (isDefined(node)) {\r\n this.option(\"items\")[this._dataAdapter.getIndexByKey(node.internalFields.key)] = 0;\r\n this._markChildrenItemsToRemove(node);\r\n this._removeItems();\r\n this._dataAdapter.removeItem(removedKey);\r\n this._updateLevel(this._parentIdGetter(node))\r\n }\r\n })\r\n },\r\n _markChildrenItemsToRemove: function(node) {\r\n var keys = node.internalFields.childrenKeys;\r\n each(keys, (_, key) => {\r\n this.option(\"items\")[this._dataAdapter.getIndexByKey(key)] = 0;\r\n this._markChildrenItemsToRemove(this._dataAdapter.getNodeByKey(key))\r\n })\r\n },\r\n _removeItems: function() {\r\n var items = extend(true, [], this.option(\"items\"));\r\n var counter = 0;\r\n each(items, (index, item) => {\r\n if (!item) {\r\n this.option(\"items\").splice(index - counter, 1);\r\n counter++\r\n }\r\n })\r\n },\r\n _updateLevel: function(parentId) {\r\n var $container = this._getContainerByParentKey(parentId);\r\n this._renderItems($container, this._dataAdapter.getChildrenNodes(parentId))\r\n },\r\n _getOldContainer: function($itemElement) {\r\n if ($itemElement.length) {\r\n return $itemElement.children(\".\".concat(NODE_CONTAINER_CLASS))\r\n }\r\n var scrollable = this.getScrollable();\r\n if (scrollable) {\r\n return $(scrollable.content()).children()\r\n }\r\n return $()\r\n },\r\n _getContainerByParentKey: function(parentId) {\r\n var node = this._dataAdapter.getNodeByKey(parentId);\r\n var $itemElement = node ? this._getNodeElement(node) : [];\r\n this._getOldContainer($itemElement).remove();\r\n var $container = this._renderNodeContainer($itemElement);\r\n if (this._isRootLevel(parentId)) {\r\n var scrollable = this.getScrollable();\r\n if (!scrollable) {\r\n this._renderScrollableContainer()\r\n }\r\n $(scrollable.content()).append($container)\r\n }\r\n return $container\r\n },\r\n _isRootLevel: function(parentId) {\r\n return parentId === this.option(\"rootValue\")\r\n },\r\n _getAccessors: function() {\r\n var accessors = this.callBase();\r\n accessors.push(\"hasItems\");\r\n return accessors\r\n },\r\n _getDataAdapterOptions: function() {\r\n var _this$_dataSource, _this$_dataSource$loa, _this$_dataSource$loa2;\r\n return {\r\n rootValue: this.option(\"rootValue\"),\r\n multipleSelection: !this._isSingleSelection(),\r\n recursiveSelection: this._isRecursiveSelection(),\r\n recursiveExpansion: this.option(\"expandNodesRecursive\"),\r\n selectionRequired: this.option(\"selectionRequired\"),\r\n dataType: this.option(\"dataStructure\"),\r\n sort: this._dataSource && this._dataSource.sort(),\r\n langParams: null === (_this$_dataSource = this._dataSource) || void 0 === _this$_dataSource ? void 0 : null === (_this$_dataSource$loa = _this$_dataSource.loadOptions) || void 0 === _this$_dataSource$loa ? void 0 : null === (_this$_dataSource$loa2 = _this$_dataSource$loa.call(_this$_dataSource)) || void 0 === _this$_dataSource$loa2 ? void 0 : _this$_dataSource$loa2.langParams\r\n }\r\n },\r\n _initMarkup: function() {\r\n this._renderScrollableContainer();\r\n this._renderEmptyMessage(this._dataAdapter.getRootNodes());\r\n this.callBase();\r\n this.setAria(\"role\", \"tree\")\r\n },\r\n _renderContentImpl: function() {\r\n var $nodeContainer = this._renderNodeContainer();\r\n $(this.getScrollable().content()).append($nodeContainer);\r\n if (!this.option(\"items\") || !this.option(\"items\").length) {\r\n return\r\n }\r\n this._renderItems($nodeContainer, this._dataAdapter.getRootNodes());\r\n this._initExpandEvent();\r\n if (this._selectAllEnabled()) {\r\n this._createSelectAllValueChangedAction();\r\n this._renderSelectAllItem($nodeContainer)\r\n }\r\n },\r\n _isVirtualMode: function() {\r\n return this.option(\"virtualModeEnabled\") && this._isDataStructurePlain() && !!this.option(\"dataSource\")\r\n },\r\n _isDataStructurePlain: function() {\r\n return \"plain\" === this.option(\"dataStructure\")\r\n },\r\n _fireContentReadyAction: function() {\r\n var dataSource = this.getDataSource();\r\n var skipContentReadyAction = dataSource && !dataSource.isLoaded() || this._skipContentReadyAndItemExpanded;\r\n var scrollable = this.getScrollable();\r\n if (scrollable && hasWindow()) {\r\n scrollable.update()\r\n }\r\n if (!skipContentReadyAction) {\r\n this.callBase()\r\n }\r\n if (scrollable && hasWindow()) {\r\n scrollable.update()\r\n }\r\n },\r\n _renderScrollableContainer: function() {\r\n this._scrollable = this._createComponent($(\"
\").appendTo(this.$element()), Scrollable, {\r\n useNative: this.option(\"useNativeScrolling\"),\r\n direction: this.option(\"scrollDirection\"),\r\n useKeyboard: false\r\n })\r\n },\r\n _renderNodeContainer: function($parent) {\r\n var $container = $(\"