{"version":3,"file":"static/js/6503.7b3617c9.chunk.js","mappings":"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","sources":["../node_modules/date-fns/addSeconds.js","../node_modules/date-fns/isBefore.js","../node_modules/devextreme/esm/core/templates/bindable_template.js","../node_modules/devextreme/esm/core/utils/position.js","../node_modules/devextreme/esm/animation/translator.js","../node_modules/devextreme/esm/animation/easing.js","../node_modules/devextreme/esm/animation/position.js","../node_modules/devextreme/esm/animation/fx.js","../node_modules/devextreme/esm/__internal/ui/selection/m_selection.strategy.js","../node_modules/devextreme/esm/__internal/ui/selection/m_selection.strategy.deferred.js","../node_modules/devextreme/esm/core/utils/array_compare.js","../node_modules/devextreme/esm/core/utils/selection_filter.js","../node_modules/devextreme/esm/__internal/ui/selection/m_selection.strategy.standard.js","../node_modules/devextreme/esm/__internal/ui/selection/m_selection.js","../node_modules/devextreme/esm/events/hold.js","../node_modules/devextreme/esm/events/contextmenu.js","../node_modules/devextreme/esm/core/utils/version.js","../node_modules/devextreme/esm/events/core/emitter.feedback.js","../node_modules/devextreme/esm/ui/widget/ui.widget.js","../node_modules/devextreme/esm/__internal/ui/collection/m_item.js","../node_modules/devextreme/esm/__internal/ui/collection/m_collection_widget.base.js","../node_modules/devextreme/esm/__internal/ui/collection/m_collection_widget.edit.strategy.js","../node_modules/devextreme/esm/__internal/ui/collection/m_collection_widget.edit.strategy.plain.js","../node_modules/devextreme/esm/__internal/ui/collection/m_collection_widget.edit.js","../node_modules/devextreme/esm/__internal/ui/collection/m_collection_widget.async.js","../node_modules/devextreme/esm/ui/collection/ui.collection_widget.edit.js","../node_modules/devextreme/esm/__internal/ui/widget.js","../node_modules/devextreme/esm/__internal/ui/collection/edit.js","../node_modules/devextreme/esm/__internal/ui/collection/async.js","../node_modules/devextreme/esm/__internal/ui/toolbar/m_constants.js","../node_modules/devextreme/esm/__internal/ui/toolbar/m_toolbar.base.js","../node_modules/devextreme/esm/__internal/ui/m_validation_engine.js","../node_modules/devextreme/esm/ui/validation_engine.js","../node_modules/inferno/dist/index.esm.js","../node_modules/@devextreme/runtime/esm/inferno/effect_host.js","../node_modules/@devextreme/runtime/esm/inferno/base_component.js","../node_modules/@devextreme/runtime/esm/inferno/create_context.js","../node_modules/@devextreme/runtime/esm/inferno/effect.js","../node_modules/@devextreme/runtime/esm/inferno/portal.js","../node_modules/@devextreme/runtime/esm/inferno/re_render_effect.js","../node_modules/@devextreme/runtime/esm/inferno/mocked/shared.js","../node_modules/@devextreme/runtime/esm/inferno/mocked/hydrate.js","../node_modules/inferno-create-element/dist/index.esm.js","../node_modules/@devextreme/runtime/esm/inferno/render_template.js","../node_modules/@devextreme/runtime/esm/inferno/normalize_styles.js","../node_modules/devextreme/esm/core/inferno_renderer.js","../node_modules/devextreme/esm/renovation/utils/shallow_equals.js","../node_modules/devextreme/esm/renovation/component_wrapper/common/template_wrapper.js","../node_modules/devextreme/esm/renovation/component_wrapper/utils/update_props_immutable.js","../node_modules/devextreme/esm/renovation/component_wrapper/common/component.js","../node_modules/devextreme/esm/core/utils/icon.js","../node_modules/devextreme/esm/renovation/component_wrapper/button.js","../node_modules/devextreme/esm/renovation/utils/combine_classes.js","../node_modules/devextreme/esm/renovation/ui/common/icon.js","../node_modules/devextreme/esm/ui/widget/utils.ink_ripple.js","../node_modules/devextreme/esm/renovation/ui/common/ink_ripple.js","../node_modules/devextreme/esm/events/gesture/emitter.gesture.scroll.js","../node_modules/devextreme/esm/renovation/utils/subscribe_to_event.js","../node_modules/devextreme/esm/renovation/ui/common/base_props.js","../node_modules/devextreme/esm/renovation/common/config_context.js","../node_modules/devextreme/esm/renovation/common/config_provider.js","../node_modules/devextreme/esm/renovation/ui/common/widget.js","../node_modules/devextreme/esm/renovation/utils/resolve_rtl.js","../node_modules/devextreme/esm/renovation/ui/button.js","../node_modules/devextreme/esm/renovation/ui/button.j.js","../node_modules/devextreme/esm/ui/button.js","../node_modules/devextreme/esm/mobile/hide_callback.js","../node_modules/devextreme/esm/ui/widget/swatch_container.js","../node_modules/devextreme/esm/__internal/ui/overlay/m_overlay_position_controller.js","../node_modules/devextreme/esm/__internal/ui/overlay/m_z_index.js","../node_modules/devextreme/esm/__internal/ui/overlay/m_overlay.js","../node_modules/devextreme/esm/ui/overlay/ui.overlay.js","../node_modules/devextreme/esm/__internal/ui/m_resizable.js","../node_modules/devextreme/esm/ui/resizable.js","../node_modules/devextreme/esm/__internal/ui/popup/m_popup_drag.js","../node_modules/devextreme/esm/__internal/ui/popup/m_popup_overflow_manager.js","../node_modules/devextreme/esm/__internal/ui/popup/m_popup_position_controller.js","../node_modules/devextreme/esm/__internal/ui/popup/m_popup.js","../node_modules/devextreme/esm/ui/popup/ui.popup.js","../node_modules/devextreme/esm/__internal/ui/m_dialog.js","../node_modules/devextreme/esm/__internal/scheduler/r1/timezone_calculator/const.js","../node_modules/devextreme/esm/__internal/core/utils/date.js","../node_modules/devextreme/esm/__internal/scheduler/r1/timezone_calculator/calculator.js","../node_modules/devextreme/esm/__internal/scheduler/m_date_adapter.js","../node_modules/devextreme/esm/__internal/scheduler/timezones/m_utils_timezones_data.js","../node_modules/devextreme/esm/__internal/scheduler/timezones/timezones_data.js","../node_modules/devextreme/esm/__internal/scheduler/m_utils_time_zone.js","../node_modules/devextreme/esm/__internal/scheduler/r1/timezone_calculator/utils.js","../node_modules/devextreme/esm/__internal/scheduler/r1/utils/themes.js","../node_modules/devextreme/esm/__internal/scheduler/m_classes.js","../node_modules/devextreme/esm/__internal/scheduler/m_constants.js","../node_modules/devextreme/esm/__internal/scheduler/r1/const.js","../node_modules/devextreme/esm/__internal/scheduler/r1/utils/base.js","../node_modules/devextreme/esm/__internal/scheduler/r1/utils/month.js","../node_modules/devextreme/esm/__internal/scheduler/r1/utils/render.js","../node_modules/devextreme/esm/__internal/scheduler/r1/utils/week.js","../node_modules/devextreme/esm/ui/scheduler/utils.timeZone.js","../node_modules/devextreme/esm/__internal/scheduler/m_expression_utils.js","../node_modules/devextreme/esm/__internal/scheduler/appointments/data_provider/m_utils.js","../../../src/weekday.ts","../../../src/helpers.ts","../../../src/dateutil.ts","../../../src/iterresult.ts","../node_modules/tslib/tslib.es6.mjs","../../../src/callbackiterresult.ts","../../../../src/nlp/i18n.ts","../../../../src/nlp/totext.ts","../../../../src/nlp/parsetext.ts","../../../src/types.ts","../../../../src/nlp/index.ts","../../../src/datetime.ts","../../../src/parseoptions.ts","../../../src/parsestring.ts","../../../src/datewithzone.ts","../../../src/optionstostring.ts","../../../src/cache.ts","../../../src/masks.ts","../../../../src/iterinfo/yearinfo.ts","../../../../src/iterinfo/index.ts","../../../../src/iterinfo/monthinfo.ts","../../../../src/iterinfo/easter.ts","../../../../src/iter/poslist.ts","../../../../src/iter/index.ts","../../../src/rrule.ts","../../../src/rrulestr.ts","../../../src/rruleset.ts","../../../src/iterset.ts","../node_modules/devextreme/esm/__internal/scheduler/m_recurrence.js","../node_modules/devextreme/esm/__internal/scheduler/m_appointment_adapter.js","../node_modules/devextreme/esm/__internal/scheduler/r1/utils/exclude_from_recurrence.js","../node_modules/devextreme/esm/__internal/scheduler/r1/utils/format_weekday.js","../node_modules/devextreme/esm/__internal/scheduler/r1/utils/index.js","../node_modules/devextreme/esm/__internal/scheduler/r1/utils/agenda.js","../node_modules/devextreme/esm/__internal/scheduler/r1/utils/day.js","../node_modules/devextreme/esm/__internal/scheduler/r1/utils/work_week.js","../node_modules/devextreme/esm/__internal/scheduler/r1/utils/timeline_week.js","../node_modules/devextreme/esm/__internal/scheduler/r1/utils/timeline_month.js","../node_modules/devextreme/esm/__internal/scheduler/r1/utils/views.js","../node_modules/devextreme/esm/__internal/ui/editor/m_data_expression.js","../node_modules/devextreme/esm/ui/editor/ui.data_expression.js","../node_modules/devextreme/esm/__internal/ui/m_validation_message.js","../node_modules/devextreme/esm/ui/validation_message.js","../node_modules/devextreme/esm/__internal/ui/editor/m_editor.js","../node_modules/devextreme/esm/ui/editor/editor.js","../node_modules/devextreme/esm/__internal/ui/editor.js","../node_modules/devextreme/esm/__internal/ui/radio_group/m_radio_collection.js","../node_modules/devextreme/esm/__internal/ui/radio_group/m_radio_group.js","../node_modules/devextreme/esm/__internal/ui/m_button_group.js","../node_modules/devextreme/esm/ui/button_group.js","../node_modules/devextreme/esm/__internal/ui/m_load_indicator.js","../node_modules/devextreme/esm/ui/load_indicator.js","../node_modules/devextreme/esm/__internal/ui/text_box/texteditor_button_collection/m_button.js","../node_modules/devextreme/esm/__internal/ui/text_box/m_text_editor.clear.js","../node_modules/devextreme/esm/__internal/ui/text_box/m_text_editor.label.js","../node_modules/devextreme/esm/__internal/ui/text_box/texteditor_button_collection/m_custom.js","../node_modules/devextreme/esm/__internal/ui/text_box/texteditor_button_collection/m_index.js","../node_modules/devextreme/esm/__internal/ui/text_box/m_text_editor.base.js","../node_modules/devextreme/esm/__internal/ui/text_box/m_text_editor.mask.rule.js","../node_modules/devextreme/esm/__internal/ui/text_box/m_text_editor.mask.strategy.js","../node_modules/devextreme/esm/__internal/ui/text_box/m_utils.caret.js","../node_modules/devextreme/esm/__internal/ui/text_box/m_text_editor.mask.js","../node_modules/devextreme/esm/__internal/ui/text_box/m_text_editor.js","../node_modules/devextreme/esm/__internal/ui/text_box/m_text_box.js","../node_modules/devextreme/esm/ui/text_box.js","../node_modules/devextreme/esm/__internal/ui/drop_down_editor/m_drop_down_button.js","../node_modules/devextreme/esm/__internal/ui/drop_down_editor/m_utils.js","../node_modules/devextreme/esm/__internal/ui/drop_down_editor/m_drop_down_editor.js","../node_modules/devextreme/esm/events/swipe.js","../node_modules/devextreme/esm/events/gesture/swipeable.js","../node_modules/devextreme/esm/__internal/ui/calendar/m_calendar.selection.strategy.js","../node_modules/devextreme/esm/__internal/ui/calendar/m_calendar.multiple.selection.strategy.js","../node_modules/devextreme/esm/__internal/ui/calendar/m_calendar.navigator.js","../node_modules/devextreme/esm/__internal/ui/calendar/m_calendar.range.selection.strategy.js","../node_modules/devextreme/esm/__internal/ui/calendar/m_calendar.single.selection.strategy.js","../node_modules/devextreme/esm/__internal/ui/calendar/m_calendar.base_view.js","../node_modules/devextreme/esm/__internal/ui/calendar/m_calendar.views.js","../node_modules/devextreme/esm/__internal/ui/calendar/m_calendar.js","../node_modules/devextreme/esm/ui/calendar.js","../node_modules/devextreme/esm/__internal/ui/date_box/m_date_box.strategy.js","../node_modules/devextreme/esm/__internal/ui/date_box/m_date_box.strategy.calendar.js","../node_modules/devextreme/esm/__internal/ui/m_box.js","../node_modules/devextreme/esm/ui/box.js","../node_modules/devextreme/esm/__internal/ui/date_box/m_date_utils.js","../node_modules/devextreme/esm/__internal/events/dblclick.js","../node_modules/devextreme/esm/events/double_click.js","../node_modules/devextreme/esm/ui/text_box/ui.text_editor.js","../node_modules/devextreme/esm/__internal/ui/number_box/m_number_box.spin.js","../node_modules/devextreme/esm/__internal/ui/number_box/m_number_box.spins.js","../node_modules/devextreme/esm/__internal/ui/number_box/m_number_box.base.js","../node_modules/devextreme/esm/__internal/ui/number_box/m_utils.js","../node_modules/devextreme/esm/__internal/ui/number_box/m_number_box.caret.js","../node_modules/devextreme/esm/__internal/ui/number_box/m_number_box.mask.js","../node_modules/devextreme/esm/__internal/ui/number_box/m_number_box.js","../node_modules/devextreme/esm/ui/number_box.js","../node_modules/devextreme/esm/renovation/component_wrapper/editors/editor.js","../node_modules/devextreme/esm/renovation/utils/dom.js","../node_modules/devextreme/esm/renovation/component_wrapper/editors/check_box.js","../node_modules/devextreme/esm/renovation/ui/common/utils/get_updated_options.js","../node_modules/devextreme/esm/renovation/ui/common/dom_component_wrapper.js","../node_modules/devextreme/esm/renovation/ui/overlays/validation_message.js","../node_modules/devextreme/esm/renovation/ui/editors/common/editor.js","../node_modules/devextreme/esm/renovation/ui/editors/check_box/utils.js","../node_modules/devextreme/esm/renovation/ui/editors/check_box/check_box_icon.js","../node_modules/devextreme/esm/renovation/utils/get_computed_style.js","../node_modules/devextreme/esm/renovation/ui/editors/check_box/check_box.js","../node_modules/devextreme/esm/renovation/ui/editors/check_box/check_box.j.js","../node_modules/devextreme/esm/ui/check_box.js","../node_modules/devextreme/esm/__internal/ui/radio_group/m_radio_button.js","../node_modules/devextreme/esm/ui/radio_group/radio_button.js","../node_modules/devextreme/esm/__internal/ui/list/m_list.edit.decorator.js","../node_modules/devextreme/esm/__internal/ui/list/m_list.edit.decorator_registry.js","../node_modules/devextreme/esm/__internal/ui/list/m_list.edit.decorator.selection.js","../node_modules/devextreme/esm/ui/widget/ui.search_box_mixin.js","../node_modules/devextreme/esm/core/utils/stubs.js","../node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_element_style.js","../node_modules/devextreme/esm/renovation/utils/type_conversion.js","../node_modules/devextreme/esm/__internal/ui/collection/m_collection_widget.live_update.js","../node_modules/devextreme/esm/ui/collection/ui.collection_widget.live_update.js","../node_modules/devextreme/esm/__internal/ui/m_load_panel.js","../node_modules/devextreme/esm/ui/load_panel.js","../node_modules/devextreme/esm/__internal/ui/scroll_view/m_scrollbar.js","../node_modules/devextreme/esm/__internal/ui/scroll_view/m_scrollable.native.js","../node_modules/devextreme/esm/__internal/ui/scroll_view/m_scroll_view.native.pull_down.js","../node_modules/devextreme/esm/__internal/ui/scroll_view/m_scroll_view.native.swipe_down.js","../node_modules/devextreme/esm/__internal/ui/scroll_view/m_animator.js","../node_modules/devextreme/esm/__internal/ui/scroll_view/m_scrollable.simulated.js","../node_modules/devextreme/esm/__internal/ui/scroll_view/m_scroll_view.simulated.js","../node_modules/devextreme/esm/renovation/ui/scroll_view/common/consts.js","../node_modules/devextreme/esm/__internal/ui/scroll_view/m_scrollable.device.js","../node_modules/devextreme/esm/__internal/ui/scroll_view/m_scrollable.js","../node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_element_location_internal.js","../node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_relative_offset.js","../node_modules/devextreme/esm/__internal/ui/scroll_view/m_scroll_view.js","../node_modules/devextreme/esm/ui/scroll_view.js","../node_modules/devextreme/esm/__internal/ui/shared/m_grouped_data_converter_mixin.js","../node_modules/devextreme/esm/__internal/ui/list/m_item.js","../node_modules/devextreme/esm/__internal/ui/list/m_list.base.js","../node_modules/devextreme/esm/__internal/ui/list/m_list.edit.provider.js","../node_modules/devextreme/esm/__internal/ui/list/m_list.edit.strategy.grouped.js","../node_modules/devextreme/esm/__internal/ui/list/m_list.edit.js","../node_modules/devextreme/esm/__internal/ui/list/m_list.edit.search.js","../node_modules/devextreme/esm/ui/list_light.js","../node_modules/devextreme/esm/__internal/ui/drop_down_editor/m_drop_down_list.js","../node_modules/devextreme/esm/__internal/ui/m_select_box.js","../node_modules/devextreme/esm/ui/select_box.js","../node_modules/devextreme/esm/__internal/ui/date_box/m_time_view.js","../node_modules/devextreme/esm/__internal/ui/date_box/m_date_box.strategy.calendar_with_time.js","../node_modules/devextreme/esm/renovation/ui/scroll_view/utils/scroll_direction.js","../node_modules/devextreme/esm/__internal/ui/date_box/m_date_view_roller.js","../node_modules/devextreme/esm/renovation/ui/scroll_view/utils/convert_location.js","../node_modules/devextreme/esm/__internal/ui/date_box/m_date_view.js","../node_modules/devextreme/esm/__internal/ui/date_box/m_date_box.strategy.date_view.js","../node_modules/devextreme/esm/__internal/ui/date_box/m_date_box.strategy.list.js","../node_modules/devextreme/esm/__internal/ui/date_box/m_date_box.strategy.native.js","../node_modules/devextreme/esm/__internal/ui/date_box/m_date_box.base.js","../node_modules/devextreme/esm/__internal/ui/date_box/m_date_box.mask.parts.js","../node_modules/devextreme/esm/__internal/ui/date_box/m_date_box.mask.js","../node_modules/devextreme/esm/__internal/ui/date_box/m_date_box.js","../node_modules/devextreme/esm/ui/date_box.js","../node_modules/devextreme/esm/__internal/ui/m_responsive_box.js","../node_modules/devextreme/esm/ui/responsive_box.js","../node_modules/devextreme/esm/__internal/ui/form/components/m_button_item.js","../node_modules/devextreme/esm/__internal/ui/form/components/m_empty_item.js","../node_modules/devextreme/esm/__internal/ui/validation/m_default_adapter.js","../node_modules/devextreme/esm/__internal/ui/m_validator.js","../node_modules/devextreme/esm/ui/validator.js","../node_modules/devextreme/esm/__internal/ui/form/constants.js","../node_modules/devextreme/esm/__internal/ui/form/m_form.layout_manager.utils.js","../node_modules/devextreme/esm/__internal/ui/form/components/m_label.js","../node_modules/devextreme/esm/__internal/ui/form/components/m_field_item.js","../node_modules/devextreme/esm/__internal/ui/form/m_form.items_runtime_info.js","../node_modules/devextreme/esm/__internal/ui/form/m_form.layout_manager.js","../node_modules/devextreme/esm/__internal/ui/m_validation_summary.js","../node_modules/devextreme/esm/__internal/ui/m_validation_group.js","../node_modules/devextreme/esm/ui/scroll_view/ui.scrollable.js","../node_modules/devextreme/esm/__internal/ui/multi_view/m_multi_view.animation.js","../node_modules/devextreme/esm/__internal/ui/m_multi_view.js","../node_modules/devextreme/esm/ui/multi_view.js","../node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_scroll_left_max.js","../node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_boundary_props.js","../node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_scroll_top_max.js","../node_modules/devextreme/esm/__internal/ui/tabs/constants.js","../node_modules/devextreme/esm/__internal/ui/tabs/m_item.js","../node_modules/devextreme/esm/__internal/ui/tabs/m_tabs.js","../node_modules/devextreme/esm/ui/tabs.js","../node_modules/devextreme/esm/__internal/ui/tab_panel/m_tab_panel.js","../node_modules/devextreme/esm/__internal/ui/tab_panel/m_item.js","../node_modules/devextreme/esm/ui/tab_panel.js","../node_modules/devextreme/esm/__internal/ui/form/m_form.item_option_action.js","../node_modules/devextreme/esm/__internal/ui/form/m_form.utils.js","../node_modules/devextreme/esm/__internal/ui/form/m_form.item_options_actions.js","../node_modules/devextreme/esm/__internal/ui/form/m_form.js","../node_modules/devextreme/esm/ui/form.js","../node_modules/devextreme/esm/__internal/scheduler/m_recurrence_editor.js","../node_modules/devextreme/esm/__internal/ui/text_box/m_utils.scroll.js","../node_modules/devextreme/esm/__internal/ui/m_text_area.js","../node_modules/devextreme/esm/__internal/ui/m_tag_box.js","../node_modules/devextreme/esm/__internal/ui/m_switch.js","../node_modules/devextreme/esm/data/data_source.js","../node_modules/devextreme/esm/__internal/scheduler/r1/semaphore/index.js","../node_modules/devextreme/esm/__internal/scheduler/appointment_popup/m_form.js","../node_modules/devextreme/esm/__internal/scheduler/r1/appointment_popup/config.js","../node_modules/devextreme/esm/__internal/scheduler/m_loading.js","../node_modules/devextreme/esm/__internal/scheduler/resources/m_utils.js","../node_modules/devextreme/esm/__internal/scheduler/appointment_popup/m_popup.js","../node_modules/devextreme/esm/__internal/scheduler/r1/filterting/remote.js","../node_modules/devextreme/esm/__internal/scheduler/appointments/data_provider/m_appointment_data_source.js","../node_modules/devextreme/esm/__internal/scheduler/appointments/data_provider/m_appointment_filter.js","../node_modules/devextreme/esm/__internal/scheduler/appointments/data_provider/m_appointment_data_provider.js","../node_modules/devextreme/esm/renovation/ui/resizable/utils.js","../node_modules/devextreme/esm/__internal/ui/popover/m_popover_position_controller.js","../node_modules/devextreme/esm/__internal/ui/popover/m_popover.js","../node_modules/devextreme/esm/ui/popover/ui.popover.js","../node_modules/devextreme/esm/__internal/ui/m_tooltip.js","../node_modules/devextreme/esm/ui/tooltip.js","../node_modules/devextreme/esm/__internal/ui/tooltip/m_tooltip.js","../node_modules/devextreme/esm/__internal/scheduler/appointments/m_appointment.js","../node_modules/devextreme/esm/__internal/scheduler/appointments/m_appointment_layout.js","../node_modules/devextreme/esm/__internal/scheduler/appointments/resizing/m_core.js","../node_modules/devextreme/esm/__internal/scheduler/appointments/m_appointment_collection.js","../node_modules/devextreme/esm/__internal/ui/m_drop_down_button.js","../node_modules/devextreme/esm/__internal/ui/toolbar/m_toolbar.utils.js","../node_modules/devextreme/esm/__internal/ui/toolbar/strategy/m_toolbar.multiline.js","../node_modules/devextreme/esm/__internal/ui/toolbar/internal/m_toolbar.menu.list.js","../node_modules/devextreme/esm/__internal/ui/toolbar/internal/m_toolbar.menu.js","../node_modules/devextreme/esm/__internal/ui/toolbar/strategy/m_toolbar.singleline.js","../node_modules/devextreme/esm/__internal/ui/toolbar/m_toolbar.js","../node_modules/devextreme/esm/ui/toolbar.js","../node_modules/devextreme/esm/__internal/scheduler/header/m_calendar.js","../node_modules/devextreme/esm/__internal/scheduler/header/m_date_navigator.js","../node_modules/devextreme/esm/__internal/scheduler/header/m_utils.js","../node_modules/devextreme/esm/__internal/scheduler/header/m_view_switcher.js","../node_modules/devextreme/esm/__internal/scheduler/header/m_header.js","../node_modules/devextreme/esm/__internal/scheduler/appointments/m_cell_position_calculator.js","../node_modules/devextreme/esm/__internal/scheduler/appointments/m_text_utils.js","../node_modules/devextreme/esm/__internal/scheduler/appointments/m_settings_generator.js","../node_modules/devextreme/esm/__internal/scheduler/appointments/rendering_strategies/m_appointments_positioning_strategy_base.js","../node_modules/devextreme/esm/__internal/scheduler/appointments/rendering_strategies/m_appointments_positioning_strategy_adaptive.js","../node_modules/devextreme/esm/__internal/scheduler/appointments/rendering_strategies/m_strategy_base.js","../node_modules/devextreme/esm/__internal/scheduler/appointments/rendering_strategies/m_strategy_agenda.js","../node_modules/devextreme/esm/__internal/scheduler/appointments/rendering_strategies/m_strategy_horizontal.js","../node_modules/devextreme/esm/__internal/scheduler/workspaces/helpers/m_position_helper.js","../node_modules/devextreme/esm/__internal/scheduler/appointments/rendering_strategies/m_strategy_horizontal_month_line.js","../node_modules/devextreme/esm/__internal/scheduler/appointments/rendering_strategies/m_strategy_horizontal_month.js","../node_modules/devextreme/esm/__internal/scheduler/appointments/rendering_strategies/m_strategy_vertical.js","../node_modules/devextreme/esm/__internal/scheduler/appointments/m_view_model_generator.js","../node_modules/devextreme/esm/__internal/scheduler/appointments/rendering_strategies/m_strategy_week.js","../node_modules/devextreme/esm/__internal/scheduler/m_appointments_layout_manager.js","../node_modules/devextreme/esm/__internal/scheduler/m_data_structures.js","../node_modules/devextreme/esm/__internal/scheduler/m_compact_appointments_helper.js","../node_modules/devextreme/esm/__internal/scheduler/m_utils.js","../node_modules/devextreme/esm/__internal/scheduler/m_subscribes.js","../node_modules/devextreme/esm/__internal/scheduler/options_validator/common/validation_functions.js","../node_modules/devextreme/esm/__internal/scheduler/options_validator/core/options_validator.js","../node_modules/devextreme/esm/__internal/scheduler/options_validator/core/options_validator_error_handler.js","../node_modules/devextreme/esm/__internal/scheduler/options_validator/core/validator.js","../node_modules/devextreme/esm/__internal/scheduler/options_validator/core/validator_rules.js","../node_modules/devextreme/esm/__internal/scheduler/options_validator/common/validator_rules.js","../node_modules/devextreme/esm/__internal/scheduler/options_validator/validator_rules.js","../node_modules/devextreme/esm/__internal/scheduler/options_validator/options_validator.js","../node_modules/devextreme/esm/__internal/scheduler/options_validator/options_validator_errors_handler.js","../node_modules/devextreme/esm/__internal/scheduler/resources/m_agenda_resource_processor.js","../node_modules/devextreme/esm/__internal/scheduler/tooltip_strategies/m_tooltip_strategy_base.js","../node_modules/devextreme/esm/__internal/core/utils/promise.js","../node_modules/devextreme/esm/__internal/scheduler/tooltip_strategies/m_desktop_tooltip_strategy.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/devextreme/esm/__internal/scheduler/tooltip_strategies/m_mobile_tooltip_strategy.js","../node_modules/devextreme/esm/__internal/scheduler/m_table_creator.js","../node_modules/devextreme/esm/__internal/core/utils/scroll.js","../node_modules/devextreme/esm/__internal/core/r1/utils/shallow_equals.js","../node_modules/devextreme/esm/__internal/core/r1/template_wrapper.js","../node_modules/devextreme/esm/__internal/core/r1/utils/get_template.js","../node_modules/devextreme/esm/__internal/core/r1/utils/update_props_immutable.js","../node_modules/devextreme/esm/__internal/core/r1/component_wrapper.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/base/all_day_panel_title.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/wrappers/all_day_panel_title.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/const.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/base/cell.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/base/date_table_cell_base.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/base/all_day_panel_cell.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/base/ordinary_cell.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/base/header_cell.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/base/virtual_cell.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/base/row.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/base/all_day_panel_table_body.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/base/layout_props.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/base/virtual_row.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/base/table.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/base/all_day_panel_table.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/base/date_table_body.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/base/date_table.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/wrappers/date_table.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/wrappers/all_day_table.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/month/date_table_month_cell.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/month/date_table_month.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/wrappers/date_table_month.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/base/group_panel_props.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/base/group_panel_horizontal_cell.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/base/group_panel_horizontal_row.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/base/group_panel_horizontal.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/base/group_panel_vertical_cell.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/base/group_panel_vertical_row.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/base/group_panel_vertical.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/base/group_panel.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/wrappers/group_panel.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/base/date_header_text.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/base/date_header_cell.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/base/date_header.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/base/header_panel.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/wrappers/header_panel.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/timeline/date_header_timeline.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/timeline/header_panel_timeline.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/wrappers/header_panel_timeline.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/base/time_panel_cell.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/base/time_panel_table.js","../node_modules/devextreme/esm/__internal/scheduler/r1/components/wrappers/time_panel.js","../node_modules/devextreme/esm/__internal/scheduler/base/m_widget_observer.js","../node_modules/devextreme/esm/__internal/m_draggable.js","../node_modules/devextreme/esm/ui/draggable.js","../node_modules/devextreme/esm/__internal/scheduler/m_appointment_drag_behavior.js","../node_modules/devextreme/esm/__internal/scheduler/utils/is_scheduler_component.js","../node_modules/devextreme/esm/__internal/scheduler/shaders/m_current_time_shader.js","../node_modules/devextreme/esm/__internal/scheduler/shaders/m_current_time_shader_vertical.js","../node_modules/devextreme/esm/__internal/scheduler/workspaces/m_cache.js","../node_modules/devextreme/esm/__internal/scheduler/workspaces/m_cells_selection_controller.js","../node_modules/devextreme/esm/__internal/scheduler/workspaces/m_cells_selection_state.js","../node_modules/devextreme/esm/__internal/scheduler/workspaces/m_virtual_scrolling.js","../node_modules/devextreme/esm/__internal/scheduler/workspaces/m_work_space_grouped_strategy_horizontal.js","../node_modules/devextreme/esm/__internal/scheduler/workspaces/m_work_space_grouped_strategy_vertical.js","../node_modules/devextreme/esm/__internal/scheduler/workspaces/view_model/m_date_header_data_generator.js","../node_modules/devextreme/esm/__internal/scheduler/workspaces/view_model/m_grouped_data_map_provider.js","../node_modules/devextreme/esm/__internal/core/utils/math.js","../node_modules/devextreme/esm/__internal/scheduler/workspaces/view_model/m_time_panel_data_generator.js","../node_modules/devextreme/esm/__internal/scheduler/workspaces/view_model/m_view_data_generator.js","../node_modules/devextreme/esm/__internal/scheduler/workspaces/view_model/m_view_data_generator_day.js","../node_modules/devextreme/esm/__internal/scheduler/workspaces/view_model/m_view_data_generator_month.js","../node_modules/devextreme/esm/__internal/scheduler/workspaces/view_model/m_utils.js","../node_modules/devextreme/esm/__internal/scheduler/workspaces/view_model/m_view_data_generator_timeline_month.js","../node_modules/devextreme/esm/__internal/scheduler/workspaces/view_model/m_view_data_generator_week.js","../node_modules/devextreme/esm/__internal/scheduler/workspaces/view_model/m_view_data_generator_work_week.js","../node_modules/devextreme/esm/__internal/scheduler/workspaces/view_model/m_view_data_provider.js","../node_modules/devextreme/esm/__internal/scheduler/workspaces/m_work_space.js","../node_modules/devextreme/esm/__internal/scheduler/workspaces/m_agenda.js","../node_modules/devextreme/esm/__internal/scheduler/shaders/m_current_time_shader_horizontal.js","../node_modules/devextreme/esm/__internal/scheduler/workspaces/m_work_space_indicator.js","../node_modules/devextreme/esm/__internal/scheduler/workspaces/m_timeline.js","../node_modules/devextreme/esm/__internal/scheduler/workspaces/m_timeline_day.js","../node_modules/devextreme/esm/__internal/scheduler/workspaces/m_timeline_month.js","../node_modules/devextreme/esm/__internal/scheduler/workspaces/m_timeline_week.js","../node_modules/devextreme/esm/__internal/scheduler/workspaces/m_timeline_work_week.js","../node_modules/devextreme/esm/__internal/scheduler/workspaces/m_work_space_vertical.js","../node_modules/devextreme/esm/__internal/scheduler/workspaces/m_work_space_day.js","../node_modules/devextreme/esm/__internal/scheduler/workspaces/m_work_space_month.js","../node_modules/devextreme/esm/__internal/scheduler/workspaces/m_work_space_week.js","../node_modules/devextreme/esm/__internal/scheduler/workspaces/m_work_space_work_week.js","../node_modules/devextreme/esm/__internal/scheduler/m_scheduler.js","../node_modules/devextreme/esm/__internal/scheduler/r1/utils/data.js","../node_modules/devextreme/esm/ui/scheduler.js","../node_modules/devextreme-react/esm/scheduler.js","../node_modules/date-fns/compareAsc.js","../node_modules/date-fns/addHours.js","../node_modules/date-fns/addMinutes.js","../node_modules/date-fns/addMilliseconds.js"],"sourcesContent":["import { addMilliseconds } from \"./addMilliseconds.js\";\n\n/**\n * The {@link addSeconds} function options.\n */\n\n/**\n * @name addSeconds\n * @category Second Helpers\n * @summary Add the specified number of seconds to the given date.\n *\n * @description\n * Add the specified number of seconds to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of seconds to be added.\n * @param options - An object with options\n *\n * @returns The new date with the seconds added\n *\n * @example\n * // Add 30 seconds to 10 July 2014 12:45:00:\n * const result = addSeconds(new Date(2014, 6, 10, 12, 45, 0), 30)\n * //=> Thu Jul 10 2014 12:45:30\n */\nexport function addSeconds(date, amount, options) {\n return addMilliseconds(date, amount * 1000, options);\n}\n\n// Fallback for modularized imports:\nexport default addSeconds;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * @param date - The date that should be before the other one to return true\n * @param dateToCompare - The date to compare with\n *\n * @returns The first date is before the second date\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * const result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\nexport function isBefore(date, dateToCompare) {\n return +toDate(date) < +toDate(dateToCompare);\n}\n\n// Fallback for modularized imports:\nexport default isBefore;\n","/**\r\n * DevExtreme (esm/core/templates/bindable_template.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../renderer\";\r\nimport {\r\n TemplateBase\r\n} from \"./template_base\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n removeEvent\r\n} from \"../../events/remove\";\r\nimport {\r\n isPrimitive\r\n} from \"../utils/type\";\r\nvar watchChanges = function(rawData, watchMethod, fields, fieldsMap, callback) {\r\n var fieldsDispose;\r\n var globalDispose = ((data, watchMethod, callback) => watchMethod(() => data, callback))(rawData, watchMethod, (function(dataWithRawFields) {\r\n fieldsDispose && fieldsDispose();\r\n if (isPrimitive(dataWithRawFields)) {\r\n callback(dataWithRawFields);\r\n return\r\n }\r\n fieldsDispose = function(data, watchMethod, fields, fieldsMap, callback) {\r\n var resolvedData = {};\r\n var missedFields = fields.slice();\r\n var watchHandlers = fields.map((function(name) {\r\n var fieldGetter = fieldsMap[name];\r\n return watchMethod(fieldGetter ? () => fieldGetter(data) : () => data[name], (function(value) {\r\n resolvedData[name] = value;\r\n if (missedFields.length) {\r\n var index = missedFields.indexOf(name);\r\n if (index >= 0) {\r\n missedFields.splice(index, 1)\r\n }\r\n }\r\n if (!missedFields.length) {\r\n callback(resolvedData)\r\n }\r\n }))\r\n }));\r\n return function() {\r\n watchHandlers.forEach(dispose => dispose())\r\n }\r\n }(dataWithRawFields, watchMethod, fields, fieldsMap, callback)\r\n }));\r\n return function() {\r\n fieldsDispose && fieldsDispose();\r\n globalDispose && globalDispose()\r\n }\r\n};\r\nexport class BindableTemplate extends TemplateBase {\r\n constructor(render, fields, watchMethod, fieldsMap) {\r\n super();\r\n this._render = render;\r\n this._fields = fields;\r\n this._fieldsMap = fieldsMap || {};\r\n this._watchMethod = watchMethod\r\n }\r\n _renderCore(options) {\r\n var $container = $(options.container);\r\n var dispose = watchChanges(options.model, this._watchMethod, this._fields, this._fieldsMap, data => {\r\n $container.empty();\r\n this._render($container, data, options.model)\r\n });\r\n eventsEngine.on($container, removeEvent, dispose);\r\n return $container.contents()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/position.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport config from \"../config\";\r\nimport {\r\n isWindow\r\n} from \"../utils/type\";\r\nvar getDefaultAlignment = isRtlEnabled => {\r\n var rtlEnabled = null !== isRtlEnabled && void 0 !== isRtlEnabled ? isRtlEnabled : config().rtlEnabled;\r\n return rtlEnabled ? \"right\" : \"left\"\r\n};\r\nvar getBoundingRect = element => {\r\n var _element$getBoundingC;\r\n if (isWindow(element)) {\r\n return {\r\n width: element.outerWidth,\r\n height: element.outerHeight\r\n }\r\n }\r\n return null === (_element$getBoundingC = element.getBoundingClientRect) || void 0 === _element$getBoundingC ? void 0 : _element$getBoundingC.call(element)\r\n};\r\nexport {\r\n getBoundingRect,\r\n getDefaultAlignment\r\n};\r\n","/**\r\n * DevExtreme (esm/animation/translator.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n data as elementData,\r\n removeData\r\n} from \"../core/element_data\";\r\nimport {\r\n type\r\n} from \"../core/utils/type\";\r\nvar TRANSLATOR_DATA_KEY = \"dxTranslator\";\r\nvar TRANSFORM_MATRIX_REGEX = /matrix(3d)?\\((.+?)\\)/;\r\nvar TRANSLATE_REGEX = /translate(?:3d)?\\((.+?)\\)/;\r\nexport var locate = function($element) {\r\n $element = $($element);\r\n var translate = getTranslate($element);\r\n return {\r\n left: translate.x,\r\n top: translate.y\r\n }\r\n};\r\n\r\nfunction isPercentValue(value) {\r\n return \"string\" === type(value) && \"%\" === value[value.length - 1]\r\n}\r\n\r\nfunction cacheTranslate($element, translate) {\r\n if ($element.length) {\r\n elementData($element.get(0), TRANSLATOR_DATA_KEY, translate)\r\n }\r\n}\r\nexport var clearCache = function($element) {\r\n if ($element.length) {\r\n removeData($element.get(0), TRANSLATOR_DATA_KEY)\r\n }\r\n};\r\nexport var getTranslateCss = function(translate) {\r\n translate.x = translate.x || 0;\r\n translate.y = translate.y || 0;\r\n var xValueString = isPercentValue(translate.x) ? translate.x : translate.x + \"px\";\r\n var yValueString = isPercentValue(translate.y) ? translate.y : translate.y + \"px\";\r\n return \"translate(\" + xValueString + \", \" + yValueString + \")\"\r\n};\r\nexport var getTranslate = function($element) {\r\n var result = $element.length ? elementData($element.get(0), TRANSLATOR_DATA_KEY) : null;\r\n if (!result) {\r\n var transformValue = $element.css(\"transform\") || getTranslateCss({\r\n x: 0,\r\n y: 0\r\n });\r\n var matrix = transformValue.match(TRANSFORM_MATRIX_REGEX);\r\n var is3D = matrix && matrix[1];\r\n if (matrix) {\r\n matrix = matrix[2].split(\",\");\r\n if (\"3d\" === is3D) {\r\n matrix = matrix.slice(12, 15)\r\n } else {\r\n matrix.push(0);\r\n matrix = matrix.slice(4, 7)\r\n }\r\n } else {\r\n matrix = [0, 0, 0]\r\n }\r\n result = {\r\n x: parseFloat(matrix[0]),\r\n y: parseFloat(matrix[1]),\r\n z: parseFloat(matrix[2])\r\n };\r\n cacheTranslate($element, result)\r\n }\r\n return result\r\n};\r\nexport var move = function($element, position) {\r\n $element = $($element);\r\n var left = position.left;\r\n var top = position.top;\r\n var translate;\r\n if (void 0 === left) {\r\n translate = getTranslate($element);\r\n translate.y = top || 0\r\n } else if (void 0 === top) {\r\n translate = getTranslate($element);\r\n translate.x = left || 0\r\n } else {\r\n translate = {\r\n x: left || 0,\r\n y: top || 0,\r\n z: 0\r\n };\r\n cacheTranslate($element, translate)\r\n }\r\n $element.css({\r\n transform: getTranslateCss(translate)\r\n });\r\n if (isPercentValue(left) || isPercentValue(top)) {\r\n clearCache($element)\r\n }\r\n};\r\nexport var resetPosition = function($element, finishTransition) {\r\n $element = $($element);\r\n var originalTransition;\r\n var stylesConfig = {\r\n left: 0,\r\n top: 0,\r\n transform: \"none\"\r\n };\r\n if (finishTransition) {\r\n originalTransition = $element.css(\"transition\");\r\n stylesConfig.transition = \"none\"\r\n }\r\n $element.css(stylesConfig);\r\n clearCache($element);\r\n if (finishTransition) {\r\n $element.get(0).offsetHeight;\r\n $element.css(\"transition\", originalTransition)\r\n }\r\n};\r\nexport var parseTranslate = function(translateString) {\r\n var result = translateString.match(TRANSLATE_REGEX);\r\n if (!result || !result[1]) {\r\n return\r\n }\r\n result = result[1].split(\",\");\r\n result = {\r\n x: parseFloat(result[0]),\r\n y: parseFloat(result[1]),\r\n z: parseFloat(result[2])\r\n };\r\n return result\r\n};\r\n","/**\r\n * DevExtreme (esm/animation/easing.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nvar CSS_TRANSITION_EASING_REGEX = /cubic-bezier\\((\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)\\)/;\r\nvar TransitionTimingFuncMap = {\r\n linear: \"cubic-bezier(0, 0, 1, 1)\",\r\n swing: \"cubic-bezier(0.445, 0.05, 0.55, 0.95)\",\r\n ease: \"cubic-bezier(0.25, 0.1, 0.25, 1)\",\r\n \"ease-in\": \"cubic-bezier(0.42, 0, 1, 1)\",\r\n \"ease-out\": \"cubic-bezier(0, 0, 0.58, 1)\",\r\n \"ease-in-out\": \"cubic-bezier(0.42, 0, 0.58, 1)\"\r\n};\r\nvar polynomBezier = function(x1, y1, x2, y2) {\r\n var Cx = 3 * x1;\r\n var Bx = 3 * (x2 - x1) - Cx;\r\n var Ax = 1 - Cx - Bx;\r\n var Cy = 3 * y1;\r\n var By = 3 * (y2 - y1) - Cy;\r\n var Ay = 1 - Cy - By;\r\n var bezierX = function(t) {\r\n return t * (Cx + t * (Bx + t * Ax))\r\n };\r\n var derivativeX = function(t) {\r\n return Cx + t * (2 * Bx + 3 * t * Ax)\r\n };\r\n return function(t) {\r\n return function(t) {\r\n return t * (Cy + t * (By + t * Ay))\r\n }(function(t) {\r\n var x = t;\r\n var i = 0;\r\n var z;\r\n while (i < 14) {\r\n z = bezierX(x) - t;\r\n if (Math.abs(z) < .001) {\r\n break\r\n }\r\n x -= z / derivativeX(x);\r\n i++\r\n }\r\n return x\r\n }(t))\r\n }\r\n};\r\nvar easing = {};\r\nexport var convertTransitionTimingFuncToEasing = function(cssTransitionEasing) {\r\n cssTransitionEasing = TransitionTimingFuncMap[cssTransitionEasing] || cssTransitionEasing;\r\n var coeffs = cssTransitionEasing.match(CSS_TRANSITION_EASING_REGEX);\r\n var forceName;\r\n if (!coeffs) {\r\n forceName = \"linear\";\r\n coeffs = TransitionTimingFuncMap[forceName].match(CSS_TRANSITION_EASING_REGEX)\r\n }\r\n coeffs = coeffs.slice(1, 5);\r\n for (var i = 0; i < coeffs.length; i++) {\r\n coeffs[i] = parseFloat(coeffs[i])\r\n }\r\n var easingName = forceName || \"cubicbezier_\" + coeffs.join(\"_\").replace(/\\./g, \"p\");\r\n if (!isFunction(easing[easingName])) {\r\n easing[easingName] = function(x, t, b, c, d) {\r\n return c * polynomBezier(coeffs[0], coeffs[1], coeffs[2], coeffs[3])(t / d) + b\r\n }\r\n }\r\n return easingName\r\n};\r\nexport function setEasing(value) {\r\n easing = value\r\n}\r\nexport function getEasing(name) {\r\n return easing[name]\r\n}\r\n","/**\r\n * DevExtreme (esm/animation/position.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n getOuterHeight,\r\n getWidth,\r\n getHeight\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n splitPair,\r\n pairToObject\r\n} from \"../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = getWindow();\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport {\r\n isWindow,\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n getBoundingRect\r\n} from \"../core/utils/position\";\r\nimport browser from \"../core/utils/browser\";\r\nimport {\r\n resetPosition,\r\n move\r\n} from \"./translator\";\r\nimport {\r\n touch\r\n} from \"../core/utils/support\";\r\nimport devices from \"../core/devices\";\r\nimport {\r\n setStyle\r\n} from \"../core/utils/style\";\r\nvar horzRe = /left|right/;\r\nvar vertRe = /top|bottom/;\r\nvar collisionRe = /fit|flip|none/;\r\nvar scaleRe = /scale\\(.+?\\)/;\r\nvar IS_SAFARI = browser.safari;\r\nvar normalizeAlign = function(raw) {\r\n var result = {\r\n h: \"center\",\r\n v: \"center\"\r\n };\r\n var pair = splitPair(raw);\r\n if (pair) {\r\n each(pair, (function() {\r\n var w = String(this).toLowerCase();\r\n if (horzRe.test(w)) {\r\n result.h = w\r\n } else if (vertRe.test(w)) {\r\n result.v = w\r\n }\r\n }))\r\n }\r\n return result\r\n};\r\nvar normalizeOffset = function(raw, preventRound) {\r\n return pairToObject(raw, preventRound)\r\n};\r\nvar normalizeCollision = function(raw) {\r\n var pair = splitPair(raw);\r\n var h = String(pair && pair[0]).toLowerCase();\r\n var v = String(pair && pair[1]).toLowerCase();\r\n if (!collisionRe.test(h)) {\r\n h = \"none\"\r\n }\r\n if (!collisionRe.test(v)) {\r\n v = h\r\n }\r\n return {\r\n h: h,\r\n v: v\r\n }\r\n};\r\nvar getAlignFactor = function(align) {\r\n switch (align) {\r\n case \"center\":\r\n return .5;\r\n case \"right\":\r\n case \"bottom\":\r\n return 1;\r\n default:\r\n return 0\r\n }\r\n};\r\nvar inverseAlign = function(align) {\r\n switch (align) {\r\n case \"left\":\r\n return \"right\";\r\n case \"right\":\r\n return \"left\";\r\n case \"top\":\r\n return \"bottom\";\r\n case \"bottom\":\r\n return \"top\";\r\n default:\r\n return align\r\n }\r\n};\r\nvar calculateOversize = function(data, bounds) {\r\n var oversize = 0;\r\n if (data.myLocation < bounds.min) {\r\n oversize += bounds.min - data.myLocation\r\n }\r\n if (data.myLocation > bounds.max) {\r\n oversize += data.myLocation - bounds.max\r\n }\r\n return oversize\r\n};\r\nvar collisionSide = function(direction, data, bounds) {\r\n if (data.myLocation < bounds.min) {\r\n return \"h\" === direction ? \"left\" : \"top\"\r\n }\r\n if (data.myLocation > bounds.max) {\r\n return \"h\" === direction ? \"right\" : \"bottom\"\r\n }\r\n return \"none\"\r\n};\r\nvar initMyLocation = function(data) {\r\n data.myLocation = data.atLocation + getAlignFactor(data.atAlign) * data.atSize - getAlignFactor(data.myAlign) * data.mySize + data.offset\r\n};\r\nvar collisionResolvers = {\r\n fit: function(data, bounds) {\r\n var result = false;\r\n if (data.myLocation > bounds.max) {\r\n data.myLocation = bounds.max;\r\n result = true\r\n }\r\n if (data.myLocation < bounds.min) {\r\n data.myLocation = bounds.min;\r\n result = true\r\n }\r\n data.fit = result\r\n },\r\n flip: function(data, bounds) {\r\n data.flip = false;\r\n if (\"center\" === data.myAlign && \"center\" === data.atAlign) {\r\n return\r\n }\r\n if (data.myLocation < bounds.min || data.myLocation > bounds.max) {\r\n var inverseData = extend({}, data, {\r\n myAlign: inverseAlign(data.myAlign),\r\n atAlign: inverseAlign(data.atAlign),\r\n offset: -data.offset\r\n });\r\n initMyLocation(inverseData);\r\n inverseData.oversize = calculateOversize(inverseData, bounds);\r\n if (inverseData.myLocation >= bounds.min && inverseData.myLocation <= bounds.max || data.oversize > inverseData.oversize) {\r\n data.myLocation = inverseData.myLocation;\r\n data.oversize = inverseData.oversize;\r\n data.flip = true\r\n }\r\n }\r\n },\r\n flipfit: function(data, bounds) {\r\n this.flip(data, bounds);\r\n this.fit(data, bounds)\r\n },\r\n none: function(data) {\r\n data.oversize = 0\r\n }\r\n};\r\nvar scrollbarWidth;\r\nvar calculateScrollbarWidth = function() {\r\n var $scrollDiv = $(\"
\").css({\r\n width: 100,\r\n height: 100,\r\n overflow: \"scroll\",\r\n position: \"absolute\",\r\n top: -9999\r\n }).appendTo($(\"body\"));\r\n var result = $scrollDiv.get(0).offsetWidth - $scrollDiv.get(0).clientWidth;\r\n $scrollDiv.remove();\r\n scrollbarWidth = result\r\n};\r\nvar defaultPositionResult = {\r\n h: {\r\n location: 0,\r\n flip: false,\r\n fit: false,\r\n oversize: 0\r\n },\r\n v: {\r\n location: 0,\r\n flip: false,\r\n fit: false,\r\n oversize: 0\r\n }\r\n};\r\nvar calculatePosition = function(what, options) {\r\n var $what = $(what);\r\n var currentOffset = $what.offset();\r\n var result = extend(true, {}, defaultPositionResult, {\r\n h: {\r\n location: currentOffset.left\r\n },\r\n v: {\r\n location: currentOffset.top\r\n }\r\n });\r\n if (!options) {\r\n return result\r\n }\r\n var my = normalizeAlign(options.my);\r\n var at = normalizeAlign(options.at);\r\n var of = $(options.of).length && options.of || window;\r\n var offset = normalizeOffset(options.offset, options.precise);\r\n var collision = normalizeCollision(options.collision);\r\n var boundary = options.boundary;\r\n var boundaryOffset = normalizeOffset(options.boundaryOffset, options.precise);\r\n var h = {\r\n mySize: getOuterWidth($what),\r\n myAlign: my.h,\r\n atAlign: at.h,\r\n offset: offset.h,\r\n collision: collision.h,\r\n boundaryOffset: boundaryOffset.h\r\n };\r\n var v = {\r\n mySize: getOuterHeight($what),\r\n myAlign: my.v,\r\n atAlign: at.v,\r\n offset: offset.v,\r\n collision: collision.v,\r\n boundaryOffset: boundaryOffset.v\r\n };\r\n if (of.preventDefault) {\r\n h.atLocation = of.pageX;\r\n v.atLocation = of.pageY;\r\n h.atSize = 0;\r\n v.atSize = 0\r\n } else {\r\n of = $(of);\r\n if (isWindow(of [0])) {\r\n h.atLocation = of.scrollLeft();\r\n v.atLocation = of.scrollTop();\r\n if (\"phone\" === devices.real().deviceType && of [0].visualViewport) {\r\n h.atLocation = Math.max(h.atLocation, of [0].visualViewport.offsetLeft);\r\n v.atLocation = Math.max(v.atLocation, of [0].visualViewport.offsetTop);\r\n h.atSize = of [0].visualViewport.width;\r\n v.atSize = of [0].visualViewport.height\r\n } else {\r\n h.atSize = of [0].innerWidth > of [0].outerWidth ? of [0].innerWidth : getWidth(of);\r\n v.atSize = of [0].innerHeight > of [0].outerHeight || IS_SAFARI ? of [0].innerHeight : getHeight(of)\r\n }\r\n } else if (9 === of [0].nodeType) {\r\n h.atLocation = 0;\r\n v.atLocation = 0;\r\n h.atSize = getWidth(of);\r\n v.atSize = getHeight(of)\r\n } else {\r\n var ofRect = getBoundingRect(of.get(0));\r\n var o = getOffsetWithoutScale(of);\r\n h.atLocation = o.left;\r\n v.atLocation = o.top;\r\n h.atSize = Math.max(ofRect.width, getOuterWidth(of));\r\n v.atSize = Math.max(ofRect.height, getOuterHeight(of))\r\n }\r\n }\r\n initMyLocation(h);\r\n initMyLocation(v);\r\n var bounds = function() {\r\n var win = $(window);\r\n var windowWidth = getWidth(win);\r\n var windowHeight = getHeight(win);\r\n var left = win.scrollLeft();\r\n var top = win.scrollTop();\r\n var documentElement = domAdapter.getDocumentElement();\r\n var hZoomLevel = touch ? documentElement.clientWidth / windowWidth : 1;\r\n var vZoomLevel = touch ? documentElement.clientHeight / windowHeight : 1;\r\n if (void 0 === scrollbarWidth) {\r\n calculateScrollbarWidth()\r\n }\r\n var boundaryWidth = windowWidth;\r\n var boundaryHeight = windowHeight;\r\n if (boundary && !isWindow(boundary)) {\r\n var $boundary = $(boundary);\r\n var boundaryPosition = $boundary.offset();\r\n left = boundaryPosition.left;\r\n top = boundaryPosition.top;\r\n boundaryWidth = getWidth($boundary);\r\n boundaryHeight = getHeight($boundary)\r\n }\r\n return {\r\n h: {\r\n min: left + h.boundaryOffset,\r\n max: left + boundaryWidth / hZoomLevel - h.mySize - h.boundaryOffset\r\n },\r\n v: {\r\n min: top + v.boundaryOffset,\r\n max: top + boundaryHeight / vZoomLevel - v.mySize - v.boundaryOffset\r\n }\r\n }\r\n }();\r\n h.oversize = calculateOversize(h, bounds.h);\r\n v.oversize = calculateOversize(v, bounds.v);\r\n h.collisionSide = collisionSide(\"h\", h, bounds.h);\r\n v.collisionSide = collisionSide(\"v\", v, bounds.v);\r\n if (collisionResolvers[h.collision]) {\r\n collisionResolvers[h.collision](h, bounds.h)\r\n }\r\n if (collisionResolvers[v.collision]) {\r\n collisionResolvers[v.collision](v, bounds.v)\r\n }\r\n var preciser = function(number) {\r\n return options.precise ? number : Math.round(number)\r\n };\r\n extend(true, result, {\r\n h: {\r\n location: preciser(h.myLocation),\r\n oversize: preciser(h.oversize),\r\n fit: h.fit,\r\n flip: h.flip,\r\n collisionSide: h.collisionSide\r\n },\r\n v: {\r\n location: preciser(v.myLocation),\r\n oversize: preciser(v.oversize),\r\n fit: v.fit,\r\n flip: v.flip,\r\n collisionSide: v.collisionSide\r\n },\r\n precise: options.precise\r\n });\r\n return result\r\n};\r\nvar setScaleProperty = function(element, scale, styleAttr, isEmpty) {\r\n var stylePropIsValid = isDefined(element.style) && !domAdapter.isNode(element.style);\r\n var newStyleValue = isEmpty ? styleAttr.replace(scale, \"\") : styleAttr;\r\n if (stylePropIsValid) {\r\n setStyle(element, newStyleValue, false)\r\n } else {\r\n var styleAttributeNode = domAdapter.createAttribute(\"style\");\r\n styleAttributeNode.value = newStyleValue;\r\n element.setAttributeNode(styleAttributeNode)\r\n }\r\n};\r\nvar getOffsetWithoutScale = function getOffsetWithoutScale($startElement) {\r\n var _currentElement$getAt, _style$match;\r\n var $currentElement = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : $startElement;\r\n var currentElement = $currentElement.get(0);\r\n if (!currentElement) {\r\n return $startElement.offset()\r\n }\r\n var style = (null === (_currentElement$getAt = currentElement.getAttribute) || void 0 === _currentElement$getAt ? void 0 : _currentElement$getAt.call(currentElement, \"style\")) || \"\";\r\n var scale = null === (_style$match = style.match(scaleRe)) || void 0 === _style$match ? void 0 : _style$match[0];\r\n var offset;\r\n if (scale) {\r\n setScaleProperty(currentElement, scale, style, true);\r\n offset = getOffsetWithoutScale($startElement, $currentElement.parent());\r\n setScaleProperty(currentElement, scale, style, false)\r\n } else {\r\n offset = getOffsetWithoutScale($startElement, $currentElement.parent())\r\n }\r\n return offset\r\n};\r\nvar position = function(what, options) {\r\n var $what = $(what);\r\n if (!options) {\r\n return $what.offset()\r\n }\r\n resetPosition($what, true);\r\n var offset = getOffsetWithoutScale($what);\r\n var targetPosition = options.h && options.v ? options : calculatePosition($what, options);\r\n var preciser = function(number) {\r\n return options.precise ? number : Math.round(number)\r\n };\r\n move($what, {\r\n left: targetPosition.h.location - preciser(offset.left),\r\n top: targetPosition.v.location - preciser(offset.top)\r\n });\r\n return targetPosition\r\n};\r\nvar offset = function(element) {\r\n element = $(element).get(0);\r\n if (isWindow(element)) {\r\n return null\r\n } else if (element && \"pageY\" in element && \"pageX\" in element) {\r\n return {\r\n top: element.pageY,\r\n left: element.pageX\r\n }\r\n }\r\n return $(element).offset()\r\n};\r\nif (!position.inverseAlign) {\r\n position.inverseAlign = inverseAlign\r\n}\r\nif (!position.normalizeAlign) {\r\n position.normalizeAlign = normalizeAlign\r\n}\r\nexport default {\r\n calculateScrollbarWidth: calculateScrollbarWidth,\r\n calculate: calculatePosition,\r\n setup: position,\r\n offset: offset\r\n};\r\n","/**\r\n * DevExtreme (esm/animation/fx.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = getWindow();\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport errors from \"../core/errors\";\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 isFunction,\r\n isPlainObject\r\n} from \"../core/utils/type\";\r\nimport {\r\n each,\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n getTranslateCss,\r\n parseTranslate,\r\n clearCache,\r\n locate,\r\n getTranslate\r\n} from \"./translator\";\r\nimport {\r\n convertTransitionTimingFuncToEasing,\r\n getEasing\r\n} from \"./easing\";\r\nimport {\r\n requestAnimationFrame,\r\n cancelAnimationFrame\r\n} from \"./frame\";\r\nimport {\r\n transitionEndEventName,\r\n transition\r\n} from \"../core/utils/support\";\r\nimport positionUtils from \"./position\";\r\nimport {\r\n removeEvent\r\n} from \"../events/remove\";\r\nimport {\r\n addNamespace\r\n} from \"../events/utils/index\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nvar removeEventName = addNamespace(removeEvent, \"dxFX\");\r\nimport {\r\n noop\r\n} from \"../core/utils/common\";\r\nvar RELATIVE_VALUE_REGEX = /^([+-])=(.*)/i;\r\nvar ANIM_DATA_KEY = \"dxAnimData\";\r\nvar ANIM_QUEUE_KEY = \"dxAnimQueue\";\r\nvar TRANSFORM_PROP = \"transform\";\r\nvar TransitionAnimationStrategy = {\r\n initAnimation: function($element, config) {\r\n $element.css({\r\n transitionProperty: \"none\"\r\n });\r\n if (\"string\" === typeof config.from) {\r\n $element.addClass(config.from)\r\n } else {\r\n setProps($element, config.from)\r\n }\r\n var that = this;\r\n var deferred = new Deferred;\r\n var cleanupWhen = config.cleanupWhen;\r\n config.transitionAnimation = {\r\n deferred: deferred,\r\n finish: function() {\r\n that._finishTransition($element);\r\n if (cleanupWhen) {\r\n when(deferred, cleanupWhen).always((function() {\r\n that._cleanup($element, config)\r\n }))\r\n } else {\r\n that._cleanup($element, config)\r\n }\r\n deferred.resolveWith($element, [config, $element])\r\n }\r\n };\r\n this._completeAnimationCallback($element, config).done((function() {\r\n config.transitionAnimation.finish()\r\n })).fail((function() {\r\n deferred.rejectWith($element, [config, $element])\r\n }));\r\n if (!config.duration) {\r\n config.transitionAnimation.finish()\r\n }\r\n $element.css(\"transform\")\r\n },\r\n animate: function($element, config) {\r\n this._startAnimation($element, config);\r\n return config.transitionAnimation.deferred.promise()\r\n },\r\n _completeAnimationCallback: function($element, config) {\r\n var that = this;\r\n var startTime = Date.now() + config.delay;\r\n var deferred = new Deferred;\r\n var transitionEndFired = new Deferred;\r\n var simulatedTransitionEndFired = new Deferred;\r\n var simulatedEndEventTimer;\r\n var transitionEndEventFullName = transitionEndEventName() + \".dxFX\";\r\n config.transitionAnimation.cleanup = function() {\r\n clearTimeout(simulatedEndEventTimer);\r\n clearTimeout(waitForJSCompleteTimer);\r\n eventsEngine.off($element, transitionEndEventFullName);\r\n eventsEngine.off($element, removeEventName)\r\n };\r\n eventsEngine.one($element, transitionEndEventFullName, (function() {\r\n if (Date.now() - startTime >= config.duration) {\r\n transitionEndFired.reject()\r\n }\r\n }));\r\n eventsEngine.off($element, removeEventName);\r\n eventsEngine.on($element, removeEventName, (function() {\r\n that.stop($element, config);\r\n deferred.reject()\r\n }));\r\n var waitForJSCompleteTimer = setTimeout((function() {\r\n simulatedEndEventTimer = setTimeout((function() {\r\n simulatedTransitionEndFired.reject()\r\n }), config.duration + config.delay + fx._simulatedTransitionEndDelay);\r\n when(transitionEndFired, simulatedTransitionEndFired).fail(function() {\r\n deferred.resolve()\r\n }.bind(this))\r\n }));\r\n return deferred.promise()\r\n },\r\n _startAnimation: function($element, config) {\r\n $element.css({\r\n transitionProperty: \"all\",\r\n transitionDelay: config.delay + \"ms\",\r\n transitionDuration: config.duration + \"ms\",\r\n transitionTimingFunction: config.easing\r\n });\r\n if (\"string\" === typeof config.to) {\r\n $element[0].className += \" \" + config.to\r\n } else if (config.to) {\r\n setProps($element, config.to)\r\n }\r\n },\r\n _finishTransition: function($element) {\r\n $element.css(\"transition\", \"none\")\r\n },\r\n _cleanup: function($element, config) {\r\n config.transitionAnimation.cleanup();\r\n if (\"string\" === typeof config.from) {\r\n $element.removeClass(config.from);\r\n $element.removeClass(config.to)\r\n }\r\n },\r\n stop: function($element, config, jumpToEnd) {\r\n if (!config) {\r\n return\r\n }\r\n if (jumpToEnd) {\r\n config.transitionAnimation.finish()\r\n } else {\r\n if (isPlainObject(config.to)) {\r\n each(config.to, (function(key) {\r\n $element.css(key, $element.css(key))\r\n }))\r\n }\r\n this._finishTransition($element);\r\n this._cleanup($element, config)\r\n }\r\n }\r\n};\r\nvar FrameAnimationStrategy = {\r\n initAnimation: function($element, config) {\r\n setProps($element, config.from)\r\n },\r\n animate: function($element, config) {\r\n var deferred = new Deferred;\r\n var that = this;\r\n if (!config) {\r\n return deferred.reject().promise()\r\n }\r\n each(config.to, (function(prop) {\r\n if (void 0 === config.from[prop]) {\r\n config.from[prop] = that._normalizeValue($element.css(prop))\r\n }\r\n }));\r\n if (config.to[TRANSFORM_PROP]) {\r\n config.from[TRANSFORM_PROP] = that._parseTransform(config.from[TRANSFORM_PROP]);\r\n config.to[TRANSFORM_PROP] = that._parseTransform(config.to[TRANSFORM_PROP])\r\n }\r\n config.frameAnimation = {\r\n to: config.to,\r\n from: config.from,\r\n currentValue: config.from,\r\n easing: convertTransitionTimingFuncToEasing(config.easing),\r\n duration: config.duration,\r\n startTime: (new Date).valueOf(),\r\n finish: function() {\r\n this.currentValue = this.to;\r\n this.draw();\r\n cancelAnimationFrame(config.frameAnimation.animationFrameId);\r\n deferred.resolve()\r\n },\r\n draw: function() {\r\n if (config.draw) {\r\n config.draw(this.currentValue);\r\n return\r\n }\r\n var currentValue = extend({}, this.currentValue);\r\n if (currentValue[TRANSFORM_PROP]) {\r\n currentValue[TRANSFORM_PROP] = map(currentValue[TRANSFORM_PROP], (function(value, prop) {\r\n if (\"translate\" === prop) {\r\n return getTranslateCss(value)\r\n } else if (\"scale\" === prop) {\r\n return \"scale(\" + value + \")\"\r\n } else if (\"rotate\" === prop.substr(0, prop.length - 1)) {\r\n return prop + \"(\" + value + \"deg)\"\r\n }\r\n })).join(\" \")\r\n }\r\n $element.css(currentValue)\r\n }\r\n };\r\n if (config.delay) {\r\n config.frameAnimation.startTime += config.delay;\r\n config.frameAnimation.delayTimeout = setTimeout((function() {\r\n that._startAnimation($element, config)\r\n }), config.delay)\r\n } else {\r\n that._startAnimation($element, config)\r\n }\r\n return deferred.promise()\r\n },\r\n _startAnimation: function($element, config) {\r\n eventsEngine.off($element, removeEventName);\r\n eventsEngine.on($element, removeEventName, (function() {\r\n if (config.frameAnimation) {\r\n cancelAnimationFrame(config.frameAnimation.animationFrameId)\r\n }\r\n }));\r\n this._animationStep($element, config)\r\n },\r\n _parseTransform: function(transformString) {\r\n var result = {};\r\n each(transformString.match(/\\w+\\d*\\w*\\([^)]*\\)\\s*/g), (function(i, part) {\r\n var translateData = parseTranslate(part);\r\n var scaleData = part.match(/scale\\((.+?)\\)/);\r\n var rotateData = part.match(/(rotate.)\\((.+)deg\\)/);\r\n if (translateData) {\r\n result.translate = translateData\r\n }\r\n if (scaleData && scaleData[1]) {\r\n result.scale = parseFloat(scaleData[1])\r\n }\r\n if (rotateData && rotateData[1]) {\r\n result[rotateData[1]] = parseFloat(rotateData[2])\r\n }\r\n }));\r\n return result\r\n },\r\n stop: function($element, config, jumpToEnd) {\r\n var frameAnimation = config && config.frameAnimation;\r\n if (!frameAnimation) {\r\n return\r\n }\r\n cancelAnimationFrame(frameAnimation.animationFrameId);\r\n clearTimeout(frameAnimation.delayTimeout);\r\n if (jumpToEnd) {\r\n frameAnimation.finish()\r\n }\r\n delete config.frameAnimation\r\n },\r\n _animationStep: function($element, config) {\r\n var frameAnimation = config && config.frameAnimation;\r\n if (!frameAnimation) {\r\n return\r\n }\r\n var now = (new Date).valueOf();\r\n if (now >= frameAnimation.startTime + frameAnimation.duration) {\r\n frameAnimation.finish();\r\n return\r\n }\r\n frameAnimation.currentValue = this._calcStepValue(frameAnimation, now - frameAnimation.startTime);\r\n frameAnimation.draw();\r\n var that = this;\r\n frameAnimation.animationFrameId = requestAnimationFrame((function() {\r\n that._animationStep($element, config)\r\n }))\r\n },\r\n _calcStepValue: function(frameAnimation, currentDuration) {\r\n return function calcValueRecursively(from, to) {\r\n var result = Array.isArray(to) ? [] : {};\r\n each(to, (function(propName, endPropValue) {\r\n if (\"string\" === typeof endPropValue && false === parseFloat(endPropValue)) {\r\n return true\r\n }\r\n result[propName] = \"object\" === typeof endPropValue ? calcValueRecursively(from[propName], endPropValue) : function(propName) {\r\n var x = currentDuration / frameAnimation.duration;\r\n var t = currentDuration;\r\n var b = 1 * from[propName];\r\n var c = to[propName] - from[propName];\r\n var d = frameAnimation.duration;\r\n return getEasing(frameAnimation.easing)(x, t, b, c, d)\r\n }(propName)\r\n }));\r\n return result\r\n }(frameAnimation.from, frameAnimation.to)\r\n },\r\n _normalizeValue: function(value) {\r\n var numericValue = parseFloat(value);\r\n if (false === numericValue) {\r\n return value\r\n }\r\n return numericValue\r\n }\r\n};\r\nvar FallbackToNoAnimationStrategy = {\r\n initAnimation: function() {},\r\n animate: function() {\r\n return (new Deferred).resolve().promise()\r\n },\r\n stop: noop,\r\n isSynchronous: true\r\n};\r\nvar getAnimationStrategy = function(config) {\r\n config = config || {};\r\n var animationStrategies = {\r\n transition: transition() ? TransitionAnimationStrategy : FrameAnimationStrategy,\r\n frame: FrameAnimationStrategy,\r\n noAnimation: FallbackToNoAnimationStrategy\r\n };\r\n var strategy = config.strategy || \"transition\";\r\n if (\"css\" === config.type && !transition()) {\r\n strategy = \"noAnimation\"\r\n }\r\n return animationStrategies[strategy]\r\n};\r\nvar baseConfigValidator = function(config, animationType, validate, typeMessage) {\r\n each([\"from\", \"to\"], (function() {\r\n if (!validate(config[this])) {\r\n throw errors.Error(\"E0010\", animationType, this, typeMessage)\r\n }\r\n }))\r\n};\r\nvar isObjectConfigValidator = function(config, animationType) {\r\n return baseConfigValidator(config, animationType, (function(target) {\r\n return isPlainObject(target)\r\n }), \"a plain object\")\r\n};\r\nvar isStringConfigValidator = function(config, animationType) {\r\n return baseConfigValidator(config, animationType, (function(target) {\r\n return \"string\" === typeof target\r\n }), \"a string\")\r\n};\r\nvar CustomAnimationConfigurator = {\r\n setup: function() {}\r\n};\r\nvar CssAnimationConfigurator = {\r\n validateConfig: function(config) {\r\n isStringConfigValidator(config, \"css\")\r\n },\r\n setup: function() {}\r\n};\r\nvar positionAliases = {\r\n top: {\r\n my: \"bottom center\",\r\n at: \"top center\"\r\n },\r\n bottom: {\r\n my: \"top center\",\r\n at: \"bottom center\"\r\n },\r\n right: {\r\n my: \"left center\",\r\n at: \"right center\"\r\n },\r\n left: {\r\n my: \"right center\",\r\n at: \"left center\"\r\n }\r\n};\r\nvar SlideAnimationConfigurator = {\r\n validateConfig: function(config) {\r\n isObjectConfigValidator(config, \"slide\")\r\n },\r\n setup: function($element, config) {\r\n var location = locate($element);\r\n if (\"slide\" !== config.type) {\r\n var positioningConfig = \"slideIn\" === config.type ? config.from : config.to;\r\n positioningConfig.position = extend({\r\n of: window\r\n }, positionAliases[config.direction]);\r\n setupPosition($element, positioningConfig)\r\n }\r\n this._setUpConfig(location, config.from);\r\n this._setUpConfig(location, config.to);\r\n clearCache($element)\r\n },\r\n _setUpConfig: function(location, config) {\r\n config.left = \"left\" in config ? config.left : \"+=0\";\r\n config.top = \"top\" in config ? config.top : \"+=0\";\r\n this._initNewPosition(location, config)\r\n },\r\n _initNewPosition: function(location, config) {\r\n var position = {\r\n left: config.left,\r\n top: config.top\r\n };\r\n delete config.left;\r\n delete config.top;\r\n var relativeValue = this._getRelativeValue(position.left);\r\n if (void 0 !== relativeValue) {\r\n position.left = relativeValue + location.left\r\n } else {\r\n config.left = 0\r\n }\r\n relativeValue = this._getRelativeValue(position.top);\r\n if (void 0 !== relativeValue) {\r\n position.top = relativeValue + location.top\r\n } else {\r\n config.top = 0\r\n }\r\n config[TRANSFORM_PROP] = getTranslateCss({\r\n x: position.left,\r\n y: position.top\r\n })\r\n },\r\n _getRelativeValue: function(value) {\r\n var relativeValue;\r\n if (\"string\" === typeof value && (relativeValue = RELATIVE_VALUE_REGEX.exec(value))) {\r\n return parseInt(relativeValue[1] + \"1\") * relativeValue[2]\r\n }\r\n }\r\n};\r\nvar FadeAnimationConfigurator = {\r\n setup: function($element, config) {\r\n var _from$opacity, _to$opacity;\r\n var from = config.from;\r\n var to = config.to;\r\n var defaultFromOpacity = \"fadeOut\" === config.type ? 1 : 0;\r\n var defaultToOpacity = \"fadeOut\" === config.type ? 0 : 1;\r\n var fromOpacity = isPlainObject(from) ? String(null !== (_from$opacity = from.opacity) && void 0 !== _from$opacity ? _from$opacity : defaultFromOpacity) : String(from);\r\n var toOpacity = isPlainObject(to) ? String(null !== (_to$opacity = to.opacity) && void 0 !== _to$opacity ? _to$opacity : defaultToOpacity) : String(to);\r\n if (!config.skipElementInitialStyles) {\r\n fromOpacity = $element.css(\"opacity\")\r\n }\r\n switch (config.type) {\r\n case \"fadeIn\":\r\n toOpacity = 1;\r\n break;\r\n case \"fadeOut\":\r\n toOpacity = 0\r\n }\r\n config.from = {\r\n visibility: \"visible\",\r\n opacity: fromOpacity\r\n };\r\n config.to = {\r\n opacity: toOpacity\r\n }\r\n }\r\n};\r\nvar PopAnimationConfigurator = {\r\n validateConfig: function(config) {\r\n isObjectConfigValidator(config, \"pop\")\r\n },\r\n setup: function($element, config) {\r\n var from = config.from;\r\n var to = config.to;\r\n var fromOpacity = \"opacity\" in from ? from.opacity : $element.css(\"opacity\");\r\n var toOpacity = \"opacity\" in to ? to.opacity : 1;\r\n var fromScale = \"scale\" in from ? from.scale : 0;\r\n var toScale = \"scale\" in to ? to.scale : 1;\r\n config.from = {\r\n opacity: fromOpacity\r\n };\r\n var translate = getTranslate($element);\r\n config.from[TRANSFORM_PROP] = this._getCssTransform(translate, fromScale);\r\n config.to = {\r\n opacity: toOpacity\r\n };\r\n config.to[TRANSFORM_PROP] = this._getCssTransform(translate, toScale)\r\n },\r\n _getCssTransform: function(translate, scale) {\r\n return getTranslateCss(translate) + \"scale(\" + scale + \")\"\r\n }\r\n};\r\nvar animationConfigurators = {\r\n custom: CustomAnimationConfigurator,\r\n slide: SlideAnimationConfigurator,\r\n slideIn: SlideAnimationConfigurator,\r\n slideOut: SlideAnimationConfigurator,\r\n fade: FadeAnimationConfigurator,\r\n fadeIn: FadeAnimationConfigurator,\r\n fadeOut: FadeAnimationConfigurator,\r\n pop: PopAnimationConfigurator,\r\n css: CssAnimationConfigurator\r\n};\r\nvar getAnimationConfigurator = function(config) {\r\n var result = animationConfigurators[config.type];\r\n if (!result) {\r\n throw errors.Error(\"E0011\", config.type)\r\n }\r\n return result\r\n};\r\nvar defaultJSConfig = {\r\n type: \"custom\",\r\n from: {},\r\n to: {},\r\n duration: 400,\r\n start: noop,\r\n complete: noop,\r\n easing: \"ease\",\r\n delay: 0\r\n};\r\nvar defaultCssConfig = {\r\n duration: 400,\r\n easing: \"ease\",\r\n delay: 0\r\n};\r\n\r\nfunction setupAnimationOnElement() {\r\n var $element = this.element;\r\n var config = this.config;\r\n setupPosition($element, config.from);\r\n setupPosition($element, config.to);\r\n this.configurator.setup($element, config);\r\n $element.data(ANIM_DATA_KEY, this);\r\n if (fx.off) {\r\n config.duration = 0;\r\n config.delay = 0\r\n }\r\n this.strategy.initAnimation($element, config);\r\n if (config.start) {\r\n var element = getPublicElement($element);\r\n config.start.apply(this, [element, config])\r\n }\r\n}\r\nvar onElementAnimationComplete = function(animation) {\r\n var $element = animation.element;\r\n var config = animation.config;\r\n $element.removeData(ANIM_DATA_KEY);\r\n if (config.complete) {\r\n var element = getPublicElement($element);\r\n config.complete.apply(this, [element, config])\r\n }\r\n animation.deferred.resolveWith(this, [$element, config])\r\n};\r\nvar startAnimationOnElement = function() {\r\n var animation = this;\r\n var $element = animation.element;\r\n var config = animation.config;\r\n animation.isStarted = true;\r\n return animation.strategy.animate($element, config).done((function() {\r\n onElementAnimationComplete(animation)\r\n })).fail((function() {\r\n animation.deferred.rejectWith(this, [$element, config])\r\n }))\r\n};\r\nvar stopAnimationOnElement = function(jumpToEnd) {\r\n var $element = this.element;\r\n var config = this.config;\r\n clearTimeout(this.startTimeout);\r\n if (!this.isStarted) {\r\n this.start()\r\n }\r\n this.strategy.stop($element, config, jumpToEnd)\r\n};\r\nvar scopedRemoveEvent = addNamespace(removeEvent, \"dxFXStartAnimation\");\r\nvar subscribeToRemoveEvent = function(animation) {\r\n eventsEngine.off(animation.element, scopedRemoveEvent);\r\n eventsEngine.on(animation.element, scopedRemoveEvent, (function() {\r\n fx.stop(animation.element)\r\n }));\r\n animation.deferred.always((function() {\r\n eventsEngine.off(animation.element, scopedRemoveEvent)\r\n }))\r\n};\r\nvar createAnimation = function(element, initialConfig) {\r\n var defaultConfig = \"css\" === initialConfig.type ? defaultCssConfig : defaultJSConfig;\r\n var config = extend(true, {}, defaultConfig, initialConfig);\r\n var configurator = getAnimationConfigurator(config);\r\n var strategy = getAnimationStrategy(config);\r\n var animation = {\r\n element: $(element),\r\n config: config,\r\n configurator: configurator,\r\n strategy: strategy,\r\n isSynchronous: strategy.isSynchronous,\r\n setup: setupAnimationOnElement,\r\n start: startAnimationOnElement,\r\n stop: stopAnimationOnElement,\r\n deferred: new Deferred\r\n };\r\n if (isFunction(configurator.validateConfig)) {\r\n configurator.validateConfig(config)\r\n }\r\n subscribeToRemoveEvent(animation);\r\n return animation\r\n};\r\nvar animate = function(element, config) {\r\n var $element = $(element);\r\n if (!$element.length) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n var animation = createAnimation($element, config);\r\n pushInAnimationQueue($element, animation);\r\n return animation.deferred.promise()\r\n};\r\n\r\nfunction pushInAnimationQueue($element, animation) {\r\n var queueData = getAnimQueueData($element);\r\n writeAnimQueueData($element, queueData);\r\n queueData.push(animation);\r\n if (!isAnimating($element)) {\r\n shiftFromAnimationQueue($element, queueData)\r\n }\r\n}\r\n\r\nfunction getAnimQueueData($element) {\r\n return $element.data(ANIM_QUEUE_KEY) || []\r\n}\r\n\r\nfunction writeAnimQueueData($element, queueData) {\r\n $element.data(ANIM_QUEUE_KEY, queueData)\r\n}\r\nvar destroyAnimQueueData = function($element) {\r\n $element.removeData(ANIM_QUEUE_KEY)\r\n};\r\n\r\nfunction isAnimating($element) {\r\n return !!$element.data(ANIM_DATA_KEY)\r\n}\r\n\r\nfunction shiftFromAnimationQueue($element, queueData) {\r\n queueData = getAnimQueueData($element);\r\n if (!queueData.length) {\r\n return\r\n }\r\n var animation = queueData.shift();\r\n if (0 === queueData.length) {\r\n destroyAnimQueueData($element)\r\n }\r\n executeAnimation(animation).done((function() {\r\n if (!isAnimating($element)) {\r\n shiftFromAnimationQueue($element)\r\n }\r\n }))\r\n}\r\n\r\nfunction executeAnimation(animation) {\r\n animation.setup();\r\n if (fx.off || animation.isSynchronous) {\r\n animation.start()\r\n } else {\r\n animation.startTimeout = setTimeout((function() {\r\n animation.start()\r\n }))\r\n }\r\n return animation.deferred.promise()\r\n}\r\n\r\nfunction setupPosition($element, config) {\r\n if (!config || !config.position) {\r\n return\r\n }\r\n var win = $(window);\r\n var left = 0;\r\n var top = 0;\r\n var position = positionUtils.calculate($element, config.position);\r\n var offset = $element.offset();\r\n var currentPosition = $element.position();\r\n if (currentPosition.top > offset.top) {\r\n top = win.scrollTop()\r\n }\r\n if (currentPosition.left > offset.left) {\r\n left = win.scrollLeft()\r\n }\r\n extend(config, {\r\n left: position.h.location - offset.left + currentPosition.left - left,\r\n top: position.v.location - offset.top + currentPosition.top - top\r\n });\r\n delete config.position\r\n}\r\n\r\nfunction setProps($element, props) {\r\n each(props, (function(key, value) {\r\n try {\r\n $element.css(key, isFunction(value) ? value() : value)\r\n } catch (e) {}\r\n }))\r\n}\r\nvar stop = function(element, jumpToEnd) {\r\n var $element = $(element);\r\n var queueData = getAnimQueueData($element);\r\n each(queueData, (function(_, animation) {\r\n animation.config.delay = 0;\r\n animation.config.duration = 0;\r\n animation.isSynchronous = true\r\n }));\r\n if (!isAnimating($element)) {\r\n shiftFromAnimationQueue($element, queueData)\r\n }\r\n var animation = $element.data(ANIM_DATA_KEY);\r\n if (animation) {\r\n animation.stop(jumpToEnd)\r\n }\r\n $element.removeData(ANIM_DATA_KEY);\r\n destroyAnimQueueData($element)\r\n};\r\nvar fx = {\r\n off: false,\r\n animationTypes: animationConfigurators,\r\n animate: animate,\r\n createAnimation: createAnimation,\r\n isAnimating: isAnimating,\r\n stop: stop,\r\n _simulatedTransitionEndDelay: 100\r\n};\r\nexport default fx;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/selection/m_selection.strategy.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n equalByValue,\r\n getKeyHash,\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n isObject,\r\n isPlainObject\r\n} from \"../../../core/utils/type\";\r\nimport dataQuery from \"../../../data/query\";\r\nexport default class SelectionStrategy {\r\n constructor(options) {\r\n this.options = options;\r\n this._setOption(\"disabledItemKeys\", []);\r\n this._clearItemKeys()\r\n }\r\n _clearItemKeys() {\r\n this._setOption(\"addedItemKeys\", []);\r\n this._setOption(\"removedItemKeys\", []);\r\n this._setOption(\"removedItems\", []);\r\n this._setOption(\"addedItems\", [])\r\n }\r\n validate() {}\r\n _setOption(name, value) {\r\n this.options[name] = value\r\n }\r\n onSelectionChanged() {\r\n var {\r\n addedItemKeys: addedItemKeys\r\n } = this.options;\r\n var {\r\n removedItemKeys: removedItemKeys\r\n } = this.options;\r\n var {\r\n addedItems: addedItems\r\n } = this.options;\r\n var {\r\n removedItems: removedItems\r\n } = this.options;\r\n var {\r\n selectedItems: selectedItems\r\n } = this.options;\r\n var {\r\n selectedItemKeys: selectedItemKeys\r\n } = this.options;\r\n var onSelectionChanged = this.options.onSelectionChanged || noop;\r\n this._clearItemKeys();\r\n onSelectionChanged({\r\n selectedItems: selectedItems,\r\n selectedItemKeys: selectedItemKeys,\r\n addedItemKeys: addedItemKeys,\r\n removedItemKeys: removedItemKeys,\r\n addedItems: addedItems,\r\n removedItems: removedItems\r\n })\r\n }\r\n equalKeys(key1, key2) {\r\n if (this.options.equalByReference) {\r\n if (isObject(key1) && isObject(key2)) {\r\n return key1 === key2\r\n }\r\n }\r\n return equalByValue(key1, key2)\r\n }\r\n getSelectableItems(items) {\r\n return items.filter(item => !(null === item || void 0 === item ? void 0 : item.disabled))\r\n }\r\n _clearSelection(keys, preserve, isDeselect, isSelectAll) {\r\n keys = keys || [];\r\n keys = Array.isArray(keys) ? keys : [keys];\r\n this.validate();\r\n return this.selectedItemKeys(keys, preserve, isDeselect, isSelectAll)\r\n }\r\n _removeTemplateProperty(remoteFilter) {\r\n if (Array.isArray(remoteFilter)) {\r\n return remoteFilter.map(f => this._removeTemplateProperty(f))\r\n }\r\n if (isObject(remoteFilter)) {\r\n delete remoteFilter.template\r\n }\r\n return remoteFilter\r\n }\r\n _loadFilteredData(remoteFilter, localFilter, select, isSelectAll) {\r\n var filterLength = encodeURI(JSON.stringify(this._removeTemplateProperty(remoteFilter))).length;\r\n var needLoadAllData = this.options.maxFilterLengthInRequest && filterLength > this.options.maxFilterLengthInRequest;\r\n var deferred = Deferred();\r\n var loadOptions = {\r\n filter: needLoadAllData ? void 0 : remoteFilter,\r\n select: needLoadAllData ? this.options.dataFields() : select || this.options.dataFields()\r\n };\r\n if (remoteFilter && 0 === remoteFilter.length) {\r\n deferred.resolve([])\r\n } else {\r\n this.options.load(loadOptions).done(items => {\r\n var filteredItems = isPlainObject(items) ? items.data : items;\r\n if (localFilter && !isSelectAll) {\r\n filteredItems = filteredItems.filter(localFilter)\r\n } else if (needLoadAllData) {\r\n filteredItems = dataQuery(filteredItems).filter(remoteFilter).toArray()\r\n }\r\n deferred.resolve(filteredItems)\r\n }).fail(deferred.reject.bind(deferred))\r\n }\r\n return deferred\r\n }\r\n updateSelectedItemKeyHash(keys) {\r\n for (var i = 0; i < keys.length; i++) {\r\n var keyHash = getKeyHash(keys[i]);\r\n if (!isObject(keyHash)) {\r\n this.options.keyHashIndices[keyHash] = this.options.keyHashIndices[keyHash] || [];\r\n var keyIndices = this.options.keyHashIndices[keyHash];\r\n keyIndices.push(i)\r\n }\r\n }\r\n }\r\n _isAnyItemSelected(items) {\r\n for (var i = 0; i < items.length; i++) {\r\n if (this.options.isItemSelected(items[i])) {\r\n return\r\n }\r\n }\r\n return false\r\n }\r\n _getFullSelectAllState() {\r\n var items = this.options.plainItems();\r\n var dataFilter = this.options.filter();\r\n var selectedItems = this.options.ignoreDisabledItems ? this.options.selectedItems : this.options.selectedItems.filter(item => !(null === item || void 0 === item ? void 0 : item.disabled));\r\n if (dataFilter) {\r\n selectedItems = dataQuery(selectedItems).filter(dataFilter).toArray()\r\n }\r\n var selectedItemsLength = selectedItems.length;\r\n var disabledItemsLength = items.length - this.getSelectableItems(items).length;\r\n if (!selectedItemsLength) {\r\n return this._isAnyItemSelected(items)\r\n }\r\n if (selectedItemsLength >= this.options.totalCount() - disabledItemsLength) {\r\n return true\r\n }\r\n return\r\n }\r\n _getVisibleSelectAllState() {\r\n var items = this.getSelectableItems(this.options.plainItems());\r\n var hasSelectedItems = false;\r\n var hasUnselectedItems = false;\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var itemData = this.options.getItemData(item);\r\n var key = this.options.keyOf(itemData);\r\n if (this.options.isSelectableItem(item)) {\r\n if (this.isItemKeySelected(key)) {\r\n hasSelectedItems = true\r\n } else {\r\n hasUnselectedItems = true\r\n }\r\n }\r\n }\r\n if (hasSelectedItems) {\r\n return !hasUnselectedItems ? true : void 0\r\n }\r\n return false\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/selection/m_selection.strategy.deferred.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n Deferred\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n isString\r\n} from \"../../../core/utils/type\";\r\nimport dataQuery from \"../../../data/query\";\r\nimport errors from \"../../../ui/widget/ui.errors\";\r\nimport SelectionStrategy from \"./m_selection.strategy\";\r\nexport default class DeferredStrategy extends SelectionStrategy {\r\n getSelectedItems() {\r\n return this._loadFilteredData(this.options.selectionFilter)\r\n }\r\n getSelectedItemKeys() {\r\n var d = Deferred();\r\n var that = this;\r\n var key = this.options.key();\r\n var select = isString(key) ? [key] : key;\r\n this._loadFilteredData(this.options.selectionFilter, null, select).done(items => {\r\n var keys = items.map(item => that.options.keyOf(item));\r\n d.resolve(keys)\r\n }).fail(d.reject);\r\n return d.promise()\r\n }\r\n selectedItemKeys(keys, preserve, isDeselect, isSelectAll) {\r\n if (isSelectAll) {\r\n var filter = this.options.filter();\r\n var needResetSelectionFilter = !filter || JSON.stringify(filter) === JSON.stringify(this.options.selectionFilter) && isDeselect;\r\n if (needResetSelectionFilter) {\r\n this._setOption(\"selectionFilter\", isDeselect ? [] : null)\r\n } else {\r\n this._addSelectionFilter(isDeselect, filter, isSelectAll)\r\n }\r\n } else {\r\n if (!preserve) {\r\n this._setOption(\"selectionFilter\", [])\r\n }\r\n for (var i = 0; i < keys.length; i++) {\r\n if (isDeselect) {\r\n this.removeSelectedItem(keys[i])\r\n } else {\r\n this.addSelectedItem(keys[i], isSelectAll, !preserve)\r\n }\r\n }\r\n }\r\n this.onSelectionChanged();\r\n return Deferred().resolve()\r\n }\r\n setSelectedItems(keys) {\r\n this._setOption(\"selectionFilter\", null);\r\n for (var i = 0; i < keys.length; i++) {\r\n this.addSelectedItem(keys[i])\r\n }\r\n }\r\n isItemDataSelected(itemData) {\r\n return this.isItemKeySelected(itemData)\r\n }\r\n isItemKeySelected(itemData) {\r\n var {\r\n selectionFilter: selectionFilter\r\n } = this.options;\r\n if (!selectionFilter) {\r\n return true\r\n }\r\n return !!dataQuery([itemData]).filter(selectionFilter).toArray().length\r\n }\r\n _getKeyExpr() {\r\n var keyField = this.options.key();\r\n if (Array.isArray(keyField) && 1 === keyField.length) {\r\n return keyField[0]\r\n }\r\n return keyField\r\n }\r\n _normalizeKey(key) {\r\n var keyExpr = this.options.key();\r\n if (Array.isArray(keyExpr) && 1 === keyExpr.length) {\r\n return key[keyExpr[0]]\r\n }\r\n return key\r\n }\r\n _getFilterByKey(key) {\r\n var keyField = this._getKeyExpr();\r\n var filter = [keyField, \"=\", this._normalizeKey(key)];\r\n if (Array.isArray(keyField)) {\r\n filter = [];\r\n for (var i = 0; i < keyField.length; i++) {\r\n filter.push([keyField[i], \"=\", key[keyField[i]]]);\r\n if (i !== keyField.length - 1) {\r\n filter.push(\"and\")\r\n }\r\n }\r\n }\r\n return filter\r\n }\r\n addSelectedItem(key, isSelectAll, skipFilter) {\r\n var filter = this._getFilterByKey(key);\r\n this._addSelectionFilter(false, filter, isSelectAll, skipFilter)\r\n }\r\n removeSelectedItem(key) {\r\n var filter = this._getFilterByKey(key);\r\n this._addSelectionFilter(true, filter)\r\n }\r\n validate() {\r\n var {\r\n key: key\r\n } = this.options;\r\n if (key && void 0 === key()) {\r\n throw errors.Error(\"E1042\", \"Deferred selection\")\r\n }\r\n }\r\n _findSubFilter(selectionFilter, filter) {\r\n if (!selectionFilter) {\r\n return -1\r\n }\r\n var filterString = JSON.stringify(filter);\r\n for (var index = 0; index < selectionFilter.length; index++) {\r\n var subFilter = selectionFilter[index];\r\n if (subFilter && JSON.stringify(subFilter) === filterString) {\r\n return index\r\n }\r\n }\r\n return -1\r\n }\r\n _isLastSubFilter(selectionFilter, filter) {\r\n if (selectionFilter && filter) {\r\n return this._findSubFilter(selectionFilter, filter) === selectionFilter.length - 1 || 0 === this._findSubFilter([selectionFilter], filter)\r\n }\r\n return false\r\n }\r\n _addFilterOperator(selectionFilter, filterOperator) {\r\n if (selectionFilter.length > 1 && isString(selectionFilter[1]) && selectionFilter[1] !== filterOperator) {\r\n selectionFilter = [selectionFilter]\r\n }\r\n if (selectionFilter.length) {\r\n selectionFilter.push(filterOperator)\r\n }\r\n return selectionFilter\r\n }\r\n _denormalizeFilter(filter) {\r\n if (filter && isString(filter[0])) {\r\n filter = [filter]\r\n }\r\n return filter\r\n }\r\n _isOnlyNegativeFiltersLeft(filters) {\r\n return filters.every((filterItem, i) => {\r\n if (i % 2 === 0) {\r\n return Array.isArray(filterItem) && \"!\" === filterItem[0]\r\n }\r\n return \"and\" === filterItem\r\n })\r\n }\r\n _addSelectionFilter(isDeselect, filter, isSelectAll, skipFilter) {\r\n var currentFilter = isDeselect ? [\"!\", filter] : filter;\r\n var currentOperation = isDeselect ? \"and\" : \"or\";\r\n var needAddFilter = true;\r\n var selectionFilter = this.options.selectionFilter || [];\r\n selectionFilter = this._denormalizeFilter(selectionFilter);\r\n if ((null === selectionFilter || void 0 === selectionFilter ? void 0 : selectionFilter.length) && !skipFilter) {\r\n var removedIndex = this._removeSameFilter(selectionFilter, filter, isDeselect, isSelectAll);\r\n var filterIndex = this._removeSameFilter(selectionFilter, filter, !isDeselect);\r\n var shouldCleanFilter = isDeselect && (-1 !== removedIndex || -1 !== filterIndex) && this._isOnlyNegativeFiltersLeft(selectionFilter);\r\n if (shouldCleanFilter) {\r\n selectionFilter = []\r\n }\r\n var isKeyOperatorsAfterRemoved = this._isKeyFilter(filter) && this._hasKeyFiltersOnlyStartingFromIndex(selectionFilter, filterIndex);\r\n needAddFilter = filter.length && !isKeyOperatorsAfterRemoved\r\n }\r\n if (needAddFilter) {\r\n selectionFilter = this._addFilterOperator(selectionFilter, currentOperation);\r\n selectionFilter.push(currentFilter)\r\n }\r\n selectionFilter = this._normalizeFilter(selectionFilter);\r\n this._setOption(\"selectionFilter\", !isDeselect && !selectionFilter.length ? null : selectionFilter)\r\n }\r\n _normalizeFilter(filter) {\r\n if (filter && 1 === filter.length) {\r\n filter = filter[0]\r\n }\r\n return filter\r\n }\r\n _removeFilterByIndex(filter, filterIndex, isSelectAll) {\r\n var operation = filter[1];\r\n if (filterIndex > 0) {\r\n filter.splice(filterIndex - 1, 2)\r\n } else {\r\n filter.splice(filterIndex, 2)\r\n }\r\n if (isSelectAll && \"and\" === operation) {\r\n filter.splice(0, filter.length)\r\n }\r\n }\r\n _isSimpleKeyFilter(filter, key) {\r\n return 3 === filter.length && filter[0] === key && \"=\" === filter[1]\r\n }\r\n _isKeyFilter(filter) {\r\n if (2 === filter.length && \"!\" === filter[0]) {\r\n return this._isKeyFilter(filter[1])\r\n }\r\n var keyField = this._getKeyExpr();\r\n if (Array.isArray(keyField)) {\r\n if (filter.length !== 2 * keyField.length - 1) {\r\n return false\r\n }\r\n for (var i = 0; i < keyField.length; i++) {\r\n if (i > 0 && \"and\" !== filter[2 * i - 1]) {\r\n return false\r\n }\r\n if (!this._isSimpleKeyFilter(filter[2 * i], keyField[i])) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return this._isSimpleKeyFilter(filter, keyField)\r\n }\r\n _hasKeyFiltersOnlyStartingFromIndex(selectionFilter, filterIndex) {\r\n if (filterIndex >= 0) {\r\n for (var i = filterIndex; i < selectionFilter.length; i++) {\r\n if (\"string\" !== typeof selectionFilter[i] && !this._isKeyFilter(selectionFilter[i])) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return false\r\n }\r\n _removeSameFilter(selectionFilter, filter, inverted, isSelectAll) {\r\n filter = inverted ? [\"!\", filter] : filter;\r\n if (JSON.stringify(filter) === JSON.stringify(selectionFilter)) {\r\n selectionFilter.splice(0, selectionFilter.length);\r\n return 0\r\n }\r\n var filterIndex = this._findSubFilter(selectionFilter, filter);\r\n if (filterIndex >= 0) {\r\n this._removeFilterByIndex(selectionFilter, filterIndex, isSelectAll);\r\n return filterIndex\r\n }\r\n for (var i = 0; i < selectionFilter.length; i++) {\r\n if (Array.isArray(selectionFilter[i]) && selectionFilter[i].length > 2) {\r\n var _filterIndex = this._removeSameFilter(selectionFilter[i], filter, false, isSelectAll);\r\n if (_filterIndex >= 0) {\r\n if (!selectionFilter[i].length) {\r\n this._removeFilterByIndex(selectionFilter, i, isSelectAll)\r\n } else if (1 === selectionFilter[i].length) {\r\n selectionFilter[i] = selectionFilter[i][0]\r\n }\r\n return _filterIndex\r\n }\r\n }\r\n }\r\n return -1\r\n }\r\n getSelectAllState() {\r\n var filter = this.options.filter();\r\n var {\r\n selectionFilter: selectionFilter\r\n } = this.options;\r\n if (!selectionFilter) {\r\n return true\r\n }\r\n if (!selectionFilter.length) {\r\n return false\r\n }\r\n if (!filter || !filter.length) {\r\n return\r\n }\r\n selectionFilter = this._denormalizeFilter(selectionFilter);\r\n if (this._isLastSubFilter(selectionFilter, filter)) {\r\n return true\r\n }\r\n if (this._isLastSubFilter(selectionFilter, [\"!\", filter])) {\r\n return false\r\n }\r\n return\r\n }\r\n loadSelectedItemsWithFilter() {\r\n var componentFilter = this.options.filter();\r\n var {\r\n selectionFilter: selectionFilter\r\n } = this.options;\r\n var filter = componentFilter ? [componentFilter, \"and\", selectionFilter] : selectionFilter;\r\n return this._loadFilteredData(filter)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/array_compare.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isObject\r\n} from \"./type\";\r\nvar getKeyWrapper = function(item, getKey) {\r\n var key = getKey(item);\r\n if (isObject(key)) {\r\n try {\r\n return JSON.stringify(key)\r\n } catch (e) {\r\n return key\r\n }\r\n }\r\n return key\r\n};\r\nvar getSameNewByOld = function(oldItem, newItems, newIndexByKey, getKey) {\r\n var key = getKeyWrapper(oldItem, getKey);\r\n return newItems[newIndexByKey[key]]\r\n};\r\nexport var isKeysEqual = function(oldKeys, newKeys) {\r\n if (oldKeys.length !== newKeys.length) {\r\n return false\r\n }\r\n for (var i = 0; i < newKeys.length; i++) {\r\n if (oldKeys[i] !== newKeys[i]) {\r\n return false\r\n }\r\n }\r\n return true\r\n};\r\nexport var findChanges = function(oldItems, newItems, getKey, isItemEquals) {\r\n var oldIndexByKey = {};\r\n var newIndexByKey = {};\r\n var addedCount = 0;\r\n var removeCount = 0;\r\n var result = [];\r\n oldItems.forEach((function(item, index) {\r\n var key = getKeyWrapper(item, getKey);\r\n oldIndexByKey[key] = index\r\n }));\r\n newItems.forEach((function(item, index) {\r\n var key = getKeyWrapper(item, getKey);\r\n newIndexByKey[key] = index\r\n }));\r\n var itemCount = Math.max(oldItems.length, newItems.length);\r\n for (var index = 0; index < itemCount + addedCount; index++) {\r\n var newItem = newItems[index];\r\n var oldNextIndex = index - addedCount + removeCount;\r\n var nextOldItem = oldItems[oldNextIndex];\r\n var isRemoved = !newItem || nextOldItem && !getSameNewByOld(nextOldItem, newItems, newIndexByKey, getKey);\r\n if (isRemoved) {\r\n if (nextOldItem) {\r\n result.push({\r\n type: \"remove\",\r\n key: getKey(nextOldItem),\r\n index: index,\r\n oldItem: nextOldItem\r\n });\r\n removeCount++;\r\n index--\r\n }\r\n } else {\r\n var key = getKeyWrapper(newItem, getKey);\r\n var oldIndex = oldIndexByKey[key];\r\n var oldItem = oldItems[oldIndex];\r\n if (!oldItem) {\r\n addedCount++;\r\n result.push({\r\n type: \"insert\",\r\n data: newItem,\r\n index: index\r\n })\r\n } else if (oldIndex === oldNextIndex) {\r\n if (!isItemEquals(oldItem, newItem)) {\r\n result.push({\r\n type: \"update\",\r\n data: newItem,\r\n key: getKey(newItem),\r\n index: index,\r\n oldItem: oldItem\r\n })\r\n }\r\n } else {\r\n return\r\n }\r\n }\r\n }\r\n return result\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/selection_filter.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getKeyHash,\r\n equalByValue\r\n} from \"./common\";\r\nimport {\r\n isString,\r\n isObject\r\n} from \"./type\";\r\nimport {\r\n compileGetter\r\n} from \"./data\";\r\nexport var SelectionFilterCreator = function(selectedItemKeys, isSelectAll) {\r\n this.getLocalFilter = function(keyGetter, equalKeys, equalByReference, keyExpr) {\r\n equalKeys = void 0 === equalKeys ? equalByValue : equalKeys;\r\n return functionFilter.bind(this, equalKeys, keyGetter, equalByReference, keyExpr)\r\n };\r\n this.getExpr = function(keyExpr) {\r\n if (!keyExpr) {\r\n return\r\n }\r\n var filterExpr;\r\n selectedItemKeys.forEach((function(key, index) {\r\n filterExpr = filterExpr || [];\r\n var filterExprPart;\r\n if (index > 0) {\r\n filterExpr.push(isSelectAll ? \"and\" : \"or\")\r\n }\r\n if (isString(keyExpr)) {\r\n filterExprPart = getFilterForPlainKey(keyExpr, key)\r\n } else {\r\n filterExprPart = function(keyExpr, itemKeyValue) {\r\n var filterExpr = [];\r\n for (var i = 0, length = keyExpr.length; i < length; i++) {\r\n var currentKeyExpr = keyExpr[i];\r\n var keyValueGetter = compileGetter(currentKeyExpr);\r\n var currentKeyValue = itemKeyValue && keyValueGetter(itemKeyValue);\r\n var filterExprPart = getFilterForPlainKey(currentKeyExpr, currentKeyValue);\r\n if (!filterExprPart) {\r\n break\r\n }\r\n if (i > 0) {\r\n filterExpr.push(isSelectAll ? \"or\" : \"and\")\r\n }\r\n filterExpr.push(filterExprPart)\r\n }\r\n return filterExpr\r\n }(keyExpr, key)\r\n }\r\n filterExpr.push(filterExprPart)\r\n }));\r\n if (filterExpr && 1 === filterExpr.length) {\r\n filterExpr = filterExpr[0]\r\n }\r\n return filterExpr\r\n };\r\n this.getCombinedFilter = function(keyExpr, dataSourceFilter) {\r\n var forceCombinedFilter = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : false;\r\n var filterExpr = this.getExpr(keyExpr);\r\n var combinedFilter = filterExpr;\r\n if ((forceCombinedFilter || isSelectAll) && dataSourceFilter) {\r\n if (filterExpr) {\r\n combinedFilter = [];\r\n combinedFilter.push(filterExpr);\r\n combinedFilter.push(dataSourceFilter)\r\n } else {\r\n combinedFilter = dataSourceFilter\r\n }\r\n }\r\n return combinedFilter\r\n };\r\n var selectedItemKeyHashesMap;\r\n var normalizeKeys = function(keys, keyOf, keyExpr) {\r\n return Array.isArray(keyExpr) ? keys.map(key => keyOf(key)) : keys\r\n };\r\n\r\n function functionFilter(equalKeys, keyOf, equalByReference, keyExpr, item) {\r\n var key = keyOf(item);\r\n var keyHash;\r\n var i;\r\n if (!equalByReference) {\r\n keyHash = getKeyHash(key);\r\n if (!isObject(keyHash)) {\r\n var selectedKeyHashesMap = function(keyOf, keyExpr) {\r\n if (!selectedItemKeyHashesMap) {\r\n selectedItemKeyHashesMap = {};\r\n var normalizedKeys = normalizeKeys(selectedItemKeys, keyOf, keyExpr);\r\n for (var i = 0; i < normalizedKeys.length; i++) {\r\n selectedItemKeyHashesMap[getKeyHash(normalizedKeys[i])] = true\r\n }\r\n }\r\n return selectedItemKeyHashesMap\r\n }(keyOf, keyExpr);\r\n if (selectedKeyHashesMap[keyHash]) {\r\n return !isSelectAll\r\n }\r\n return !!isSelectAll\r\n }\r\n }\r\n for (i = 0; i < selectedItemKeys.length; i++) {\r\n if (equalKeys(selectedItemKeys[i], key)) {\r\n return !isSelectAll\r\n }\r\n }\r\n return !!isSelectAll\r\n }\r\n\r\n function getFilterForPlainKey(keyExpr, keyValue) {\r\n if (void 0 === keyValue) {\r\n return\r\n }\r\n return [keyExpr, isSelectAll ? \"<>\" : \"=\", keyValue]\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/ui/selection/m_selection.strategy.standard.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getUniqueValues,\r\n removeDuplicates\r\n} from \"../../../core/utils/array\";\r\nimport {\r\n isKeysEqual\r\n} from \"../../../core/utils/array_compare\";\r\nimport {\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 SelectionFilterCreator\r\n} from \"../../../core/utils/selection_filter\";\r\nimport {\r\n isDefined,\r\n isObject\r\n} from \"../../../core/utils/type\";\r\nimport dataQuery from \"../../../data/query\";\r\nimport errors from \"../../../ui/widget/ui.errors\";\r\nimport SelectionStrategy from \"./m_selection.strategy\";\r\nexport default class StandardStrategy extends SelectionStrategy {\r\n constructor(options) {\r\n super(options);\r\n this._initSelectedItemKeyHash()\r\n }\r\n _initSelectedItemKeyHash() {\r\n this._setOption(\"keyHashIndices\", this.options.equalByReference ? null : {})\r\n }\r\n getSelectedItemKeys() {\r\n return this.options.selectedItemKeys.slice(0)\r\n }\r\n getSelectedItems() {\r\n return this.options.selectedItems.slice(0)\r\n }\r\n _preserveSelectionUpdate(items, isDeselect) {\r\n var {\r\n keyOf: keyOf\r\n } = this.options;\r\n var keyIndicesToRemoveMap;\r\n var keyIndex;\r\n var i;\r\n if (!keyOf) {\r\n return\r\n }\r\n var isBatchDeselect = isDeselect && items.length > 1 && !this.options.equalByReference;\r\n if (isBatchDeselect) {\r\n keyIndicesToRemoveMap = {}\r\n }\r\n for (i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var key = keyOf(item);\r\n if (isDeselect) {\r\n keyIndex = this.removeSelectedItem(key, keyIndicesToRemoveMap, null === item || void 0 === item ? void 0 : item.disabled);\r\n if (keyIndicesToRemoveMap && keyIndex >= 0) {\r\n keyIndicesToRemoveMap[keyIndex] = true\r\n }\r\n } else {\r\n this.addSelectedItem(key, item)\r\n }\r\n }\r\n if (isBatchDeselect) {\r\n this._batchRemoveSelectedItems(keyIndicesToRemoveMap)\r\n }\r\n }\r\n _batchRemoveSelectedItems(keyIndicesToRemoveMap) {\r\n var selectedItemKeys = this.options.selectedItemKeys.slice(0);\r\n var selectedItems = this.options.selectedItems.slice(0);\r\n this.options.selectedItemKeys.length = 0;\r\n this.options.selectedItems.length = 0;\r\n for (var i = 0; i < selectedItemKeys.length; i++) {\r\n if (!keyIndicesToRemoveMap[i]) {\r\n this.options.selectedItemKeys.push(selectedItemKeys[i]);\r\n this.options.selectedItems.push(selectedItems[i])\r\n }\r\n }\r\n this._initSelectedItemKeyHash();\r\n this.updateSelectedItemKeyHash(this.options.selectedItemKeys)\r\n }\r\n _loadSelectedItemsCore(keys, isDeselect, isSelectAll, filter) {\r\n var forceCombinedFilter = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : false;\r\n var deferred = Deferred();\r\n var key = this.options.key();\r\n if (!keys.length && !isSelectAll) {\r\n deferred.resolve([]);\r\n return deferred\r\n }\r\n if (isSelectAll && isDeselect && !filter) {\r\n deferred.resolve(this.getSelectedItems());\r\n return deferred\r\n }\r\n var selectionFilterCreator = new SelectionFilterCreator(keys, isSelectAll);\r\n var combinedFilter = selectionFilterCreator.getCombinedFilter(key, filter, forceCombinedFilter);\r\n var deselectedItems = [];\r\n if (isDeselect) {\r\n var {\r\n selectedItems: selectedItems\r\n } = this.options;\r\n deselectedItems = combinedFilter && keys.length !== selectedItems.length ? dataQuery(selectedItems).filter(combinedFilter).toArray() : selectedItems.slice(0)\r\n }\r\n var filteredItems = deselectedItems.length ? deselectedItems : this.options.plainItems(true).filter(this.options.isSelectableItem).map(this.options.getItemData);\r\n var localFilter = selectionFilterCreator.getLocalFilter(this.options.keyOf, this.equalKeys.bind(this), this.options.equalByReference, key);\r\n filteredItems = filteredItems.filter(localFilter);\r\n if (deselectedItems.length || !isSelectAll && filteredItems.length === keys.length) {\r\n deferred.resolve(filteredItems)\r\n } else {\r\n deferred = this._loadFilteredData(combinedFilter, localFilter, null, isSelectAll)\r\n }\r\n return deferred\r\n }\r\n _replaceSelectionUpdate(items) {\r\n var internalKeys = [];\r\n var {\r\n keyOf: keyOf\r\n } = this.options;\r\n if (!keyOf) {\r\n return\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var key = keyOf(item);\r\n internalKeys.push(key)\r\n }\r\n this.setSelectedItems(internalKeys, items)\r\n }\r\n _warnOnIncorrectKeys(keys) {\r\n var {\r\n allowNullValue: allowNullValue\r\n } = this.options;\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i];\r\n if ((!allowNullValue || null !== key) && !this.isItemKeySelected(key)) {\r\n errors.log(\"W1002\", key)\r\n }\r\n }\r\n }\r\n _isMultiSelectEnabled() {\r\n var {\r\n mode: mode\r\n } = this.options;\r\n return \"all\" === mode || \"multiple\" === mode\r\n }\r\n _requestInProgress() {\r\n var _a;\r\n return \"pending\" === (null === (_a = this._lastLoadDeferred) || void 0 === _a ? void 0 : _a.state())\r\n }\r\n _concatRequestsItems(keys, isDeselect, oldRequestItems, updatedKeys) {\r\n var selectedItems;\r\n var deselectedItems = isDeselect ? keys : [];\r\n if (updatedKeys) {\r\n selectedItems = updatedKeys\r\n } else {\r\n selectedItems = removeDuplicates(keys, this.options.selectedItemKeys)\r\n }\r\n return {\r\n addedItems: oldRequestItems.added.concat(selectedItems),\r\n removedItems: oldRequestItems.removed.concat(deselectedItems),\r\n keys: keys\r\n }\r\n }\r\n _collectLastRequestData(keys, isDeselect, isSelectAll, updatedKeys) {\r\n var isDeselectAll = isDeselect && isSelectAll;\r\n var oldRequestItems = {\r\n added: [],\r\n removed: []\r\n };\r\n var multiSelectEnabled = this._isMultiSelectEnabled();\r\n var lastRequestData = multiSelectEnabled ? this._lastRequestData : {};\r\n if (multiSelectEnabled) {\r\n if (this._shouldMergeWithLastRequest) {\r\n if (isDeselectAll) {\r\n this._lastLoadDeferred.reject();\r\n lastRequestData = {}\r\n } else if (!isKeysEqual(keys, this.options.selectedItemKeys)) {\r\n oldRequestItems.added = lastRequestData.addedItems;\r\n oldRequestItems.removed = lastRequestData.removedItems;\r\n if (!isDeselect) {\r\n this._lastLoadDeferred.reject()\r\n }\r\n }\r\n }\r\n lastRequestData = this._concatRequestsItems(keys, isDeselect, oldRequestItems, this._shouldMergeWithLastRequest ? void 0 : updatedKeys)\r\n }\r\n return lastRequestData\r\n }\r\n _updateKeysByLastRequestData(keys, isDeselect, isSelectAll) {\r\n var _a, _b;\r\n var currentKeys = keys;\r\n if (this._isMultiSelectEnabled() && this._shouldMergeWithLastRequest && !isDeselect && !isSelectAll) {\r\n currentKeys = removeDuplicates(keys.concat(null === (_a = this._lastRequestData) || void 0 === _a ? void 0 : _a.addedItems), null === (_b = this._lastRequestData) || void 0 === _b ? void 0 : _b.removedItems);\r\n currentKeys = getUniqueValues(currentKeys)\r\n }\r\n return currentKeys\r\n }\r\n _loadSelectedItems(keys, isDeselect, isSelectAll, updatedKeys) {\r\n var forceCombinedFilter = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : false;\r\n var that = this;\r\n var deferred = Deferred();\r\n var filter = that.options.filter();\r\n this._shouldMergeWithLastRequest = this._requestInProgress();\r\n this._lastRequestData = this._collectLastRequestData(keys, isDeselect, isSelectAll, updatedKeys);\r\n when(that._lastLoadDeferred).always(() => {\r\n var currentKeys = that._updateKeysByLastRequestData(keys, isDeselect, isSelectAll);\r\n that._shouldMergeWithLastRequest = false;\r\n that._loadSelectedItemsCore(currentKeys, isDeselect, isSelectAll, filter, forceCombinedFilter).done(deferred.resolve).fail(deferred.reject)\r\n });\r\n that._lastLoadDeferred = deferred;\r\n return deferred\r\n }\r\n selectedItemKeys(keys, preserve, isDeselect, isSelectAll, updatedKeys) {\r\n var forceCombinedFilter = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : false;\r\n var that = this;\r\n var deferred = that._loadSelectedItems(keys, isDeselect, isSelectAll, updatedKeys, forceCombinedFilter);\r\n deferred.done(items => {\r\n if (preserve) {\r\n that._preserveSelectionUpdate(items, isDeselect)\r\n } else {\r\n that._replaceSelectionUpdate(items)\r\n }\r\n that.onSelectionChanged()\r\n });\r\n return deferred\r\n }\r\n addSelectedItem(key, itemData) {\r\n if (isDefined(itemData) && !this.options.ignoreDisabledItems && itemData.disabled) {\r\n if (-1 === this.options.disabledItemKeys.indexOf(key)) {\r\n this.options.disabledItemKeys.push(key)\r\n }\r\n return\r\n }\r\n var keyHash = this._getKeyHash(key);\r\n if (-1 === this._indexOfSelectedItemKey(keyHash)) {\r\n if (!isObject(keyHash) && this.options.keyHashIndices) {\r\n this.options.keyHashIndices[keyHash] = [this.options.selectedItemKeys.length]\r\n }\r\n this.options.selectedItemKeys.push(key);\r\n this.options.addedItemKeys.push(key);\r\n this.options.addedItems.push(itemData);\r\n this.options.selectedItems.push(itemData)\r\n }\r\n }\r\n _getSelectedIndexByKey(key, ignoreIndicesMap) {\r\n var {\r\n selectedItemKeys: selectedItemKeys\r\n } = this.options;\r\n for (var index = 0; index < selectedItemKeys.length; index++) {\r\n if ((!ignoreIndicesMap || !ignoreIndicesMap[index]) && this.equalKeys(selectedItemKeys[index], key)) {\r\n return index\r\n }\r\n }\r\n return -1\r\n }\r\n _getSelectedIndexByHash(key, ignoreIndicesMap) {\r\n var indices = this.options.keyHashIndices[key];\r\n if (indices && indices.length > 1 && ignoreIndicesMap) {\r\n indices = indices.filter(index => !ignoreIndicesMap[index])\r\n }\r\n return indices && indices[0] >= 0 ? indices[0] : -1\r\n }\r\n _indexOfSelectedItemKey(key, ignoreIndicesMap) {\r\n var selectedIndex;\r\n if (this.options.equalByReference) {\r\n selectedIndex = this.options.selectedItemKeys.indexOf(key)\r\n } else if (isObject(key)) {\r\n selectedIndex = this._getSelectedIndexByKey(key, ignoreIndicesMap)\r\n } else {\r\n selectedIndex = this._getSelectedIndexByHash(key, ignoreIndicesMap)\r\n }\r\n return selectedIndex\r\n }\r\n _shiftSelectedKeyIndices(keyIndex) {\r\n for (var currentKeyIndex = keyIndex; currentKeyIndex < this.options.selectedItemKeys.length; currentKeyIndex++) {\r\n var currentKey = this.options.selectedItemKeys[currentKeyIndex];\r\n var currentKeyHash = getKeyHash(currentKey);\r\n var currentKeyIndices = this.options.keyHashIndices[currentKeyHash];\r\n if (!currentKeyIndices) {\r\n continue\r\n }\r\n for (var i = 0; i < currentKeyIndices.length; i++) {\r\n if (currentKeyIndices[i] > keyIndex) {\r\n currentKeyIndices[i]--\r\n }\r\n }\r\n }\r\n }\r\n removeSelectedItem(key, keyIndicesToRemoveMap, isDisabled) {\r\n if (!this.options.ignoreDisabledItems && isDisabled) {\r\n return\r\n }\r\n var keyHash = this._getKeyHash(key);\r\n var isBatchDeselect = !!keyIndicesToRemoveMap;\r\n var keyIndex = this._indexOfSelectedItemKey(keyHash, keyIndicesToRemoveMap);\r\n if (keyIndex < 0) {\r\n return keyIndex\r\n }\r\n this.options.removedItemKeys.push(key);\r\n this.options.removedItems.push(this.options.selectedItems[keyIndex]);\r\n if (isBatchDeselect) {\r\n return keyIndex\r\n }\r\n this.options.selectedItemKeys.splice(keyIndex, 1);\r\n this.options.selectedItems.splice(keyIndex, 1);\r\n if (isObject(keyHash) || !this.options.keyHashIndices) {\r\n return keyIndex\r\n }\r\n var keyIndices = this.options.keyHashIndices[keyHash];\r\n if (!keyIndices) {\r\n return keyIndex\r\n }\r\n keyIndices.shift();\r\n if (!keyIndices.length) {\r\n delete this.options.keyHashIndices[keyHash]\r\n }\r\n this._shiftSelectedKeyIndices(keyIndex);\r\n return keyIndex\r\n }\r\n _updateAddedItemKeys(keys, items) {\r\n for (var i = 0; i < keys.length; i++) {\r\n if (!this.isItemKeySelected(keys[i])) {\r\n this.options.addedItemKeys.push(keys[i]);\r\n this.options.addedItems.push(items[i])\r\n }\r\n }\r\n }\r\n _updateRemovedItemKeys(keys, oldSelectedKeys, oldSelectedItems) {\r\n for (var i = 0; i < oldSelectedKeys.length; i++) {\r\n if (!this.isItemKeySelected(oldSelectedKeys[i])) {\r\n this.options.removedItemKeys.push(oldSelectedKeys[i]);\r\n this.options.removedItems.push(oldSelectedItems[i])\r\n }\r\n }\r\n }\r\n _isItemSelectionInProgress(key, checkPending) {\r\n var _a;\r\n var shouldCheckPending = checkPending && this._lastRequestData && this._requestInProgress();\r\n if (shouldCheckPending) {\r\n var addedItems = null !== (_a = this._lastRequestData.addedItems) && void 0 !== _a ? _a : [];\r\n return addedItems.includes(key)\r\n }\r\n return false\r\n }\r\n _getKeyHash(key) {\r\n return this.options.equalByReference ? key : getKeyHash(key)\r\n }\r\n setSelectedItems(keys, items) {\r\n this._updateAddedItemKeys(keys, items);\r\n var oldSelectedKeys = this.options.selectedItemKeys;\r\n var oldSelectedItems = this.options.selectedItems;\r\n if (!this.options.equalByReference) {\r\n this._initSelectedItemKeyHash();\r\n this.updateSelectedItemKeyHash(keys)\r\n }\r\n this._setOption(\"selectedItemKeys\", keys);\r\n this._setOption(\"selectedItems\", items);\r\n this._updateRemovedItemKeys(keys, oldSelectedKeys, oldSelectedItems)\r\n }\r\n isItemDataSelected(itemData) {\r\n var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n var key = this.options.keyOf(itemData);\r\n return this.isItemKeySelected(key, options)\r\n }\r\n isItemKeySelected(key) {\r\n var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n var result = this._isItemSelectionInProgress(key, options.checkPending);\r\n if (!result) {\r\n var keyHash = this._getKeyHash(key);\r\n var index = this._indexOfSelectedItemKey(keyHash);\r\n result = -1 !== index\r\n }\r\n return result\r\n }\r\n getSelectAllState(visibleOnly) {\r\n if (visibleOnly) {\r\n return this._getVisibleSelectAllState()\r\n }\r\n return this._getFullSelectAllState()\r\n }\r\n loadSelectedItemsWithFilter() {\r\n var keyExpr = this.options.key();\r\n var keys = this.getSelectedItemKeys();\r\n var filter = this.options.filter();\r\n if (!keys.length) {\r\n return Deferred().resolve([])\r\n }\r\n var selectionFilterCreator = new SelectionFilterCreator(keys);\r\n var combinedFilter = selectionFilterCreator.getCombinedFilter(keyExpr, filter, true);\r\n return this._loadFilteredData(combinedFilter)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/selection/m_selection.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n 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 {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport deferredStrategy from \"./m_selection.strategy.deferred\";\r\nimport standardStrategy from \"./m_selection.strategy.standard\";\r\nexport default class Selection {\r\n constructor(options) {\r\n this.options = extend(this._getDefaultOptions(), options, {\r\n selectedItemKeys: options.selectedKeys || []\r\n });\r\n this._selectionStrategy = this.options.deferred ? new deferredStrategy(this.options) : new standardStrategy(this.options);\r\n this._focusedItemIndex = -1;\r\n if (!this.options.equalByReference) {\r\n this._selectionStrategy.updateSelectedItemKeyHash(this.options.selectedItemKeys)\r\n }\r\n }\r\n _getDefaultOptions() {\r\n return {\r\n allowNullValue: false,\r\n deferred: false,\r\n equalByReference: false,\r\n mode: \"multiple\",\r\n selectedItems: [],\r\n selectionFilter: [],\r\n maxFilterLengthInRequest: 0,\r\n onSelectionChanged: noop,\r\n key: noop,\r\n keyOf: item => item,\r\n load: () => Deferred().resolve([]),\r\n totalCount: () => -1,\r\n isSelectableItem: () => true,\r\n isItemSelected: () => false,\r\n getItemData: item => item,\r\n dataFields: noop,\r\n filter: noop\r\n }\r\n }\r\n validate() {\r\n this._selectionStrategy.validate()\r\n }\r\n getSelectedItemKeys() {\r\n return this._selectionStrategy.getSelectedItemKeys()\r\n }\r\n getSelectedItems() {\r\n return this._selectionStrategy.getSelectedItems()\r\n }\r\n selectionFilter(value) {\r\n if (void 0 === value) {\r\n return this.options.selectionFilter\r\n }\r\n var filterIsChanged = this.options.selectionFilter !== value && JSON.stringify(this.options.selectionFilter) !== JSON.stringify(value);\r\n this.options.selectionFilter = value;\r\n filterIsChanged && this.onSelectionChanged()\r\n }\r\n setSelection(keys, updatedKeys) {\r\n return this.selectedItemKeys(keys, false, false, false, updatedKeys)\r\n }\r\n select(keys) {\r\n return this.selectedItemKeys(keys, true)\r\n }\r\n deselect(keys) {\r\n return this.selectedItemKeys(keys, true, true)\r\n }\r\n selectedItemKeys(keys, preserve, isDeselect, isSelectAll, updatedKeys) {\r\n keys = null !== keys && void 0 !== keys ? keys : [];\r\n keys = Array.isArray(keys) ? keys : [keys];\r\n this.validate();\r\n return this._selectionStrategy.selectedItemKeys(keys, preserve, isDeselect, isSelectAll, updatedKeys)\r\n }\r\n clearSelection() {\r\n return this.selectedItemKeys([])\r\n }\r\n _addSelectedItem(itemData, key) {\r\n this._selectionStrategy.addSelectedItem(key, itemData)\r\n }\r\n _removeSelectedItem(key) {\r\n this._selectionStrategy.removeSelectedItem(key)\r\n }\r\n _setSelectedItems(keys, items) {\r\n this._selectionStrategy.setSelectedItems(keys, items)\r\n }\r\n onSelectionChanged() {\r\n this._selectionStrategy.onSelectionChanged()\r\n }\r\n changeItemSelection(itemIndex, keys, setFocusOnly) {\r\n var _a, _b;\r\n var isSelectedItemsChanged;\r\n var items = this.options.plainItems();\r\n var item = items[itemIndex];\r\n var deferred;\r\n var {\r\n isVirtualPaging: isVirtualPaging\r\n } = this.options;\r\n var allowLoadByRange = null === (_b = (_a = this.options).allowLoadByRange) || void 0 === _b ? void 0 : _b.call(_a);\r\n var {\r\n alwaysSelectByShift: alwaysSelectByShift\r\n } = this.options;\r\n var indexOffset;\r\n var focusedItemNotInLoadedRange = false;\r\n var shiftFocusedItemNotInLoadedRange = false;\r\n var itemIsNotInLoadedRange = index => index >= 0 && !items.filter(it => it.loadIndex === index).length;\r\n if (isVirtualPaging && isDefined(item)) {\r\n if (allowLoadByRange) {\r\n indexOffset = item.loadIndex - itemIndex;\r\n itemIndex = item.loadIndex\r\n }\r\n focusedItemNotInLoadedRange = itemIsNotInLoadedRange(this._focusedItemIndex);\r\n if (isDefined(this._shiftFocusedItemIndex)) {\r\n shiftFocusedItemNotInLoadedRange = itemIsNotInLoadedRange(this._shiftFocusedItemIndex)\r\n }\r\n }\r\n if (!this.isSelectable() || !this.isDataItem(item)) {\r\n return false\r\n }\r\n var itemData = this.options.getItemData(item);\r\n var itemKey = this.options.keyOf(itemData);\r\n keys = keys || {};\r\n var allowSelectByShift = keys.shift;\r\n if (false === alwaysSelectByShift && allowSelectByShift) {\r\n allowSelectByShift = false !== allowLoadByRange || !focusedItemNotInLoadedRange && !shiftFocusedItemNotInLoadedRange\r\n }\r\n if (allowSelectByShift && \"multiple\" === this.options.mode && this._focusedItemIndex >= 0) {\r\n if (allowLoadByRange && (focusedItemNotInLoadedRange || shiftFocusedItemNotInLoadedRange)) {\r\n isSelectedItemsChanged = itemIndex !== this._shiftFocusedItemIndex || this._focusedItemIndex !== this._shiftFocusedItemIndex;\r\n if (isSelectedItemsChanged) {\r\n deferred = this.changeItemSelectionWhenShiftKeyInVirtualPaging(itemIndex)\r\n }\r\n } else {\r\n isSelectedItemsChanged = this.changeItemSelectionWhenShiftKeyPressed(itemIndex, items, indexOffset)\r\n }\r\n } else if (keys.control) {\r\n this._resetItemSelectionWhenShiftKeyPressed();\r\n if (!setFocusOnly) {\r\n var isSelected = this._selectionStrategy.isItemDataSelected(itemData);\r\n if (\"single\" === this.options.mode) {\r\n this.clearSelectedItems()\r\n }\r\n if (isSelected) {\r\n this._removeSelectedItem(itemKey)\r\n } else {\r\n this._addSelectedItem(itemData, itemKey)\r\n }\r\n }\r\n isSelectedItemsChanged = true\r\n } else {\r\n this._resetItemSelectionWhenShiftKeyPressed();\r\n var isKeysEqual = this._selectionStrategy.equalKeys(this.options.selectedItemKeys[0], itemKey);\r\n if (1 !== this.options.selectedItemKeys.length || !isKeysEqual) {\r\n this._setSelectedItems([itemKey], [itemData]);\r\n isSelectedItemsChanged = true\r\n }\r\n }\r\n if (isSelectedItemsChanged) {\r\n when(deferred).done(() => {\r\n this._focusedItemIndex = itemIndex;\r\n !setFocusOnly && this.onSelectionChanged()\r\n });\r\n return true\r\n }\r\n }\r\n isDataItem(item) {\r\n return this.options.isSelectableItem(item)\r\n }\r\n isSelectable() {\r\n return \"single\" === this.options.mode || \"multiple\" === this.options.mode\r\n }\r\n isItemDataSelected(data) {\r\n return this._selectionStrategy.isItemDataSelected(data, {\r\n checkPending: true\r\n })\r\n }\r\n isItemSelected(arg, options) {\r\n return this._selectionStrategy.isItemKeySelected(arg, options)\r\n }\r\n _resetItemSelectionWhenShiftKeyPressed() {\r\n delete this._shiftFocusedItemIndex\r\n }\r\n _resetFocusedItemIndex() {\r\n this._focusedItemIndex = -1\r\n }\r\n changeItemSelectionWhenShiftKeyInVirtualPaging(loadIndex) {\r\n var loadOptions = this.options.getLoadOptions(loadIndex, this._focusedItemIndex, this._shiftFocusedItemIndex);\r\n var deferred = Deferred();\r\n var indexOffset = loadOptions.skip;\r\n this.options.load(loadOptions).done(items => {\r\n this.changeItemSelectionWhenShiftKeyPressed(loadIndex, items, indexOffset);\r\n deferred.resolve()\r\n });\r\n return deferred.promise()\r\n }\r\n changeItemSelectionWhenShiftKeyPressed(itemIndex, items, indexOffset) {\r\n var isSelectedItemsChanged = false;\r\n var itemIndexStep;\r\n var indexOffsetDefined = isDefined(indexOffset);\r\n var index = indexOffsetDefined ? this._focusedItemIndex - indexOffset : this._focusedItemIndex;\r\n var {\r\n keyOf: keyOf\r\n } = this.options;\r\n var focusedItem = items[index];\r\n var focusedData = this.options.getItemData(focusedItem);\r\n var focusedKey = keyOf(focusedData);\r\n var isFocusedItemSelected = focusedItem && this.isItemDataSelected(focusedData);\r\n if (!isDefined(this._shiftFocusedItemIndex)) {\r\n this._shiftFocusedItemIndex = this._focusedItemIndex\r\n }\r\n var data;\r\n var itemKey;\r\n var startIndex;\r\n var endIndex;\r\n if (this._shiftFocusedItemIndex !== this._focusedItemIndex) {\r\n itemIndexStep = this._focusedItemIndex < this._shiftFocusedItemIndex ? 1 : -1;\r\n startIndex = indexOffsetDefined ? this._focusedItemIndex - indexOffset : this._focusedItemIndex;\r\n endIndex = indexOffsetDefined ? this._shiftFocusedItemIndex - indexOffset : this._shiftFocusedItemIndex;\r\n for (index = startIndex; index !== endIndex; index += itemIndexStep) {\r\n if (indexOffsetDefined || this.isDataItem(items[index])) {\r\n itemKey = keyOf(this.options.getItemData(items[index]));\r\n this._removeSelectedItem(itemKey);\r\n isSelectedItemsChanged = true\r\n }\r\n }\r\n }\r\n if (itemIndex !== this._shiftFocusedItemIndex) {\r\n itemIndexStep = itemIndex < this._shiftFocusedItemIndex ? 1 : -1;\r\n startIndex = indexOffsetDefined ? itemIndex - indexOffset : itemIndex;\r\n endIndex = indexOffsetDefined ? this._shiftFocusedItemIndex - indexOffset : this._shiftFocusedItemIndex;\r\n for (index = startIndex; index !== endIndex; index += itemIndexStep) {\r\n if (indexOffsetDefined || this.isDataItem(items[index])) {\r\n data = this.options.getItemData(items[index]);\r\n itemKey = keyOf(data);\r\n this._addSelectedItem(data, itemKey);\r\n isSelectedItemsChanged = true\r\n }\r\n }\r\n }\r\n if ((indexOffsetDefined || this.isDataItem(focusedItem)) && !isFocusedItemSelected) {\r\n this._addSelectedItem(focusedData, focusedKey);\r\n isSelectedItemsChanged = true\r\n }\r\n return isSelectedItemsChanged\r\n }\r\n clearSelectedItems() {\r\n this._setSelectedItems([], [])\r\n }\r\n selectAll(isOnePage) {\r\n this._resetFocusedItemIndex();\r\n if (isOnePage) {\r\n return this._onePageSelectAll(false)\r\n }\r\n return this.selectedItemKeys([], true, false, true)\r\n }\r\n deselectAll(isOnePage) {\r\n this._resetFocusedItemIndex();\r\n if (isOnePage) {\r\n return this._onePageSelectAll(true)\r\n }\r\n return this.selectedItemKeys([], true, true, true)\r\n }\r\n _onePageSelectAll(isDeselect) {\r\n var items = this._selectionStrategy.getSelectableItems(this.options.plainItems());\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (this.isDataItem(item)) {\r\n var itemData = this.options.getItemData(item);\r\n var itemKey = this.options.keyOf(itemData);\r\n var isSelected = this.isItemSelected(itemKey);\r\n if (!isSelected && !isDeselect) {\r\n this._addSelectedItem(itemData, itemKey)\r\n }\r\n if (isSelected && isDeselect) {\r\n this._removeSelectedItem(itemKey)\r\n }\r\n }\r\n }\r\n this.onSelectionChanged();\r\n return Deferred().resolve()\r\n }\r\n getSelectAllState(visibleOnly) {\r\n return this._selectionStrategy.getSelectAllState(visibleOnly)\r\n }\r\n loadSelectedItemsWithFilter() {\r\n return this._selectionStrategy.loadSelectedItemsWithFilter()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/events/hold.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n eventData,\r\n eventDelta\r\n} from \"./utils/index\";\r\nimport Emitter from \"./core/emitter\";\r\nimport registerEmitter from \"./core/emitter_registrator\";\r\nvar abs = Math.abs;\r\nvar HOLD_EVENT_NAME = \"dxhold\";\r\nvar HOLD_TIMEOUT = 750;\r\nvar TOUCH_BOUNDARY = 5;\r\nvar HoldEmitter = Emitter.inherit({\r\n start: function(e) {\r\n this._startEventData = eventData(e);\r\n this._startTimer(e)\r\n },\r\n _startTimer: function(e) {\r\n var holdTimeout = \"timeout\" in this ? this.timeout : HOLD_TIMEOUT;\r\n this._holdTimer = setTimeout(function() {\r\n this._requestAccept(e);\r\n this._fireEvent(HOLD_EVENT_NAME, e, {\r\n target: e.target\r\n });\r\n this._forgetAccept()\r\n }.bind(this), holdTimeout)\r\n },\r\n move: function(e) {\r\n if (this._touchWasMoved(e)) {\r\n this._cancel(e)\r\n }\r\n },\r\n _touchWasMoved: function(e) {\r\n var delta = eventDelta(this._startEventData, eventData(e));\r\n return abs(delta.x) > TOUCH_BOUNDARY || abs(delta.y) > TOUCH_BOUNDARY\r\n },\r\n end: function() {\r\n this._stopTimer()\r\n },\r\n _stopTimer: function() {\r\n clearTimeout(this._holdTimer)\r\n },\r\n cancel: function() {\r\n this._stopTimer()\r\n },\r\n dispose: function() {\r\n this._stopTimer()\r\n }\r\n});\r\nregisterEmitter({\r\n emitter: HoldEmitter,\r\n bubble: true,\r\n events: [HOLD_EVENT_NAME]\r\n});\r\nexport default {\r\n name: HOLD_EVENT_NAME\r\n};\r\n","/**\r\n * DevExtreme (esm/events/contextmenu.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n touch\r\n} from \"../core/utils/support\";\r\nimport devices from \"../core/devices\";\r\nimport Class from \"../core/class\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport {\r\n addNamespace,\r\n fireEvent,\r\n isMouseEvent\r\n} from \"./utils/index\";\r\nimport holdEvent from \"./hold\";\r\nvar CONTEXTMENU_NAMESPACE = \"dxContexMenu\";\r\nvar CONTEXTMENU_NAMESPACED_EVENT_NAME = addNamespace(\"contextmenu\", CONTEXTMENU_NAMESPACE);\r\nvar HOLD_NAMESPACED_EVENT_NAME = addNamespace(holdEvent.name, CONTEXTMENU_NAMESPACE);\r\nvar CONTEXTMENU_EVENT_NAME = \"dxcontextmenu\";\r\nvar ContextMenu = Class.inherit({\r\n setup: function(element) {\r\n var $element = $(element);\r\n eventsEngine.on($element, CONTEXTMENU_NAMESPACED_EVENT_NAME, this._contextMenuHandler.bind(this));\r\n if (touch || devices.isSimulator()) {\r\n eventsEngine.on($element, HOLD_NAMESPACED_EVENT_NAME, this._holdHandler.bind(this))\r\n }\r\n },\r\n _holdHandler: function(e) {\r\n if (isMouseEvent(e) && !devices.isSimulator()) {\r\n return\r\n }\r\n this._fireContextMenu(e)\r\n },\r\n _contextMenuHandler: function(e) {\r\n this._fireContextMenu(e)\r\n },\r\n _fireContextMenu: function(e) {\r\n return fireEvent({\r\n type: CONTEXTMENU_EVENT_NAME,\r\n originalEvent: e\r\n })\r\n },\r\n teardown: function(element) {\r\n eventsEngine.off(element, \".\" + CONTEXTMENU_NAMESPACE)\r\n }\r\n});\r\nregisterEvent(CONTEXTMENU_EVENT_NAME, new ContextMenu);\r\nexport var name = CONTEXTMENU_EVENT_NAME;\r\n","/**\r\n * DevExtreme (esm/core/utils/version.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function compare(x, y, maxLevel) {\r\n function normalizeArg(value) {\r\n if (\"string\" === typeof value) {\r\n return value.split(\".\")\r\n }\r\n if (\"number\" === typeof value) {\r\n return [value]\r\n }\r\n return value\r\n }\r\n x = normalizeArg(x);\r\n y = normalizeArg(y);\r\n var length = Math.max(x.length, y.length);\r\n if (isFinite(maxLevel)) {\r\n length = Math.min(length, maxLevel)\r\n }\r\n for (var i = 0; i < length; i++) {\r\n var xItem = parseInt(x[i] || 0, 10);\r\n var yItem = parseInt(y[i] || 0, 10);\r\n if (xItem < yItem) {\r\n return -1\r\n }\r\n if (xItem > yItem) {\r\n return 1\r\n }\r\n }\r\n return 0\r\n}\r\n","/**\r\n * DevExtreme (esm/events/core/emitter.feedback.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nimport {\r\n noop,\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nimport {\r\n contains\r\n} from \"../../core/utils/dom\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n isMouseEvent\r\n} from \"../utils/index\";\r\nimport pointerEvents from \"../pointer\";\r\nimport Emitter from \"./emitter\";\r\nimport registerEmitter from \"./emitter_registrator\";\r\nvar ACTIVE_EVENT_NAME = \"dxactive\";\r\nvar INACTIVE_EVENT_NAME = \"dxinactive\";\r\nvar ACTIVE_TIMEOUT = 30;\r\nvar INACTIVE_TIMEOUT = 400;\r\nvar FeedbackEvent = Class.inherit({\r\n ctor: function(timeout, fire) {\r\n this._timeout = timeout;\r\n this._fire = fire\r\n },\r\n start: function() {\r\n var that = this;\r\n this._schedule((function() {\r\n that.force()\r\n }))\r\n },\r\n _schedule: function(fn) {\r\n this.stop();\r\n this._timer = setTimeout(fn, this._timeout)\r\n },\r\n stop: function() {\r\n clearTimeout(this._timer)\r\n },\r\n force: function() {\r\n if (this._fired) {\r\n return\r\n }\r\n this.stop();\r\n this._fire();\r\n this._fired = true\r\n },\r\n fired: function() {\r\n return this._fired\r\n }\r\n});\r\nvar activeFeedback;\r\nvar FeedbackEmitter = Emitter.inherit({\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n this._active = new FeedbackEvent(0, noop);\r\n this._inactive = new FeedbackEvent(0, noop)\r\n },\r\n configure: function(data, eventName) {\r\n switch (eventName) {\r\n case ACTIVE_EVENT_NAME:\r\n data.activeTimeout = data.timeout;\r\n break;\r\n case INACTIVE_EVENT_NAME:\r\n data.inactiveTimeout = data.timeout\r\n }\r\n this.callBase(data)\r\n },\r\n start: function(e) {\r\n if (activeFeedback) {\r\n var activeChildExists = contains(this.getElement().get(0), activeFeedback.getElement().get(0));\r\n var childJustActivated = !activeFeedback._active.fired();\r\n if (activeChildExists && childJustActivated) {\r\n this._cancel();\r\n return\r\n }\r\n activeFeedback._inactive.force()\r\n }\r\n activeFeedback = this;\r\n this._initEvents(e);\r\n this._active.start()\r\n },\r\n _initEvents: function(e) {\r\n var that = this;\r\n var eventTarget = this._getEmitterTarget(e);\r\n var mouseEvent = isMouseEvent(e);\r\n var isSimulator = devices.isSimulator();\r\n var deferFeedback = isSimulator || !mouseEvent;\r\n var activeTimeout = ensureDefined(this.activeTimeout, ACTIVE_TIMEOUT);\r\n var inactiveTimeout = ensureDefined(this.inactiveTimeout, INACTIVE_TIMEOUT);\r\n this._active = new FeedbackEvent(deferFeedback ? activeTimeout : 0, (function() {\r\n that._fireEvent(ACTIVE_EVENT_NAME, e, {\r\n target: eventTarget\r\n })\r\n }));\r\n this._inactive = new FeedbackEvent(deferFeedback ? inactiveTimeout : 0, (function() {\r\n that._fireEvent(INACTIVE_EVENT_NAME, e, {\r\n target: eventTarget\r\n });\r\n activeFeedback = null\r\n }))\r\n },\r\n cancel: function(e) {\r\n this.end(e)\r\n },\r\n end: function(e) {\r\n var skipTimers = e.type !== pointerEvents.up;\r\n if (skipTimers) {\r\n this._active.stop()\r\n } else {\r\n this._active.force()\r\n }\r\n this._inactive.start();\r\n if (skipTimers) {\r\n this._inactive.force()\r\n }\r\n },\r\n dispose: function() {\r\n this._active.stop();\r\n this._inactive.stop();\r\n if (activeFeedback === this) {\r\n activeFeedback = null\r\n }\r\n this.callBase()\r\n },\r\n lockInactive: function() {\r\n this._active.force();\r\n this._inactive.stop();\r\n activeFeedback = null;\r\n this._cancel();\r\n return this._inactive.force.bind(this._inactive)\r\n }\r\n});\r\nFeedbackEmitter.lock = function(deferred) {\r\n var lockInactive = activeFeedback ? activeFeedback.lockInactive() : noop;\r\n deferred.done(lockInactive)\r\n};\r\nregisterEmitter({\r\n emitter: FeedbackEmitter,\r\n events: [ACTIVE_EVENT_NAME, INACTIVE_EVENT_NAME]\r\n});\r\nexport var lock = FeedbackEmitter.lock;\r\nexport {\r\n ACTIVE_EVENT_NAME as active, INACTIVE_EVENT_NAME as inactive\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/widget/ui.widget.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Action from \"../../core/action\";\r\nimport DOMComponent from \"../../core/dom_component\";\r\nimport {\r\n active,\r\n focus,\r\n hover,\r\n keyboard\r\n} from \"../../events/short\";\r\nimport {\r\n deferRender,\r\n deferRenderer,\r\n noop\r\n} from \"../../core/utils/common\";\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 focusable as focusableSelector\r\n} from \"./selectors\";\r\nimport {\r\n isPlainObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n compare as compareVersions\r\n} from \"../../core/utils/version\";\r\nimport \"../../events/click\";\r\nimport \"../../events/core/emitter.feedback\";\r\nimport \"../../events/hover\";\r\n\r\nfunction setAttribute(name, value, target) {\r\n name = \"role\" === name || \"id\" === name ? name : \"aria-\".concat(name);\r\n value = isDefined(value) ? value.toString() : null;\r\n target.attr(name, value)\r\n}\r\nvar Widget = DOMComponent.inherit({\r\n _feedbackHideTimeout: 400,\r\n _feedbackShowTimeout: 30,\r\n _supportedKeys: () => ({}),\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n hoveredElement: null,\r\n isActive: false,\r\n disabled: false,\r\n visible: true,\r\n hint: void 0,\r\n activeStateEnabled: false,\r\n onContentReady: null,\r\n hoverStateEnabled: false,\r\n focusStateEnabled: false,\r\n tabIndex: 0,\r\n accessKey: void 0,\r\n onFocusIn: null,\r\n onFocusOut: null,\r\n onKeyboardHandled: null,\r\n ignoreParentReadOnly: false,\r\n useResizeObserver: true\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n var device = devices.real();\r\n var platform = device.platform;\r\n var version = device.version;\r\n return \"ios\" === platform && compareVersions(version, \"13.3\") <= 0\r\n },\r\n options: {\r\n useResizeObserver: false\r\n }\r\n }])\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initContentReadyAction()\r\n },\r\n _innerWidgetOptionChanged: function(innerWidget, args) {\r\n var options = Widget.getOptionsFromContainer(args);\r\n innerWidget && innerWidget.option(options);\r\n this._options.cache(args.name, options)\r\n },\r\n _bindInnerWidgetOptions(innerWidget, optionsContainer) {\r\n var syncOptions = () => this._options.silent(optionsContainer, extend({}, innerWidget.option()));\r\n syncOptions();\r\n innerWidget.on(\"optionChanged\", syncOptions)\r\n },\r\n _getAriaTarget() {\r\n return this._focusTarget()\r\n },\r\n _initContentReadyAction() {\r\n this._contentReadyAction = this._createActionByOption(\"onContentReady\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initMarkup() {\r\n var {\r\n disabled: disabled,\r\n visible: visible\r\n } = this.option();\r\n this.$element().addClass(\"dx-widget\");\r\n this._toggleDisabledState(disabled);\r\n this._toggleVisibility(visible);\r\n this._renderHint();\r\n this._isFocusable() && this._renderFocusTarget();\r\n this.callBase()\r\n },\r\n _render() {\r\n this.callBase();\r\n this._renderContent();\r\n this._renderFocusState();\r\n this._attachFeedbackEvents();\r\n this._attachHoverEvents();\r\n this._toggleIndependentState()\r\n },\r\n _renderHint() {\r\n var {\r\n hint: hint\r\n } = this.option();\r\n this.$element().attr(\"title\", hint || null)\r\n },\r\n _renderContent() {\r\n deferRender(() => !this._disposed ? this._renderContentImpl() : void 0).done(() => !this._disposed ? this._fireContentReadyAction() : void 0)\r\n },\r\n _renderContentImpl: noop,\r\n _fireContentReadyAction: deferRenderer((function() {\r\n return this._contentReadyAction()\r\n })),\r\n _dispose() {\r\n this._contentReadyAction = null;\r\n this._detachKeyboardEvents();\r\n this.callBase()\r\n },\r\n _resetActiveState() {\r\n this._toggleActiveState(this._eventBindingTarget(), false)\r\n },\r\n _clean() {\r\n this._cleanFocusState();\r\n this._resetActiveState();\r\n this.callBase();\r\n this.$element().empty()\r\n },\r\n _toggleVisibility(visible) {\r\n this.$element().toggleClass(\"dx-state-invisible\", !visible)\r\n },\r\n _renderFocusState() {\r\n this._attachKeyboardEvents();\r\n if (this._isFocusable()) {\r\n this._renderFocusTarget();\r\n this._attachFocusEvents();\r\n this._renderAccessKey()\r\n }\r\n },\r\n _renderAccessKey() {\r\n var $el = this._focusTarget();\r\n var {\r\n accessKey: accessKey\r\n } = this.option();\r\n $el.attr(\"accesskey\", accessKey)\r\n },\r\n _isFocusable() {\r\n var {\r\n focusStateEnabled: focusStateEnabled,\r\n disabled: disabled\r\n } = this.option();\r\n return focusStateEnabled && !disabled\r\n },\r\n _eventBindingTarget() {\r\n return this.$element()\r\n },\r\n _focusTarget() {\r\n return this._getActiveElement()\r\n },\r\n _isFocusTarget: function(element) {\r\n var focusTargets = $(this._focusTarget()).toArray();\r\n return focusTargets.includes(element)\r\n },\r\n _findActiveTarget($element) {\r\n return $element.find(this._activeStateUnit).not(\".dx-state-disabled\")\r\n },\r\n _getActiveElement() {\r\n var activeElement = this._eventBindingTarget();\r\n if (this._activeStateUnit) {\r\n return this._findActiveTarget(activeElement)\r\n }\r\n return activeElement\r\n },\r\n _renderFocusTarget() {\r\n var {\r\n tabIndex: tabIndex\r\n } = this.option();\r\n this._focusTarget().attr(\"tabIndex\", tabIndex)\r\n },\r\n _keyboardEventBindingTarget() {\r\n return this._eventBindingTarget()\r\n },\r\n _refreshFocusEvent() {\r\n this._detachFocusEvents();\r\n this._attachFocusEvents()\r\n },\r\n _focusEventTarget() {\r\n return this._focusTarget()\r\n },\r\n _focusInHandler(event) {\r\n if (!event.isDefaultPrevented()) {\r\n this._createActionByOption(\"onFocusIn\", {\r\n beforeExecute: () => this._updateFocusState(event, true),\r\n excludeValidators: [\"readOnly\"]\r\n })({\r\n event: event\r\n })\r\n }\r\n },\r\n _focusOutHandler(event) {\r\n if (!event.isDefaultPrevented()) {\r\n this._createActionByOption(\"onFocusOut\", {\r\n beforeExecute: () => this._updateFocusState(event, false),\r\n excludeValidators: [\"readOnly\", \"disabled\"]\r\n })({\r\n event: event\r\n })\r\n }\r\n },\r\n _updateFocusState(_ref, isFocused) {\r\n var {\r\n target: target\r\n } = _ref;\r\n if (this._isFocusTarget(target)) {\r\n this._toggleFocusClass(isFocused, $(target))\r\n }\r\n },\r\n _toggleFocusClass(isFocused, $element) {\r\n var $focusTarget = $element && $element.length ? $element : this._focusTarget();\r\n $focusTarget.toggleClass(\"dx-state-focused\", isFocused)\r\n },\r\n _hasFocusClass(element) {\r\n var $focusTarget = $(element || this._focusTarget());\r\n return $focusTarget.hasClass(\"dx-state-focused\")\r\n },\r\n _isFocused() {\r\n return this._hasFocusClass()\r\n },\r\n _getKeyboardListeners: () => [],\r\n _attachKeyboardEvents() {\r\n this._detachKeyboardEvents();\r\n var {\r\n focusStateEnabled: focusStateEnabled,\r\n onKeyboardHandled: onKeyboardHandled\r\n } = this.option();\r\n var hasChildListeners = this._getKeyboardListeners().length;\r\n var hasKeyboardEventHandler = !!onKeyboardHandled;\r\n var shouldAttach = focusStateEnabled || hasChildListeners || hasKeyboardEventHandler;\r\n if (shouldAttach) {\r\n this._keyboardListenerId = keyboard.on(this._keyboardEventBindingTarget(), this._focusTarget(), opts => this._keyboardHandler(opts))\r\n }\r\n },\r\n _keyboardHandler(options, onlyChildProcessing) {\r\n if (!onlyChildProcessing) {\r\n var {\r\n originalEvent: originalEvent,\r\n keyName: keyName,\r\n which: which\r\n } = options;\r\n var keys = this._supportedKeys(originalEvent);\r\n var func = keys[keyName] || keys[which];\r\n if (void 0 !== func) {\r\n var handler = func.bind(this);\r\n var result = handler(originalEvent, options);\r\n if (!result) {\r\n return false\r\n }\r\n }\r\n }\r\n var keyboardListeners = this._getKeyboardListeners();\r\n var {\r\n onKeyboardHandled: onKeyboardHandled\r\n } = this.option();\r\n keyboardListeners.forEach(listener => listener && listener._keyboardHandler(options));\r\n onKeyboardHandled && onKeyboardHandled(options);\r\n return true\r\n },\r\n _refreshFocusState() {\r\n this._cleanFocusState();\r\n this._renderFocusState()\r\n },\r\n _cleanFocusState() {\r\n var $element = this._focusTarget();\r\n $element.removeAttr(\"tabIndex\");\r\n this._toggleFocusClass(false);\r\n this._detachFocusEvents();\r\n this._detachKeyboardEvents()\r\n },\r\n _detachKeyboardEvents() {\r\n keyboard.off(this._keyboardListenerId);\r\n this._keyboardListenerId = null\r\n },\r\n _attachHoverEvents() {\r\n var {\r\n hoverStateEnabled: hoverStateEnabled\r\n } = this.option();\r\n var selector = this._activeStateUnit;\r\n var $el = this._eventBindingTarget();\r\n hover.off($el, {\r\n selector: selector,\r\n namespace: \"UIFeedback\"\r\n });\r\n if (hoverStateEnabled) {\r\n hover.on($el, new Action(_ref2 => {\r\n var {\r\n event: event,\r\n element: element\r\n } = _ref2;\r\n this._hoverStartHandler(event);\r\n this.option(\"hoveredElement\", $(element))\r\n }, {\r\n excludeValidators: [\"readOnly\"]\r\n }), event => {\r\n this.option(\"hoveredElement\", null);\r\n this._hoverEndHandler(event)\r\n }, {\r\n selector: selector,\r\n namespace: \"UIFeedback\"\r\n })\r\n }\r\n },\r\n _attachFeedbackEvents() {\r\n var {\r\n activeStateEnabled: activeStateEnabled\r\n } = this.option();\r\n var selector = this._activeStateUnit;\r\n var $el = this._eventBindingTarget();\r\n active.off($el, {\r\n namespace: \"UIFeedback\",\r\n selector: selector\r\n });\r\n if (activeStateEnabled) {\r\n active.on($el, new Action(_ref3 => {\r\n var {\r\n event: event,\r\n element: element\r\n } = _ref3;\r\n return this._toggleActiveState($(element), true, event)\r\n }), new Action(_ref4 => {\r\n var {\r\n event: event,\r\n element: element\r\n } = _ref4;\r\n return this._toggleActiveState($(element), false, event)\r\n }, {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n }), {\r\n showTimeout: this._feedbackShowTimeout,\r\n hideTimeout: this._feedbackHideTimeout,\r\n selector: selector,\r\n namespace: \"UIFeedback\"\r\n })\r\n }\r\n },\r\n _detachFocusEvents() {\r\n var $el = this._focusEventTarget();\r\n focus.off($el, {\r\n namespace: \"\".concat(this.NAME, \"Focus\")\r\n })\r\n },\r\n _attachFocusEvents() {\r\n var $el = this._focusEventTarget();\r\n focus.on($el, e => this._focusInHandler(e), e => this._focusOutHandler(e), {\r\n namespace: \"\".concat(this.NAME, \"Focus\"),\r\n isFocusable: (index, el) => $(el).is(focusableSelector)\r\n })\r\n },\r\n _hoverStartHandler: noop,\r\n _hoverEndHandler: noop,\r\n _toggleActiveState($element, value) {\r\n this.option(\"isActive\", value);\r\n $element.toggleClass(\"dx-state-active\", value)\r\n },\r\n _updatedHover() {\r\n var hoveredElement = this._options.silent(\"hoveredElement\");\r\n this._hover(hoveredElement, hoveredElement)\r\n },\r\n _findHoverTarget($el) {\r\n return $el && $el.closest(this._activeStateUnit || this._eventBindingTarget())\r\n },\r\n _hover($el, $previous) {\r\n var {\r\n hoverStateEnabled: hoverStateEnabled,\r\n disabled: disabled,\r\n isActive: isActive\r\n } = this.option();\r\n $previous = this._findHoverTarget($previous);\r\n $previous && $previous.toggleClass(\"dx-state-hover\", false);\r\n if ($el && hoverStateEnabled && !disabled && !isActive) {\r\n var newHoveredElement = this._findHoverTarget($el);\r\n newHoveredElement && newHoveredElement.toggleClass(\"dx-state-hover\", true)\r\n }\r\n },\r\n _toggleDisabledState(value) {\r\n this.$element().toggleClass(\"dx-state-disabled\", Boolean(value));\r\n this.setAria(\"disabled\", value || void 0)\r\n },\r\n _toggleIndependentState() {\r\n this.$element().toggleClass(\"dx-state-independent\", this.option(\"ignoreParentReadOnly\"))\r\n },\r\n _setWidgetOption(widgetName, args) {\r\n if (!this[widgetName]) {\r\n return\r\n }\r\n if (isPlainObject(args[0])) {\r\n each(args[0], (option, value) => this._setWidgetOption(widgetName, [option, value]));\r\n return\r\n }\r\n var optionName = args[0];\r\n var value = args[1];\r\n if (1 === args.length) {\r\n value = this.option(optionName)\r\n }\r\n var widgetOptionMap = this[\"\".concat(widgetName, \"OptionMap\")];\r\n this[widgetName].option(widgetOptionMap ? widgetOptionMap(optionName) : optionName, value)\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 \"disabled\":\r\n this._toggleDisabledState(value);\r\n this._updatedHover();\r\n this._refreshFocusState();\r\n break;\r\n case \"hint\":\r\n this._renderHint();\r\n break;\r\n case \"ignoreParentReadOnly\":\r\n this._toggleIndependentState();\r\n break;\r\n case \"activeStateEnabled\":\r\n this._attachFeedbackEvents();\r\n break;\r\n case \"hoverStateEnabled\":\r\n this._attachHoverEvents();\r\n this._updatedHover();\r\n break;\r\n case \"tabIndex\":\r\n case \"focusStateEnabled\":\r\n this._refreshFocusState();\r\n break;\r\n case \"onFocusIn\":\r\n case \"onFocusOut\":\r\n case \"useResizeObserver\":\r\n break;\r\n case \"accessKey\":\r\n this._renderAccessKey();\r\n break;\r\n case \"hoveredElement\":\r\n this._hover(value, previousValue);\r\n break;\r\n case \"isActive\":\r\n this._updatedHover();\r\n break;\r\n case \"visible\":\r\n this._toggleVisibility(value);\r\n if (this._isVisibilityChangeSupported()) {\r\n this._checkVisibilityChanged(value ? \"shown\" : \"hiding\")\r\n }\r\n break;\r\n case \"onKeyboardHandled\":\r\n this._attachKeyboardEvents();\r\n break;\r\n case \"onContentReady\":\r\n this._initContentReadyAction();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _isVisible() {\r\n var {\r\n visible: visible\r\n } = this.option();\r\n return this.callBase() && visible\r\n },\r\n beginUpdate() {\r\n this._ready(false);\r\n this.callBase()\r\n },\r\n endUpdate() {\r\n this.callBase();\r\n if (this._initialized) {\r\n this._ready(true)\r\n }\r\n },\r\n _ready(value) {\r\n if (0 === arguments.length) {\r\n return this._isReady\r\n }\r\n this._isReady = value\r\n },\r\n setAria() {\r\n if (!isPlainObject(arguments.length <= 0 ? void 0 : arguments[0])) {\r\n setAttribute(arguments.length <= 0 ? void 0 : arguments[0], arguments.length <= 1 ? void 0 : arguments[1], (arguments.length <= 2 ? void 0 : arguments[2]) || this._getAriaTarget())\r\n } else {\r\n var target = (arguments.length <= 1 ? void 0 : arguments[1]) || this._getAriaTarget();\r\n each(arguments.length <= 0 ? void 0 : arguments[0], (name, value) => setAttribute(name, value, target))\r\n }\r\n },\r\n isReady() {\r\n return this._ready()\r\n },\r\n repaint() {\r\n this._refresh()\r\n },\r\n focus() {\r\n focus.trigger(this._focusTarget())\r\n },\r\n registerKeyHandler(key, handler) {\r\n var currentKeys = this._supportedKeys();\r\n this._supportedKeys = () => extend(currentKeys, {\r\n [key]: handler\r\n })\r\n }\r\n});\r\nWidget.getOptionsFromContainer = _ref5 => {\r\n var {\r\n name: name,\r\n fullName: fullName,\r\n value: value\r\n } = _ref5;\r\n var options = {};\r\n if (name === fullName) {\r\n options = value\r\n } else {\r\n var option = fullName.split(\".\").pop();\r\n options[option] = value\r\n }\r\n return options\r\n};\r\nexport default Widget;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/collection/m_item.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../../core/class\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n attachInstanceToElement,\r\n getInstanceByElement\r\n} from \"../../../core/utils/public_component\";\r\nvar INVISIBLE_STATE_CLASS = \"dx-state-invisible\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar ITEM_CONTENT_PLACEHOLDER_CLASS = \"dx-item-content-placeholder\";\r\nvar forcibleWatcher = function(watchMethod, fn, callback) {\r\n var filteredCallback = function(value) {\r\n if (oldValue !== value) {\r\n callback(value, oldValue);\r\n oldValue = value\r\n }\r\n };\r\n var oldValue;\r\n return {\r\n dispose: watchMethod(fn, filteredCallback),\r\n force() {\r\n filteredCallback(fn())\r\n }\r\n }\r\n};\r\nvar CollectionItem = Class.inherit({\r\n ctor($element, options, rawData) {\r\n this._$element = $element;\r\n this._options = options;\r\n this._rawData = rawData;\r\n attachInstanceToElement($element, this, this._dispose);\r\n this._render()\r\n },\r\n _render() {\r\n var $placeholder = $(\"
\").addClass(ITEM_CONTENT_PLACEHOLDER_CLASS);\r\n this._$element.append($placeholder);\r\n this._watchers = [];\r\n this._renderWatchers()\r\n },\r\n _renderWatchers() {\r\n this._startWatcher(\"disabled\", this._renderDisabled.bind(this));\r\n this._startWatcher(\"visible\", this._renderVisible.bind(this))\r\n },\r\n _startWatcher(field, render) {\r\n var rawData = this._rawData;\r\n var exprGetter = this._options.fieldGetter(field);\r\n var watcher = forcibleWatcher(this._options.watchMethod(), () => exprGetter(rawData), (value, oldValue) => {\r\n this._dirty = true;\r\n render(value, oldValue)\r\n });\r\n this._watchers.push(watcher)\r\n },\r\n setDataField() {\r\n this._dirty = false;\r\n each(this._watchers, (_, watcher) => {\r\n watcher.force()\r\n });\r\n if (this._dirty) {\r\n return true\r\n }\r\n },\r\n _renderDisabled(value, oldValue) {\r\n this._$element.toggleClass(DISABLED_STATE_CLASS, !!value);\r\n this._$element.attr(\"aria-disabled\", !!value);\r\n this._updateOwnerFocus(value)\r\n },\r\n _updateOwnerFocus(isDisabled) {\r\n var ownerComponent = this._options.owner;\r\n if (ownerComponent && isDisabled) {\r\n ownerComponent._resetItemFocus(this._$element)\r\n }\r\n },\r\n _renderVisible(value, oldValue) {\r\n this._$element.toggleClass(INVISIBLE_STATE_CLASS, void 0 !== value && !value)\r\n },\r\n _dispose() {\r\n each(this._watchers, (_, watcher) => {\r\n watcher.dispose()\r\n })\r\n }\r\n});\r\nCollectionItem.getInstance = function($element) {\r\n return getInstanceByElement($element, this)\r\n};\r\nexport default CollectionItem;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/collection/m_collection_widget.base.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport Action from \"../../../core/action\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport Guid from \"../../../core/guid\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../../core/templates/bindable_template\";\r\nimport {\r\n deferRenderer,\r\n ensureDefined,\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n compileGetter\r\n} from \"../../../core/utils/data\";\r\nimport {\r\n when\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n getOuterHeight,\r\n getOuterWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n findTemplates\r\n} from \"../../../core/utils/template_manager\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isPlainObject\r\n} from \"../../../core/utils/type\";\r\nimport DataHelperMixin from \"../../../data_helper\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../events/click\";\r\nimport {\r\n name as contextMenuEventName\r\n} from \"../../../events/contextmenu\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport holdEvent from \"../../../events/hold\";\r\nimport pointerEvents from \"../../../events/pointer\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed\r\n} from \"../../../events/utils/index\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport {\r\n focusable\r\n} from \"../../../ui/widget/selectors\";\r\nimport Widget from \"../../../ui/widget/ui.widget\";\r\nimport CollectionWidgetItem from \"./m_item\";\r\nvar COLLECTION_CLASS = \"dx-collection\";\r\nvar ITEM_CLASS = \"dx-item\";\r\nvar CONTENT_CLASS_POSTFIX = \"-content\";\r\nvar ITEM_CONTENT_PLACEHOLDER_CLASS = \"dx-item-content-placeholder\";\r\nvar ITEM_DATA_KEY = \"dxItemData\";\r\nvar ITEM_INDEX_KEY = \"dxItemIndex\";\r\nvar ITEM_TEMPLATE_ID_PREFIX = \"tmpl-\";\r\nvar ITEMS_OPTIONS_NAME = \"dxItem\";\r\nvar SELECTED_ITEM_CLASS = \"dx-item-selected\";\r\nvar ITEM_RESPONSE_WAIT_CLASS = \"dx-item-response-wait\";\r\nvar EMPTY_COLLECTION = \"dx-empty-collection\";\r\nvar TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\r\nvar ITEM_PATH_REGEX = /^([^.]+\\[\\d+\\]\\.)+([\\w.]+)$/;\r\nvar ANONYMOUS_TEMPLATE_NAME = \"item\";\r\nvar FOCUS_UP = \"up\";\r\nvar FOCUS_DOWN = \"down\";\r\nvar FOCUS_LEFT = \"left\";\r\nvar FOCUS_RIGHT = \"right\";\r\nvar FOCUS_PAGE_UP = \"pageup\";\r\nvar FOCUS_PAGE_DOWN = \"pagedown\";\r\nvar FOCUS_LAST = \"last\";\r\nvar FOCUS_FIRST = \"first\";\r\nvar CollectionWidget = Widget.inherit({\r\n _activeStateUnit: \".\".concat(ITEM_CLASS),\r\n _supportedKeys() {\r\n var move = function(location, e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._moveFocus(location, e)\r\n }\r\n };\r\n return extend(this.callBase(), {\r\n space: function(e) {\r\n e.preventDefault();\r\n this._enterKeyHandler(e)\r\n },\r\n enter: this._enterKeyHandler,\r\n leftArrow: move.bind(this, FOCUS_LEFT),\r\n rightArrow: move.bind(this, FOCUS_RIGHT),\r\n upArrow: move.bind(this, FOCUS_UP),\r\n downArrow: move.bind(this, FOCUS_DOWN),\r\n pageUp: move.bind(this, FOCUS_UP),\r\n pageDown: move.bind(this, FOCUS_DOWN),\r\n home: move.bind(this, FOCUS_FIRST),\r\n end: move.bind(this, FOCUS_LAST)\r\n })\r\n },\r\n _enterKeyHandler(e) {\r\n var $itemElement = $(this.option(\"focusedElement\"));\r\n if (!$itemElement.length) {\r\n return\r\n }\r\n var itemData = this._getItemData($itemElement);\r\n if (null === itemData || void 0 === itemData ? void 0 : itemData.onClick) {\r\n this._itemEventHandlerByHandler($itemElement, itemData.onClick, {\r\n event: e\r\n })\r\n }\r\n this._itemClickHandler(extend({}, e, {\r\n target: $itemElement.get(0),\r\n currentTarget: $itemElement.get(0)\r\n }))\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n selectOnFocus: false,\r\n loopItemFocus: true,\r\n items: [],\r\n itemTemplate: \"item\",\r\n onItemRendered: null,\r\n onItemClick: null,\r\n onItemHold: null,\r\n itemHoldTimeout: 750,\r\n onItemContextMenu: null,\r\n onFocusedItemChanged: null,\r\n noDataText: messageLocalization.format(\"dxCollectionWidget-noDataText\"),\r\n encodeNoDataText: false,\r\n dataSource: null,\r\n _dataController: null,\r\n _itemAttributes: {},\r\n itemTemplateProperty: \"template\",\r\n focusOnSelectedItem: true,\r\n focusedElement: null,\r\n displayExpr: void 0,\r\n disabledExpr: data => data ? data.disabled : void 0,\r\n visibleExpr: data => data ? data.visible : void 0\r\n })\r\n },\r\n _init() {\r\n this._compileDisplayGetter();\r\n this._initDataController();\r\n this.callBase();\r\n this._cleanRenderedItems();\r\n this._refreshDataSource()\r\n },\r\n _compileDisplayGetter() {\r\n var displayExpr = this.option(\"displayExpr\");\r\n this._displayGetter = displayExpr ? compileGetter(this.option(\"displayExpr\")) : void 0\r\n },\r\n _initTemplates() {\r\n this._initItemsFromMarkup();\r\n this._initDefaultItemTemplate();\r\n this.callBase()\r\n },\r\n _getAnonymousTemplateName: () => ANONYMOUS_TEMPLATE_NAME,\r\n _initDefaultItemTemplate() {\r\n var fieldsMap = this._getFieldsMap();\r\n this._templateManager.addDefaultTemplates({\r\n item: new BindableTemplate(($container, data) => {\r\n if (isPlainObject(data)) {\r\n this._prepareDefaultItemTemplate(data, $container)\r\n } else {\r\n if (fieldsMap && isFunction(fieldsMap.text)) {\r\n data = fieldsMap.text(data)\r\n }\r\n $container.text(String(ensureDefined(data, \"\")))\r\n }\r\n }, this._getBindableFields(), this.option(\"integrationOptions.watchMethod\"), fieldsMap)\r\n })\r\n },\r\n _getBindableFields: () => [\"text\", \"html\"],\r\n _getFieldsMap() {\r\n if (this._displayGetter) {\r\n return {\r\n text: this._displayGetter\r\n }\r\n }\r\n },\r\n _prepareDefaultItemTemplate(data, $container) {\r\n if (isDefined(data.text)) {\r\n $container.text(data.text)\r\n }\r\n if (isDefined(data.html)) {\r\n $container.html(data.html)\r\n }\r\n },\r\n _initItemsFromMarkup() {\r\n var rawItems = findTemplates(this.$element(), ITEMS_OPTIONS_NAME);\r\n if (!rawItems.length || this.option(\"items\").length) {\r\n return\r\n }\r\n var items = rawItems.map(_ref => {\r\n var {\r\n element: element,\r\n options: options\r\n } = _ref;\r\n var isTemplateRequired = /\\S/.test(element.innerHTML) && !options.template;\r\n if (isTemplateRequired) {\r\n options.template = this._prepareItemTemplate(element)\r\n } else {\r\n $(element).remove()\r\n }\r\n return options\r\n });\r\n this.option(\"items\", items)\r\n },\r\n _prepareItemTemplate(item) {\r\n var templateId = ITEM_TEMPLATE_ID_PREFIX + new Guid;\r\n var $template = $(item).detach().clone().removeAttr(\"data-options\").addClass(TEMPLATE_WRAPPER_CLASS);\r\n this._saveTemplate(templateId, $template);\r\n return templateId\r\n },\r\n _dataSourceOptions: () => ({\r\n paginate: false\r\n }),\r\n _cleanRenderedItems() {\r\n this._renderedItemsCount = 0\r\n },\r\n _focusTarget() {\r\n return this.$element()\r\n },\r\n _focusInHandler(e) {\r\n this.callBase.apply(this, arguments);\r\n if (!this._isFocusTarget(e.target)) {\r\n return\r\n }\r\n var $focusedElement = $(this.option(\"focusedElement\"));\r\n if ($focusedElement.length) {\r\n this._setFocusedItem($focusedElement)\r\n } else {\r\n var $activeItem = this._getActiveItem();\r\n if ($activeItem.length) {\r\n this.option(\"focusedElement\", getPublicElement($activeItem))\r\n }\r\n }\r\n },\r\n _focusOutHandler() {\r\n this.callBase.apply(this, arguments);\r\n var $target = $(this.option(\"focusedElement\"));\r\n this._updateFocusedItemState($target, false)\r\n },\r\n _findActiveTarget($element) {\r\n return $element.find(this._activeStateUnit)\r\n },\r\n _getActiveItem(last) {\r\n var $focusedElement = $(this.option(\"focusedElement\"));\r\n if ($focusedElement.length) {\r\n return $focusedElement\r\n }\r\n var index = this.option(\"focusOnSelectedItem\") ? this.option(\"selectedIndex\") : 0;\r\n var activeElements = this._getActiveElement();\r\n var lastIndex = activeElements.length - 1;\r\n if (index < 0) {\r\n index = last ? lastIndex : 0\r\n }\r\n return activeElements.eq(index)\r\n },\r\n _moveFocus(location) {\r\n var $items = this._getAvailableItems();\r\n var $newTarget;\r\n switch (location) {\r\n case FOCUS_PAGE_UP:\r\n case FOCUS_UP:\r\n $newTarget = this._prevItem($items);\r\n break;\r\n case FOCUS_PAGE_DOWN:\r\n case FOCUS_DOWN:\r\n $newTarget = this._nextItem($items);\r\n break;\r\n case FOCUS_RIGHT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._prevItem($items) : this._nextItem($items);\r\n break;\r\n case FOCUS_LEFT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._nextItem($items) : this._prevItem($items);\r\n break;\r\n case FOCUS_FIRST:\r\n $newTarget = $items.first();\r\n break;\r\n case FOCUS_LAST:\r\n $newTarget = $items.last();\r\n break;\r\n default:\r\n return false\r\n }\r\n if (0 !== $newTarget.length) {\r\n this.option(\"focusedElement\", getPublicElement($newTarget))\r\n }\r\n },\r\n _getVisibleItems($itemElements) {\r\n $itemElements = $itemElements || this._itemElements();\r\n return $itemElements.filter(\":visible\")\r\n },\r\n _getAvailableItems($itemElements) {\r\n return this._getVisibleItems($itemElements)\r\n },\r\n _prevItem($items) {\r\n var $target = this._getActiveItem();\r\n var targetIndex = $items.index($target);\r\n var $last = $items.last();\r\n var $item = $($items[targetIndex - 1]);\r\n var loop = this.option(\"loopItemFocus\");\r\n if (0 === $item.length && loop) {\r\n $item = $last\r\n }\r\n return $item\r\n },\r\n _nextItem($items) {\r\n var $target = this._getActiveItem(true);\r\n var targetIndex = $items.index($target);\r\n var $first = $items.first();\r\n var $item = $($items[targetIndex + 1]);\r\n var loop = this.option(\"loopItemFocus\");\r\n if (0 === $item.length && loop) {\r\n $item = $first\r\n }\r\n return $item\r\n },\r\n _selectFocusedItem($target) {\r\n this.selectItem($target)\r\n },\r\n _updateFocusedItemState(target, isFocused, needCleanItemId) {\r\n var $target = $(target);\r\n if ($target.length) {\r\n this._refreshActiveDescendant();\r\n this._refreshItemId($target, needCleanItemId);\r\n this._toggleFocusClass(isFocused, $target)\r\n }\r\n this._updateParentActiveDescendant()\r\n },\r\n _refreshActiveDescendant($target) {\r\n this.setAria(\"activedescendant\", isDefined(this.option(\"focusedElement\")) ? this.getFocusedItemId() : null, $target)\r\n },\r\n _refreshItemId($target, needCleanItemId) {\r\n if (!needCleanItemId && this.option(\"focusedElement\")) {\r\n this.setAria(\"id\", this.getFocusedItemId(), $target)\r\n } else {\r\n this.setAria(\"id\", null, $target)\r\n }\r\n },\r\n _isDisabled: $element => $element && \"true\" === $($element).attr(\"aria-disabled\"),\r\n _setFocusedItem($target) {\r\n if (!$target || !$target.length) {\r\n return\r\n }\r\n this._updateFocusedItemState($target, true);\r\n this.onFocusedItemChanged(this.getFocusedItemId());\r\n var {\r\n selectOnFocus: selectOnFocus\r\n } = this.option();\r\n var isTargetDisabled = this._isDisabled($target);\r\n if (selectOnFocus && !isTargetDisabled) {\r\n this._selectFocusedItem($target)\r\n }\r\n },\r\n _findItemElementByItem(item) {\r\n var result = $();\r\n var that = this;\r\n this.itemElements().each((function() {\r\n var $item = $(this);\r\n if ($item.data(that._itemDataKey()) === item) {\r\n result = $item;\r\n return false\r\n }\r\n }));\r\n return result\r\n },\r\n _getIndexByItem(item) {\r\n return this.option(\"items\").indexOf(item)\r\n },\r\n _itemOptionChanged(item, property, value, oldValue) {\r\n var $item = this._findItemElementByItem(item);\r\n if (!$item.length) {\r\n return\r\n }\r\n if (!this.constructor.ItemClass.getInstance($item).setDataField(property, value)) {\r\n this._refreshItem($item, item)\r\n }\r\n var isDisabling = \"disabled\" === property && value;\r\n if (isDisabling) {\r\n this._resetItemFocus($item)\r\n }\r\n },\r\n _resetItemFocus($item) {\r\n if ($item.is(this.option(\"focusedElement\"))) {\r\n this.option(\"focusedElement\", null)\r\n }\r\n },\r\n _refreshItem($item) {\r\n var itemData = this._getItemData($item);\r\n var index = $item.data(this._itemIndexKey());\r\n this._renderItem(this._renderedItemsCount + index, itemData, null, $item)\r\n },\r\n _updateParentActiveDescendant: noop,\r\n _optionChanged(args) {\r\n if (\"items\" === args.name) {\r\n var matches = args.fullName.match(ITEM_PATH_REGEX);\r\n if (matches && matches.length) {\r\n var property = matches[matches.length - 1];\r\n var itemPath = args.fullName.replace(\".\".concat(property), \"\");\r\n var item = this.option(itemPath);\r\n this._itemOptionChanged(item, property, args.value, args.previousValue);\r\n return\r\n }\r\n }\r\n switch (args.name) {\r\n case \"items\":\r\n case \"_itemAttributes\":\r\n case \"itemTemplateProperty\":\r\n case \"useItemTextAsTitle\":\r\n this._cleanRenderedItems();\r\n this._invalidate();\r\n break;\r\n case \"dataSource\":\r\n this._refreshDataSource();\r\n this._renderEmptyMessage();\r\n break;\r\n case \"noDataText\":\r\n case \"encodeNoDataText\":\r\n this._renderEmptyMessage();\r\n break;\r\n case \"itemTemplate\":\r\n this._invalidate();\r\n break;\r\n case \"onItemRendered\":\r\n this._createItemRenderAction();\r\n break;\r\n case \"onItemClick\":\r\n break;\r\n case \"onItemHold\":\r\n case \"itemHoldTimeout\":\r\n this._attachHoldEvent();\r\n break;\r\n case \"onItemContextMenu\":\r\n this._attachContextMenuEvent();\r\n break;\r\n case \"onFocusedItemChanged\":\r\n this.onFocusedItemChanged = this._createActionByOption(\"onFocusedItemChanged\");\r\n break;\r\n case \"selectOnFocus\":\r\n case \"loopItemFocus\":\r\n case \"focusOnSelectedItem\":\r\n break;\r\n case \"focusedElement\":\r\n this._updateFocusedItemState(args.previousValue, false, true);\r\n this._setFocusedItem($(args.value));\r\n break;\r\n case \"displayExpr\":\r\n this._compileDisplayGetter();\r\n this._initDefaultItemTemplate();\r\n this._invalidate();\r\n break;\r\n case \"visibleExpr\":\r\n case \"disabledExpr\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _invalidate() {\r\n this.option(\"focusedElement\", null);\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _loadNextPage() {\r\n this._expectNextPageLoading();\r\n return this._dataController.loadNextPage()\r\n },\r\n _expectNextPageLoading() {\r\n this._startIndexForAppendedItems = 0\r\n },\r\n _expectLastItemLoading() {\r\n this._startIndexForAppendedItems = -1\r\n },\r\n _forgetNextPageLoading() {\r\n this._startIndexForAppendedItems = null\r\n },\r\n _dataSourceChangedHandler(newItems) {\r\n var items = this.option(\"items\");\r\n if (this._initialized && items && this._shouldAppendItems()) {\r\n this._renderedItemsCount = items.length;\r\n if (!this._isLastPage() || -1 !== this._startIndexForAppendedItems) {\r\n this.option().items = items.concat(newItems.slice(this._startIndexForAppendedItems))\r\n }\r\n this._forgetNextPageLoading();\r\n this._refreshContent()\r\n } else {\r\n this.option(\"items\", newItems.slice())\r\n }\r\n },\r\n _refreshContent() {\r\n this._prepareContent();\r\n this._renderContent()\r\n },\r\n _dataSourceLoadErrorHandler() {\r\n this._forgetNextPageLoading();\r\n this.option(\"items\", this.option(\"items\"))\r\n },\r\n _shouldAppendItems() {\r\n return null != this._startIndexForAppendedItems && this._allowDynamicItemsAppend()\r\n },\r\n _allowDynamicItemsAppend: () => false,\r\n _clean() {\r\n this._cleanFocusState();\r\n this._cleanItemContainer();\r\n this._inkRipple && delete this._inkRipple;\r\n this._resetActiveState()\r\n },\r\n _cleanItemContainer() {\r\n $(this._itemContainer()).empty()\r\n },\r\n _dispose() {\r\n this.callBase();\r\n clearTimeout(this._itemFocusTimeout)\r\n },\r\n _refresh() {\r\n this._cleanRenderedItems();\r\n this.callBase.apply(this, arguments)\r\n },\r\n _itemContainer() {\r\n return this.$element()\r\n },\r\n _itemClass: () => ITEM_CLASS,\r\n _itemContentClass() {\r\n return this._itemClass() + CONTENT_CLASS_POSTFIX\r\n },\r\n _selectedItemClass: () => SELECTED_ITEM_CLASS,\r\n _itemResponseWaitClass: () => ITEM_RESPONSE_WAIT_CLASS,\r\n _itemSelector() {\r\n return \".\".concat(this._itemClass())\r\n },\r\n _itemDataKey: () => ITEM_DATA_KEY,\r\n _itemIndexKey: () => ITEM_INDEX_KEY,\r\n _itemElements() {\r\n return this._itemContainer().find(this._itemSelector())\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this.onFocusedItemChanged = this._createActionByOption(\"onFocusedItemChanged\");\r\n this.$element().addClass(COLLECTION_CLASS);\r\n this._prepareContent()\r\n },\r\n _prepareContent: deferRenderer((function() {\r\n this._renderContentImpl()\r\n })),\r\n _renderContent() {\r\n this._fireContentReadyAction()\r\n },\r\n _render() {\r\n this.callBase();\r\n this._attachClickEvent();\r\n this._attachHoldEvent();\r\n this._attachContextMenuEvent()\r\n },\r\n _getPointerEvent: () => pointerEvents.down,\r\n _attachClickEvent() {\r\n var itemSelector = this._itemSelector();\r\n var pointerEvent = this._getPointerEvent();\r\n var clickEventNamespace = addNamespace(clickEventName, this.NAME);\r\n var pointerEventNamespace = addNamespace(pointerEvent, this.NAME);\r\n var pointerAction = new Action(args => {\r\n var {\r\n event: event\r\n } = args;\r\n this._itemPointerDownHandler(event)\r\n });\r\n eventsEngine.off(this._itemContainer(), clickEventNamespace, itemSelector);\r\n eventsEngine.off(this._itemContainer(), pointerEventNamespace, itemSelector);\r\n eventsEngine.on(this._itemContainer(), clickEventNamespace, itemSelector, e => this._itemClickHandler(e));\r\n eventsEngine.on(this._itemContainer(), pointerEventNamespace, itemSelector, e => {\r\n pointerAction.execute({\r\n element: $(e.target),\r\n event: e\r\n })\r\n })\r\n },\r\n _itemClickHandler(e, args, config) {\r\n this._itemDXEventHandler(e, \"onItemClick\", args, config)\r\n },\r\n _itemPointerDownHandler(e) {\r\n if (!this.option(\"focusStateEnabled\")) {\r\n return\r\n }\r\n this._itemFocusHandler = function() {\r\n clearTimeout(this._itemFocusTimeout);\r\n this._itemFocusHandler = null;\r\n if (e.isDefaultPrevented()) {\r\n return\r\n }\r\n var $target = $(e.target);\r\n var $closestItem = $target.closest(this._itemElements());\r\n var $closestFocusable = this._closestFocusable($target);\r\n if ($closestItem.length && this._isFocusTarget(null === $closestFocusable || void 0 === $closestFocusable ? void 0 : $closestFocusable.get(0))) {\r\n this.option(\"focusedElement\", getPublicElement($closestItem))\r\n }\r\n }.bind(this);\r\n this._itemFocusTimeout = setTimeout(this._forcePointerDownFocus.bind(this))\r\n },\r\n _closestFocusable($target) {\r\n if ($target.is(focusable)) {\r\n return $target\r\n }\r\n $target = $target.parent();\r\n while ($target.length && !domAdapter.isDocument($target.get(0)) && !domAdapter.isDocumentFragment($target.get(0))) {\r\n if ($target.is(focusable)) {\r\n return $target\r\n }\r\n $target = $target.parent()\r\n }\r\n },\r\n _forcePointerDownFocus() {\r\n this._itemFocusHandler && this._itemFocusHandler()\r\n },\r\n _updateFocusState() {\r\n this.callBase.apply(this, arguments);\r\n this._forcePointerDownFocus()\r\n },\r\n _attachHoldEvent() {\r\n var $itemContainer = this._itemContainer();\r\n var itemSelector = this._itemSelector();\r\n var eventName = addNamespace(holdEvent.name, this.NAME);\r\n eventsEngine.off($itemContainer, eventName, itemSelector);\r\n eventsEngine.on($itemContainer, eventName, itemSelector, {\r\n timeout: this._getHoldTimeout()\r\n }, this._itemHoldHandler.bind(this))\r\n },\r\n _getHoldTimeout() {\r\n return this.option(\"itemHoldTimeout\")\r\n },\r\n _shouldFireHoldEvent() {\r\n return this.hasActionSubscription(\"onItemHold\")\r\n },\r\n _itemHoldHandler(e) {\r\n if (this._shouldFireHoldEvent()) {\r\n this._itemDXEventHandler(e, \"onItemHold\")\r\n } else {\r\n e.cancel = true\r\n }\r\n },\r\n _attachContextMenuEvent() {\r\n var $itemContainer = this._itemContainer();\r\n var itemSelector = this._itemSelector();\r\n var eventName = addNamespace(contextMenuEventName, this.NAME);\r\n eventsEngine.off($itemContainer, eventName, itemSelector);\r\n eventsEngine.on($itemContainer, eventName, itemSelector, this._itemContextMenuHandler.bind(this))\r\n },\r\n _shouldFireContextMenuEvent() {\r\n return this.hasActionSubscription(\"onItemContextMenu\")\r\n },\r\n _itemContextMenuHandler(e) {\r\n if (this._shouldFireContextMenuEvent()) {\r\n this._itemDXEventHandler(e, \"onItemContextMenu\")\r\n } else {\r\n e.cancel = true\r\n }\r\n },\r\n _renderContentImpl() {\r\n var items = this.option(\"items\") || [];\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 },\r\n _renderItems(items) {\r\n if (items.length) {\r\n each(items, (index, itemData) => {\r\n this._renderItem(this._renderedItemsCount + index, itemData)\r\n })\r\n }\r\n this._renderEmptyMessage()\r\n },\r\n _getItemsContainer() {\r\n return this._itemContainer()\r\n },\r\n _setAttributes($element) {\r\n var attributes = _extends({}, this.option(\"_itemAttributes\"));\r\n var {\r\n class: customClassValue\r\n } = attributes;\r\n if (customClassValue) {\r\n var currentClassValue = $element.get(0).className;\r\n attributes.class = [currentClassValue, customClassValue].join(\" \")\r\n }\r\n $element.attr(attributes)\r\n },\r\n _renderItem(index, itemData, $container, $itemToReplace) {\r\n var _a;\r\n var itemIndex = null !== (_a = null === index || void 0 === index ? void 0 : index.item) && void 0 !== _a ? _a : index;\r\n $container = $container || this._getItemsContainer();\r\n var $itemFrame = this._renderItemFrame(itemIndex, itemData, $container, $itemToReplace);\r\n this._setElementData($itemFrame, itemData, itemIndex);\r\n this._setAttributes($itemFrame);\r\n this._attachItemClickEvent(itemData, $itemFrame);\r\n var $itemContent = this._getItemContent($itemFrame);\r\n var renderContentPromise = this._renderItemContent({\r\n index: itemIndex,\r\n itemData: itemData,\r\n container: getPublicElement($itemContent),\r\n contentClass: this._itemContentClass(),\r\n defaultTemplateName: this.option(\"itemTemplate\")\r\n });\r\n var that = this;\r\n when(renderContentPromise).done($itemContent => {\r\n that._postprocessRenderItem({\r\n itemElement: $itemFrame,\r\n itemContent: $itemContent,\r\n itemData: itemData,\r\n itemIndex: itemIndex\r\n });\r\n that._executeItemRenderAction(index, itemData, getPublicElement($itemFrame))\r\n });\r\n return $itemFrame\r\n },\r\n _getItemContent($itemFrame) {\r\n var $itemContent = $itemFrame.find(\".\".concat(ITEM_CONTENT_PLACEHOLDER_CLASS));\r\n $itemContent.removeClass(ITEM_CONTENT_PLACEHOLDER_CLASS);\r\n return $itemContent\r\n },\r\n _attachItemClickEvent(itemData, $itemElement) {\r\n if (!itemData || !itemData.onClick) {\r\n return\r\n }\r\n eventsEngine.on($itemElement, clickEventName, e => {\r\n this._itemEventHandlerByHandler($itemElement, itemData.onClick, {\r\n event: e\r\n })\r\n })\r\n },\r\n _renderItemContent(args) {\r\n var itemTemplateName = this._getItemTemplateName(args);\r\n var itemTemplate = this._getTemplate(itemTemplateName);\r\n this._addItemContentClasses(args);\r\n var $templateResult = $(this._createItemByTemplate(itemTemplate, args));\r\n if (!$templateResult.hasClass(TEMPLATE_WRAPPER_CLASS)) {\r\n return args.container\r\n }\r\n return this._renderItemContentByNode(args, $templateResult)\r\n },\r\n _renderItemContentByNode(args, $node) {\r\n $(args.container).replaceWith($node);\r\n args.container = getPublicElement($node);\r\n this._addItemContentClasses(args);\r\n return $node\r\n },\r\n _addItemContentClasses(args) {\r\n var classes = [ITEM_CLASS + CONTENT_CLASS_POSTFIX, args.contentClass];\r\n $(args.container).addClass(classes.join(\" \"))\r\n },\r\n _appendItemToContainer($container, $itemFrame, index) {\r\n $itemFrame.appendTo($container)\r\n },\r\n _renderItemFrame(index, itemData, $container, $itemToReplace) {\r\n var $itemFrame = $(\"
\");\r\n new this.constructor.ItemClass($itemFrame, this._itemOptions(), itemData || {});\r\n if ($itemToReplace && $itemToReplace.length) {\r\n $itemToReplace.replaceWith($itemFrame)\r\n } else {\r\n this._appendItemToContainer.call(this, $container, $itemFrame, index)\r\n }\r\n if (this.option(\"useItemTextAsTitle\")) {\r\n var displayValue = this._displayGetter ? this._displayGetter(itemData) : itemData;\r\n $itemFrame.attr(\"title\", displayValue)\r\n }\r\n return $itemFrame\r\n },\r\n _itemOptions() {\r\n var that = this;\r\n return {\r\n watchMethod: () => that.option(\"integrationOptions.watchMethod\"),\r\n owner: that,\r\n fieldGetter(field) {\r\n var expr = that.option(\"\".concat(field, \"Expr\"));\r\n var getter = compileGetter(expr);\r\n return getter\r\n }\r\n }\r\n },\r\n _postprocessRenderItem: noop,\r\n _executeItemRenderAction(index, itemData, itemElement) {\r\n this._getItemRenderAction()({\r\n itemElement: itemElement,\r\n itemIndex: index,\r\n itemData: itemData\r\n })\r\n },\r\n _setElementData(element, data, index) {\r\n element.addClass([ITEM_CLASS, this._itemClass()].join(\" \")).data(this._itemDataKey(), data).data(this._itemIndexKey(), index)\r\n },\r\n _createItemRenderAction() {\r\n return this._itemRenderAction = this._createActionByOption(\"onItemRendered\", {\r\n element: this.element(),\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n })\r\n },\r\n _getItemRenderAction() {\r\n return this._itemRenderAction || this._createItemRenderAction()\r\n },\r\n _getItemTemplateName(args) {\r\n var data = args.itemData;\r\n var templateProperty = args.templateProperty || this.option(\"itemTemplateProperty\");\r\n var template = data && data[templateProperty];\r\n return template || args.defaultTemplateName\r\n },\r\n _createItemByTemplate(itemTemplate, renderArgs) {\r\n return itemTemplate.render({\r\n model: renderArgs.itemData,\r\n container: renderArgs.container,\r\n index: renderArgs.index,\r\n onRendered: this._onItemTemplateRendered(itemTemplate, renderArgs)\r\n })\r\n },\r\n _onItemTemplateRendered: () => noop,\r\n _emptyMessageContainer() {\r\n return this._itemContainer()\r\n },\r\n _renderEmptyMessage(items) {\r\n items = items || this.option(\"items\");\r\n var noDataText = this.option(\"noDataText\");\r\n var hideNoData = !noDataText || items && items.length || this._dataController.isLoading();\r\n if (hideNoData && this._$noData) {\r\n this._$noData.remove();\r\n this._$noData = null;\r\n this.setAria(\"label\", void 0)\r\n }\r\n if (!hideNoData) {\r\n this._$noData = this._$noData || $(\"
\").addClass(\"dx-empty-message\");\r\n this._$noData.appendTo(this._emptyMessageContainer());\r\n if (this.option(\"encodeNoDataText\")) {\r\n this._$noData.text(noDataText)\r\n } else {\r\n this._$noData.html(noDataText)\r\n }\r\n }\r\n this.$element().toggleClass(EMPTY_COLLECTION, !hideNoData)\r\n },\r\n _itemDXEventHandler(dxEvent, handlerOptionName, actionArgs, actionConfig) {\r\n this._itemEventHandler(dxEvent.target, handlerOptionName, extend(actionArgs, {\r\n event: dxEvent\r\n }), actionConfig)\r\n },\r\n _itemEventHandler(initiator, handlerOptionName, actionArgs, actionConfig) {\r\n var action = this._createActionByOption(handlerOptionName, extend({\r\n validatingTargetName: \"itemElement\"\r\n }, actionConfig));\r\n return this._itemEventHandlerImpl(initiator, action, actionArgs)\r\n },\r\n _itemEventHandlerByHandler(initiator, handler, actionArgs, actionConfig) {\r\n var action = this._createAction(handler, extend({\r\n validatingTargetName: \"itemElement\"\r\n }, actionConfig));\r\n return this._itemEventHandlerImpl(initiator, action, actionArgs)\r\n },\r\n _itemEventHandlerImpl(initiator, action, actionArgs) {\r\n var $itemElement = this._closestItemElement($(initiator));\r\n var args = extend({}, actionArgs);\r\n return action(extend(actionArgs, this._extendActionArgs($itemElement), args))\r\n },\r\n _extendActionArgs($itemElement) {\r\n return {\r\n itemElement: getPublicElement($itemElement),\r\n itemIndex: this._itemElements().index($itemElement),\r\n itemData: this._getItemData($itemElement)\r\n }\r\n },\r\n _closestItemElement($element) {\r\n return $($element).closest(this._itemSelector())\r\n },\r\n _getItemData(itemElement) {\r\n return $(itemElement).data(this._itemDataKey())\r\n },\r\n _getSummaryItemsSize(dimension, items, includeMargin) {\r\n var result = 0;\r\n if (items) {\r\n each(items, (_, item) => {\r\n if (\"width\" === dimension) {\r\n result += getOuterWidth(item, includeMargin || false)\r\n } else if (\"height\" === dimension) {\r\n result += getOuterHeight(item, includeMargin || false)\r\n }\r\n })\r\n }\r\n return result\r\n },\r\n getFocusedItemId() {\r\n if (!this._focusedItemId) {\r\n this._focusedItemId = \"dx-\".concat(new Guid)\r\n }\r\n return this._focusedItemId\r\n },\r\n itemElements() {\r\n return this._itemElements()\r\n },\r\n itemsContainer() {\r\n return this._itemContainer()\r\n }\r\n}).include(DataHelperMixin);\r\nCollectionWidget.ItemClass = CollectionWidgetItem;\r\nexport default CollectionWidget;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/collection/m_collection_widget.edit.strategy.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../../core/class\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n equalByValue\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n isRenderer\r\n} from \"../../../core/utils/type\";\r\nvar {\r\n abstract: abstract\r\n} = Class;\r\nvar EditStrategy = Class.inherit({\r\n ctor(collectionWidget) {\r\n this._collectionWidget = collectionWidget\r\n },\r\n getIndexByItemData: abstract,\r\n getItemDataByIndex: abstract,\r\n getKeysByItems: abstract,\r\n getItemsByKeys: abstract,\r\n itemsGetter: abstract,\r\n getKeyByIndex(index) {\r\n var resultIndex = this._denormalizeItemIndex(index);\r\n return this.getKeysByItems([this.getItemDataByIndex(resultIndex)])[0]\r\n },\r\n _equalKeys(key1, key2) {\r\n if (this._collectionWidget._isKeySpecified()) {\r\n return equalByValue(key1, key2)\r\n }\r\n return key1 === key2\r\n },\r\n beginCache() {\r\n this._cache = {}\r\n },\r\n endCache() {\r\n this._cache = null\r\n },\r\n getIndexByKey: abstract,\r\n getNormalizedIndex(value) {\r\n if (this._isNormalizedItemIndex(value)) {\r\n return value\r\n }\r\n if (this._isItemIndex(value)) {\r\n return this._normalizeItemIndex(value)\r\n }\r\n if (this._isNode(value)) {\r\n return this._getNormalizedItemIndex(value)\r\n }\r\n return this._normalizeItemIndex(this.getIndexByItemData(value))\r\n },\r\n getIndex(value) {\r\n if (this._isNormalizedItemIndex(value)) {\r\n return this._denormalizeItemIndex(value)\r\n }\r\n if (this._isItemIndex(value)) {\r\n return value\r\n }\r\n if (this._isNode(value)) {\r\n return this._denormalizeItemIndex(this._getNormalizedItemIndex(value))\r\n }\r\n return this.getIndexByItemData(value)\r\n },\r\n getItemElement(value) {\r\n if (this._isNormalizedItemIndex(value)) {\r\n return this._getItemByNormalizedIndex(value)\r\n }\r\n if (this._isItemIndex(value)) {\r\n return this._getItemByNormalizedIndex(this._normalizeItemIndex(value))\r\n }\r\n if (this._isNode(value)) {\r\n return $(value)\r\n }\r\n var normalizedItemIndex = this._normalizeItemIndex(this.getIndexByItemData(value));\r\n return this._getItemByNormalizedIndex(normalizedItemIndex)\r\n },\r\n _isNode: el => domAdapter.isNode(el && isRenderer(el) ? el.get(0) : el),\r\n deleteItemAtIndex: abstract,\r\n itemPlacementFunc(movingIndex, destinationIndex) {\r\n return this._itemsFromSameParent(movingIndex, destinationIndex) && movingIndex < destinationIndex ? \"after\" : \"before\"\r\n },\r\n moveItemAtIndexToIndex: abstract,\r\n _isNormalizedItemIndex: index => \"number\" === typeof index && Math.round(index) === index,\r\n _isItemIndex: abstract,\r\n _getNormalizedItemIndex: abstract,\r\n _normalizeItemIndex: abstract,\r\n _denormalizeItemIndex: abstract,\r\n _getItemByNormalizedIndex: abstract,\r\n _itemsFromSameParent: abstract\r\n});\r\nexport default EditStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/collection/m_collection_widget.edit.strategy.plain.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport EditStrategy from \"./m_collection_widget.edit.strategy\";\r\nvar PlainEditStrategy = EditStrategy.inherit({\r\n _getPlainItems() {\r\n return this._collectionWidget.option(\"items\") || []\r\n },\r\n getIndexByItemData(itemData) {\r\n var keyOf = this._collectionWidget.keyOf.bind(this._collectionWidget);\r\n if (keyOf) {\r\n return this.getIndexByKey(keyOf(itemData))\r\n }\r\n return this._getPlainItems().indexOf(itemData)\r\n },\r\n getItemDataByIndex(index) {\r\n return this._getPlainItems()[index]\r\n },\r\n deleteItemAtIndex(index) {\r\n this._getPlainItems().splice(index, 1)\r\n },\r\n itemsGetter() {\r\n return this._getPlainItems()\r\n },\r\n getKeysByItems(items) {\r\n var keyOf = this._collectionWidget.keyOf.bind(this._collectionWidget);\r\n var result = items;\r\n if (keyOf) {\r\n result = [];\r\n for (var i = 0; i < items.length; i++) {\r\n result.push(keyOf(items[i]))\r\n }\r\n }\r\n return result\r\n },\r\n getIndexByKey(key) {\r\n var cache = this._cache;\r\n var keys = cache && cache.keys || this.getKeysByItems(this._getPlainItems());\r\n if (cache && !cache.keys) {\r\n cache.keys = keys\r\n }\r\n if (\"object\" === typeof key) {\r\n for (var i = 0, {\r\n length: length\r\n } = keys; i < length; i++) {\r\n if (this._equalKeys(key, keys[i])) {\r\n return i\r\n }\r\n }\r\n } else {\r\n return keys.indexOf(key)\r\n }\r\n return -1\r\n },\r\n getItemsByKeys: (keys, items) => (items || keys).slice(),\r\n moveItemAtIndexToIndex(movingIndex, destinationIndex) {\r\n var items = this._getPlainItems();\r\n var movedItemData = items[movingIndex];\r\n items.splice(movingIndex, 1);\r\n items.splice(destinationIndex, 0, movedItemData)\r\n },\r\n _isItemIndex: index => \"number\" === typeof index && Math.round(index) === index,\r\n _getNormalizedItemIndex(itemElement) {\r\n return this._collectionWidget._itemElements().index(itemElement)\r\n },\r\n _normalizeItemIndex: index => index,\r\n _denormalizeItemIndex: index => index,\r\n _getItemByNormalizedIndex(index) {\r\n return index > -1 ? this._collectionWidget._itemElements().eq(index) : null\r\n },\r\n _itemsFromSameParent: () => true\r\n});\r\nexport default PlainEditStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/collection/m_collection_widget.edit.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n compileGetter\r\n} from \"../../../core/utils/data\";\r\nimport {\r\n Deferred,\r\n fromPromise,\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} from \"../../../core/utils/type\";\r\nimport {\r\n DataSource\r\n} from \"../../../data/data_source/data_source\";\r\nimport {\r\n normalizeLoadResult\r\n} from \"../../../data/data_source/utils\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport errors from \"../../../ui/widget/ui.errors\";\r\nimport Selection from \"../../ui/selection/m_selection\";\r\nimport BaseCollectionWidget from \"./m_collection_widget.base\";\r\nimport PlainEditStrategy from \"./m_collection_widget.edit.strategy.plain\";\r\nvar ITEM_DELETING_DATA_KEY = \"dxItemDeleting\";\r\nvar NOT_EXISTING_INDEX = -1;\r\nvar indexExists = function(index) {\r\n return index !== NOT_EXISTING_INDEX\r\n};\r\nvar CollectionWidget = BaseCollectionWidget.inherit({\r\n _setOptionsByReference() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n selectedItem: true\r\n })\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n selectionMode: \"none\",\r\n selectionRequired: false,\r\n selectByClick: true,\r\n selectedItems: [],\r\n selectedItemKeys: [],\r\n maxFilterLengthInRequest: 1500,\r\n keyExpr: null,\r\n selectedIndex: NOT_EXISTING_INDEX,\r\n selectedItem: null,\r\n onSelectionChanged: null,\r\n onItemReordered: null,\r\n onItemDeleting: null,\r\n onItemDeleted: null\r\n })\r\n },\r\n ctor(element, options) {\r\n this._userOptions = options || {};\r\n this.callBase(element, options)\r\n },\r\n _init() {\r\n this._initEditStrategy();\r\n this.callBase();\r\n this._initKeyGetter();\r\n this._initSelectionModule()\r\n },\r\n _initKeyGetter() {\r\n this._keyGetter = compileGetter(this.option(\"keyExpr\"))\r\n },\r\n _getKeysByItems(selectedItems) {\r\n return this._editStrategy.getKeysByItems(selectedItems)\r\n },\r\n _getItemsByKeys(selectedItemKeys, selectedItems) {\r\n return this._editStrategy.getItemsByKeys(selectedItemKeys, selectedItems)\r\n },\r\n _getKeyByIndex(index) {\r\n return this._editStrategy.getKeyByIndex(index)\r\n },\r\n _getIndexByKey(key) {\r\n return this._editStrategy.getIndexByKey(key)\r\n },\r\n _getIndexByItemData(itemData) {\r\n return this._editStrategy.getIndexByItemData(itemData)\r\n },\r\n _isKeySpecified() {\r\n return !!this._dataController.key()\r\n },\r\n _getCombinedFilter() {\r\n return this._dataController.filter()\r\n },\r\n key() {\r\n if (this.option(\"keyExpr\")) {\r\n return this.option(\"keyExpr\")\r\n }\r\n return this._dataController.key()\r\n },\r\n keyOf(item) {\r\n var key = item;\r\n if (this.option(\"keyExpr\")) {\r\n key = this._keyGetter(item)\r\n } else if (this._dataController.store()) {\r\n key = this._dataController.keyOf(item)\r\n }\r\n return key\r\n },\r\n _nullValueSelectionSupported: () => false,\r\n _initSelectionModule() {\r\n var that = this;\r\n var {\r\n itemsGetter: itemsGetter\r\n } = that._editStrategy;\r\n this._selection = new Selection({\r\n allowNullValue: this._nullValueSelectionSupported(),\r\n mode: this.option(\"selectionMode\"),\r\n maxFilterLengthInRequest: this.option(\"maxFilterLengthInRequest\"),\r\n equalByReference: !this._isKeySpecified(),\r\n onSelectionChanged(args) {\r\n if (args.addedItemKeys.length || args.removedItemKeys.length) {\r\n that.option(\"selectedItems\", that._getItemsByKeys(args.selectedItemKeys, args.selectedItems));\r\n that._updateSelectedItems(args)\r\n }\r\n },\r\n filter: that._getCombinedFilter.bind(that),\r\n totalCount() {\r\n var items = that.option(\"items\");\r\n var totalCount = that._dataController.totalCount();\r\n return totalCount >= 0 ? totalCount : that._getItemsCount(items)\r\n },\r\n key: that.key.bind(that),\r\n keyOf: that.keyOf.bind(that),\r\n load(options) {\r\n var _a;\r\n var dataController = that._dataController;\r\n options.customQueryParams = null === (_a = dataController.loadOptions()) || void 0 === _a ? void 0 : _a.customQueryParams;\r\n options.userData = dataController.userData();\r\n if (dataController.store()) {\r\n return dataController.loadFromStore(options).done(loadResult => {\r\n if (that._disposed) {\r\n return\r\n }\r\n var items = normalizeLoadResult(loadResult).data;\r\n dataController.applyMapFunction(items)\r\n })\r\n }\r\n return Deferred().resolve(this.plainItems())\r\n },\r\n dataFields: () => that._dataController.select(),\r\n plainItems: itemsGetter.bind(that._editStrategy)\r\n })\r\n },\r\n _getItemsCount(items) {\r\n return items.reduce((itemsCount, item) => itemsCount + (item.items ? this._getItemsCount(item.items) : 1), 0)\r\n },\r\n _initEditStrategy() {\r\n var Strategy = PlainEditStrategy;\r\n this._editStrategy = new Strategy(this)\r\n },\r\n _getSelectedItemIndices(keys) {\r\n var that = this;\r\n var indices = [];\r\n keys = keys || this._selection.getSelectedItemKeys();\r\n that._editStrategy.beginCache();\r\n each(keys, (_, key) => {\r\n var selectedIndex = that._getIndexByKey(key);\r\n if (indexExists(selectedIndex)) {\r\n indices.push(selectedIndex)\r\n }\r\n });\r\n that._editStrategy.endCache();\r\n return indices\r\n },\r\n _initMarkup() {\r\n this._rendering = true;\r\n if (!this._dataController.isLoading()) {\r\n this._syncSelectionOptions().done(() => this._normalizeSelectedItems())\r\n }\r\n this.callBase()\r\n },\r\n _render() {\r\n this.callBase();\r\n this._rendering = false\r\n },\r\n _fireContentReadyAction() {\r\n this._rendering = false;\r\n this._rendered = true;\r\n this.callBase.apply(this, arguments)\r\n },\r\n _syncSelectionOptions(byOption) {\r\n byOption = byOption || this._chooseSelectOption();\r\n var selectedItem;\r\n var selectedIndex;\r\n var selectedItemKeys;\r\n var selectedItems;\r\n switch (byOption) {\r\n case \"selectedIndex\":\r\n selectedItem = this._editStrategy.getItemDataByIndex(this.option(\"selectedIndex\"));\r\n if (isDefined(selectedItem)) {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", [selectedItem]);\r\n this._setOptionWithoutOptionChange(\"selectedItem\", selectedItem);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", this._editStrategy.getKeysByItems([selectedItem]))\r\n } else {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", []);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", []);\r\n this._setOptionWithoutOptionChange(\"selectedItem\", null)\r\n }\r\n break;\r\n case \"selectedItems\":\r\n selectedItems = this.option(\"selectedItems\") || [];\r\n selectedIndex = selectedItems.length ? this._editStrategy.getIndexByItemData(selectedItems[0]) : NOT_EXISTING_INDEX;\r\n if (this.option(\"selectionRequired\") && !indexExists(selectedIndex)) {\r\n return this._syncSelectionOptions(\"selectedIndex\")\r\n }\r\n this._setOptionWithoutOptionChange(\"selectedItem\", selectedItems[0]);\r\n this._setOptionWithoutOptionChange(\"selectedIndex\", selectedIndex);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", this._editStrategy.getKeysByItems(selectedItems));\r\n break;\r\n case \"selectedItem\":\r\n selectedItem = this.option(\"selectedItem\");\r\n selectedIndex = this._editStrategy.getIndexByItemData(selectedItem);\r\n if (this.option(\"selectionRequired\") && !indexExists(selectedIndex)) {\r\n return this._syncSelectionOptions(\"selectedIndex\")\r\n }\r\n if (isDefined(selectedItem)) {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", [selectedItem]);\r\n this._setOptionWithoutOptionChange(\"selectedIndex\", selectedIndex);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", this._editStrategy.getKeysByItems([selectedItem]))\r\n } else {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", []);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", []);\r\n this._setOptionWithoutOptionChange(\"selectedIndex\", NOT_EXISTING_INDEX)\r\n }\r\n break;\r\n case \"selectedItemKeys\":\r\n selectedItemKeys = this.option(\"selectedItemKeys\");\r\n if (this.option(\"selectionRequired\")) {\r\n var selectedItemIndex = this._getIndexByKey(selectedItemKeys[0]);\r\n if (!indexExists(selectedItemIndex)) {\r\n return this._syncSelectionOptions(\"selectedIndex\")\r\n }\r\n }\r\n return this._selection.setSelection(selectedItemKeys)\r\n }\r\n return Deferred().resolve().promise()\r\n },\r\n _chooseSelectOption() {\r\n var optionName = \"selectedIndex\";\r\n var isOptionDefined = function(optionName) {\r\n var optionValue = this.option(optionName);\r\n var length = isDefined(optionValue) && optionValue.length;\r\n return length || optionName in this._userOptions\r\n }.bind(this);\r\n if (isOptionDefined(\"selectedItems\")) {\r\n optionName = \"selectedItems\"\r\n } else if (isOptionDefined(\"selectedItem\")) {\r\n optionName = \"selectedItem\"\r\n } else if (isOptionDefined(\"selectedItemKeys\")) {\r\n optionName = \"selectedItemKeys\"\r\n }\r\n return optionName\r\n },\r\n _compareKeys(oldKeys, newKeys) {\r\n if (oldKeys.length !== newKeys.length) {\r\n return false\r\n }\r\n for (var i = 0; i < newKeys.length; i++) {\r\n if (oldKeys[i] !== newKeys[i]) {\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n _normalizeSelectedItems() {\r\n if (\"none\" === this.option(\"selectionMode\")) {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", []);\r\n this._syncSelectionOptions(\"selectedItems\")\r\n } else if (\"single\" === this.option(\"selectionMode\")) {\r\n var newSelection = this.option(\"selectedItems\");\r\n if (newSelection.length > 1 || !newSelection.length && this.option(\"selectionRequired\") && this.option(\"items\") && this.option(\"items\").length) {\r\n var currentSelection = this._selection.getSelectedItems();\r\n var normalizedSelection = void 0 === newSelection[0] ? currentSelection[0] : newSelection[0];\r\n if (void 0 === normalizedSelection) {\r\n normalizedSelection = this._editStrategy.itemsGetter()[0]\r\n }\r\n if (this.option(\"grouped\") && normalizedSelection && normalizedSelection.items) {\r\n normalizedSelection.items = [normalizedSelection.items[0]]\r\n }\r\n this._selection.setSelection(this._getKeysByItems([normalizedSelection]));\r\n this._setOptionWithoutOptionChange(\"selectedItems\", [normalizedSelection]);\r\n return this._syncSelectionOptions(\"selectedItems\")\r\n }\r\n this._selection.setSelection(this._getKeysByItems(newSelection))\r\n } else {\r\n var newKeys = this._getKeysByItems(this.option(\"selectedItems\"));\r\n var oldKeys = this._selection.getSelectedItemKeys();\r\n if (!this._compareKeys(oldKeys, newKeys)) {\r\n this._selection.setSelection(newKeys)\r\n }\r\n }\r\n return Deferred().resolve().promise()\r\n },\r\n _itemClickHandler(e) {\r\n var itemSelectPromise = Deferred().resolve();\r\n var {\r\n callBase: callBase\r\n } = this;\r\n this._createAction(e => {\r\n var _a;\r\n itemSelectPromise = null !== (_a = this._itemSelectHandler(e.event)) && void 0 !== _a ? _a : itemSelectPromise\r\n }, {\r\n validatingTargetName: \"itemElement\"\r\n })({\r\n itemElement: $(e.currentTarget),\r\n event: e\r\n });\r\n itemSelectPromise.always(() => {\r\n callBase.apply(this, arguments)\r\n })\r\n },\r\n _itemSelectHandler(e) {\r\n var itemSelectPromise;\r\n if (!this.option(\"selectByClick\")) {\r\n return\r\n }\r\n var $itemElement = e.currentTarget;\r\n if (this.isItemSelected($itemElement)) {\r\n this.unselectItem(e.currentTarget)\r\n } else {\r\n itemSelectPromise = this.selectItem(e.currentTarget)\r\n }\r\n return null === itemSelectPromise || void 0 === itemSelectPromise ? void 0 : itemSelectPromise.promise()\r\n },\r\n _selectedItemElement(index) {\r\n return this._itemElements().eq(index)\r\n },\r\n _postprocessRenderItem(args) {\r\n if (\"none\" !== this.option(\"selectionMode\")) {\r\n var $itemElement = $(args.itemElement);\r\n var normalizedItemIndex = this._editStrategy.getNormalizedIndex($itemElement);\r\n var isItemSelected = this._isItemSelected(normalizedItemIndex);\r\n this._processSelectableItem($itemElement, isItemSelected)\r\n }\r\n },\r\n _processSelectableItem($itemElement, isSelected) {\r\n $itemElement.toggleClass(this._selectedItemClass(), isSelected);\r\n this._setAriaSelectionAttribute($itemElement, String(isSelected))\r\n },\r\n _updateSelectedItems(args) {\r\n var that = this;\r\n var {\r\n addedItemKeys: addedItemKeys\r\n } = args;\r\n var {\r\n removedItemKeys: removedItemKeys\r\n } = args;\r\n if (that._rendered && (addedItemKeys.length || removedItemKeys.length)) {\r\n var selectionChangePromise = that._selectionChangePromise;\r\n if (!that._rendering) {\r\n var addedSelection = [];\r\n var normalizedIndex;\r\n var removedSelection = [];\r\n that._editStrategy.beginCache();\r\n for (var i = 0; i < addedItemKeys.length; i++) {\r\n normalizedIndex = that._getIndexByKey(addedItemKeys[i]);\r\n addedSelection.push(normalizedIndex);\r\n that._addSelection(normalizedIndex)\r\n }\r\n for (var _i = 0; _i < removedItemKeys.length; _i++) {\r\n normalizedIndex = that._getIndexByKey(removedItemKeys[_i]);\r\n removedSelection.push(normalizedIndex);\r\n that._removeSelection(normalizedIndex)\r\n }\r\n that._editStrategy.endCache();\r\n that._updateSelection(addedSelection, removedSelection)\r\n }\r\n when(selectionChangePromise).done(() => {\r\n that._fireSelectionChangeEvent(args.addedItems, args.removedItems)\r\n })\r\n }\r\n },\r\n _fireSelectionChangeEvent(addedItems, removedItems) {\r\n this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })({\r\n addedItems: addedItems,\r\n removedItems: removedItems\r\n })\r\n },\r\n _updateSelection: noop,\r\n _setAriaSelectionAttribute($target, value) {\r\n this.setAria(\"selected\", value, $target)\r\n },\r\n _removeSelection(normalizedIndex) {\r\n var $itemElement = this._editStrategy.getItemElement(normalizedIndex);\r\n if (indexExists(normalizedIndex)) {\r\n this._processSelectableItem($itemElement, false);\r\n eventsEngine.triggerHandler($itemElement, \"stateChanged\", false)\r\n }\r\n },\r\n _addSelection(normalizedIndex) {\r\n var $itemElement = this._editStrategy.getItemElement(normalizedIndex);\r\n if (indexExists(normalizedIndex)) {\r\n this._processSelectableItem($itemElement, true);\r\n eventsEngine.triggerHandler($itemElement, \"stateChanged\", true)\r\n }\r\n },\r\n _isItemSelected(index) {\r\n var key = this._getKeyByIndex(index);\r\n return this._selection.isItemSelected(key, {\r\n checkPending: true\r\n })\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"selectionMode\":\r\n this._invalidate();\r\n break;\r\n case \"dataSource\":\r\n if (!args.value || Array.isArray(args.value) && !args.value.length) {\r\n this.option(\"selectedItemKeys\", [])\r\n }\r\n this.callBase(args);\r\n break;\r\n case \"selectedIndex\":\r\n case \"selectedItem\":\r\n case \"selectedItems\":\r\n case \"selectedItemKeys\":\r\n this._syncSelectionOptions(args.name).done(() => this._normalizeSelectedItems());\r\n break;\r\n case \"keyExpr\":\r\n this._initKeyGetter();\r\n break;\r\n case \"selectionRequired\":\r\n this._normalizeSelectedItems();\r\n break;\r\n case \"selectByClick\":\r\n case \"onSelectionChanged\":\r\n case \"onItemDeleting\":\r\n case \"onItemDeleted\":\r\n case \"onItemReordered\":\r\n case \"maxFilterLengthInRequest\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clearSelectedItems() {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", []);\r\n this._syncSelectionOptions(\"selectedItems\")\r\n },\r\n _waitDeletingPrepare($itemElement) {\r\n if ($itemElement.data(ITEM_DELETING_DATA_KEY)) {\r\n return Deferred().resolve().promise()\r\n }\r\n $itemElement.data(ITEM_DELETING_DATA_KEY, true);\r\n var deferred = Deferred();\r\n var deletingActionArgs = {\r\n cancel: false\r\n };\r\n var deletePromise = this._itemEventHandler($itemElement, \"onItemDeleting\", deletingActionArgs, {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n when(deletePromise).always((function(value) {\r\n var deletePromiseExists = !deletePromise;\r\n var deletePromiseResolved = !deletePromiseExists && \"resolved\" === deletePromise.state();\r\n var argumentsSpecified = !!arguments.length;\r\n var shouldDelete = deletePromiseExists || deletePromiseResolved && !argumentsSpecified || deletePromiseResolved && value;\r\n when(fromPromise(deletingActionArgs.cancel)).always(() => {\r\n $itemElement.data(ITEM_DELETING_DATA_KEY, false)\r\n }).done(cancel => {\r\n shouldDelete && !cancel ? deferred.resolve() : deferred.reject()\r\n }).fail(deferred.reject)\r\n }));\r\n return deferred.promise()\r\n },\r\n _deleteItemFromDS($item) {\r\n var dataController = this._dataController;\r\n var deferred = Deferred();\r\n var disabledState = this.option(\"disabled\");\r\n var dataStore = dataController.store();\r\n if (!dataStore) {\r\n return Deferred().resolve().promise()\r\n }\r\n if (!dataStore.remove) {\r\n throw errors.Error(\"E1011\")\r\n }\r\n this.option(\"disabled\", true);\r\n dataStore.remove(dataController.keyOf(this._getItemData($item))).done(key => {\r\n if (void 0 !== key) {\r\n deferred.resolve()\r\n } else {\r\n deferred.reject()\r\n }\r\n }).fail(() => {\r\n deferred.reject()\r\n });\r\n deferred.always(() => {\r\n this.option(\"disabled\", disabledState)\r\n });\r\n return deferred\r\n },\r\n _tryRefreshLastPage() {\r\n var deferred = Deferred();\r\n if (this._isLastPage() || this.option(\"grouped\")) {\r\n deferred.resolve()\r\n } else {\r\n this._refreshLastPage().done(() => {\r\n deferred.resolve()\r\n })\r\n }\r\n return deferred.promise()\r\n },\r\n _refreshLastPage() {\r\n this._expectLastItemLoading();\r\n return this._dataController.load()\r\n },\r\n _updateSelectionAfterDelete(index) {\r\n var key = this._getKeyByIndex(index);\r\n this._selection.deselect([key])\r\n },\r\n _updateIndicesAfterIndex(index) {\r\n var itemElements = this._itemElements();\r\n for (var i = index + 1; i < itemElements.length; i++) {\r\n $(itemElements[i]).data(this._itemIndexKey(), i - 1)\r\n }\r\n },\r\n _simulateOptionChange(optionName) {\r\n var optionValue = this.option(optionName);\r\n if (optionValue instanceof DataSource) {\r\n return\r\n }\r\n this._optionChangedAction({\r\n name: optionName,\r\n fullName: optionName,\r\n value: optionValue\r\n })\r\n },\r\n isItemSelected(itemElement) {\r\n return this._isItemSelected(this._editStrategy.getNormalizedIndex(itemElement))\r\n },\r\n selectItem(itemElement) {\r\n if (\"none\" === this.option(\"selectionMode\")) {\r\n return\r\n }\r\n var itemIndex = this._editStrategy.getNormalizedIndex(itemElement);\r\n if (!indexExists(itemIndex)) {\r\n return\r\n }\r\n var key = this._getKeyByIndex(itemIndex);\r\n if (this._selection.isItemSelected(key)) {\r\n return\r\n }\r\n if (\"single\" === this.option(\"selectionMode\")) {\r\n return this._selection.setSelection([key])\r\n }\r\n var selectedItemKeys = this.option(\"selectedItemKeys\") || [];\r\n return this._selection.setSelection([...selectedItemKeys, key], [key])\r\n },\r\n unselectItem(itemElement) {\r\n var itemIndex = this._editStrategy.getNormalizedIndex(itemElement);\r\n if (!indexExists(itemIndex)) {\r\n return\r\n }\r\n var selectedItemKeys = this._selection.getSelectedItemKeys();\r\n if (this.option(\"selectionRequired\") && selectedItemKeys.length <= 1) {\r\n return\r\n }\r\n var key = this._getKeyByIndex(itemIndex);\r\n if (!this._selection.isItemSelected(key, {\r\n checkPending: true\r\n })) {\r\n return\r\n }\r\n this._selection.deselect([key])\r\n },\r\n _deleteItemElementByIndex(index) {\r\n this._updateSelectionAfterDelete(index);\r\n this._updateIndicesAfterIndex(index);\r\n this._editStrategy.deleteItemAtIndex(index)\r\n },\r\n _afterItemElementDeleted($item, deletedActionArgs) {\r\n var changingOption = this._dataController.getDataSource() ? \"dataSource\" : \"items\";\r\n this._simulateOptionChange(changingOption);\r\n this._itemEventHandler($item, \"onItemDeleted\", deletedActionArgs, {\r\n beforeExecute() {\r\n $item.remove()\r\n },\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this._renderEmptyMessage()\r\n },\r\n deleteItem(itemElement) {\r\n var that = this;\r\n var deferred = Deferred();\r\n var $item = this._editStrategy.getItemElement(itemElement);\r\n var index = this._editStrategy.getNormalizedIndex(itemElement);\r\n var itemResponseWaitClass = this._itemResponseWaitClass();\r\n if (indexExists(index)) {\r\n this._waitDeletingPrepare($item).done(() => {\r\n $item.addClass(itemResponseWaitClass);\r\n var deletedActionArgs = that._extendActionArgs($item);\r\n that._deleteItemFromDS($item).done(() => {\r\n that._deleteItemElementByIndex(index);\r\n that._afterItemElementDeleted($item, deletedActionArgs);\r\n that._tryRefreshLastPage().done(() => {\r\n deferred.resolveWith(that)\r\n })\r\n }).fail(() => {\r\n $item.removeClass(itemResponseWaitClass);\r\n deferred.rejectWith(that)\r\n })\r\n }).fail(() => {\r\n deferred.rejectWith(that)\r\n })\r\n } else {\r\n deferred.rejectWith(that)\r\n }\r\n return deferred.promise()\r\n },\r\n reorderItem(itemElement, toItemElement) {\r\n var deferred = Deferred();\r\n var that = this;\r\n var strategy = this._editStrategy;\r\n var $movingItem = strategy.getItemElement(itemElement);\r\n var $destinationItem = strategy.getItemElement(toItemElement);\r\n var movingIndex = strategy.getNormalizedIndex(itemElement);\r\n var destinationIndex = strategy.getNormalizedIndex(toItemElement);\r\n var changingOption = this._dataController.getDataSource() ? \"dataSource\" : \"items\";\r\n var canMoveItems = indexExists(movingIndex) && indexExists(destinationIndex) && movingIndex !== destinationIndex;\r\n if (canMoveItems) {\r\n deferred.resolveWith(this)\r\n } else {\r\n deferred.rejectWith(this)\r\n }\r\n return deferred.promise().done((function() {\r\n $destinationItem[strategy.itemPlacementFunc(movingIndex, destinationIndex)]($movingItem);\r\n strategy.moveItemAtIndexToIndex(movingIndex, destinationIndex);\r\n this._updateIndicesAfterIndex(movingIndex);\r\n that.option(\"selectedItems\", that._getItemsByKeys(that._selection.getSelectedItemKeys(), that._selection.getSelectedItems()));\r\n if (\"items\" === changingOption) {\r\n that._simulateOptionChange(changingOption)\r\n }\r\n that._itemEventHandler($movingItem, \"onItemReordered\", {\r\n fromIndex: strategy.getIndex(movingIndex),\r\n toIndex: strategy.getIndex(destinationIndex)\r\n }, {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n }))\r\n }\r\n});\r\nexport default CollectionWidget;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/collection/m_collection_widget.async.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../core/utils/deferred\";\r\nimport CollectionWidgetEdit from \"./m_collection_widget.edit\";\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 = Deferred();\r\n var itemDeferred = 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(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 = 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/collection/ui.collection_widget.edit.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport CollectionWidget from \"../../__internal/ui/collection/m_collection_widget.edit\";\r\nexport default CollectionWidget;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/widget.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Widget from \"../../ui/widget/ui.widget\";\r\nvar TypedWidget = Widget;\r\nexport default TypedWidget;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/collection/edit.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport CollectionWidgetEdit from \"../../../ui/collection/ui.collection_widget.edit\";\r\nimport CollectionWidgetBase from \"./base\";\r\nvar TypedCollectionWidget = CollectionWidgetEdit;\r\nexport default TypedCollectionWidget;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/collection/async.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport CollectionWidgetAsync from \"../../../ui/collection/ui.collection_widget.async\";\r\nimport CollectionWidgetEdit from \"./edit\";\r\nvar TypedCollectionWidget = CollectionWidgetAsync;\r\nexport default TypedCollectionWidget;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/toolbar/m_constants.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var TOOLBAR_CLASS = \"dx-toolbar\";\r\n","/**\r\n * DevExtreme (esm/__internal/ui/toolbar/m_toolbar.base.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport fx from \"../../../animation/fx\";\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../../core/templates/bindable_template\";\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 getOuterWidth,\r\n getWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n isMaterial,\r\n isMaterialBased,\r\n waitWebFont\r\n} from \"../../../ui/themes\";\r\nimport AsyncCollectionWidget from \"../../ui/collection/async\";\r\nimport {\r\n TOOLBAR_CLASS\r\n} from \"./m_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(($container, data, rawModel) => {\r\n var _a, _b, _c, _d, _e;\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 data.options = null !== (_a = data.options) && void 0 !== _a ? _a : {};\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 data.options = null !== (_b = data.options) && void 0 !== _b ? _b : {};\r\n data.options.stylingMode = null !== (_c = data.options.stylingMode) && void 0 !== _c ? _c : TEXT_BUTTON_MODE\r\n }\r\n if (this.option(\"useDefaultButtons\")) {\r\n data.options = null !== (_d = data.options) && void 0 !== _d ? _d : {};\r\n data.options.type = null !== (_e = data.options.type) && void 0 !== _e ? _e : 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 }, [\"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 _extends(_extends({}, 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: () => isMaterialBased(),\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(dimension) {\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).attr(\"role\", \"presentation\").appendTo($container)\r\n }\r\n })\r\n }\r\n _arrangeItems(width) {\r\n var _a, _b;\r\n var elementWidth = null !== width && void 0 !== width ? width : getWidth(this.$element());\r\n this._$centerSection.css({\r\n margin: \"0 auto\",\r\n float: \"none\"\r\n });\r\n var beforeRect = getBoundingRect(null === (_a = this._$beforeSection) || void 0 === _a ? void 0 : _a.get(0));\r\n var afterRect = getBoundingRect(null === (_b = this._$afterSection) || void 0 === _b ? void 0 : _b.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((index, element) => {\r\n elemsAtSectionWidth += getOuterWidth(element)\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 var _a;\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(null === (_a = this._$centerSection) || void 0 === _a ? void 0 : _a.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._getSummaryItemsSize(\"width\", 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(label => {\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(label => {\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 _a, _b;\r\n var location = null !== (_a = item.location) && void 0 !== _a ? _a : \"center\";\r\n var container = null !== itemContainer && void 0 !== itemContainer ? itemContainer : this[\"_$\".concat(location, \"Section\")];\r\n var itemHasText = !!(null !== (_b = item.text) && void 0 !== _b ? _b : 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 _a;\r\n var groupItems = group.items;\r\n var $container = $(\"
\").addClass(TOOLBAR_GROUP_CLASS);\r\n var location = null !== (_a = group.location) && void 0 !== _a ? _a : \"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 _a;\r\n return null !== (_a = this.option(\"items\")) && void 0 !== _a ? _a : []\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, prevValue) {\r\n super._itemOptionChanged(item, property, value, prevValue);\r\n this._arrangeItems()\r\n }\r\n _optionChanged(args) {\r\n var {\r\n name: name\r\n } = args;\r\n switch (name) {\r\n case \"width\":\r\n super._optionChanged(args);\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(args)\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/__internal/ui/m_validation_engine.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nimport errors from \"../../core/errors\";\r\nimport {\r\n EventsStrategy\r\n} from \"../../core/events_strategy\";\r\nimport {\r\n grep\r\n} from \"../../core/utils/common\";\r\nimport {\r\n Deferred,\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 isBoolean,\r\n isDate,\r\n isDefined,\r\n isFunction,\r\n isNumeric,\r\n isObject,\r\n isPromise,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport numberLocalization from \"../../localization/number\";\r\nvar EMAIL_VALIDATION_REGEX = /^[\\d\\w.+_-]+@[\\d\\w._-]+\\.[\\w]+$/i;\r\nvar STATUS = {\r\n valid: \"valid\",\r\n invalid: \"invalid\",\r\n pending: \"pending\"\r\n};\r\nclass BaseRuleValidator {\r\n constructor() {\r\n this.NAME = \"base\"\r\n }\r\n defaultMessage(value) {\r\n return messageLocalization.getFormatter(\"validation-\".concat(this.NAME))(value)\r\n }\r\n defaultFormattedMessage(value) {\r\n return messageLocalization.getFormatter(\"validation-\".concat(this.NAME, \"-formatted\"))(value)\r\n }\r\n _isValueEmpty(value) {\r\n return !rulesValidators.required.validate(value, {})\r\n }\r\n validate(value, rule) {\r\n var valueArray = Array.isArray(value) ? value : [value];\r\n var result = true;\r\n if (valueArray.length) {\r\n valueArray.every(itemValue => {\r\n result = this._validate(itemValue, rule);\r\n return result\r\n })\r\n } else {\r\n result = this._validate(null, rule)\r\n }\r\n return result\r\n }\r\n}\r\nclass RequiredRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"required\"\r\n }\r\n _validate(value, rule) {\r\n if (!isDefined(value)) {\r\n return false\r\n }\r\n if (false === value) {\r\n return false\r\n }\r\n value = String(value);\r\n if (rule.trim || !isDefined(rule.trim)) {\r\n value = value.trim()\r\n }\r\n return \"\" !== value\r\n }\r\n}\r\nclass NumericRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"numeric\"\r\n }\r\n _validate(value, rule) {\r\n if (false !== rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n if (rule.useCultureSettings && isString(value)) {\r\n return !isNaN(numberLocalization.parse(value))\r\n }\r\n return isNumeric(value)\r\n }\r\n}\r\nclass RangeRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"range\"\r\n }\r\n _validate(value, rule) {\r\n if (false !== rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n var validNumber = rulesValidators.numeric.validate(value, rule);\r\n var validValue = isDefined(value) && \"\" !== value;\r\n var number = validNumber ? parseFloat(value) : validValue && value.valueOf();\r\n var {\r\n min: min\r\n } = rule;\r\n var {\r\n max: max\r\n } = rule;\r\n if (!(validNumber || isDate(value)) && !validValue) {\r\n return false\r\n }\r\n if (isDefined(min)) {\r\n if (isDefined(max)) {\r\n return number >= min && number <= max\r\n }\r\n return number >= min\r\n }\r\n if (isDefined(max)) {\r\n return number <= max\r\n }\r\n throw errors.Error(\"E0101\")\r\n }\r\n}\r\nclass StringLengthRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"stringLength\"\r\n }\r\n _validate(value, rule) {\r\n value = String(null !== value && void 0 !== value ? value : \"\");\r\n if (rule.trim || !isDefined(rule.trim)) {\r\n value = value.trim()\r\n }\r\n if (rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n return rulesValidators.range.validate(value.length, extend({}, rule))\r\n }\r\n}\r\nclass CustomRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"custom\"\r\n }\r\n validate(value, rule) {\r\n if (rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n var {\r\n validator: validator\r\n } = rule;\r\n var dataGetter = validator && isFunction(validator.option) && validator.option(\"dataGetter\");\r\n var extraParams = isFunction(dataGetter) && dataGetter();\r\n var params = {\r\n value: value,\r\n validator: validator,\r\n rule: rule\r\n };\r\n if (extraParams) {\r\n extend(params, extraParams)\r\n }\r\n return rule.validationCallback(params)\r\n }\r\n}\r\nclass AsyncRuleValidator extends CustomRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"async\"\r\n }\r\n validate(value, rule) {\r\n if (!isDefined(rule.reevaluate)) {\r\n extend(rule, {\r\n reevaluate: true\r\n })\r\n }\r\n if (rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n var {\r\n validator: validator\r\n } = rule;\r\n var dataGetter = validator && isFunction(validator.option) && validator.option(\"dataGetter\");\r\n var extraParams = isFunction(dataGetter) && dataGetter();\r\n var params = {\r\n value: value,\r\n validator: validator,\r\n rule: rule\r\n };\r\n if (extraParams) {\r\n extend(params, extraParams)\r\n }\r\n var callbackResult = rule.validationCallback(params);\r\n if (!isPromise(callbackResult)) {\r\n throw errors.Error(\"E0103\")\r\n }\r\n return this._getWrappedPromise(fromPromise(callbackResult).promise())\r\n }\r\n _getWrappedPromise(promise) {\r\n var deferred = Deferred();\r\n promise.then(res => {\r\n deferred.resolve(res)\r\n }, err => {\r\n var res = {\r\n isValid: false\r\n };\r\n if (isDefined(err)) {\r\n if (isString(err)) {\r\n res.message = err\r\n } else if (isObject(err) && isDefined(err.message) && isString(err.message)) {\r\n res.message = err.message\r\n }\r\n }\r\n deferred.resolve(res)\r\n });\r\n return deferred.promise()\r\n }\r\n}\r\nclass CompareRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"compare\"\r\n }\r\n _validate(value, rule) {\r\n if (!rule.comparisonTarget) {\r\n throw errors.Error(\"E0102\")\r\n }\r\n if (rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n extend(rule, {\r\n reevaluate: true\r\n });\r\n var otherValue = rule.comparisonTarget();\r\n var type = rule.comparisonType || \"==\";\r\n switch (type) {\r\n case \"==\":\r\n return value == otherValue;\r\n case \"!=\":\r\n return value != otherValue;\r\n case \"===\":\r\n return value === otherValue;\r\n case \"!==\":\r\n return value !== otherValue;\r\n case \">\":\r\n return value > otherValue;\r\n case \">=\":\r\n return value >= otherValue;\r\n case \"<\":\r\n return value < otherValue;\r\n case \"<=\":\r\n return value <= otherValue\r\n }\r\n }\r\n}\r\nclass PatternRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"pattern\"\r\n }\r\n _validate(value, rule) {\r\n if (false !== rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n var {\r\n pattern: pattern\r\n } = rule;\r\n if (isString(pattern)) {\r\n pattern = new RegExp(pattern)\r\n }\r\n return pattern.test(value)\r\n }\r\n}\r\nclass EmailRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"email\"\r\n }\r\n _validate(value, rule) {\r\n if (false !== rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n return rulesValidators.pattern.validate(value, extend({}, rule, {\r\n pattern: EMAIL_VALIDATION_REGEX\r\n }))\r\n }\r\n}\r\nvar rulesValidators = {\r\n required: new RequiredRuleValidator,\r\n numeric: new NumericRuleValidator,\r\n range: new RangeRuleValidator,\r\n stringLength: new StringLengthRuleValidator,\r\n custom: new CustomRuleValidator,\r\n async: new AsyncRuleValidator,\r\n compare: new CompareRuleValidator,\r\n pattern: new PatternRuleValidator,\r\n email: new EmailRuleValidator\r\n};\r\nvar GroupConfig = Class.inherit({\r\n ctor(group, isRemovable) {\r\n this.group = group;\r\n this.validators = [];\r\n this._isRemovable = isRemovable;\r\n this._pendingValidators = [];\r\n this._onValidatorStatusChanged = this._onValidatorStatusChanged.bind(this);\r\n this._resetValidationInfo();\r\n this._eventsStrategy = new EventsStrategy(this)\r\n },\r\n validate() {\r\n var result = {\r\n isValid: true,\r\n brokenRules: [],\r\n validators: [],\r\n status: STATUS.valid,\r\n complete: null\r\n };\r\n this._unsubscribeFromAllChangeEvents();\r\n this._pendingValidators = [];\r\n this._resetValidationInfo();\r\n each(this.validators, (_, validator) => {\r\n var validatorResult = validator.validate();\r\n result.isValid = result.isValid && validatorResult.isValid;\r\n if (validatorResult.brokenRules) {\r\n result.brokenRules = result.brokenRules.concat(validatorResult.brokenRules)\r\n }\r\n result.validators.push(validator);\r\n if (validatorResult.status === STATUS.pending) {\r\n this._addPendingValidator(validator)\r\n }\r\n this._subscribeToChangeEvents(validator)\r\n });\r\n if (this._pendingValidators.length) {\r\n result.status = STATUS.pending\r\n } else {\r\n result.status = result.isValid ? STATUS.valid : STATUS.invalid;\r\n this._unsubscribeFromAllChangeEvents();\r\n this._raiseValidatedEvent(result)\r\n }\r\n this._updateValidationInfo(result);\r\n return extend({}, this._validationInfo.result)\r\n },\r\n _subscribeToChangeEvents(validator) {\r\n validator.on(\"validating\", this._onValidatorStatusChanged);\r\n validator.on(\"validated\", this._onValidatorStatusChanged)\r\n },\r\n _unsubscribeFromChangeEvents(validator) {\r\n validator.off(\"validating\", this._onValidatorStatusChanged);\r\n validator.off(\"validated\", this._onValidatorStatusChanged)\r\n },\r\n _unsubscribeFromAllChangeEvents() {\r\n each(this.validators, (_, validator) => {\r\n this._unsubscribeFromChangeEvents(validator)\r\n })\r\n },\r\n _updateValidationInfo(result) {\r\n this._validationInfo.result = result;\r\n if (result.status !== STATUS.pending) {\r\n return\r\n }\r\n if (!this._validationInfo.deferred) {\r\n this._validationInfo.deferred = Deferred();\r\n this._validationInfo.result.complete = this._validationInfo.deferred.promise()\r\n }\r\n },\r\n _addPendingValidator(validator) {\r\n var foundValidator = grep(this._pendingValidators, val => val === validator)[0];\r\n if (!foundValidator) {\r\n this._pendingValidators.push(validator)\r\n }\r\n },\r\n _removePendingValidator(validator) {\r\n var index = this._pendingValidators.indexOf(validator);\r\n if (index >= 0) {\r\n this._pendingValidators.splice(index, 1)\r\n }\r\n },\r\n _orderBrokenRules(brokenRules) {\r\n var orderedRules = [];\r\n each(this.validators, (_, validator) => {\r\n var foundRules = grep(brokenRules, rule => rule.validator === validator);\r\n if (foundRules.length) {\r\n orderedRules = orderedRules.concat(foundRules)\r\n }\r\n });\r\n return orderedRules\r\n },\r\n _updateBrokenRules(result) {\r\n if (!this._validationInfo.result) {\r\n return\r\n }\r\n var {\r\n brokenRules: brokenRules\r\n } = this._validationInfo.result;\r\n var rules = grep(brokenRules, rule => rule.validator !== result.validator);\r\n if (result.brokenRules) {\r\n brokenRules = rules.concat(result.brokenRules)\r\n }\r\n this._validationInfo.result.brokenRules = this._orderBrokenRules(brokenRules)\r\n },\r\n _onValidatorStatusChanged(result) {\r\n if (result.status === STATUS.pending) {\r\n this._addPendingValidator(result.validator);\r\n return\r\n }\r\n this._resolveIfComplete(result)\r\n },\r\n _resolveIfComplete(result) {\r\n this._removePendingValidator(result.validator);\r\n this._updateBrokenRules(result);\r\n if (!this._pendingValidators.length) {\r\n this._unsubscribeFromAllChangeEvents();\r\n if (!this._validationInfo.result) {\r\n return\r\n }\r\n this._validationInfo.result.status = 0 === this._validationInfo.result.brokenRules.length ? STATUS.valid : STATUS.invalid;\r\n this._validationInfo.result.isValid = this._validationInfo.result.status === STATUS.valid;\r\n var res = extend({}, this._validationInfo.result, {\r\n complete: null\r\n });\r\n var {\r\n deferred: deferred\r\n } = this._validationInfo;\r\n this._validationInfo.deferred = null;\r\n this._raiseValidatedEvent(res);\r\n deferred && setTimeout(() => {\r\n deferred.resolve(res)\r\n })\r\n }\r\n },\r\n _raiseValidatedEvent(result) {\r\n this._eventsStrategy.fireEvent(\"validated\", [result])\r\n },\r\n _resetValidationInfo() {\r\n this._validationInfo = {\r\n result: null,\r\n deferred: null\r\n }\r\n },\r\n _synchronizeValidationInfo() {\r\n if (this._validationInfo.result) {\r\n this._validationInfo.result.validators = this.validators\r\n }\r\n },\r\n removeRegisteredValidator(validator) {\r\n var index = this.validators.indexOf(validator);\r\n if (index > -1) {\r\n this.validators.splice(index, 1);\r\n this._synchronizeValidationInfo();\r\n this._resolveIfComplete({\r\n validator: validator\r\n })\r\n }\r\n },\r\n registerValidator(validator) {\r\n if (!this.validators.includes(validator)) {\r\n this.validators.push(validator);\r\n this._synchronizeValidationInfo()\r\n }\r\n },\r\n reset() {\r\n each(this.validators, (_, validator) => {\r\n validator.reset()\r\n });\r\n this._pendingValidators = [];\r\n this._resetValidationInfo()\r\n },\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n },\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n }\r\n});\r\nvar ValidationEngine = {\r\n groups: [],\r\n getGroupConfig(group) {\r\n var result = grep(this.groups, config => config.group === group);\r\n if (result.length) {\r\n return result[0]\r\n }\r\n },\r\n findGroup($element, model) {\r\n var _a, _b;\r\n var hasValidationGroup = null === (_b = null === (_a = $element.data()) || void 0 === _a ? void 0 : _a.dxComponents) || void 0 === _b ? void 0 : _b.includes(\"dxValidationGroup\");\r\n var validationGroup = hasValidationGroup && $element.dxValidationGroup(\"instance\");\r\n if (validationGroup) {\r\n return validationGroup\r\n }\r\n var $dxGroup = $element.parents(\".dx-validationgroup\").first();\r\n if ($dxGroup.length) {\r\n return $dxGroup.dxValidationGroup(\"instance\")\r\n }\r\n return model\r\n },\r\n initGroups() {\r\n this.groups = [];\r\n this.addGroup(void 0, false)\r\n },\r\n addGroup(group) {\r\n var isRemovable = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : true;\r\n var config = this.getGroupConfig(group);\r\n if (!config) {\r\n config = new GroupConfig(group, isRemovable);\r\n this.groups.push(config)\r\n }\r\n return config\r\n },\r\n removeGroup(group) {\r\n var config = this.getGroupConfig(group);\r\n var index = this.groups.indexOf(config);\r\n if (index > -1) {\r\n this.groups.splice(index, 1)\r\n }\r\n return config\r\n },\r\n _setDefaultMessage(info) {\r\n var {\r\n rule: rule,\r\n validator: validator,\r\n name: name\r\n } = info;\r\n if (!isDefined(rule.message)) {\r\n if (validator.defaultFormattedMessage && isDefined(name)) {\r\n rule.message = validator.defaultFormattedMessage(name)\r\n } else {\r\n rule.message = validator.defaultMessage()\r\n }\r\n }\r\n },\r\n _addBrokenRule(info) {\r\n var {\r\n result: result,\r\n rule: rule\r\n } = info;\r\n if (!result.brokenRule) {\r\n result.brokenRule = rule\r\n }\r\n if (!result.brokenRules) {\r\n result.brokenRules = []\r\n }\r\n result.brokenRules.push(rule)\r\n },\r\n validate(value, rules, name) {\r\n var _a;\r\n var result = {\r\n name: name,\r\n value: value,\r\n brokenRule: null,\r\n brokenRules: null,\r\n isValid: true,\r\n validationRules: rules,\r\n pendingRules: null,\r\n status: STATUS.valid,\r\n complete: null\r\n };\r\n var validator = null === (_a = null === rules || void 0 === rules ? void 0 : rules[0]) || void 0 === _a ? void 0 : _a.validator;\r\n var asyncRuleItems = [];\r\n each(rules || [], (_, rule) => {\r\n var ruleValidator = rulesValidators[rule.type];\r\n var ruleValidationResult;\r\n if (ruleValidator) {\r\n if (isDefined(rule.isValid) && rule.value === value && !rule.reevaluate) {\r\n if (!rule.isValid) {\r\n result.isValid = false;\r\n this._addBrokenRule({\r\n result: result,\r\n rule: rule\r\n });\r\n return false\r\n }\r\n return true\r\n }\r\n rule.value = value;\r\n if (\"async\" === rule.type) {\r\n asyncRuleItems.push({\r\n rule: rule,\r\n ruleValidator: ruleValidator\r\n });\r\n return true\r\n }\r\n ruleValidationResult = ruleValidator.validate(value, rule);\r\n rule.isValid = ruleValidationResult;\r\n if (!ruleValidationResult) {\r\n result.isValid = false;\r\n this._setDefaultMessage({\r\n rule: rule,\r\n validator: ruleValidator,\r\n name: name\r\n });\r\n this._addBrokenRule({\r\n result: result,\r\n rule: rule\r\n })\r\n }\r\n if (!rule.isValid) {\r\n return false\r\n }\r\n } else {\r\n throw errors.Error(\"E0100\")\r\n }\r\n });\r\n if (result.isValid && !result.brokenRules && asyncRuleItems.length) {\r\n result = this._validateAsyncRules({\r\n value: value,\r\n items: asyncRuleItems,\r\n result: result,\r\n name: name\r\n })\r\n }\r\n this._synchronizeGroupValidationInfo(validator, result);\r\n result.status = result.pendingRules ? STATUS.pending : result.isValid ? STATUS.valid : STATUS.invalid;\r\n return result\r\n },\r\n _synchronizeGroupValidationInfo(validator, result) {\r\n var _a;\r\n if (!validator) {\r\n return\r\n }\r\n var groupConfig = ValidationEngine.getGroupConfig(validator._validationGroup);\r\n groupConfig._updateBrokenRules.call(groupConfig, {\r\n validator: validator,\r\n brokenRules: null !== (_a = result.brokenRules) && void 0 !== _a ? _a : []\r\n })\r\n },\r\n _validateAsyncRules(_ref) {\r\n var {\r\n result: result,\r\n value: value,\r\n items: items,\r\n name: name\r\n } = _ref;\r\n var asyncResults = [];\r\n each(items, (_, item) => {\r\n var validateResult = item.ruleValidator.validate(value, item.rule);\r\n if (!isPromise(validateResult)) {\r\n this._updateRuleConfig({\r\n rule: item.rule,\r\n ruleResult: this._getPatchedRuleResult(validateResult),\r\n validator: item.ruleValidator,\r\n name: name\r\n })\r\n } else {\r\n if (!result.pendingRules) {\r\n result.pendingRules = []\r\n }\r\n result.pendingRules.push(item.rule);\r\n var asyncResult = validateResult.then(res => {\r\n var ruleResult = this._getPatchedRuleResult(res);\r\n this._updateRuleConfig({\r\n rule: item.rule,\r\n ruleResult: ruleResult,\r\n validator: item.ruleValidator,\r\n name: name\r\n });\r\n return ruleResult\r\n });\r\n asyncResults.push(asyncResult)\r\n }\r\n });\r\n if (asyncResults.length) {\r\n result.complete = Promise.all(asyncResults).then(values => this._getAsyncRulesResult({\r\n result: result,\r\n values: values\r\n }))\r\n }\r\n return result\r\n },\r\n _updateRuleConfig(_ref2) {\r\n var {\r\n rule: rule,\r\n ruleResult: ruleResult,\r\n validator: validator,\r\n name: name\r\n } = _ref2;\r\n rule.isValid = ruleResult.isValid;\r\n if (!ruleResult.isValid) {\r\n if (isDefined(ruleResult.message) && isString(ruleResult.message) && ruleResult.message.length) {\r\n rule.message = ruleResult.message\r\n } else {\r\n this._setDefaultMessage({\r\n rule: rule,\r\n validator: validator,\r\n name: name\r\n })\r\n }\r\n }\r\n },\r\n _getPatchedRuleResult(ruleResult) {\r\n var result;\r\n if (isObject(ruleResult)) {\r\n result = extend({}, ruleResult);\r\n if (!isDefined(result.isValid)) {\r\n result.isValid = true\r\n }\r\n } else {\r\n result = {\r\n isValid: isBoolean(ruleResult) ? ruleResult : true\r\n }\r\n }\r\n return result\r\n },\r\n _getAsyncRulesResult(_ref3) {\r\n var {\r\n values: values,\r\n result: result\r\n } = _ref3;\r\n each(values, (index, val) => {\r\n if (false === val.isValid) {\r\n result.isValid = val.isValid;\r\n var rule = result.pendingRules[index];\r\n this._addBrokenRule({\r\n result: result,\r\n rule: rule\r\n })\r\n }\r\n });\r\n result.pendingRules = null;\r\n result.complete = null;\r\n result.status = result.isValid ? STATUS.valid : STATUS.invalid;\r\n return result\r\n },\r\n registerValidatorInGroup(group, validator) {\r\n var groupConfig = ValidationEngine.addGroup(group);\r\n groupConfig.registerValidator.call(groupConfig, validator)\r\n },\r\n removeRegisteredValidator(group, validator) {\r\n var config = ValidationEngine.getGroupConfig(group);\r\n if (config) {\r\n config.removeRegisteredValidator.call(config, validator);\r\n var validatorsInGroup = config.validators;\r\n var isRemovable = config._isRemovable;\r\n var shouldRemoveGroup = 0 === validatorsInGroup.length && isRemovable;\r\n if (shouldRemoveGroup) {\r\n this.removeGroup(group)\r\n }\r\n }\r\n },\r\n initValidationOptions(options) {\r\n var initedOptions = {};\r\n if (options) {\r\n [\"isValid\", \"validationStatus\", \"validationError\", \"validationErrors\"].forEach(prop => {\r\n if (prop in options) {\r\n extend(initedOptions, this.synchronizeValidationOptions({\r\n name: prop,\r\n value: options[prop]\r\n }, options))\r\n }\r\n })\r\n }\r\n return initedOptions\r\n },\r\n synchronizeValidationOptions(_ref4, options) {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref4;\r\n switch (name) {\r\n case \"validationStatus\":\r\n var isValid = value === STATUS.valid || value === STATUS.pending;\r\n return options.isValid !== isValid ? {\r\n isValid: isValid\r\n } : {};\r\n case \"isValid\":\r\n var {\r\n validationStatus: validationStatus\r\n } = options;\r\n var newStatus = validationStatus;\r\n if (value && validationStatus === STATUS.invalid) {\r\n newStatus = STATUS.valid\r\n } else if (!value && validationStatus !== STATUS.invalid) {\r\n newStatus = STATUS.invalid\r\n }\r\n return newStatus !== validationStatus ? {\r\n validationStatus: newStatus\r\n } : {};\r\n case \"validationErrors\":\r\n var validationError = !value || !value.length ? null : value[0];\r\n return options.validationError !== validationError ? {\r\n validationError: validationError\r\n } : {};\r\n case \"validationError\":\r\n var {\r\n validationErrors: validationErrors\r\n } = options;\r\n if (!value && validationErrors) {\r\n return {\r\n validationErrors: null\r\n }\r\n }\r\n if (value && !validationErrors) {\r\n return {\r\n validationErrors: [value]\r\n }\r\n }\r\n if (value && validationErrors && value !== validationErrors[0]) {\r\n validationErrors[0] = value;\r\n return {\r\n validationErrors: validationErrors.slice()\r\n }\r\n }\r\n }\r\n return {}\r\n },\r\n validateGroup(group) {\r\n var groupConfig = ValidationEngine.getGroupConfig(group);\r\n if (!groupConfig) {\r\n throw errors.Error(\"E0110\")\r\n }\r\n return groupConfig.validate()\r\n },\r\n resetGroup(group) {\r\n var groupConfig = ValidationEngine.getGroupConfig(group);\r\n if (!groupConfig) {\r\n throw errors.Error(\"E0110\")\r\n }\r\n return groupConfig.reset()\r\n }\r\n};\r\nValidationEngine.initGroups();\r\nexport default ValidationEngine;\r\n","/**\r\n * DevExtreme (esm/ui/validation_engine.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ValidationEngine from \"../__internal/ui/m_validation_engine\";\r\nexport default ValidationEngine;\r\n","var isArray = Array.isArray;\nfunction isStringOrNumber(o) {\n var type = typeof o;\n return type === 'string' || type === 'number';\n}\nfunction isNullOrUndef(o) {\n return o === void 0 || o === null;\n}\nfunction isInvalid(o) {\n return o === null || o === false || o === true || o === void 0;\n}\nfunction isFunction(o) {\n return typeof o === 'function';\n}\nfunction isString(o) {\n return typeof o === 'string';\n}\nfunction isNumber(o) {\n return typeof o === 'number';\n}\nfunction isNull(o) {\n return o === null;\n}\nfunction isUndefined(o) {\n return o === void 0;\n}\nfunction combineFrom(first, second) {\n var out = {};\n if (first) {\n for (var key in first) {\n out[key] = first[key];\n }\n }\n if (second) {\n for (var key$1 in second) {\n out[key$1] = second[key$1];\n }\n }\n return out;\n}\n\n/**\n * Links given data to event as first parameter\n * @param {*} data data to be linked, it will be available in function as first parameter\n * @param {Function} event Function to be called when event occurs\n * @returns {{data: *, event: Function}}\n */\nfunction linkEvent(data, event) {\n if (isFunction(event)) {\n return { data: data, event: event };\n }\n return null; // Return null when event is invalid, to avoid creating unnecessary event handlers\n}\n// object.event should always be function, otherwise its badly created object.\nfunction isLinkEventObject(o) {\n return !isNull(o) && typeof o === 'object';\n}\n\n// We need EMPTY_OBJ defined in one place.\n// Its used for comparison so we cant inline it into shared\nvar EMPTY_OBJ = {};\nvar Fragment = '$F';\nfunction normalizeEventName(name) {\n return name.substr(2).toLowerCase();\n}\nfunction appendChild(parentDOM, dom) {\n parentDOM.appendChild(dom);\n}\nfunction insertOrAppend(parentDOM, newNode, nextNode) {\n if (isNull(nextNode)) {\n appendChild(parentDOM, newNode);\n }\n else {\n parentDOM.insertBefore(newNode, nextNode);\n }\n}\nfunction documentCreateElement(tag, isSVG) {\n if (isSVG) {\n return document.createElementNS('http://www.w3.org/2000/svg', tag);\n }\n return document.createElement(tag);\n}\nfunction replaceChild(parentDOM, newDom, lastDom) {\n parentDOM.replaceChild(newDom, lastDom);\n}\nfunction removeChild(parentDOM, childNode) {\n parentDOM.removeChild(childNode);\n}\nfunction callAll(arrayFn) {\n for (var i = 0; i < arrayFn.length; i++) {\n arrayFn[i]();\n }\n}\nfunction findChildVNode(vNode, startEdge, flags) {\n var children = vNode.children;\n if (flags & 4 /* ComponentClass */) {\n return children.$LI;\n }\n if (flags & 8192 /* Fragment */) {\n return vNode.childFlags === 2 /* HasVNodeChildren */ ? children : children[startEdge ? 0 : children.length - 1];\n }\n return children;\n}\nfunction findDOMfromVNode(vNode, startEdge) {\n var flags;\n while (vNode) {\n flags = vNode.flags;\n if (flags & 2033 /* DOMRef */) {\n return vNode.dom;\n }\n vNode = findChildVNode(vNode, startEdge, flags);\n }\n return null;\n}\nfunction removeVNodeDOM(vNode, parentDOM) {\n do {\n var flags = vNode.flags;\n if (flags & 2033 /* DOMRef */) {\n removeChild(parentDOM, vNode.dom);\n return;\n }\n var children = vNode.children;\n if (flags & 4 /* ComponentClass */) {\n vNode = children.$LI;\n }\n if (flags & 8 /* ComponentFunction */) {\n vNode = children;\n }\n if (flags & 8192 /* Fragment */) {\n if (vNode.childFlags === 2 /* HasVNodeChildren */) {\n vNode = children;\n }\n else {\n for (var i = 0, len = children.length; i < len; ++i) {\n removeVNodeDOM(children[i], parentDOM);\n }\n return;\n }\n }\n } while (vNode);\n}\nfunction moveVNodeDOM(vNode, parentDOM, nextNode) {\n do {\n var flags = vNode.flags;\n if (flags & 2033 /* DOMRef */) {\n insertOrAppend(parentDOM, vNode.dom, nextNode);\n return;\n }\n var children = vNode.children;\n if (flags & 4 /* ComponentClass */) {\n vNode = children.$LI;\n }\n if (flags & 8 /* ComponentFunction */) {\n vNode = children;\n }\n if (flags & 8192 /* Fragment */) {\n if (vNode.childFlags === 2 /* HasVNodeChildren */) {\n vNode = children;\n }\n else {\n for (var i = 0, len = children.length; i < len; ++i) {\n moveVNodeDOM(children[i], parentDOM, nextNode);\n }\n return;\n }\n }\n } while (vNode);\n}\nfunction createDerivedState(instance, nextProps, state) {\n if (instance.constructor.getDerivedStateFromProps) {\n return combineFrom(state, instance.constructor.getDerivedStateFromProps(nextProps, state));\n }\n return state;\n}\nvar renderCheck = {\n v: false\n};\nvar options = {\n componentComparator: null,\n createVNode: null,\n renderComplete: null\n};\nfunction setTextContent(dom, children) {\n dom.textContent = children;\n}\n// Calling this function assumes, nextValue is linkEvent\nfunction isLastValueSameLinkEvent(lastValue, nextValue) {\n return (isLinkEventObject(lastValue) &&\n lastValue.event === nextValue.event &&\n lastValue.data === nextValue.data);\n}\nfunction mergeUnsetProperties(to, from) {\n for (var propName in from) {\n if (isUndefined(to[propName])) {\n to[propName] = from[propName];\n }\n }\n return to;\n}\nfunction safeCall1(method, arg1) {\n return !!isFunction(method) && (method(arg1), true);\n}\n\nvar keyPrefix = '$';\nfunction V(childFlags, children, className, flags, key, props, ref, type) {\n this.childFlags = childFlags;\n this.children = children;\n this.className = className;\n this.dom = null;\n this.flags = flags;\n this.key = key === void 0 ? null : key;\n this.props = props === void 0 ? null : props;\n this.ref = ref === void 0 ? null : ref;\n this.type = type;\n}\nfunction createVNode(flags, type, className, children, childFlags, props, key, ref) {\n var childFlag = childFlags === void 0 ? 1 /* HasInvalidChildren */ : childFlags;\n var vNode = new V(childFlag, children, className, flags, key, props, ref, type);\n if (options.createVNode) {\n options.createVNode(vNode);\n }\n if (childFlag === 0 /* UnknownChildren */) {\n normalizeChildren(vNode, vNode.children);\n }\n return vNode;\n}\nfunction mergeDefaultHooks(flags, type, ref) {\n if (flags & 4 /* ComponentClass */) {\n return ref;\n }\n var defaultHooks = (flags & 32768 /* ForwardRef */ ? type.render : type).defaultHooks;\n if (isNullOrUndef(defaultHooks)) {\n return ref;\n }\n if (isNullOrUndef(ref)) {\n return defaultHooks;\n }\n return mergeUnsetProperties(ref, defaultHooks);\n}\nfunction mergeDefaultProps(flags, type, props) {\n // set default props\n var defaultProps = (flags & 32768 /* ForwardRef */ ? type.render : type).defaultProps;\n if (isNullOrUndef(defaultProps)) {\n return props;\n }\n if (isNullOrUndef(props)) {\n return combineFrom(defaultProps, null);\n }\n return mergeUnsetProperties(props, defaultProps);\n}\nfunction resolveComponentFlags(flags, type) {\n if (flags & 12 /* ComponentKnown */) {\n return flags;\n }\n if (type.prototype && type.prototype.render) {\n return 4 /* ComponentClass */;\n }\n if (type.render) {\n return 32776 /* ForwardRefComponent */;\n }\n return 8 /* ComponentFunction */;\n}\nfunction createComponentVNode(flags, type, props, key, ref) {\n flags = resolveComponentFlags(flags, type);\n var vNode = new V(1 /* HasInvalidChildren */, null, null, flags, key, mergeDefaultProps(flags, type, props), mergeDefaultHooks(flags, type, ref), type);\n if (options.createVNode) {\n options.createVNode(vNode);\n }\n return vNode;\n}\nfunction createTextVNode(text, key) {\n return new V(1 /* HasInvalidChildren */, isNullOrUndef(text) || text === true || text === false ? '' : text, null, 16 /* Text */, key, null, null, null);\n}\nfunction createFragment(children, childFlags, key) {\n var fragment = createVNode(8192 /* Fragment */, 8192 /* Fragment */, null, children, childFlags, null, key, null);\n switch (fragment.childFlags) {\n case 1 /* HasInvalidChildren */:\n fragment.children = createVoidVNode();\n fragment.childFlags = 2 /* HasVNodeChildren */;\n break;\n case 16 /* HasTextChildren */:\n fragment.children = [createTextVNode(children)];\n fragment.childFlags = 4 /* HasNonKeyedChildren */;\n break;\n }\n return fragment;\n}\nfunction normalizeProps(vNode) {\n var props = vNode.props;\n if (props) {\n var flags = vNode.flags;\n if (flags & 481 /* Element */) {\n if (props.children !== void 0 && isNullOrUndef(vNode.children)) {\n normalizeChildren(vNode, props.children);\n }\n if (props.className !== void 0) {\n if (isNullOrUndef(vNode.className)) {\n vNode.className = props.className || null;\n }\n props.className = undefined;\n }\n }\n if (props.key !== void 0) {\n vNode.key = props.key;\n props.key = undefined;\n }\n if (props.ref !== void 0) {\n if (flags & 8 /* ComponentFunction */) {\n vNode.ref = combineFrom(vNode.ref, props.ref);\n }\n else {\n vNode.ref = props.ref;\n }\n props.ref = undefined;\n }\n }\n return vNode;\n}\n/*\n * Fragment is different than normal vNode,\n * because when it needs to be cloned we need to clone its children too\n * But not normalize, because otherwise those possibly get KEY and re-mount\n */\nfunction cloneFragment(vNodeToClone) {\n var oldChildren = vNodeToClone.children;\n var childFlags = vNodeToClone.childFlags;\n return createFragment(childFlags === 2 /* HasVNodeChildren */ ? directClone(oldChildren) : oldChildren.map(directClone), childFlags, vNodeToClone.key);\n}\nfunction directClone(vNodeToClone) {\n var flags = vNodeToClone.flags & -16385 /* ClearInUse */;\n var props = vNodeToClone.props;\n if (flags & 14 /* Component */) {\n if (!isNull(props)) {\n var propsToClone = props;\n props = {};\n for (var key in propsToClone) {\n props[key] = propsToClone[key];\n }\n }\n }\n if ((flags & 8192 /* Fragment */) === 0) {\n return new V(vNodeToClone.childFlags, vNodeToClone.children, vNodeToClone.className, flags, vNodeToClone.key, props, vNodeToClone.ref, vNodeToClone.type);\n }\n return cloneFragment(vNodeToClone);\n}\nfunction createVoidVNode() {\n return createTextVNode('', null);\n}\nfunction createPortal(children, container) {\n var normalizedRoot = normalizeRoot(children);\n return createVNode(1024 /* Portal */, 1024 /* Portal */, null, normalizedRoot, 0 /* UnknownChildren */, null, normalizedRoot.key, container);\n}\nfunction _normalizeVNodes(nodes, result, index, currentKey) {\n for (var len = nodes.length; index < len; index++) {\n var n = nodes[index];\n if (!isInvalid(n)) {\n var newKey = currentKey + keyPrefix + index;\n if (isArray(n)) {\n _normalizeVNodes(n, result, 0, newKey);\n }\n else {\n if (isStringOrNumber(n)) {\n n = createTextVNode(n, newKey);\n }\n else {\n var oldKey = n.key;\n var isPrefixedKey = isString(oldKey) && oldKey[0] === keyPrefix;\n if (n.flags & 81920 /* InUseOrNormalized */ || isPrefixedKey) {\n n = directClone(n);\n }\n n.flags |= 65536 /* Normalized */;\n if (!isPrefixedKey) {\n if (isNull(oldKey)) {\n n.key = newKey;\n }\n else {\n n.key = currentKey + oldKey;\n }\n }\n else if (oldKey.substring(0, currentKey.length) !== currentKey) {\n n.key = currentKey + oldKey;\n }\n }\n result.push(n);\n }\n }\n }\n}\nfunction getFlagsForElementVnode(type) {\n switch (type) {\n case 'svg':\n return 32 /* SvgElement */;\n case 'input':\n return 64 /* InputElement */;\n case 'select':\n return 256 /* SelectElement */;\n case 'textarea':\n return 128 /* TextareaElement */;\n case Fragment:\n return 8192 /* Fragment */;\n default:\n return 1 /* HtmlElement */;\n }\n}\nfunction normalizeChildren(vNode, children) {\n var newChildren;\n var newChildFlags = 1 /* HasInvalidChildren */;\n // Don't change children to match strict equal (===) true in patching\n if (isInvalid(children)) {\n newChildren = children;\n }\n else if (isStringOrNumber(children)) {\n newChildFlags = 16 /* HasTextChildren */;\n newChildren = children;\n }\n else if (isArray(children)) {\n var len = children.length;\n for (var i = 0; i < len; ++i) {\n var n = children[i];\n if (isInvalid(n) || isArray(n)) {\n newChildren = newChildren || children.slice(0, i);\n _normalizeVNodes(children, newChildren, i, '');\n break;\n }\n else if (isStringOrNumber(n)) {\n newChildren = newChildren || children.slice(0, i);\n newChildren.push(createTextVNode(n, keyPrefix + i));\n }\n else {\n var key = n.key;\n var needsCloning = (n.flags & 81920 /* InUseOrNormalized */) > 0;\n var isNullKey = isNull(key);\n var isPrefixed = isString(key) && key[0] === keyPrefix;\n if (needsCloning || isNullKey || isPrefixed) {\n newChildren = newChildren || children.slice(0, i);\n if (needsCloning || isPrefixed) {\n n = directClone(n);\n }\n if (isNullKey || isPrefixed) {\n n.key = keyPrefix + i;\n }\n newChildren.push(n);\n }\n else if (newChildren) {\n newChildren.push(n);\n }\n n.flags |= 65536 /* Normalized */;\n }\n }\n newChildren = newChildren || children;\n if (newChildren.length === 0) {\n newChildFlags = 1 /* HasInvalidChildren */;\n }\n else {\n newChildFlags = 8 /* HasKeyedChildren */;\n }\n }\n else {\n newChildren = children;\n newChildren.flags |= 65536 /* Normalized */;\n if (children.flags & 81920 /* InUseOrNormalized */) {\n newChildren = directClone(children);\n }\n newChildFlags = 2 /* HasVNodeChildren */;\n }\n vNode.children = newChildren;\n vNode.childFlags = newChildFlags;\n return vNode;\n}\nfunction normalizeRoot(input) {\n if (isInvalid(input) || isStringOrNumber(input)) {\n return createTextVNode(input, null);\n }\n if (isArray(input)) {\n return createFragment(input, 0 /* UnknownChildren */, null);\n }\n return input.flags & 16384 /* InUse */ ? directClone(input) : input;\n}\n\nvar xlinkNS = 'http://www.w3.org/1999/xlink';\nvar xmlNS = 'http://www.w3.org/XML/1998/namespace';\nvar namespaces = {\n 'xlink:actuate': xlinkNS,\n 'xlink:arcrole': xlinkNS,\n 'xlink:href': xlinkNS,\n 'xlink:role': xlinkNS,\n 'xlink:show': xlinkNS,\n 'xlink:title': xlinkNS,\n 'xlink:type': xlinkNS,\n 'xml:base': xmlNS,\n 'xml:lang': xmlNS,\n 'xml:space': xmlNS\n};\n\nfunction getDelegatedEventObject(v) {\n return {\n onClick: v,\n onDblClick: v,\n onFocusIn: v,\n onFocusOut: v,\n onKeyDown: v,\n onKeyPress: v,\n onKeyUp: v,\n onMouseDown: v,\n onMouseMove: v,\n onMouseUp: v,\n onTouchEnd: v,\n onTouchMove: v,\n onTouchStart: v\n };\n}\nvar attachedEventCounts = getDelegatedEventObject(0);\nvar attachedEvents = getDelegatedEventObject(null);\nvar syntheticEvents = getDelegatedEventObject(true);\nfunction updateOrAddSyntheticEvent(name, dom) {\n var eventsObject = dom.$EV;\n if (!eventsObject) {\n eventsObject = dom.$EV = getDelegatedEventObject(null);\n }\n if (!eventsObject[name]) {\n if (++attachedEventCounts[name] === 1) {\n attachedEvents[name] = attachEventToDocument(name);\n }\n }\n return eventsObject;\n}\nfunction unmountSyntheticEvent(name, dom) {\n var eventsObject = dom.$EV;\n if (eventsObject && eventsObject[name]) {\n if (--attachedEventCounts[name] === 0) {\n document.removeEventListener(normalizeEventName(name), attachedEvents[name]);\n attachedEvents[name] = null;\n }\n eventsObject[name] = null;\n }\n}\nfunction handleSyntheticEvent(name, lastEvent, nextEvent, dom) {\n if (isFunction(nextEvent)) {\n updateOrAddSyntheticEvent(name, dom)[name] = nextEvent;\n }\n else if (isLinkEventObject(nextEvent)) {\n if (isLastValueSameLinkEvent(lastEvent, nextEvent)) {\n return;\n }\n updateOrAddSyntheticEvent(name, dom)[name] = nextEvent;\n }\n else {\n unmountSyntheticEvent(name, dom);\n }\n}\n// When browsers fully support event.composedPath we could loop it through instead of using parentNode property\nfunction getTargetNode(event) {\n return isFunction(event.composedPath) ? event.composedPath()[0] : event.target;\n}\nfunction dispatchEvents(event, isClick, name, eventData) {\n var dom = getTargetNode(event);\n do {\n // Html Nodes can be nested fe: span inside button in that scenario browser does not handle disabled attribute on parent,\n // because the event listener is on document.body\n // Don't process clicks on disabled elements\n if (isClick && dom.disabled) {\n return;\n }\n var eventsObject = dom.$EV;\n if (eventsObject) {\n var currentEvent = eventsObject[name];\n if (currentEvent) {\n // linkEvent object\n eventData.dom = dom;\n currentEvent.event ? currentEvent.event(currentEvent.data, event) : currentEvent(event);\n if (event.cancelBubble) {\n return;\n }\n }\n }\n dom = dom.parentNode;\n } while (!isNull(dom));\n}\nfunction stopPropagation() {\n this.cancelBubble = true;\n if (!this.immediatePropagationStopped) {\n this.stopImmediatePropagation();\n }\n}\nfunction isDefaultPrevented() {\n return this.defaultPrevented;\n}\nfunction isPropagationStopped() {\n return this.cancelBubble;\n}\nfunction extendEventProperties(event) {\n // Event data needs to be object to save reference to currentTarget getter\n var eventData = {\n dom: document\n };\n event.isDefaultPrevented = isDefaultPrevented;\n event.isPropagationStopped = isPropagationStopped;\n event.stopPropagation = stopPropagation;\n Object.defineProperty(event, 'currentTarget', {\n configurable: true,\n get: function get() {\n return eventData.dom;\n }\n });\n return eventData;\n}\nfunction rootClickEvent(name) {\n return function (event) {\n if (event.button !== 0) {\n // Firefox incorrectly triggers click event for mid/right mouse buttons.\n // This bug has been active for 17 years.\n // https://bugzilla.mozilla.org/show_bug.cgi?id=184051\n event.stopPropagation();\n return;\n }\n dispatchEvents(event, true, name, extendEventProperties(event));\n };\n}\nfunction rootEvent(name) {\n return function (event) {\n dispatchEvents(event, false, name, extendEventProperties(event));\n };\n}\nfunction attachEventToDocument(name) {\n var attachedEvent = name === 'onClick' || name === 'onDblClick' ? rootClickEvent(name) : rootEvent(name);\n document.addEventListener(normalizeEventName(name), attachedEvent);\n return attachedEvent;\n}\n\nfunction isSameInnerHTML(dom, innerHTML) {\n var tempdom = document.createElement('i');\n tempdom.innerHTML = innerHTML;\n return tempdom.innerHTML === dom.innerHTML;\n}\n\nfunction triggerEventListener(props, methodName, e) {\n if (props[methodName]) {\n var listener = props[methodName];\n if (listener.event) {\n listener.event(listener.data, e);\n }\n else {\n listener(e);\n }\n }\n else {\n var nativeListenerName = methodName.toLowerCase();\n if (props[nativeListenerName]) {\n props[nativeListenerName](e);\n }\n }\n}\nfunction createWrappedFunction(methodName, applyValue) {\n var fnMethod = function (e) {\n var vNode = this.$V;\n // If vNode is gone by the time event fires, no-op\n if (!vNode) {\n return;\n }\n var props = vNode.props || EMPTY_OBJ;\n var dom = vNode.dom;\n if (isString(methodName)) {\n triggerEventListener(props, methodName, e);\n }\n else {\n for (var i = 0; i < methodName.length; ++i) {\n triggerEventListener(props, methodName[i], e);\n }\n }\n if (isFunction(applyValue)) {\n var newVNode = this.$V;\n var newProps = newVNode.props || EMPTY_OBJ;\n applyValue(newProps, dom, false, newVNode);\n }\n };\n Object.defineProperty(fnMethod, 'wrapped', {\n configurable: false,\n enumerable: false,\n value: true,\n writable: false\n });\n return fnMethod;\n}\n\nfunction attachEvent(dom, eventName, handler) {\n var previousKey = \"$\" + eventName;\n var previousArgs = dom[previousKey];\n if (previousArgs) {\n if (previousArgs[1].wrapped) {\n return;\n }\n dom.removeEventListener(previousArgs[0], previousArgs[1]);\n dom[previousKey] = null;\n }\n if (isFunction(handler)) {\n dom.addEventListener(eventName, handler);\n dom[previousKey] = [eventName, handler];\n }\n}\n\nfunction isCheckedType(type) {\n return type === 'checkbox' || type === 'radio';\n}\nvar onTextInputChange = createWrappedFunction('onInput', applyValueInput);\nvar wrappedOnChange = createWrappedFunction(['onClick', 'onChange'], applyValueInput);\n/* tslint:disable-next-line:no-empty */\nfunction emptywrapper(event) {\n event.stopPropagation();\n}\nemptywrapper.wrapped = true;\nfunction inputEvents(dom, nextPropsOrEmpty) {\n if (isCheckedType(nextPropsOrEmpty.type)) {\n attachEvent(dom, 'change', wrappedOnChange);\n attachEvent(dom, 'click', emptywrapper);\n }\n else {\n attachEvent(dom, 'input', onTextInputChange);\n }\n}\nfunction applyValueInput(nextPropsOrEmpty, dom) {\n var type = nextPropsOrEmpty.type;\n var value = nextPropsOrEmpty.value;\n var checked = nextPropsOrEmpty.checked;\n var multiple = nextPropsOrEmpty.multiple;\n var defaultValue = nextPropsOrEmpty.defaultValue;\n var hasValue = !isNullOrUndef(value);\n if (type && type !== dom.type) {\n dom.setAttribute('type', type);\n }\n if (!isNullOrUndef(multiple) && multiple !== dom.multiple) {\n dom.multiple = multiple;\n }\n if (!isNullOrUndef(defaultValue) && !hasValue) {\n dom.defaultValue = defaultValue + '';\n }\n if (isCheckedType(type)) {\n if (hasValue) {\n dom.value = value;\n }\n if (!isNullOrUndef(checked)) {\n dom.checked = checked;\n }\n }\n else {\n if (hasValue && dom.value !== value) {\n dom.defaultValue = value;\n dom.value = value;\n }\n else if (!isNullOrUndef(checked)) {\n dom.checked = checked;\n }\n }\n}\n\nfunction updateChildOptions(vNode, value) {\n if (vNode.type === 'option') {\n updateChildOption(vNode, value);\n }\n else {\n var children = vNode.children;\n var flags = vNode.flags;\n if (flags & 4 /* ComponentClass */) {\n updateChildOptions(children.$LI, value);\n }\n else if (flags & 8 /* ComponentFunction */) {\n updateChildOptions(children, value);\n }\n else if (vNode.childFlags === 2 /* HasVNodeChildren */) {\n updateChildOptions(children, value);\n }\n else if (vNode.childFlags & 12 /* MultipleChildren */) {\n for (var i = 0, len = children.length; i < len; ++i) {\n updateChildOptions(children[i], value);\n }\n }\n }\n}\nfunction updateChildOption(vNode, value) {\n var props = vNode.props || EMPTY_OBJ;\n var dom = vNode.dom;\n // we do this as multiple may have changed\n dom.value = props.value;\n if (props.value === value || (isArray(value) && value.indexOf(props.value) !== -1)) {\n dom.selected = true;\n }\n else if (!isNullOrUndef(value) || !isNullOrUndef(props.selected)) {\n dom.selected = props.selected || false;\n }\n}\nvar onSelectChange = createWrappedFunction('onChange', applyValueSelect);\nfunction selectEvents(dom) {\n attachEvent(dom, 'change', onSelectChange);\n}\nfunction applyValueSelect(nextPropsOrEmpty, dom, mounting, vNode) {\n var multiplePropInBoolean = Boolean(nextPropsOrEmpty.multiple);\n if (!isNullOrUndef(nextPropsOrEmpty.multiple) && multiplePropInBoolean !== dom.multiple) {\n dom.multiple = multiplePropInBoolean;\n }\n var index = nextPropsOrEmpty.selectedIndex;\n if (index === -1) {\n dom.selectedIndex = -1;\n }\n var childFlags = vNode.childFlags;\n if (childFlags !== 1 /* HasInvalidChildren */) {\n var value = nextPropsOrEmpty.value;\n if (isNumber(index) && index > -1 && dom.options[index]) {\n value = dom.options[index].value;\n }\n if (mounting && isNullOrUndef(value)) {\n value = nextPropsOrEmpty.defaultValue;\n }\n updateChildOptions(vNode, value);\n }\n}\n\nvar onTextareaInputChange = createWrappedFunction('onInput', applyValueTextArea);\nvar wrappedOnChange$1 = createWrappedFunction('onChange');\nfunction textAreaEvents(dom, nextPropsOrEmpty) {\n attachEvent(dom, 'input', onTextareaInputChange);\n if (nextPropsOrEmpty.onChange) {\n attachEvent(dom, 'change', wrappedOnChange$1);\n }\n}\nfunction applyValueTextArea(nextPropsOrEmpty, dom, mounting) {\n var value = nextPropsOrEmpty.value;\n var domValue = dom.value;\n if (isNullOrUndef(value)) {\n if (mounting) {\n var defaultValue = nextPropsOrEmpty.defaultValue;\n if (!isNullOrUndef(defaultValue) && defaultValue !== domValue) {\n dom.defaultValue = defaultValue;\n dom.value = defaultValue;\n }\n }\n }\n else if (domValue !== value) {\n /* There is value so keep it controlled */\n dom.defaultValue = value;\n dom.value = value;\n }\n}\n\nfunction processElement(flags, vNode, dom, nextPropsOrEmpty, mounting, isControlled) {\n if (flags & 64 /* InputElement */) {\n applyValueInput(nextPropsOrEmpty, dom);\n }\n else if (flags & 256 /* SelectElement */) {\n applyValueSelect(nextPropsOrEmpty, dom, mounting, vNode);\n }\n else if (flags & 128 /* TextareaElement */) {\n applyValueTextArea(nextPropsOrEmpty, dom, mounting);\n }\n if (isControlled) {\n dom.$V = vNode;\n }\n}\nfunction addFormElementEventHandlers(flags, dom, nextPropsOrEmpty) {\n if (flags & 64 /* InputElement */) {\n inputEvents(dom, nextPropsOrEmpty);\n }\n else if (flags & 256 /* SelectElement */) {\n selectEvents(dom);\n }\n else if (flags & 128 /* TextareaElement */) {\n textAreaEvents(dom, nextPropsOrEmpty);\n }\n}\nfunction isControlledFormElement(nextPropsOrEmpty) {\n return nextPropsOrEmpty.type && isCheckedType(nextPropsOrEmpty.type) ? !isNullOrUndef(nextPropsOrEmpty.checked) : !isNullOrUndef(nextPropsOrEmpty.value);\n}\n\nfunction createRef() {\n return {\n current: null\n };\n}\nfunction forwardRef(render) {\n // @ts-ignore\n return {\n render: render\n };\n}\nfunction unmountRef(ref) {\n if (ref) {\n if (!safeCall1(ref, null) && ref.current) {\n ref.current = null;\n }\n }\n}\nfunction mountRef(ref, value, lifecycle) {\n if (ref && (isFunction(ref) || ref.current !== void 0)) {\n lifecycle.push(function () {\n if (!safeCall1(ref, value) && ref.current !== void 0) {\n ref.current = value;\n }\n });\n }\n}\n\nfunction remove(vNode, parentDOM) {\n unmount(vNode);\n removeVNodeDOM(vNode, parentDOM);\n}\nfunction unmount(vNode) {\n var flags = vNode.flags;\n var children = vNode.children;\n var ref;\n if (flags & 481 /* Element */) {\n ref = vNode.ref;\n var props = vNode.props;\n unmountRef(ref);\n var childFlags = vNode.childFlags;\n if (!isNull(props)) {\n var keys = Object.keys(props);\n for (var i = 0, len = keys.length; i < len; i++) {\n var key = keys[i];\n if (syntheticEvents[key]) {\n unmountSyntheticEvent(key, vNode.dom);\n }\n }\n }\n if (childFlags & 12 /* MultipleChildren */) {\n unmountAllChildren(children);\n }\n else if (childFlags === 2 /* HasVNodeChildren */) {\n unmount(children);\n }\n }\n else if (children) {\n if (flags & 4 /* ComponentClass */) {\n if (isFunction(children.componentWillUnmount)) {\n children.componentWillUnmount();\n }\n unmountRef(vNode.ref);\n children.$UN = true;\n unmount(children.$LI);\n }\n else if (flags & 8 /* ComponentFunction */) {\n ref = vNode.ref;\n if (!isNullOrUndef(ref) && isFunction(ref.onComponentWillUnmount)) {\n ref.onComponentWillUnmount(findDOMfromVNode(vNode, true), vNode.props || EMPTY_OBJ);\n }\n unmount(children);\n }\n else if (flags & 1024 /* Portal */) {\n remove(children, vNode.ref);\n }\n else if (flags & 8192 /* Fragment */) {\n if (vNode.childFlags & 12 /* MultipleChildren */) {\n unmountAllChildren(children);\n }\n }\n }\n}\nfunction unmountAllChildren(children) {\n for (var i = 0, len = children.length; i < len; ++i) {\n unmount(children[i]);\n }\n}\nfunction clearDOM(dom) {\n // Optimization for clearing dom\n dom.textContent = '';\n}\nfunction removeAllChildren(dom, vNode, children) {\n unmountAllChildren(children);\n if (vNode.flags & 8192 /* Fragment */) {\n removeVNodeDOM(vNode, dom);\n }\n else {\n clearDOM(dom);\n }\n}\n\nfunction wrapLinkEvent(nextValue) {\n // This variable makes sure there is no \"this\" context in callback\n var ev = nextValue.event;\n return function (e) {\n ev(nextValue.data, e);\n };\n}\nfunction patchEvent(name, lastValue, nextValue, dom) {\n if (isLinkEventObject(nextValue)) {\n if (isLastValueSameLinkEvent(lastValue, nextValue)) {\n return;\n }\n nextValue = wrapLinkEvent(nextValue);\n }\n attachEvent(dom, normalizeEventName(name), nextValue);\n}\n// We are assuming here that we come from patchProp routine\n// -nextAttrValue cannot be null or undefined\nfunction patchStyle(lastAttrValue, nextAttrValue, dom) {\n if (isNullOrUndef(nextAttrValue)) {\n dom.removeAttribute('style');\n return;\n }\n var domStyle = dom.style;\n var style;\n var value;\n if (isString(nextAttrValue)) {\n domStyle.cssText = nextAttrValue;\n return;\n }\n if (!isNullOrUndef(lastAttrValue) && !isString(lastAttrValue)) {\n for (style in nextAttrValue) {\n // do not add a hasOwnProperty check here, it affects performance\n value = nextAttrValue[style];\n if (value !== lastAttrValue[style]) {\n domStyle.setProperty(style, value);\n }\n }\n for (style in lastAttrValue) {\n if (isNullOrUndef(nextAttrValue[style])) {\n domStyle.removeProperty(style);\n }\n }\n }\n else {\n for (style in nextAttrValue) {\n value = nextAttrValue[style];\n domStyle.setProperty(style, value);\n }\n }\n}\nfunction patchDangerInnerHTML(lastValue, nextValue, lastVNode, dom) {\n var lastHtml = (lastValue && lastValue.__html) || '';\n var nextHtml = (nextValue && nextValue.__html) || '';\n if (lastHtml !== nextHtml) {\n if (!isNullOrUndef(nextHtml) && !isSameInnerHTML(dom, nextHtml)) {\n if (!isNull(lastVNode)) {\n if (lastVNode.childFlags & 12 /* MultipleChildren */) {\n unmountAllChildren(lastVNode.children);\n }\n else if (lastVNode.childFlags === 2 /* HasVNodeChildren */) {\n unmount(lastVNode.children);\n }\n lastVNode.children = null;\n lastVNode.childFlags = 1 /* HasInvalidChildren */;\n }\n dom.innerHTML = nextHtml;\n }\n }\n}\nfunction patchProp(prop, lastValue, nextValue, dom, isSVG, hasControlledValue, lastVNode) {\n switch (prop) {\n case 'children':\n case 'childrenType':\n case 'className':\n case 'defaultValue':\n case 'key':\n case 'multiple':\n case 'ref':\n case 'selectedIndex':\n break;\n case 'autoFocus':\n dom.autofocus = !!nextValue;\n break;\n case 'allowfullscreen':\n case 'autoplay':\n case 'capture':\n case 'checked':\n case 'controls':\n case 'default':\n case 'disabled':\n case 'hidden':\n case 'indeterminate':\n case 'loop':\n case 'muted':\n case 'novalidate':\n case 'open':\n case 'readOnly':\n case 'required':\n case 'reversed':\n case 'scoped':\n case 'seamless':\n case 'selected':\n dom[prop] = !!nextValue;\n break;\n case 'defaultChecked':\n case 'value':\n case 'volume':\n if (hasControlledValue && prop === 'value') {\n break;\n }\n var value = isNullOrUndef(nextValue) ? '' : nextValue;\n if (dom[prop] !== value) {\n dom[prop] = value;\n }\n break;\n case 'style':\n patchStyle(lastValue, nextValue, dom);\n break;\n case 'dangerouslySetInnerHTML':\n patchDangerInnerHTML(lastValue, nextValue, lastVNode, dom);\n break;\n default:\n if (syntheticEvents[prop]) {\n handleSyntheticEvent(prop, lastValue, nextValue, dom);\n }\n else if (prop.charCodeAt(0) === 111 && prop.charCodeAt(1) === 110) {\n patchEvent(prop, lastValue, nextValue, dom);\n }\n else if (isNullOrUndef(nextValue)) {\n dom.removeAttribute(prop);\n }\n else if (isSVG && namespaces[prop]) {\n // We optimize for isSVG being false\n // If we end up in this path we can read property again\n dom.setAttributeNS(namespaces[prop], prop, nextValue);\n }\n else {\n dom.setAttribute(prop, nextValue);\n }\n break;\n }\n}\nfunction mountProps(vNode, flags, props, dom, isSVG) {\n var hasControlledValue = false;\n var isFormElement = (flags & 448 /* FormElement */) > 0;\n if (isFormElement) {\n hasControlledValue = isControlledFormElement(props);\n if (hasControlledValue) {\n addFormElementEventHandlers(flags, dom, props);\n }\n }\n for (var prop in props) {\n // do not add a hasOwnProperty check here, it affects performance\n patchProp(prop, null, props[prop], dom, isSVG, hasControlledValue, null);\n }\n if (isFormElement) {\n processElement(flags, vNode, dom, props, true, hasControlledValue);\n }\n}\n\nfunction renderNewInput(instance, props, context) {\n var nextInput = normalizeRoot(instance.render(props, instance.state, context));\n var childContext = context;\n if (isFunction(instance.getChildContext)) {\n childContext = combineFrom(context, instance.getChildContext());\n }\n instance.$CX = childContext;\n return nextInput;\n}\nfunction createClassComponentInstance(vNode, Component, props, context, isSVG, lifecycle) {\n var instance = new Component(props, context);\n var usesNewAPI = (instance.$N = Boolean(Component.getDerivedStateFromProps || instance.getSnapshotBeforeUpdate));\n instance.$SVG = isSVG;\n instance.$L = lifecycle;\n vNode.children = instance;\n instance.$BS = false;\n instance.context = context;\n if (instance.props === EMPTY_OBJ) {\n instance.props = props;\n }\n if (!usesNewAPI) {\n if (isFunction(instance.componentWillMount)) {\n instance.$BR = true;\n instance.componentWillMount();\n var pending = instance.$PS;\n if (!isNull(pending)) {\n var state = instance.state;\n if (isNull(state)) {\n instance.state = pending;\n }\n else {\n for (var key in pending) {\n state[key] = pending[key];\n }\n }\n instance.$PS = null;\n }\n instance.$BR = false;\n }\n }\n else {\n instance.state = createDerivedState(instance, props, instance.state);\n }\n instance.$LI = renderNewInput(instance, props, context);\n return instance;\n}\nfunction renderFunctionalComponent(vNode, context) {\n var props = vNode.props || EMPTY_OBJ;\n return vNode.flags & 32768 /* ForwardRef */ ? vNode.type.render(props, vNode.ref, context) : vNode.type(props, context);\n}\n\nfunction mount(vNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var flags = (vNode.flags |= 16384 /* InUse */);\n if (flags & 481 /* Element */) {\n mountElement(vNode, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n else if (flags & 4 /* ComponentClass */) {\n mountClassComponent(vNode, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n else if (flags & 8 /* ComponentFunction */) {\n mountFunctionalComponent(vNode, parentDOM, context, isSVG, nextNode, lifecycle);\n mountFunctionalComponentCallbacks(vNode, lifecycle);\n }\n else if (flags & 512 /* Void */ || flags & 16 /* Text */) {\n mountText(vNode, parentDOM, nextNode);\n }\n else if (flags & 8192 /* Fragment */) {\n mountFragment(vNode, context, parentDOM, isSVG, nextNode, lifecycle);\n }\n else if (flags & 1024 /* Portal */) {\n mountPortal(vNode, context, parentDOM, nextNode, lifecycle);\n }\n else ;\n}\nfunction mountPortal(vNode, context, parentDOM, nextNode, lifecycle) {\n mount(vNode.children, vNode.ref, context, false, null, lifecycle);\n var placeHolderVNode = createVoidVNode();\n mountText(placeHolderVNode, parentDOM, nextNode);\n vNode.dom = placeHolderVNode.dom;\n}\nfunction mountFragment(vNode, context, parentDOM, isSVG, nextNode, lifecycle) {\n var children = vNode.children;\n var childFlags = vNode.childFlags;\n // When fragment is optimized for multiple children, check if there is no children and change flag to invalid\n // This is the only normalization always done, to keep optimization flags API same for fragments and regular elements\n if (childFlags & 12 /* MultipleChildren */ && children.length === 0) {\n childFlags = vNode.childFlags = 2 /* HasVNodeChildren */;\n children = vNode.children = createVoidVNode();\n }\n if (childFlags === 2 /* HasVNodeChildren */) {\n mount(children, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n else {\n mountArrayChildren(children, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n}\nfunction mountText(vNode, parentDOM, nextNode) {\n var dom = (vNode.dom = document.createTextNode(vNode.children));\n if (!isNull(parentDOM)) {\n insertOrAppend(parentDOM, dom, nextNode);\n }\n}\nfunction mountElement(vNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var flags = vNode.flags;\n var props = vNode.props;\n var className = vNode.className;\n var childFlags = vNode.childFlags;\n var dom = (vNode.dom = documentCreateElement(vNode.type, (isSVG = isSVG || (flags & 32 /* SvgElement */) > 0)));\n var children = vNode.children;\n if (!isNullOrUndef(className) && className !== '') {\n if (isSVG) {\n dom.setAttribute('class', className);\n }\n else {\n dom.className = className;\n }\n }\n if (childFlags === 16 /* HasTextChildren */) {\n setTextContent(dom, children);\n }\n else if (childFlags !== 1 /* HasInvalidChildren */) {\n var childrenIsSVG = isSVG && vNode.type !== 'foreignObject';\n if (childFlags === 2 /* HasVNodeChildren */) {\n if (children.flags & 16384 /* InUse */) {\n vNode.children = children = directClone(children);\n }\n mount(children, dom, context, childrenIsSVG, null, lifecycle);\n }\n else if (childFlags === 8 /* HasKeyedChildren */ || childFlags === 4 /* HasNonKeyedChildren */) {\n mountArrayChildren(children, dom, context, childrenIsSVG, null, lifecycle);\n }\n }\n if (!isNull(parentDOM)) {\n insertOrAppend(parentDOM, dom, nextNode);\n }\n if (!isNull(props)) {\n mountProps(vNode, flags, props, dom, isSVG);\n }\n mountRef(vNode.ref, dom, lifecycle);\n}\nfunction mountArrayChildren(children, dom, context, isSVG, nextNode, lifecycle) {\n for (var i = 0; i < children.length; ++i) {\n var child = children[i];\n if (child.flags & 16384 /* InUse */) {\n children[i] = child = directClone(child);\n }\n mount(child, dom, context, isSVG, nextNode, lifecycle);\n }\n}\nfunction mountClassComponent(vNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var instance = createClassComponentInstance(vNode, vNode.type, vNode.props || EMPTY_OBJ, context, isSVG, lifecycle);\n mount(instance.$LI, parentDOM, instance.$CX, isSVG, nextNode, lifecycle);\n mountClassComponentCallbacks(vNode.ref, instance, lifecycle);\n}\nfunction mountFunctionalComponent(vNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n mount((vNode.children = normalizeRoot(renderFunctionalComponent(vNode, context))), parentDOM, context, isSVG, nextNode, lifecycle);\n}\nfunction createClassMountCallback(instance) {\n return function () {\n instance.componentDidMount();\n };\n}\nfunction mountClassComponentCallbacks(ref, instance, lifecycle) {\n mountRef(ref, instance, lifecycle);\n if (isFunction(instance.componentDidMount)) {\n lifecycle.push(createClassMountCallback(instance));\n }\n}\nfunction createOnMountCallback(ref, vNode) {\n return function () {\n ref.onComponentDidMount(findDOMfromVNode(vNode, true), vNode.props || EMPTY_OBJ);\n };\n}\nfunction mountFunctionalComponentCallbacks(vNode, lifecycle) {\n var ref = vNode.ref;\n if (!isNullOrUndef(ref)) {\n safeCall1(ref.onComponentWillMount, vNode.props || EMPTY_OBJ);\n if (isFunction(ref.onComponentDidMount)) {\n lifecycle.push(createOnMountCallback(ref, vNode));\n }\n }\n}\n\nfunction replaceWithNewNode(lastVNode, nextVNode, parentDOM, context, isSVG, lifecycle) {\n unmount(lastVNode);\n if ((nextVNode.flags & lastVNode.flags & 2033 /* DOMRef */) !== 0) {\n mount(nextVNode, null, context, isSVG, null, lifecycle);\n // Single DOM operation, when we have dom references available\n replaceChild(parentDOM, nextVNode.dom, lastVNode.dom);\n }\n else {\n mount(nextVNode, parentDOM, context, isSVG, findDOMfromVNode(lastVNode, true), lifecycle);\n removeVNodeDOM(lastVNode, parentDOM);\n }\n}\nfunction patch(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var nextFlags = (nextVNode.flags |= 16384 /* InUse */);\n if (lastVNode.flags !== nextFlags || lastVNode.type !== nextVNode.type || lastVNode.key !== nextVNode.key || nextFlags & 2048 /* ReCreate */) {\n if (lastVNode.flags & 16384 /* InUse */) {\n replaceWithNewNode(lastVNode, nextVNode, parentDOM, context, isSVG, lifecycle);\n }\n else {\n // Last vNode is not in use, it has crashed at application level. Just mount nextVNode and ignore last one\n mount(nextVNode, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n }\n else if (nextFlags & 481 /* Element */) {\n patchElement(lastVNode, nextVNode, context, isSVG, nextFlags, lifecycle);\n }\n else if (nextFlags & 4 /* ComponentClass */) {\n patchClassComponent(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n else if (nextFlags & 8 /* ComponentFunction */) {\n patchFunctionalComponent(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n else if (nextFlags & 16 /* Text */) {\n patchText(lastVNode, nextVNode);\n }\n else if (nextFlags & 512 /* Void */) {\n nextVNode.dom = lastVNode.dom;\n }\n else if (nextFlags & 8192 /* Fragment */) {\n patchFragment(lastVNode, nextVNode, parentDOM, context, isSVG, lifecycle);\n }\n else {\n patchPortal(lastVNode, nextVNode, context, lifecycle);\n }\n}\nfunction patchSingleTextChild(lastChildren, nextChildren, parentDOM) {\n if (lastChildren !== nextChildren) {\n if (lastChildren !== '') {\n parentDOM.firstChild.nodeValue = nextChildren;\n }\n else {\n setTextContent(parentDOM, nextChildren);\n }\n }\n}\nfunction patchContentEditableChildren(dom, nextChildren) {\n if (dom.textContent !== nextChildren) {\n dom.textContent = nextChildren;\n }\n}\nfunction patchFragment(lastVNode, nextVNode, parentDOM, context, isSVG, lifecycle) {\n var lastChildren = lastVNode.children;\n var nextChildren = nextVNode.children;\n var lastChildFlags = lastVNode.childFlags;\n var nextChildFlags = nextVNode.childFlags;\n var nextNode = null;\n // When fragment is optimized for multiple children, check if there is no children and change flag to invalid\n // This is the only normalization always done, to keep optimization flags API same for fragments and regular elements\n if (nextChildFlags & 12 /* MultipleChildren */ && nextChildren.length === 0) {\n nextChildFlags = nextVNode.childFlags = 2 /* HasVNodeChildren */;\n nextChildren = nextVNode.children = createVoidVNode();\n }\n var nextIsSingle = (nextChildFlags & 2 /* HasVNodeChildren */) !== 0;\n if (lastChildFlags & 12 /* MultipleChildren */) {\n var lastLen = lastChildren.length;\n // We need to know Fragment's edge node when\n if (\n // It uses keyed algorithm\n (lastChildFlags & 8 /* HasKeyedChildren */ && nextChildFlags & 8 /* HasKeyedChildren */) ||\n // It transforms from many to single\n nextIsSingle ||\n // It will append more nodes\n (!nextIsSingle && nextChildren.length > lastLen)) {\n // When fragment has multiple children there is always at least one vNode\n nextNode = findDOMfromVNode(lastChildren[lastLen - 1], false).nextSibling;\n }\n }\n patchChildren(lastChildFlags, nextChildFlags, lastChildren, nextChildren, parentDOM, context, isSVG, nextNode, lastVNode, lifecycle);\n}\nfunction patchPortal(lastVNode, nextVNode, context, lifecycle) {\n var lastContainer = lastVNode.ref;\n var nextContainer = nextVNode.ref;\n var nextChildren = nextVNode.children;\n patchChildren(lastVNode.childFlags, nextVNode.childFlags, lastVNode.children, nextChildren, lastContainer, context, false, null, lastVNode, lifecycle);\n nextVNode.dom = lastVNode.dom;\n if (lastContainer !== nextContainer && !isInvalid(nextChildren)) {\n var node = nextChildren.dom;\n removeChild(lastContainer, node);\n appendChild(nextContainer, node);\n }\n}\nfunction patchElement(lastVNode, nextVNode, context, isSVG, nextFlags, lifecycle) {\n var dom = (nextVNode.dom = lastVNode.dom);\n var lastProps = lastVNode.props;\n var nextProps = nextVNode.props;\n var isFormElement = false;\n var hasControlledValue = false;\n var nextPropsOrEmpty;\n isSVG = isSVG || (nextFlags & 32 /* SvgElement */) > 0;\n // inlined patchProps -- starts --\n if (lastProps !== nextProps) {\n var lastPropsOrEmpty = lastProps || EMPTY_OBJ;\n nextPropsOrEmpty = nextProps || EMPTY_OBJ;\n if (nextPropsOrEmpty !== EMPTY_OBJ) {\n isFormElement = (nextFlags & 448 /* FormElement */) > 0;\n if (isFormElement) {\n hasControlledValue = isControlledFormElement(nextPropsOrEmpty);\n }\n for (var prop in nextPropsOrEmpty) {\n var lastValue = lastPropsOrEmpty[prop];\n var nextValue = nextPropsOrEmpty[prop];\n if (lastValue !== nextValue) {\n patchProp(prop, lastValue, nextValue, dom, isSVG, hasControlledValue, lastVNode);\n }\n }\n }\n if (lastPropsOrEmpty !== EMPTY_OBJ) {\n for (var prop$1 in lastPropsOrEmpty) {\n if (isNullOrUndef(nextPropsOrEmpty[prop$1]) && !isNullOrUndef(lastPropsOrEmpty[prop$1])) {\n patchProp(prop$1, lastPropsOrEmpty[prop$1], null, dom, isSVG, hasControlledValue, lastVNode);\n }\n }\n }\n }\n var nextChildren = nextVNode.children;\n var nextClassName = nextVNode.className;\n // inlined patchProps -- ends --\n if (lastVNode.className !== nextClassName) {\n if (isNullOrUndef(nextClassName)) {\n dom.removeAttribute('class');\n }\n else if (isSVG) {\n dom.setAttribute('class', nextClassName);\n }\n else {\n dom.className = nextClassName;\n }\n }\n if (nextFlags & 4096 /* ContentEditable */) {\n patchContentEditableChildren(dom, nextChildren);\n }\n else {\n patchChildren(lastVNode.childFlags, nextVNode.childFlags, lastVNode.children, nextChildren, dom, context, isSVG && nextVNode.type !== 'foreignObject', null, lastVNode, lifecycle);\n }\n if (isFormElement) {\n processElement(nextFlags, nextVNode, dom, nextPropsOrEmpty, false, hasControlledValue);\n }\n var nextRef = nextVNode.ref;\n var lastRef = lastVNode.ref;\n if (lastRef !== nextRef) {\n unmountRef(lastRef);\n mountRef(nextRef, dom, lifecycle);\n }\n}\nfunction replaceOneVNodeWithMultipleVNodes(lastChildren, nextChildren, parentDOM, context, isSVG, lifecycle) {\n unmount(lastChildren);\n mountArrayChildren(nextChildren, parentDOM, context, isSVG, findDOMfromVNode(lastChildren, true), lifecycle);\n removeVNodeDOM(lastChildren, parentDOM);\n}\nfunction patchChildren(lastChildFlags, nextChildFlags, lastChildren, nextChildren, parentDOM, context, isSVG, nextNode, parentVNode, lifecycle) {\n switch (lastChildFlags) {\n case 2 /* HasVNodeChildren */:\n switch (nextChildFlags) {\n case 2 /* HasVNodeChildren */:\n patch(lastChildren, nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n case 1 /* HasInvalidChildren */:\n remove(lastChildren, parentDOM);\n break;\n case 16 /* HasTextChildren */:\n unmount(lastChildren);\n setTextContent(parentDOM, nextChildren);\n break;\n default:\n replaceOneVNodeWithMultipleVNodes(lastChildren, nextChildren, parentDOM, context, isSVG, lifecycle);\n break;\n }\n break;\n case 1 /* HasInvalidChildren */:\n switch (nextChildFlags) {\n case 2 /* HasVNodeChildren */:\n mount(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n case 1 /* HasInvalidChildren */:\n break;\n case 16 /* HasTextChildren */:\n setTextContent(parentDOM, nextChildren);\n break;\n default:\n mountArrayChildren(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n }\n break;\n case 16 /* HasTextChildren */:\n switch (nextChildFlags) {\n case 16 /* HasTextChildren */:\n patchSingleTextChild(lastChildren, nextChildren, parentDOM);\n break;\n case 2 /* HasVNodeChildren */:\n clearDOM(parentDOM);\n mount(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n case 1 /* HasInvalidChildren */:\n clearDOM(parentDOM);\n break;\n default:\n clearDOM(parentDOM);\n mountArrayChildren(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n }\n break;\n default:\n switch (nextChildFlags) {\n case 16 /* HasTextChildren */:\n unmountAllChildren(lastChildren);\n setTextContent(parentDOM, nextChildren);\n break;\n case 2 /* HasVNodeChildren */:\n removeAllChildren(parentDOM, parentVNode, lastChildren);\n mount(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n case 1 /* HasInvalidChildren */:\n removeAllChildren(parentDOM, parentVNode, lastChildren);\n break;\n default:\n var lastLength = lastChildren.length | 0;\n var nextLength = nextChildren.length | 0;\n // Fast path's for both algorithms\n if (lastLength === 0) {\n if (nextLength > 0) {\n mountArrayChildren(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n }\n else if (nextLength === 0) {\n removeAllChildren(parentDOM, parentVNode, lastChildren);\n }\n else if (nextChildFlags === 8 /* HasKeyedChildren */ && lastChildFlags === 8 /* HasKeyedChildren */) {\n patchKeyedChildren(lastChildren, nextChildren, parentDOM, context, isSVG, lastLength, nextLength, nextNode, parentVNode, lifecycle);\n }\n else {\n patchNonKeyedChildren(lastChildren, nextChildren, parentDOM, context, isSVG, lastLength, nextLength, nextNode, lifecycle);\n }\n break;\n }\n break;\n }\n}\nfunction createDidUpdate(instance, lastProps, lastState, snapshot, lifecycle) {\n lifecycle.push(function () {\n instance.componentDidUpdate(lastProps, lastState, snapshot);\n });\n}\nfunction updateClassComponent(instance, nextState, nextProps, parentDOM, context, isSVG, force, nextNode, lifecycle) {\n var lastState = instance.state;\n var lastProps = instance.props;\n var usesNewAPI = Boolean(instance.$N);\n var hasSCU = isFunction(instance.shouldComponentUpdate);\n if (usesNewAPI) {\n nextState = createDerivedState(instance, nextProps, nextState !== lastState ? combineFrom(lastState, nextState) : nextState);\n }\n if (force || !hasSCU || (hasSCU && instance.shouldComponentUpdate(nextProps, nextState, context))) {\n if (!usesNewAPI && isFunction(instance.componentWillUpdate)) {\n instance.componentWillUpdate(nextProps, nextState, context);\n }\n instance.props = nextProps;\n instance.state = nextState;\n instance.context = context;\n var snapshot = null;\n var nextInput = renderNewInput(instance, nextProps, context);\n if (usesNewAPI && isFunction(instance.getSnapshotBeforeUpdate)) {\n snapshot = instance.getSnapshotBeforeUpdate(lastProps, lastState);\n }\n patch(instance.$LI, nextInput, parentDOM, instance.$CX, isSVG, nextNode, lifecycle);\n // Dont update Last input, until patch has been succesfully executed\n instance.$LI = nextInput;\n if (isFunction(instance.componentDidUpdate)) {\n createDidUpdate(instance, lastProps, lastState, snapshot, lifecycle);\n }\n }\n else {\n instance.props = nextProps;\n instance.state = nextState;\n instance.context = context;\n }\n}\nfunction patchClassComponent(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var instance = (nextVNode.children = lastVNode.children);\n // If Component has crashed, ignore it to stay functional\n if (isNull(instance)) {\n return;\n }\n instance.$L = lifecycle;\n var nextProps = nextVNode.props || EMPTY_OBJ;\n var nextRef = nextVNode.ref;\n var lastRef = lastVNode.ref;\n var nextState = instance.state;\n if (!instance.$N) {\n if (isFunction(instance.componentWillReceiveProps)) {\n instance.$BR = true;\n instance.componentWillReceiveProps(nextProps, context);\n // If instance component was removed during its own update do nothing.\n if (instance.$UN) {\n return;\n }\n instance.$BR = false;\n }\n if (!isNull(instance.$PS)) {\n nextState = combineFrom(nextState, instance.$PS);\n instance.$PS = null;\n }\n }\n updateClassComponent(instance, nextState, nextProps, parentDOM, context, isSVG, false, nextNode, lifecycle);\n if (lastRef !== nextRef) {\n unmountRef(lastRef);\n mountRef(nextRef, instance, lifecycle);\n }\n}\nfunction patchFunctionalComponent(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var shouldUpdate = true;\n var nextProps = nextVNode.props || EMPTY_OBJ;\n var nextRef = nextVNode.ref;\n var lastProps = lastVNode.props;\n var nextHooksDefined = !isNullOrUndef(nextRef);\n var lastInput = lastVNode.children;\n if (nextHooksDefined && isFunction(nextRef.onComponentShouldUpdate)) {\n shouldUpdate = nextRef.onComponentShouldUpdate(lastProps, nextProps);\n }\n if (shouldUpdate !== false) {\n if (nextHooksDefined && isFunction(nextRef.onComponentWillUpdate)) {\n nextRef.onComponentWillUpdate(lastProps, nextProps);\n }\n var nextInput = normalizeRoot(renderFunctionalComponent(nextVNode, context));\n patch(lastInput, nextInput, parentDOM, context, isSVG, nextNode, lifecycle);\n nextVNode.children = nextInput;\n if (nextHooksDefined && isFunction(nextRef.onComponentDidUpdate)) {\n nextRef.onComponentDidUpdate(lastProps, nextProps);\n }\n }\n else {\n nextVNode.children = lastInput;\n }\n}\nfunction patchText(lastVNode, nextVNode) {\n var nextText = nextVNode.children;\n var dom = (nextVNode.dom = lastVNode.dom);\n if (nextText !== lastVNode.children) {\n dom.nodeValue = nextText;\n }\n}\nfunction patchNonKeyedChildren(lastChildren, nextChildren, dom, context, isSVG, lastChildrenLength, nextChildrenLength, nextNode, lifecycle) {\n var commonLength = lastChildrenLength > nextChildrenLength ? nextChildrenLength : lastChildrenLength;\n var i = 0;\n var nextChild;\n var lastChild;\n for (; i < commonLength; ++i) {\n nextChild = nextChildren[i];\n lastChild = lastChildren[i];\n if (nextChild.flags & 16384 /* InUse */) {\n nextChild = nextChildren[i] = directClone(nextChild);\n }\n patch(lastChild, nextChild, dom, context, isSVG, nextNode, lifecycle);\n lastChildren[i] = nextChild;\n }\n if (lastChildrenLength < nextChildrenLength) {\n for (i = commonLength; i < nextChildrenLength; ++i) {\n nextChild = nextChildren[i];\n if (nextChild.flags & 16384 /* InUse */) {\n nextChild = nextChildren[i] = directClone(nextChild);\n }\n mount(nextChild, dom, context, isSVG, nextNode, lifecycle);\n }\n }\n else if (lastChildrenLength > nextChildrenLength) {\n for (i = commonLength; i < lastChildrenLength; ++i) {\n remove(lastChildren[i], dom);\n }\n }\n}\nfunction patchKeyedChildren(a, b, dom, context, isSVG, aLength, bLength, outerEdge, parentVNode, lifecycle) {\n var aEnd = aLength - 1;\n var bEnd = bLength - 1;\n var j = 0;\n var aNode = a[j];\n var bNode = b[j];\n var nextPos;\n var nextNode;\n // Step 1\n // tslint:disable-next-line\n outer: {\n // Sync nodes with the same key at the beginning.\n while (aNode.key === bNode.key) {\n if (bNode.flags & 16384 /* InUse */) {\n b[j] = bNode = directClone(bNode);\n }\n patch(aNode, bNode, dom, context, isSVG, outerEdge, lifecycle);\n a[j] = bNode;\n ++j;\n if (j > aEnd || j > bEnd) {\n break outer;\n }\n aNode = a[j];\n bNode = b[j];\n }\n aNode = a[aEnd];\n bNode = b[bEnd];\n // Sync nodes with the same key at the end.\n while (aNode.key === bNode.key) {\n if (bNode.flags & 16384 /* InUse */) {\n b[bEnd] = bNode = directClone(bNode);\n }\n patch(aNode, bNode, dom, context, isSVG, outerEdge, lifecycle);\n a[aEnd] = bNode;\n aEnd--;\n bEnd--;\n if (j > aEnd || j > bEnd) {\n break outer;\n }\n aNode = a[aEnd];\n bNode = b[bEnd];\n }\n }\n if (j > aEnd) {\n if (j <= bEnd) {\n nextPos = bEnd + 1;\n nextNode = nextPos < bLength ? findDOMfromVNode(b[nextPos], true) : outerEdge;\n while (j <= bEnd) {\n bNode = b[j];\n if (bNode.flags & 16384 /* InUse */) {\n b[j] = bNode = directClone(bNode);\n }\n ++j;\n mount(bNode, dom, context, isSVG, nextNode, lifecycle);\n }\n }\n }\n else if (j > bEnd) {\n while (j <= aEnd) {\n remove(a[j++], dom);\n }\n }\n else {\n patchKeyedChildrenComplex(a, b, context, aLength, bLength, aEnd, bEnd, j, dom, isSVG, outerEdge, parentVNode, lifecycle);\n }\n}\nfunction patchKeyedChildrenComplex(a, b, context, aLength, bLength, aEnd, bEnd, j, dom, isSVG, outerEdge, parentVNode, lifecycle) {\n var aNode;\n var bNode;\n var nextPos;\n var i = 0;\n var aStart = j;\n var bStart = j;\n var aLeft = aEnd - j + 1;\n var bLeft = bEnd - j + 1;\n var sources = new Int32Array(bLeft + 1);\n // Keep track if its possible to remove whole DOM using textContent = '';\n var canRemoveWholeContent = aLeft === aLength;\n var moved = false;\n var pos = 0;\n var patched = 0;\n // When sizes are small, just loop them through\n if (bLength < 4 || (aLeft | bLeft) < 32) {\n for (i = aStart; i <= aEnd; ++i) {\n aNode = a[i];\n if (patched < bLeft) {\n for (j = bStart; j <= bEnd; j++) {\n bNode = b[j];\n if (aNode.key === bNode.key) {\n sources[j - bStart] = i + 1;\n if (canRemoveWholeContent) {\n canRemoveWholeContent = false;\n while (aStart < i) {\n remove(a[aStart++], dom);\n }\n }\n if (pos > j) {\n moved = true;\n }\n else {\n pos = j;\n }\n if (bNode.flags & 16384 /* InUse */) {\n b[j] = bNode = directClone(bNode);\n }\n patch(aNode, bNode, dom, context, isSVG, outerEdge, lifecycle);\n ++patched;\n break;\n }\n }\n if (!canRemoveWholeContent && j > bEnd) {\n remove(aNode, dom);\n }\n }\n else if (!canRemoveWholeContent) {\n remove(aNode, dom);\n }\n }\n }\n else {\n var keyIndex = {};\n // Map keys by their index\n for (i = bStart; i <= bEnd; ++i) {\n keyIndex[b[i].key] = i;\n }\n // Try to patch same keys\n for (i = aStart; i <= aEnd; ++i) {\n aNode = a[i];\n if (patched < bLeft) {\n j = keyIndex[aNode.key];\n if (j !== void 0) {\n if (canRemoveWholeContent) {\n canRemoveWholeContent = false;\n while (i > aStart) {\n remove(a[aStart++], dom);\n }\n }\n sources[j - bStart] = i + 1;\n if (pos > j) {\n moved = true;\n }\n else {\n pos = j;\n }\n bNode = b[j];\n if (bNode.flags & 16384 /* InUse */) {\n b[j] = bNode = directClone(bNode);\n }\n patch(aNode, bNode, dom, context, isSVG, outerEdge, lifecycle);\n ++patched;\n }\n else if (!canRemoveWholeContent) {\n remove(aNode, dom);\n }\n }\n else if (!canRemoveWholeContent) {\n remove(aNode, dom);\n }\n }\n }\n // fast-path: if nothing patched remove all old and add all new\n if (canRemoveWholeContent) {\n removeAllChildren(dom, parentVNode, a);\n mountArrayChildren(b, dom, context, isSVG, outerEdge, lifecycle);\n }\n else if (moved) {\n var seq = lis_algorithm(sources);\n j = seq.length - 1;\n for (i = bLeft - 1; i >= 0; i--) {\n if (sources[i] === 0) {\n pos = i + bStart;\n bNode = b[pos];\n if (bNode.flags & 16384 /* InUse */) {\n b[pos] = bNode = directClone(bNode);\n }\n nextPos = pos + 1;\n mount(bNode, dom, context, isSVG, nextPos < bLength ? findDOMfromVNode(b[nextPos], true) : outerEdge, lifecycle);\n }\n else if (j < 0 || i !== seq[j]) {\n pos = i + bStart;\n bNode = b[pos];\n nextPos = pos + 1;\n moveVNodeDOM(bNode, dom, nextPos < bLength ? findDOMfromVNode(b[nextPos], true) : outerEdge);\n }\n else {\n j--;\n }\n }\n }\n else if (patched !== bLeft) {\n // when patched count doesn't match b length we need to insert those new ones\n // loop backwards so we can use insertBefore\n for (i = bLeft - 1; i >= 0; i--) {\n if (sources[i] === 0) {\n pos = i + bStart;\n bNode = b[pos];\n if (bNode.flags & 16384 /* InUse */) {\n b[pos] = bNode = directClone(bNode);\n }\n nextPos = pos + 1;\n mount(bNode, dom, context, isSVG, nextPos < bLength ? findDOMfromVNode(b[nextPos], true) : outerEdge, lifecycle);\n }\n }\n }\n}\nvar result;\nvar p;\nvar maxLen = 0;\n// https://en.wikipedia.org/wiki/Longest_increasing_subsequence\nfunction lis_algorithm(arr) {\n var arrI = 0;\n var i = 0;\n var j = 0;\n var k = 0;\n var u = 0;\n var v = 0;\n var c = 0;\n var len = arr.length;\n if (len > maxLen) {\n maxLen = len;\n result = new Int32Array(len);\n p = new Int32Array(len);\n }\n for (; i < len; ++i) {\n arrI = arr[i];\n if (arrI !== 0) {\n j = result[k];\n if (arr[j] < arrI) {\n p[i] = j;\n result[++k] = i;\n continue;\n }\n u = 0;\n v = k;\n while (u < v) {\n c = (u + v) >> 1;\n if (arr[result[c]] < arrI) {\n u = c + 1;\n }\n else {\n v = c;\n }\n }\n if (arrI < arr[result[u]]) {\n if (u > 0) {\n p[i] = result[u - 1];\n }\n result[u] = i;\n }\n }\n }\n u = k + 1;\n var seq = new Int32Array(u);\n v = result[u - 1];\n while (u-- > 0) {\n seq[u] = v;\n v = p[v];\n result[u] = 0;\n }\n return seq;\n}\n\nvar hasDocumentAvailable = typeof document !== 'undefined';\nif (hasDocumentAvailable) {\n /*\n * Defining $EV and $V properties on Node.prototype\n * fixes v8 \"wrong map\" de-optimization\n */\n if (window.Node) {\n Node.prototype.$EV = null;\n Node.prototype.$V = null;\n }\n}\nfunction __render(input, parentDOM, callback, context) {\n var lifecycle = [];\n var rootInput = parentDOM.$V;\n renderCheck.v = true;\n if (isNullOrUndef(rootInput)) {\n if (!isNullOrUndef(input)) {\n if (input.flags & 16384 /* InUse */) {\n input = directClone(input);\n }\n mount(input, parentDOM, context, false, null, lifecycle);\n parentDOM.$V = input;\n rootInput = input;\n }\n }\n else {\n if (isNullOrUndef(input)) {\n remove(rootInput, parentDOM);\n parentDOM.$V = null;\n }\n else {\n if (input.flags & 16384 /* InUse */) {\n input = directClone(input);\n }\n patch(rootInput, input, parentDOM, context, false, null, lifecycle);\n rootInput = parentDOM.$V = input;\n }\n }\n callAll(lifecycle);\n renderCheck.v = false;\n if (isFunction(callback)) {\n callback();\n }\n if (isFunction(options.renderComplete)) {\n options.renderComplete(rootInput, parentDOM);\n }\n}\nfunction render(input, parentDOM, callback, context) {\n if ( callback === void 0 ) callback = null;\n if ( context === void 0 ) context = EMPTY_OBJ;\n\n __render(input, parentDOM, callback, context);\n}\nfunction createRenderer(parentDOM) {\n return function renderer(lastInput, nextInput, callback, context) {\n if (!parentDOM) {\n parentDOM = lastInput;\n }\n render(nextInput, parentDOM, callback, context);\n };\n}\n\nvar QUEUE = [];\nvar nextTick = typeof Promise !== 'undefined'\n ? Promise.resolve().then.bind(Promise.resolve())\n : function (a) {\n window.setTimeout(a, 0);\n };\nvar microTaskPending = false;\nfunction queueStateChanges(component, newState, callback, force) {\n var pending = component.$PS;\n if (isFunction(newState)) {\n newState = newState(pending ? combineFrom(component.state, pending) : component.state, component.props, component.context);\n }\n if (isNullOrUndef(pending)) {\n component.$PS = newState;\n }\n else {\n for (var stateKey in newState) {\n pending[stateKey] = newState[stateKey];\n }\n }\n if (!component.$BR) {\n if (!renderCheck.v) {\n if (QUEUE.length === 0) {\n applyState(component, force);\n if (isFunction(callback)) {\n callback.call(component);\n }\n return;\n }\n }\n if (QUEUE.indexOf(component) === -1) {\n QUEUE.push(component);\n }\n if (force) {\n component.$F = true;\n }\n if (!microTaskPending) {\n microTaskPending = true;\n nextTick(rerender);\n }\n if (isFunction(callback)) {\n var QU = component.$QU;\n if (!QU) {\n QU = component.$QU = [];\n }\n QU.push(callback);\n }\n }\n else if (isFunction(callback)) {\n component.$L.push(callback.bind(component));\n }\n}\nfunction callSetStateCallbacks(component) {\n var queue = component.$QU;\n for (var i = 0; i < queue.length; ++i) {\n queue[i].call(component);\n }\n component.$QU = null;\n}\nfunction rerender() {\n var component;\n microTaskPending = false;\n while ((component = QUEUE.shift())) {\n if (!component.$UN) {\n var force = component.$F;\n component.$F = false;\n applyState(component, force);\n if (component.$QU) {\n callSetStateCallbacks(component);\n }\n }\n }\n}\nfunction applyState(component, force) {\n if (force || !component.$BR) {\n var pendingState = component.$PS;\n component.$PS = null;\n var lifecycle = [];\n renderCheck.v = true;\n updateClassComponent(component, combineFrom(component.state, pendingState), component.props, findDOMfromVNode(component.$LI, true).parentNode, component.context, component.$SVG, force, null, lifecycle);\n callAll(lifecycle);\n renderCheck.v = false;\n }\n else {\n component.state = component.$PS;\n component.$PS = null;\n }\n}\nvar Component = function Component(props, context) {\n // Public\n this.state = null;\n // Internal properties\n this.$BR = false; // BLOCK RENDER\n this.$BS = true; // BLOCK STATE\n this.$PS = null; // PENDING STATE (PARTIAL or FULL)\n this.$LI = null; // LAST INPUT\n this.$UN = false; // UNMOUNTED\n this.$CX = null; // CHILDCONTEXT\n this.$QU = null; // QUEUE\n this.$N = false; // Uses new lifecycle API Flag\n this.$L = null; // Current lifecycle of this component\n this.$SVG = false; // Flag to keep track if component is inside SVG tree\n this.$F = false; // Force update flag\n this.props = props || EMPTY_OBJ;\n this.context = context || EMPTY_OBJ; // context should not be mutable\n};\nComponent.prototype.forceUpdate = function forceUpdate (callback) {\n if (this.$UN) {\n return;\n }\n // Do not allow double render during force update\n queueStateChanges(this, {}, callback, true);\n};\nComponent.prototype.setState = function setState (newState, callback) {\n if (this.$UN) {\n return;\n }\n if (!this.$BS) {\n queueStateChanges(this, newState, callback, false);\n }\n};\nComponent.prototype.render = function render (_nextProps, _nextState, _nextContext) {\n return null;\n};\n\nvar version = \"7.4.11\";\n\nexport { Component, EMPTY_OBJ, Fragment, createClassComponentInstance as _CI, normalizeRoot as _HI, mount as _M, mountClassComponentCallbacks as _MCCC, mountElement as _ME, mountFunctionalComponentCallbacks as _MFCC, mountProps as _MP, mountRef as _MR, renderFunctionalComponent as _RFC, __render, createComponentVNode, createFragment, createPortal, createRef, createRenderer, createTextVNode, createVNode, directClone, findDOMfromVNode, forwardRef, getFlagsForElementVnode, linkEvent, normalizeProps, options, render, rerender, version };\n","export const InfernoEffectHost = {\n lockCount: 0,\n lock() {\n this.lockCount++;\n },\n callbacks: [],\n callEffects() {\n this.lockCount--;\n if (this.lockCount < 0) {\n throw new Error('Unexpected Effect Call');\n }\n if (this.lockCount === 0) {\n const effects = this.callbacks;\n this.callbacks = [];\n effects.forEach((callback) => callback());\n }\n },\n};\n","import { Component, findDOMfromVNode } from 'inferno';\nimport { InfernoEffectHost } from './effect_host';\nconst areObjectsEqual = (firstObject, secondObject) => {\n const bothAreObjects = firstObject instanceof Object && secondObject instanceof Object;\n if (!bothAreObjects) {\n return firstObject === secondObject;\n }\n const firstObjectKeys = Object.keys(firstObject);\n const secondObjectKeys = Object.keys(secondObject);\n if (firstObjectKeys.length !== secondObjectKeys.length) {\n return false;\n }\n const hasDifferentElement = firstObjectKeys.some((key) => firstObject[key] !== secondObject[key]);\n return !hasDifferentElement;\n};\nexport class BaseInfernoComponent extends Component {\n constructor() {\n super(...arguments);\n this._pendingContext = this.context;\n }\n componentWillReceiveProps(_, context) {\n this._pendingContext = context !== null && context !== void 0 ? context : {};\n }\n shouldComponentUpdate(nextProps, nextState) {\n return (!areObjectsEqual(this.props, nextProps)\n || !areObjectsEqual(this.state, nextState)\n || !areObjectsEqual(this.context, this._pendingContext));\n }\n}\nexport class InfernoComponent extends BaseInfernoComponent {\n constructor() {\n super(...arguments);\n this._effects = [];\n }\n createEffects() {\n return [];\n }\n updateEffects() { }\n componentWillMount() {\n InfernoEffectHost.lock();\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n componentWillUpdate(_nextProps, _nextState, _context) {\n InfernoEffectHost.lock();\n }\n componentDidMount() {\n InfernoEffectHost.callbacks.push(() => { this._effects = this.createEffects(); });\n InfernoEffectHost.callEffects();\n }\n componentDidUpdate() {\n InfernoEffectHost.callbacks.push(() => this.updateEffects());\n InfernoEffectHost.callEffects();\n }\n destroyEffects() {\n this._effects.forEach((e) => e.dispose());\n }\n componentWillUnmount() {\n this.destroyEffects();\n }\n}\nexport class InfernoWrapperComponent extends InfernoComponent {\n constructor() {\n super(...arguments);\n this.vDomElement = null;\n }\n vDomUpdateClasses() {\n const el = this.vDomElement;\n const currentClasses = el.className.length\n ? el.className.split(' ')\n : [];\n const addedClasses = currentClasses.filter((className) => el.dxClasses.previous.indexOf(className) < 0);\n const removedClasses = el.dxClasses.previous.filter((className) => currentClasses.indexOf(className) < 0);\n addedClasses.forEach((value) => {\n const indexInRemoved = el.dxClasses.removed.indexOf(value);\n if (indexInRemoved > -1) {\n el.dxClasses.removed.splice(indexInRemoved, 1);\n }\n else if (!el.dxClasses.added.includes(value)) {\n el.dxClasses.added.push(value);\n }\n });\n removedClasses.forEach((value) => {\n const indexInAdded = el.dxClasses.added.indexOf(value);\n if (indexInAdded > -1) {\n el.dxClasses.added.splice(indexInAdded, 1);\n }\n else if (!el.dxClasses.removed.includes(value)) {\n el.dxClasses.removed.push(value);\n }\n });\n }\n componentDidMount() {\n const el = findDOMfromVNode(this.$LI, true);\n this.vDomElement = el;\n super.componentDidMount();\n el.dxClasses = el.dxClasses || {\n removed: [], added: [], previous: [],\n };\n el.dxClasses.previous = (el === null || el === void 0 ? void 0 : el.className.length)\n ? el.className.split(' ')\n : [];\n }\n componentDidUpdate() {\n super.componentDidUpdate();\n const el = this.vDomElement;\n if (el !== null) {\n el.dxClasses.added.forEach((className) => el.classList.add(className));\n el.dxClasses.removed.forEach((className) => el.classList.remove(className));\n el.dxClasses.previous = el.className.length\n ? el.className.split(' ')\n : [];\n }\n }\n shouldComponentUpdate(nextProps, nextState) {\n const shouldUpdate = super.shouldComponentUpdate(nextProps, nextState);\n if (shouldUpdate) {\n this.vDomUpdateClasses();\n }\n return shouldUpdate;\n }\n}\n","import { Component } from 'inferno';\nlet contextId = 0;\nexport const createContext = function (defaultValue) {\n const id = contextId++;\n return {\n id,\n defaultValue,\n Provider: class extends Component {\n getChildContext() {\n return Object.assign(Object.assign({}, this.context), { [id]: this.props.value || defaultValue });\n }\n render() {\n return this.props.children;\n }\n },\n };\n};\n","export class InfernoEffect {\n constructor(effect, dependency) {\n this.dependency = dependency;\n this.effect = effect;\n this.destroy = effect();\n }\n update(dependency) {\n const currentDependency = this.dependency;\n if (dependency) {\n this.dependency = dependency;\n }\n if (!dependency || dependency.some((d, i) => currentDependency[i] !== d)) {\n this.dispose();\n this.destroy = this.effect();\n }\n }\n dispose() {\n if (this.destroy) {\n this.destroy();\n }\n }\n}\n","import { createPortal } from 'inferno';\nexport const Portal = ({ container, children }) => {\n if (container) {\n return createPortal(children, container);\n }\n return null;\n};\n","import { rerender as reRender } from 'inferno';\nimport { InfernoEffect } from './effect';\nexport const createReRenderEffect = () => new InfernoEffect(() => {\n reRender();\n}, []);\n","export const ERROR_MSG = 'a runtime error occured! Use Inferno in development environment to find the error.';\nexport function isNullOrUndef(o) {\n return o === void 0 || o === null;\n}\nexport function isInvalid(o) {\n return o === null || o === false || o === true || o === void 0;\n}\nexport function isFunction(o) {\n return typeof o === 'function';\n}\nexport function isNull(o) {\n return o === null;\n}\nexport function throwError(message) {\n if (!message) {\n message = ERROR_MSG;\n }\n throw new Error(`Inferno Error: ${message}`);\n}\n","import { _CI, _HI, _M, _MCCC, _ME, _MFCC, _MP, _MR, EMPTY_OBJ, render, _RFC as renderFunctionalComponent, } from 'inferno';\nimport { isFunction, isInvalid, isNull, isNullOrUndef, throwError, } from './shared';\nfunction isSameInnerHTML(dom, innerHTML) {\n const tempdom = document.createElement('i');\n tempdom.innerHTML = innerHTML;\n return tempdom.innerHTML === dom.innerHTML;\n}\nfunction findLastDOMFromVNode(vNode) {\n let flags;\n let children;\n while (vNode) {\n flags = vNode.flags;\n if (flags & 2033 /* DOMRef */) {\n return vNode.dom;\n }\n children = vNode.children;\n if (flags & 8192 /* Fragment */) {\n vNode = vNode.childFlags === 2 /* HasVNodeChildren */ ? children : children[children.length - 1];\n }\n else if (flags & 4 /* ComponentClass */) {\n vNode = children.$LI;\n }\n else {\n vNode = children;\n }\n }\n return null;\n}\nfunction isSamePropsInnerHTML(dom, props) {\n return Boolean(props && props.dangerouslySetInnerHTML && props.dangerouslySetInnerHTML.__html && isSameInnerHTML(dom, props.dangerouslySetInnerHTML.__html));\n}\nfunction hydrateComponent(vNode, parentDOM, dom, context, isSVG, isClass, lifecycle) {\n const type = vNode.type;\n const ref = vNode.ref;\n const props = vNode.props || EMPTY_OBJ;\n let currentNode;\n if (isClass) {\n const instance = _CI(vNode, type, props, context, isSVG, lifecycle);\n const input = instance.$LI;\n currentNode = hydrateVNode(input, parentDOM, dom, instance.$CX, isSVG, lifecycle);\n _MCCC(ref, instance, lifecycle);\n }\n else {\n const input = _HI(renderFunctionalComponent(vNode, context));\n currentNode = hydrateVNode(input, parentDOM, dom, context, isSVG, lifecycle);\n vNode.children = input;\n _MFCC(vNode, lifecycle);\n }\n return currentNode;\n}\nfunction hydrateChildren(parentVNode, parentNode, currentNode, context, isSVG, lifecycle) {\n const childFlags = parentVNode.childFlags;\n const children = parentVNode.children;\n const props = parentVNode.props;\n const flags = parentVNode.flags;\n if (childFlags !== 1 /* HasInvalidChildren */) {\n if (childFlags === 2 /* HasVNodeChildren */) {\n if (isNull(currentNode)) {\n _M(children, parentNode, context, isSVG, null, lifecycle);\n }\n else {\n currentNode = hydrateVNode(children, parentNode, currentNode, context, isSVG, lifecycle);\n currentNode = currentNode ? currentNode.nextSibling : null;\n }\n }\n else if (childFlags === 16 /* HasTextChildren */) {\n if (isNull(currentNode)) {\n parentNode.appendChild(document.createTextNode(children));\n }\n else if (parentNode.childNodes.length !== 1 || currentNode.nodeType !== 3) {\n parentNode.textContent = children;\n }\n else if (currentNode.nodeValue !== children) {\n currentNode.nodeValue = children;\n }\n currentNode = null;\n }\n else if (childFlags & 12 /* MultipleChildren */) {\n let prevVNodeIsTextNode = false;\n for (let i = 0, len = children.length; i < len; ++i) {\n const child = children[i];\n if (isNull(currentNode) || (prevVNodeIsTextNode && (child.flags & 16 /* Text */) > 0)) {\n _M(child, parentNode, context, isSVG, currentNode, lifecycle);\n }\n else {\n currentNode = hydrateVNode(child, parentNode, currentNode, context, isSVG, lifecycle);\n currentNode = currentNode ? currentNode.nextSibling : null;\n }\n prevVNodeIsTextNode = (child.flags & 16 /* Text */) > 0;\n }\n }\n // clear any other DOM nodes, there should be only a single entry for the root\n if ((flags & 8192 /* Fragment */) === 0) {\n let nextSibling = null;\n while (currentNode) {\n nextSibling = currentNode.nextSibling;\n parentNode.removeChild(currentNode);\n currentNode = nextSibling;\n }\n }\n }\n else if (!isNull(parentNode.firstChild) && !isSamePropsInnerHTML(parentNode, props)) {\n parentNode.textContent = ''; // dom has content, but VNode has no children remove everything from DOM\n if (flags & 448 /* FormElement */) {\n // If element is form element, we need to clear defaultValue also\n parentNode.defaultValue = '';\n }\n }\n}\nfunction hydrateElement(vNode, parentDOM, dom, context, isSVG, lifecycle) {\n const props = vNode.props;\n const className = vNode.className;\n const flags = vNode.flags;\n const ref = vNode.ref;\n isSVG = isSVG || (flags & 32 /* SvgElement */) > 0;\n if (dom.nodeType !== 1) {\n _ME(vNode, null, context, isSVG, null, lifecycle);\n parentDOM.replaceChild(vNode.dom, dom);\n }\n else {\n vNode.dom = dom;\n hydrateChildren(vNode, dom, dom.firstChild, context, isSVG, lifecycle);\n if (!isNull(props)) {\n _MP(vNode, flags, props, dom, isSVG);\n }\n if (isNullOrUndef(className)) {\n if (dom.className !== '') {\n dom.removeAttribute('class');\n }\n }\n else if (isSVG) {\n dom.setAttribute('class', className);\n }\n else {\n dom.className = className;\n }\n _MR(ref, dom, lifecycle);\n }\n return vNode.dom;\n}\nfunction hydrateText(vNode, parentDOM, dom) {\n if (dom.nodeType !== 3) {\n parentDOM.replaceChild((vNode.dom = document.createTextNode(vNode.children)), dom);\n }\n else {\n const text = vNode.children;\n if (dom.nodeValue !== text) {\n dom.nodeValue = text;\n }\n vNode.dom = dom;\n }\n return vNode.dom;\n}\nfunction hydrateFragment(vNode, parentDOM, dom, context, isSVG, lifecycle) {\n const children = vNode.children;\n if (vNode.childFlags === 2 /* HasVNodeChildren */) {\n hydrateText(children, parentDOM, dom);\n return children.dom;\n }\n hydrateChildren(vNode, parentDOM, dom, context, isSVG, lifecycle);\n return findLastDOMFromVNode(children[children.length - 1]);\n}\nfunction hydrateVNode(vNode, parentDOM, currentDom, context, isSVG, lifecycle) {\n const flags = (vNode.flags |= 16384 /* InUse */);\n if (flags & 14 /* Component */) {\n return hydrateComponent(vNode, parentDOM, currentDom, context, isSVG, (flags & 4 /* ComponentClass */) > 0, lifecycle);\n }\n if (flags & 481 /* Element */) {\n return hydrateElement(vNode, parentDOM, currentDom, context, isSVG, lifecycle);\n }\n if (flags & 16 /* Text */) {\n return hydrateText(vNode, parentDOM, currentDom);\n }\n if (flags & 512 /* Void */) {\n return (vNode.dom = currentDom);\n }\n if (flags & 8192 /* Fragment */) {\n return hydrateFragment(vNode, parentDOM, currentDom, context, isSVG, lifecycle);\n }\n throwError();\n return null;\n}\nexport function hydrate(input, parentDOM, callback) {\n let dom = parentDOM.firstChild;\n if (isNull(dom)) {\n render(input, parentDOM, callback);\n }\n else {\n const lifecycle = [];\n if (!isInvalid(input)) {\n dom = hydrateVNode(input, parentDOM, dom, {}, false, lifecycle);\n }\n // clear any other DOM nodes, there should be only a single entry for the root\n while (dom && (dom = dom.nextSibling)) {\n parentDOM.removeChild(dom);\n }\n if (lifecycle.length > 0) {\n let listener;\n while ((listener = lifecycle.shift()) !== undefined) {\n listener();\n }\n }\n }\n parentDOM.$V = input;\n if (isFunction(callback)) {\n callback();\n }\n}\n","import { getFlagsForElementVnode, createComponentVNode, createFragment, createVNode } from 'inferno';\n\nfunction isNullOrUndef(o) {\n return o === void 0 || o === null;\n}\nfunction isString(o) {\n return typeof o === 'string';\n}\nfunction isUndefined(o) {\n return o === void 0;\n}\n\nvar componentHooks = {\n onComponentDidMount: 1,\n onComponentDidUpdate: 1,\n onComponentShouldUpdate: 1,\n onComponentWillMount: 1,\n onComponentWillUnmount: 1,\n onComponentWillUpdate: 1\n};\nfunction createElement(type, props, _children) {\n var arguments$1 = arguments;\n var children;\n var ref = null;\n var key = null;\n var className = null;\n var flags = 0;\n var newProps;\n var childLen = arguments.length - 2;\n if (childLen === 1) {\n children = _children;\n }\n else if (childLen > 1) {\n children = [];\n while (childLen-- > 0) {\n children[childLen] = arguments$1[childLen + 2];\n }\n }\n if (isString(type)) {\n flags = getFlagsForElementVnode(type);\n if (!isNullOrUndef(props)) {\n newProps = {};\n for (var prop in props) {\n if (prop === 'className' || prop === 'class') {\n className = props[prop];\n }\n else if (prop === 'key') {\n key = props.key;\n }\n else if (prop === 'children' && isUndefined(children)) {\n children = props.children; // always favour children args over props\n }\n else if (prop === 'ref') {\n ref = props.ref;\n }\n else {\n if (prop === 'contenteditable') {\n flags |= 4096 /* ContentEditable */;\n }\n newProps[prop] = props[prop];\n }\n }\n }\n }\n else {\n flags = 2 /* ComponentUnknown */;\n if (!isUndefined(children)) {\n if (!props) {\n props = {};\n }\n props.children = children;\n }\n if (!isNullOrUndef(props)) {\n newProps = {};\n for (var prop$1 in props) {\n if (prop$1 === 'key') {\n key = props.key;\n }\n else if (prop$1 === 'ref') {\n ref = props.ref;\n }\n else if (componentHooks[prop$1] === 1) {\n if (!ref) {\n ref = {};\n }\n ref[prop$1] = props[prop$1];\n }\n else {\n newProps[prop$1] = props[prop$1];\n }\n }\n }\n return createComponentVNode(flags, type, newProps, key, ref);\n }\n if (flags & 8192 /* Fragment */) {\n return createFragment(childLen === 1 ? [children] : children, 0 /* UnknownChildren */, key);\n }\n return createVNode(flags, type, className, children, 0 /* UnknownChildren */, newProps, key, ref);\n}\n\nexport { createElement };\n","import { render } from 'inferno';\nimport { createElement } from 'inferno-create-element';\nconst getContainer = (props) => { var _a, _b; return ((_a = props.container) === null || _a === void 0 ? void 0 : _a.get(0)) || ((_b = props.item) === null || _b === void 0 ? void 0 : _b.get(0)); };\nexport function renderTemplate(template, props, _component) {\n setTimeout(() => {\n render(createElement(template, props), getContainer(props));\n }, 0);\n}\nexport const hasTemplate = (name, properties, _component) => {\n const value = properties[name];\n return !!value && typeof value !== 'string';\n};\n","const NUMBER_STYLES = new Set([\n 'animationIterationCount',\n 'borderImageOutset',\n 'borderImageSlice',\n 'border-imageWidth',\n 'boxFlex',\n 'boxFlexGroup',\n 'boxOrdinalGroup',\n 'columnCount',\n 'fillOpacity',\n 'flex',\n 'flexGrow',\n 'flexNegative',\n 'flexOrder',\n 'flexPositive',\n 'flexShrink',\n 'floodOpacity',\n 'fontWeight',\n 'gridColumn',\n 'gridRow',\n 'lineClamp',\n 'lineHeight',\n 'opacity',\n 'order',\n 'orphans',\n 'stopOpacity',\n 'strokeDasharray',\n 'strokeDashoffset',\n 'strokeMiterlimit',\n 'strokeOpacity',\n 'strokeWidth',\n 'tabSize',\n 'widows',\n 'zIndex',\n 'zoom',\n]);\nconst isNumeric = (value) => {\n if (typeof value === 'number')\n return true;\n return !Number.isNaN(Number(value));\n};\nconst getNumberStyleValue = (style, value) => (NUMBER_STYLES.has(style) ? value : `${value}px`);\nconst uppercasePattern = /[A-Z]/g;\nconst kebabCase = (str) => str.replace(uppercasePattern, '-$&').toLowerCase();\nexport function normalizeStyles(styles) {\n if (!(styles instanceof Object)) {\n return undefined;\n }\n return Object\n .entries(styles)\n .reduce((acc, [key, value]) => {\n acc[kebabCase(key)] = isNumeric(value)\n ? getNumberStyleValue(key, value)\n : value;\n return acc;\n }, {});\n}\n","/**\r\n * DevExtreme (esm/core/inferno_renderer.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n render as _render\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffectHost,\r\n hydrate\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n createElement as _createElement\r\n} from \"inferno-create-element\";\r\nimport domAdapter from \"./dom_adapter\";\r\nimport {\r\n cleanDataRecursive\r\n} from \"./element_data\";\r\nimport injector from \"./utils/dependency_injector\";\r\nvar remove = element => {\r\n var {\r\n parentNode: parentNode\r\n } = element;\r\n if (parentNode) {\r\n var nextSibling = element.nextSibling;\r\n cleanDataRecursive(element);\r\n parentNode.$V = element.$V;\r\n _render(null, parentNode);\r\n parentNode.insertBefore(element, nextSibling);\r\n element.innerHTML = \"\";\r\n delete parentNode.$V\r\n }\r\n delete element.$V\r\n};\r\nexport default injector({\r\n createElement: (component, props) => _createElement(component, props),\r\n remove: remove,\r\n onAfterRender: () => {\r\n InfernoEffectHost.callEffects()\r\n },\r\n onPreRender: () => {\r\n InfernoEffectHost.lock()\r\n },\r\n render: (component, props, container, replace) => {\r\n if (!replace) {\r\n var {\r\n parentNode: parentNode\r\n } = container;\r\n var nextNode = null === container || void 0 === container ? void 0 : container.nextSibling;\r\n var rootNode = domAdapter.createElement(\"div\");\r\n rootNode.appendChild(container);\r\n var mountNode = domAdapter.createDocumentFragment().appendChild(rootNode);\r\n var vNodeAlreadyExists = !!container.$V;\r\n vNodeAlreadyExists && remove(container);\r\n hydrate(_createElement(component, props), mountNode);\r\n container.$V = mountNode.$V;\r\n if (parentNode) {\r\n parentNode.insertBefore(container, nextNode)\r\n }\r\n } else {\r\n _render(_createElement(component, props), container)\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/renovation/utils/shallow_equals.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var shallowEquals = (firstObject, secondObject) => {\r\n if (Object.keys(firstObject).length !== Object.keys(secondObject).length) {\r\n return false\r\n }\r\n return Object.keys(firstObject).every(key => firstObject[key] === secondObject[key])\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/common/template_wrapper.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"isEqual\"];\r\nimport {\r\n InfernoComponent,\r\n InfernoEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n findDOMfromVNode\r\n} from \"inferno\";\r\nimport {\r\n replaceWith\r\n} from \"../../../core/utils/dom\";\r\nimport {\r\n shallowEquals\r\n} from \"../../utils/shallow_equals\";\r\nimport $ from \"../../../core/renderer\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\n\r\nfunction isDxElementWrapper(element) {\r\n return !!element.toArray\r\n}\r\nexport function buildTemplateArgs(model, template) {\r\n var _model$data;\r\n var args = {\r\n template: template,\r\n model: _extends({}, model)\r\n };\r\n var _ref = null !== (_model$data = model.data) && void 0 !== _model$data ? _model$data : {},\r\n {\r\n isEqual: isEqual\r\n } = _ref,\r\n data = _objectWithoutPropertiesLoose(_ref, _excluded);\r\n if (isEqual) {\r\n args.model.data = data;\r\n args.isEqual = isEqual\r\n }\r\n return args\r\n}\r\n\r\nfunction renderTemplateContent(props, container) {\r\n var _props$model;\r\n var {\r\n data: data,\r\n index: index\r\n } = null !== (_props$model = props.model) && void 0 !== _props$model ? _props$model : {\r\n data: {}\r\n };\r\n if (data) {\r\n Object.keys(data).forEach(name => {\r\n if (data[name] && domAdapter.isNode(data[name])) {\r\n data[name] = getPublicElement($(data[name]))\r\n }\r\n })\r\n }\r\n var rendered = props.template.render(_extends({\r\n container: container,\r\n transclude: props.transclude\r\n }, {\r\n renovated: props.renovated\r\n }, !props.transclude ? {\r\n model: data\r\n } : {}, !props.transclude && Number.isFinite(index) ? {\r\n index: index\r\n } : {}));\r\n if (void 0 === rendered) {\r\n return []\r\n }\r\n return isDxElementWrapper(rendered) ? rendered.toArray() : [$(rendered).get(0)]\r\n}\r\n\r\nfunction removeDifferentElements(oldChildren, newChildren) {\r\n newChildren.forEach(newElement => {\r\n var hasOldChild = !!oldChildren.find(oldElement => newElement === oldElement);\r\n if (!hasOldChild && newElement.parentNode) {\r\n $(newElement).remove()\r\n }\r\n })\r\n}\r\nexport class TemplateWrapper extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.renderTemplate = this.renderTemplate.bind(this)\r\n }\r\n renderTemplate() {\r\n var node = findDOMfromVNode(this.$LI, true);\r\n if (!(null !== node && void 0 !== node && node.parentNode)) {\r\n return () => {}\r\n }\r\n var container = node.parentNode;\r\n var $container = $(container);\r\n var $oldContainerContent = $container.contents().toArray();\r\n var content = renderTemplateContent(this.props, getPublicElement($container));\r\n replaceWith($(node), $(content));\r\n return () => {\r\n var $actualContainerContent = $(container).contents().toArray();\r\n removeDifferentElements($oldContainerContent, $actualContainerContent);\r\n container.appendChild(node)\r\n }\r\n }\r\n shouldComponentUpdate(nextProps) {\r\n var {\r\n model: model,\r\n template: template\r\n } = this.props;\r\n var {\r\n isEqual: isEqual,\r\n model: nextModel,\r\n template: nextTemplate\r\n } = nextProps;\r\n var equalityComparer = null !== isEqual && void 0 !== isEqual ? isEqual : shallowEquals;\r\n if (template !== nextTemplate) {\r\n return true\r\n }\r\n if (!isDefined(model) || !isDefined(nextModel)) {\r\n return model !== nextModel\r\n }\r\n var {\r\n data: data,\r\n index: index\r\n } = model;\r\n var {\r\n data: nextData,\r\n index: nextIndex\r\n } = nextModel;\r\n if (index !== nextIndex) {\r\n return true\r\n }\r\n return !equalityComparer(data, nextData)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.renderTemplate, [this.props.template, this.props.model])]\r\n }\r\n updateEffects() {\r\n this._effects[0].update([this.props.template, this.props.model])\r\n }\r\n componentWillUnmount() {}\r\n render() {\r\n return null\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/utils/update_props_immutable.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n isPlainObject\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n getPathParts\r\n} from \"../../../core/utils/data\";\r\n\r\nfunction cloneObjectValue(value) {\r\n return Array.isArray(value) ? [...value] : _extends({}, value)\r\n}\r\n\r\nfunction cloneObjectProp(value, prevValue, fullNameParts) {\r\n var result = fullNameParts.length > 0 && prevValue && value !== prevValue ? cloneObjectValue(prevValue) : cloneObjectValue(value);\r\n var name = fullNameParts[0];\r\n if (fullNameParts.length > 1) {\r\n result[name] = cloneObjectProp(value[name], null === prevValue || void 0 === prevValue ? void 0 : prevValue[name], fullNameParts.slice(1))\r\n } else if (name) {\r\n if (isPlainObject(value[name])) {\r\n result[name] = cloneObjectValue(value[name])\r\n } else {\r\n result[name] = value[name]\r\n }\r\n }\r\n return result\r\n}\r\nexport function updatePropsImmutable(props, option, name, fullName) {\r\n var currentPropsValue = option[name];\r\n var prevPropsValue = props[name];\r\n var result = props;\r\n if (isPlainObject(currentPropsValue) || name !== fullName && Array.isArray(currentPropsValue)) {\r\n result[name] = cloneObjectProp(currentPropsValue, prevPropsValue, getPathParts(fullName).slice(1))\r\n } else {\r\n result[name] = currentPropsValue\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/common/component.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n createRef\r\n} from \"inferno\";\r\nimport KeyboardProcessor from \"../../../events/core/keyboard_processor\";\r\nimport renderer from \"../../../core/inferno_renderer\";\r\nimport $ from \"../../../core/renderer\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport DOMComponent from \"../../../core/dom_component\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport {\r\n isDefined,\r\n isRenderer,\r\n isString\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n TemplateWrapper,\r\n buildTemplateArgs\r\n} from \"./template_wrapper\";\r\nimport {\r\n updatePropsImmutable\r\n} from \"../utils/update_props_immutable\";\r\nimport \"../../../events/click\";\r\nimport \"../../../events/core/emitter.feedback\";\r\nimport \"../../../events/hover\";\r\nvar setDefaultOptionValue = (options, defaultValueGetter) => name => {\r\n if (Object.prototype.hasOwnProperty.call(options, name) && void 0 === options[name]) {\r\n options[name] = defaultValueGetter(name)\r\n }\r\n};\r\nexport default class ComponentWrapper extends DOMComponent {\r\n constructor(element, options) {\r\n super(element, options);\r\n this._shouldRaiseContentReady = false;\r\n this.validateKeyDownHandler()\r\n }\r\n get _propsInfo() {\r\n return {\r\n allowNull: [],\r\n twoWay: [],\r\n elements: [],\r\n templates: [],\r\n props: []\r\n }\r\n }\r\n validateKeyDownHandler() {\r\n var supportedKeyNames = this.getSupportedKeyNames();\r\n var hasComponentDefaultKeyHandlers = supportedKeyNames.length > 0;\r\n var hasComponentKeyDownMethod = \"function\" === typeof this._viewComponent.prototype.keyDown;\r\n if (hasComponentDefaultKeyHandlers && !hasComponentKeyDownMethod) {\r\n throw Error(\"Component's declaration must have 'keyDown' method.\")\r\n }\r\n }\r\n get viewRef() {\r\n var _this$_viewRef;\r\n return null === (_this$_viewRef = this._viewRef) || void 0 === _this$_viewRef ? void 0 : _this$_viewRef.current\r\n }\r\n _checkContentReadyOption(fullName) {\r\n var contentReadyOptions = this._getContentReadyOptions().reduce((options, name) => {\r\n options[name] = true;\r\n return options\r\n }, {});\r\n this._checkContentReadyOption = optionName => !!contentReadyOptions[optionName];\r\n return this._checkContentReadyOption(fullName)\r\n }\r\n _getContentReadyOptions() {\r\n return [\"rtlEnabled\"]\r\n }\r\n _fireContentReady() {\r\n this._actionsMap.onContentReady({})\r\n }\r\n _getDefaultOptions() {\r\n var viewDefaultProps = this._getViewComponentDefaultProps();\r\n return extend(true, super._getDefaultOptions(), viewDefaultProps, this._propsInfo.twoWay.reduce((options, _ref) => {\r\n var [name, defaultName, eventName] = _ref;\r\n return _extends({}, options, {\r\n [name]: viewDefaultProps[defaultName],\r\n [eventName]: value => this.option(name, value)\r\n })\r\n }, {}), this._propsInfo.templates.reduce((options, name) => _extends({}, options, {\r\n [name]: null\r\n }), {}))\r\n }\r\n _getUnwrappedOption() {\r\n var unwrappedProps = {};\r\n Object.keys(this.option()).forEach(key => {\r\n unwrappedProps[key] = this.option(key)\r\n });\r\n return unwrappedProps\r\n }\r\n _initializeComponent() {\r\n var _this$_templateManage;\r\n super._initializeComponent();\r\n null === (_this$_templateManage = this._templateManager) || void 0 === _this$_templateManage ? void 0 : _this$_templateManage.addDefaultTemplates(this.getDefaultTemplates());\r\n var optionProxy = this._getUnwrappedOption();\r\n this._props = this._optionsWithDefaultTemplates(optionProxy);\r\n this._propsInfo.templates.forEach(template => {\r\n this._componentTemplates[template] = this._createTemplateComponent(this._props[template])\r\n });\r\n Object.keys(this._getActionConfigsFull()).forEach(name => this._addAction(name));\r\n this._viewRef = createRef();\r\n this.defaultKeyHandlers = this._createDefaultKeyHandlers()\r\n }\r\n _initMarkup() {\r\n var props = this.getProps();\r\n this._renderWrapper(props)\r\n }\r\n _renderWrapper(props) {\r\n var containerNode = this.$element()[0];\r\n if (!this._isNodeReplaced) {\r\n renderer.onPreRender()\r\n }\r\n renderer.render(this._viewComponent, props, containerNode, this._isNodeReplaced);\r\n if (!this._isNodeReplaced) {\r\n this._isNodeReplaced = true;\r\n renderer.onAfterRender();\r\n this._shouldRaiseContentReady = true\r\n }\r\n if (this._shouldRaiseContentReady) {\r\n this._fireContentReady();\r\n this._shouldRaiseContentReady = false\r\n }\r\n }\r\n _silent(name, value) {\r\n this._options.silent(name, value)\r\n }\r\n _render() {}\r\n _removeWidget() {\r\n renderer.remove(this.$element()[0])\r\n }\r\n _dispose() {\r\n this._removeWidget();\r\n super._dispose()\r\n }\r\n get elementAttr() {\r\n var element = this.$element()[0];\r\n if (!this._elementAttr) {\r\n var {\r\n attributes: attributes\r\n } = element;\r\n var attrs = Array.from(attributes).filter(attr => {\r\n var _attributes$attr$name;\r\n return !this._propsInfo.templates.includes(attr.name) && (null === (_attributes$attr$name = attributes[attr.name]) || void 0 === _attributes$attr$name ? void 0 : _attributes$attr$name.specified)\r\n }).reduce((result, _ref2) => {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref2;\r\n var updatedAttributes = result;\r\n var isDomAttr = name in element;\r\n updatedAttributes[name] = \"\" === value && isDomAttr ? element[name] : value;\r\n return updatedAttributes\r\n }, {});\r\n this._elementAttr = attrs;\r\n this._storedClasses = element.getAttribute(\"class\") || \"\"\r\n }\r\n var elemStyle = element.style;\r\n var style = {};\r\n for (var i = 0; i < elemStyle.length; i += 1) {\r\n style[elemStyle[i]] = elemStyle.getPropertyValue(elemStyle[i])\r\n }\r\n this._elementAttr.style = style;\r\n this._elementAttr.class = this._storedClasses;\r\n return this._elementAttr\r\n }\r\n _getAdditionalActionConfigs() {\r\n return {\r\n onContentReady: {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n }\r\n }\r\n }\r\n _getAdditionalProps() {\r\n return []\r\n }\r\n _patchOptionValues(options) {\r\n var {\r\n allowNull: allowNull,\r\n elements: elements,\r\n props: props,\r\n twoWay: twoWay\r\n } = this._propsInfo;\r\n var viewDefaultProps = this._getViewComponentDefaultProps();\r\n var defaultWidgetPropsKeys = Object.keys(viewDefaultProps);\r\n var defaultOptions = this._getDefaultOptions();\r\n var {\r\n children: children,\r\n onKeyboardHandled: onKeyboardHandled,\r\n ref: ref\r\n } = options;\r\n var onKeyDown = onKeyboardHandled ? (_, event_options) => {\r\n onKeyboardHandled(event_options)\r\n } : void 0;\r\n var widgetProps = {\r\n ref: ref,\r\n children: children,\r\n onKeyDown: onKeyDown\r\n };\r\n [...props, ...this._getAdditionalProps()].forEach(propName => {\r\n if (Object.prototype.hasOwnProperty.call(options, propName)) {\r\n widgetProps[propName] = options[propName]\r\n }\r\n });\r\n allowNull.forEach(setDefaultOptionValue(widgetProps, () => null));\r\n defaultWidgetPropsKeys.forEach(setDefaultOptionValue(widgetProps, name => defaultOptions[name]));\r\n twoWay.forEach(_ref3 => {\r\n var [name, defaultName] = _ref3;\r\n setDefaultOptionValue(widgetProps, () => defaultOptions[defaultName])(name)\r\n });\r\n elements.forEach(name => {\r\n if (name in widgetProps) {\r\n var value = widgetProps[name];\r\n if (isRenderer(value)) {\r\n widgetProps[name] = this._patchElementParam(value)\r\n }\r\n }\r\n });\r\n return widgetProps\r\n }\r\n getSupportedKeyNames() {\r\n return []\r\n }\r\n prepareStyleProp(props) {\r\n if (\"string\" === typeof props.style) {\r\n return _extends({}, props, {\r\n style: {},\r\n cssText: props.style\r\n })\r\n }\r\n return props\r\n }\r\n getProps() {\r\n var _this$elementAttr$cla, _elementAttr$class;\r\n var {\r\n elementAttr: elementAttr\r\n } = this.option();\r\n var options = this._patchOptionValues(_extends({}, this._props, {\r\n ref: this._viewRef,\r\n children: this._extractDefaultSlot(),\r\n aria: this._aria\r\n }));\r\n this._propsInfo.templates.forEach(template => {\r\n options[template] = this._componentTemplates[template]\r\n });\r\n return this.prepareStyleProp(_extends({}, options, this.elementAttr, elementAttr, {\r\n className: [...(null !== (_this$elementAttr$cla = this.elementAttr.class) && void 0 !== _this$elementAttr$cla ? _this$elementAttr$cla : \"\").split(\" \"), ...(null !== (_elementAttr$class = null === elementAttr || void 0 === elementAttr ? void 0 : elementAttr.class) && void 0 !== _elementAttr$class ? _elementAttr$class : \"\").split(\" \")].filter((c, i, a) => c && a.indexOf(c) === i).join(\" \").trim(),\r\n class: \"\"\r\n }, this._actionsMap))\r\n }\r\n _getActionConfigs() {\r\n return {}\r\n }\r\n _getActionConfigsFull() {\r\n return _extends({}, this._getActionConfigs(), this._getAdditionalActionConfigs())\r\n }\r\n getDefaultTemplates() {\r\n var defaultTemplates = Object.values(this._templatesInfo);\r\n var result = {};\r\n defaultTemplates.forEach(template => {\r\n result[template] = \"dx-renovation-template-mock\"\r\n });\r\n return result\r\n }\r\n get _templatesInfo() {\r\n return {}\r\n }\r\n _optionsWithDefaultTemplates(options) {\r\n var templateOptions = Object.entries(this._templatesInfo).reduce((result, _ref4) => {\r\n var _options$templateName;\r\n var [templateName, templateValue] = _ref4;\r\n return _extends({}, result, {\r\n [templateName]: null !== (_options$templateName = options[templateName]) && void 0 !== _options$templateName ? _options$templateName : templateValue\r\n })\r\n }, {});\r\n return _extends({}, options, templateOptions)\r\n }\r\n _init() {\r\n super._init();\r\n this.customKeyHandlers = {};\r\n this._actionsMap = {};\r\n this._aria = {};\r\n this._componentTemplates = {}\r\n }\r\n _createDefaultKeyHandlers() {\r\n var result = {};\r\n var keys = this.getSupportedKeyNames();\r\n keys.forEach(key => {\r\n result[key] = e => this.viewRef.keyDown(KeyboardProcessor.createKeyDownOptions(e))\r\n });\r\n return result\r\n }\r\n _addAction(event, actionToAdd) {\r\n var action = actionToAdd;\r\n if (!action) {\r\n var actionByOption = this._createActionByOption(event, this._getActionConfigsFull()[event]);\r\n action = actArgs => {\r\n Object.keys(actArgs).forEach(name => {\r\n if (isDefined(actArgs[name]) && domAdapter.isNode(actArgs[name])) {\r\n actArgs[name] = getPublicElement($(actArgs[name]))\r\n }\r\n });\r\n return actionByOption(actArgs)\r\n }\r\n }\r\n this._actionsMap[event] = action\r\n }\r\n _optionChanged(option) {\r\n var {\r\n fullName: fullName,\r\n name: name,\r\n previousValue: previousValue,\r\n value: value\r\n } = option;\r\n updatePropsImmutable(this._props, this.option(), name, fullName);\r\n if (this._propsInfo.templates.includes(name) && value !== previousValue) {\r\n this._componentTemplates[name] = this._createTemplateComponent(value)\r\n }\r\n if (name && this._getActionConfigsFull()[name]) {\r\n this._addAction(name)\r\n }\r\n this._shouldRaiseContentReady = this._shouldRaiseContentReady || this._checkContentReadyOption(fullName);\r\n super._optionChanged(option);\r\n this._invalidate()\r\n }\r\n _extractDefaultSlot() {\r\n if (this.option(\"_hasAnonymousTemplateContent\")) {\r\n return renderer.createElement(TemplateWrapper, {\r\n template: this._getTemplate(this._templateManager.anonymousTemplateName),\r\n transclude: true,\r\n renovated: true\r\n })\r\n }\r\n return null\r\n }\r\n _createTemplateComponent(templateOption) {\r\n if (!templateOption) {\r\n return\r\n }\r\n var template = this._getTemplate(templateOption);\r\n if (isString(template) && \"dx-renovation-template-mock\" === template) {\r\n return\r\n }\r\n return model => renderer.createElement(TemplateWrapper, buildTemplateArgs(model, template))\r\n }\r\n _wrapKeyDownHandler(initialHandler) {\r\n return options => {\r\n var {\r\n keyName: keyName,\r\n originalEvent: originalEvent,\r\n which: which\r\n } = options;\r\n var keys = this.customKeyHandlers;\r\n var func = keys[keyName] || keys[which];\r\n if (void 0 !== func) {\r\n var handler = func.bind(this);\r\n var result = handler(originalEvent, options);\r\n if (!result) {\r\n originalEvent.cancel = true;\r\n return originalEvent\r\n }\r\n }\r\n return null === initialHandler || void 0 === initialHandler ? void 0 : initialHandler(originalEvent, options)\r\n }\r\n }\r\n _toPublicElement(element) {\r\n return getPublicElement($(element))\r\n }\r\n _patchElementParam(value) {\r\n try {\r\n var result = $(value);\r\n var element = null === result || void 0 === result ? void 0 : result.get(0);\r\n return null !== element && void 0 !== element && element.nodeType ? element : value\r\n } catch (error) {\r\n return value\r\n }\r\n }\r\n repaint() {\r\n this._isNodeReplaced = false;\r\n this._shouldRaiseContentReady = true;\r\n this._removeWidget();\r\n this._refresh()\r\n }\r\n _supportedKeys() {\r\n return _extends({}, this.defaultKeyHandlers, this.customKeyHandlers)\r\n }\r\n registerKeyHandler(key, handler) {\r\n this.customKeyHandlers[key] = handler\r\n }\r\n setAria(name, value) {\r\n this._aria[name] = value;\r\n this._initMarkup()\r\n }\r\n _getViewComponentDefaultProps() {\r\n return this._viewComponent.defaultProps || {}\r\n }\r\n}\r\nComponentWrapper.IS_RENOVATED_WIDGET = false;\r\nComponentWrapper.IS_RENOVATED_WIDGET = true;\r\n","/**\r\n * DevExtreme (esm/core/utils/icon.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nvar ICON_CLASS = \"dx-icon\";\r\nvar SVG_ICON_CLASS = \"dx-svg-icon\";\r\nexport var getImageSourceType = source => {\r\n if (!source || \"string\" !== typeof source) {\r\n return false\r\n }\r\n if (/^\\s*]*>(.|\\r?\\n)*?<\\/svg>\\s*$/i.test(source)) {\r\n return \"svg\"\r\n }\r\n if (/data:.*base64|\\.|[^<\\s]\\/{1,1}/.test(source)) {\r\n return \"image\"\r\n }\r\n if (/^[\\w-_]+$/.test(source)) {\r\n return \"dxIcon\"\r\n }\r\n if (/^\\s?([\\w-_:]\\s?)+$/.test(source)) {\r\n return \"fontIcon\"\r\n }\r\n return false\r\n};\r\nexport var getImageContainer = source => {\r\n switch (getImageSourceType(source)) {\r\n case \"image\":\r\n return $(\"\").attr(\"src\", source).addClass(ICON_CLASS);\r\n case \"fontIcon\":\r\n return $(\"\").addClass(\"\".concat(ICON_CLASS, \" \").concat(source));\r\n case \"dxIcon\":\r\n return $(\"\").addClass(\"\".concat(ICON_CLASS, \" \").concat(ICON_CLASS, \"-\").concat(source));\r\n case \"svg\":\r\n return $(\"\").addClass(\"\".concat(ICON_CLASS, \" \").concat(SVG_ICON_CLASS)).append(source);\r\n default:\r\n return null\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/button.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport ValidationEngine from \"../../ui/validation_engine\";\r\nimport Component from \"./common/component\";\r\nimport {\r\n getImageSourceType\r\n} from \"../../core/utils/icon\";\r\nexport default class ButtonWrapper extends Component {\r\n get _validationGroupConfig() {\r\n return ValidationEngine.getGroupConfig(this._findGroup())\r\n }\r\n getDefaultTemplateNames() {\r\n return [\"content\"]\r\n }\r\n getSupportedKeyNames() {\r\n return [\"space\", \"enter\"]\r\n }\r\n getProps() {\r\n var props = super.getProps();\r\n props.onClick = _ref => {\r\n var {\r\n event: event\r\n } = _ref;\r\n this._clickAction({\r\n event: event,\r\n validationGroup: this._validationGroupConfig\r\n })\r\n };\r\n var iconType = getImageSourceType(props.icon);\r\n if (\"svg\" === iconType) {\r\n props.iconTemplate = this._createTemplateComponent(() => props.icon)\r\n }\r\n return props\r\n }\r\n get _templatesInfo() {\r\n return {\r\n template: \"content\"\r\n }\r\n }\r\n _toggleActiveState(_, value) {\r\n var button = this.viewRef;\r\n value ? button.activate() : button.deactivate()\r\n }\r\n _getSubmitAction() {\r\n var needValidate = true;\r\n var validationStatus = \"valid\";\r\n return this._createAction(_ref2 => {\r\n var {\r\n event: event,\r\n submitInput: submitInput\r\n } = _ref2;\r\n if (needValidate) {\r\n var validationGroup = this._validationGroupConfig;\r\n if (void 0 !== validationGroup && \"\" !== validationGroup) {\r\n var validationResult = validationGroup.validate();\r\n validationStatus = validationResult.status;\r\n if (\"pending\" === validationResult.status) {\r\n needValidate = false;\r\n this.option(\"disabled\", true);\r\n validationResult.complete.then(_ref3 => {\r\n var {\r\n status: status\r\n } = _ref3;\r\n this.option(\"disabled\", false);\r\n validationStatus = status;\r\n \"valid\" === validationStatus && submitInput.click();\r\n needValidate = true\r\n })\r\n }\r\n }\r\n }\r\n \"valid\" !== validationStatus && event.preventDefault();\r\n event.stopPropagation()\r\n })\r\n }\r\n _initializeComponent() {\r\n super._initializeComponent();\r\n this._addAction(\"onSubmit\", this._getSubmitAction());\r\n this._clickAction = this._createClickAction()\r\n }\r\n _initMarkup() {\r\n super._initMarkup();\r\n var $content = this.$element().find(\".dx-button-content\").first();\r\n var $template = $content.children().filter(\".dx-template-wrapper\");\r\n var $input = $content.children().filter(\".dx-button-submit-input\");\r\n if ($template.length) {\r\n $template.addClass(\"dx-button-content\");\r\n $template.append($input);\r\n $content.replaceWith($template)\r\n }\r\n }\r\n _patchOptionValues(options) {\r\n return super._patchOptionValues(_extends({}, options, {\r\n templateData: options._templateData\r\n }))\r\n }\r\n _findGroup() {\r\n var $element = this.$element();\r\n var validationGroup = this.option(\"validationGroup\");\r\n return void 0 !== validationGroup && \"\" !== validationGroup ? validationGroup : ValidationEngine.findGroup($element, this._modelByElement($element))\r\n }\r\n _createClickAction() {\r\n return this._createActionByOption(\"onClick\", {\r\n excludeValidators: [\"readOnly\"]\r\n })\r\n }\r\n _optionChanged(option) {\r\n switch (option.name) {\r\n case \"onClick\":\r\n this._clickAction = this._createClickAction()\r\n }\r\n super._optionChanged(option)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/utils/combine_classes.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function combineClasses(classesMap) {\r\n return Object.keys(classesMap).filter(p => classesMap[p]).join(\" \")\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/icon.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"iconTemplate\", \"position\", \"source\"];\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 BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n getImageSourceType\r\n} from \"../../../core/utils/icon\";\r\nimport {\r\n combineClasses\r\n} from \"../../utils/combine_classes\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n iconClassName: iconClassName,\r\n props: {\r\n iconTemplate: IconTemplate,\r\n source: source\r\n },\r\n sourceType: sourceType\r\n } = _ref;\r\n return createFragment([\"dxIcon\" === sourceType && createVNode(1, \"i\", iconClassName), \"fontIcon\" === sourceType && createVNode(1, \"i\", iconClassName), \"image\" === sourceType && createVNode(1, \"img\", iconClassName, null, 1, {\r\n alt: \"\",\r\n src: source\r\n }), IconTemplate && createVNode(1, \"i\", iconClassName, IconTemplate({}), 0)], 0)\r\n};\r\nexport var IconProps = {\r\n position: \"left\",\r\n source: \"\"\r\n};\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class Icon extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get sourceType() {\r\n return getImageSourceType(this.props.source)\r\n }\r\n get cssClass() {\r\n return \"left\" !== this.props.position ? \"dx-icon-right\" : \"\"\r\n }\r\n get iconClassName() {\r\n var generalClasses = {\r\n \"dx-icon\": true,\r\n [this.cssClass]: !!this.cssClass\r\n };\r\n var {\r\n source: source\r\n } = this.props;\r\n if (\"dxIcon\" === this.sourceType) {\r\n return combineClasses(_extends({}, generalClasses, {\r\n [\"dx-icon-\".concat(source)]: true\r\n }))\r\n }\r\n if (\"fontIcon\" === this.sourceType) {\r\n return combineClasses(_extends({}, generalClasses, {\r\n [String(source)]: !!source\r\n }))\r\n }\r\n if (\"image\" === this.sourceType) {\r\n return combineClasses(generalClasses)\r\n }\r\n if (\"svg\" === this.sourceType) {\r\n return combineClasses(_extends({}, generalClasses, {\r\n \"dx-svg-icon\": true\r\n }))\r\n }\r\n return \"\"\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 iconTemplate: getTemplate(props.iconTemplate)\r\n }),\r\n sourceType: this.sourceType,\r\n cssClass: this.cssClass,\r\n iconClassName: this.iconClassName,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nIcon.defaultProps = IconProps;\r\n","/**\r\n * DevExtreme (esm/ui/widget/utils.ink_ripple.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nvar INKRIPPLE_CLASS = \"dx-inkripple\";\r\nvar INKRIPPLE_WAVE_CLASS = \"dx-inkripple-wave\";\r\nvar INKRIPPLE_SHOWING_CLASS = \"dx-inkripple-showing\";\r\nvar INKRIPPLE_HIDING_CLASS = \"dx-inkripple-hiding\";\r\nvar DEFAULT_WAVE_SIZE_COEFFICIENT = 2;\r\nvar MAX_WAVE_SIZE = 4e3;\r\nvar ANIMATION_DURATION = 300;\r\nvar HOLD_ANIMATION_DURATION = 1e3;\r\nvar DEFAULT_WAVE_INDEX = 0;\r\nexport var initConfig = function() {\r\n var config = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\r\n var {\r\n useHoldAnimation: useHoldAnimation,\r\n waveSizeCoefficient: waveSizeCoefficient,\r\n isCentered: isCentered,\r\n wavesNumber: wavesNumber\r\n } = config;\r\n return {\r\n waveSizeCoefficient: waveSizeCoefficient || DEFAULT_WAVE_SIZE_COEFFICIENT,\r\n isCentered: isCentered || false,\r\n wavesNumber: wavesNumber || 1,\r\n durations: getDurations(null !== useHoldAnimation && void 0 !== useHoldAnimation ? useHoldAnimation : true)\r\n }\r\n};\r\nexport var render = function(args) {\r\n var config = initConfig(args);\r\n return {\r\n showWave: showWave.bind(this, config),\r\n hideWave: hideWave.bind(this, config)\r\n }\r\n};\r\nvar getInkRipple = function(element) {\r\n var result = element.children(\".\" + INKRIPPLE_CLASS);\r\n if (0 === result.length) {\r\n result = $(\"
\").addClass(INKRIPPLE_CLASS).appendTo(element)\r\n }\r\n return result\r\n};\r\nvar getWaves = function(element, wavesNumber) {\r\n var inkRipple = getInkRipple($(element));\r\n var result = inkRipple.children(\".\" + INKRIPPLE_WAVE_CLASS).toArray();\r\n for (var i = result.length; i < wavesNumber; i++) {\r\n var $currentWave = $(\"
\").appendTo(inkRipple).addClass(INKRIPPLE_WAVE_CLASS);\r\n result.push($currentWave[0])\r\n }\r\n return $(result)\r\n};\r\nvar getWaveStyleConfig = function(args, config) {\r\n var element = $(config.element);\r\n var elementWidth = getOuterWidth(element);\r\n var elementHeight = getOuterHeight(element);\r\n var elementDiagonal = parseInt(Math.sqrt(elementWidth * elementWidth + elementHeight * elementHeight));\r\n var waveSize = Math.min(MAX_WAVE_SIZE, parseInt(elementDiagonal * args.waveSizeCoefficient));\r\n var left;\r\n var top;\r\n if (args.isCentered) {\r\n left = (elementWidth - waveSize) / 2;\r\n top = (elementHeight - waveSize) / 2\r\n } else {\r\n var event = config.event;\r\n var position = element.offset();\r\n var x = event.pageX - position.left;\r\n var y = event.pageY - position.top;\r\n left = x - waveSize / 2;\r\n top = y - waveSize / 2\r\n }\r\n return {\r\n left: left,\r\n top: top,\r\n height: waveSize,\r\n width: waveSize\r\n }\r\n};\r\nexport function showWave(args, config) {\r\n var $wave = getWaves(config.element, args.wavesNumber).eq(config.wave || DEFAULT_WAVE_INDEX);\r\n args.hidingTimeout && clearTimeout(args.hidingTimeout);\r\n hideSelectedWave($wave);\r\n $wave.css(getWaveStyleConfig(args, config));\r\n args.showingTimeout = setTimeout(showingWaveHandler.bind(this, args, $wave), 0)\r\n}\r\n\r\nfunction showingWaveHandler(args, $wave) {\r\n var durationCss = args.durations.showingScale + \"ms\";\r\n $wave.addClass(INKRIPPLE_SHOWING_CLASS).css(\"transitionDuration\", durationCss)\r\n}\r\n\r\nfunction getDurations(useHoldAnimation) {\r\n return {\r\n showingScale: useHoldAnimation ? HOLD_ANIMATION_DURATION : ANIMATION_DURATION,\r\n hidingScale: ANIMATION_DURATION,\r\n hidingOpacity: ANIMATION_DURATION\r\n }\r\n}\r\n\r\nfunction hideSelectedWave($wave) {\r\n $wave.removeClass(INKRIPPLE_HIDING_CLASS).css(\"transitionDuration\", \"\")\r\n}\r\nexport function hideWave(args, config) {\r\n args.showingTimeout && clearTimeout(args.showingTimeout);\r\n var $wave = getWaves(config.element, config.wavesNumber).eq(config.wave || DEFAULT_WAVE_INDEX);\r\n var durations = args.durations;\r\n var durationCss = durations.hidingScale + \"ms, \" + durations.hidingOpacity + \"ms\";\r\n $wave.addClass(INKRIPPLE_HIDING_CLASS).removeClass(INKRIPPLE_SHOWING_CLASS).css(\"transitionDuration\", durationCss);\r\n var animationDuration = Math.max(durations.hidingScale, durations.hidingOpacity);\r\n args.hidingTimeout = setTimeout(hideSelectedWave.bind(this, $wave), animationDuration)\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/ink_ripple.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"config\"];\r\nimport {\r\n createVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n initConfig,\r\n showWave,\r\n hideWave\r\n} from \"../../../ui/widget/utils.ink_ripple\";\r\nexport var viewFunction = model => normalizeProps(createVNode(1, \"div\", \"dx-inkripple\", null, 1, _extends({}, model.restAttributes)));\r\nexport var InkRippleProps = {\r\n config: Object.freeze({})\r\n};\r\nexport class InkRipple extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.__getterCache = {};\r\n this.hideWave = this.hideWave.bind(this);\r\n this.showWave = this.showWave.bind(this)\r\n }\r\n get getConfig() {\r\n if (void 0 !== this.__getterCache.getConfig) {\r\n return this.__getterCache.getConfig\r\n }\r\n return this.__getterCache.getConfig = (() => {\r\n var {\r\n config: config\r\n } = this.props;\r\n return initConfig(config)\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 hideWave(opts) {\r\n hideWave(this.getConfig, opts)\r\n }\r\n showWave(opts) {\r\n showWave(this.getConfig, opts)\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n if (this.props.config !== nextProps.config) {\r\n this.__getterCache.getConfig = 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 getConfig: this.getConfig,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nInkRipple.defaultProps = InkRippleProps;\r\n","/**\r\n * DevExtreme (esm/events/gesture/emitter.gesture.scroll.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Class from \"../../core/class\";\r\nvar abstract = Class.abstract;\r\nimport {\r\n addNamespace,\r\n isDxMouseWheelEvent,\r\n isMouseEvent,\r\n eventData,\r\n eventDelta\r\n} from \"../../events/utils/index\";\r\nimport GestureEmitter from \"../../events/gesture/emitter.gesture\";\r\nimport registerEmitter from \"../../events/core/emitter_registrator\";\r\nimport {\r\n requestAnimationFrame,\r\n cancelAnimationFrame\r\n} from \"../../animation/frame\";\r\nimport devices from \"../../core/devices\";\r\nvar realDevice = devices.real();\r\nvar SCROLL_EVENT = \"scroll\";\r\nvar SCROLL_INIT_EVENT = \"dxscrollinit\";\r\nvar SCROLL_START_EVENT = \"dxscrollstart\";\r\nvar SCROLL_MOVE_EVENT = \"dxscroll\";\r\nvar SCROLL_END_EVENT = \"dxscrollend\";\r\nvar SCROLL_STOP_EVENT = \"dxscrollstop\";\r\nvar SCROLL_CANCEL_EVENT = \"dxscrollcancel\";\r\nvar Locker = Class.inherit(function() {\r\n var NAMESPACED_SCROLL_EVENT = addNamespace(SCROLL_EVENT, \"dxScrollEmitter\");\r\n return {\r\n ctor: function(element) {\r\n this._element = element;\r\n this._locked = false;\r\n this._proxiedScroll = e => {\r\n if (!this._disposed) {\r\n this._scroll(e)\r\n }\r\n };\r\n eventsEngine.on(this._element, NAMESPACED_SCROLL_EVENT, this._proxiedScroll)\r\n },\r\n _scroll: abstract,\r\n check: function(e, callback) {\r\n if (this._locked) {\r\n callback()\r\n }\r\n },\r\n dispose: function() {\r\n this._disposed = true;\r\n eventsEngine.off(this._element, NAMESPACED_SCROLL_EVENT, this._proxiedScroll)\r\n }\r\n }\r\n}());\r\nvar TimeoutLocker = Locker.inherit({\r\n ctor: function(element, timeout) {\r\n this.callBase(element);\r\n this._timeout = timeout\r\n },\r\n _scroll: function() {\r\n this._prepare();\r\n this._forget()\r\n },\r\n _prepare: function() {\r\n if (this._timer) {\r\n this._clearTimer()\r\n }\r\n this._locked = true\r\n },\r\n _clearTimer: function() {\r\n clearTimeout(this._timer);\r\n this._locked = false;\r\n this._timer = null\r\n },\r\n _forget: function() {\r\n var that = this;\r\n this._timer = setTimeout((function() {\r\n that._clearTimer()\r\n }), this._timeout)\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n this._clearTimer()\r\n }\r\n});\r\nvar WheelLocker = TimeoutLocker.inherit({\r\n ctor: function(element) {\r\n this.callBase(element, 400);\r\n this._lastWheelDirection = null\r\n },\r\n check: function(e, callback) {\r\n this._checkDirectionChanged(e);\r\n this.callBase(e, callback)\r\n },\r\n _checkDirectionChanged: function(e) {\r\n if (!isDxMouseWheelEvent(e)) {\r\n this._lastWheelDirection = null;\r\n return\r\n }\r\n var direction = e.shiftKey || false;\r\n var directionChange = null !== this._lastWheelDirection && direction !== this._lastWheelDirection;\r\n this._lastWheelDirection = direction;\r\n this._locked = this._locked && !directionChange\r\n }\r\n});\r\nvar PointerLocker = TimeoutLocker.inherit({\r\n ctor: function(element) {\r\n this.callBase(element, 400)\r\n }\r\n});\r\n! function() {\r\n var {\r\n ios: isIos,\r\n android: isAndroid\r\n } = realDevice;\r\n if (!(isIos || isAndroid)) {\r\n return\r\n }\r\n PointerLocker = Locker.inherit({\r\n _scroll: function() {\r\n this._locked = true;\r\n var that = this;\r\n cancelAnimationFrame(this._scrollFrame);\r\n this._scrollFrame = requestAnimationFrame((function() {\r\n that._locked = false\r\n }))\r\n },\r\n check: function(e, callback) {\r\n cancelAnimationFrame(this._scrollFrame);\r\n cancelAnimationFrame(this._checkFrame);\r\n var that = this;\r\n var callBase = this.callBase;\r\n this._checkFrame = requestAnimationFrame((function() {\r\n callBase.call(that, e, callback);\r\n that._locked = false\r\n }))\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n cancelAnimationFrame(this._scrollFrame);\r\n cancelAnimationFrame(this._checkFrame)\r\n }\r\n })\r\n}();\r\nvar ScrollEmitter = GestureEmitter.inherit(function() {\r\n var FRAME_DURATION = Math.round(1e3 / 60);\r\n return {\r\n ctor: function(element) {\r\n this.callBase.apply(this, arguments);\r\n this.direction = \"both\";\r\n this._pointerLocker = new PointerLocker(element);\r\n this._wheelLocker = new WheelLocker(element)\r\n },\r\n validate: function() {\r\n return true\r\n },\r\n configure: function(data) {\r\n if (data.scrollTarget) {\r\n this._pointerLocker.dispose();\r\n this._wheelLocker.dispose();\r\n this._pointerLocker = new PointerLocker(data.scrollTarget);\r\n this._wheelLocker = new WheelLocker(data.scrollTarget)\r\n }\r\n this.callBase(data)\r\n },\r\n _init: function(e) {\r\n this._wheelLocker.check(e, function() {\r\n if (isDxMouseWheelEvent(e)) {\r\n this._accept(e)\r\n }\r\n }.bind(this));\r\n this._pointerLocker.check(e, function() {\r\n var skipCheck = this.isNative && isMouseEvent(e);\r\n if (!isDxMouseWheelEvent(e) && !skipCheck) {\r\n this._accept(e)\r\n }\r\n }.bind(this));\r\n this._fireEvent(SCROLL_INIT_EVENT, e);\r\n this._prevEventData = eventData(e)\r\n },\r\n move: function(e) {\r\n this.callBase.apply(this, arguments);\r\n e.isScrollingEvent = this.isNative || e.isScrollingEvent\r\n },\r\n _start: function(e) {\r\n this._savedEventData = eventData(e);\r\n this._fireEvent(SCROLL_START_EVENT, e);\r\n this._prevEventData = eventData(e)\r\n },\r\n _move: function(e) {\r\n var currentEventData = eventData(e);\r\n this._fireEvent(SCROLL_MOVE_EVENT, e, {\r\n delta: eventDelta(this._prevEventData, currentEventData)\r\n });\r\n var delta = eventDelta(this._savedEventData, currentEventData);\r\n if (delta.time > 200) {\r\n this._savedEventData = this._prevEventData\r\n }\r\n this._prevEventData = eventData(e)\r\n },\r\n _end: function(e) {\r\n var endEventDelta = eventDelta(this._prevEventData, eventData(e));\r\n var velocity = {\r\n x: 0,\r\n y: 0\r\n };\r\n if (!isDxMouseWheelEvent(e) && endEventDelta.time < 100) {\r\n var delta = eventDelta(this._savedEventData, this._prevEventData);\r\n var velocityMultiplier = FRAME_DURATION / delta.time;\r\n velocity = {\r\n x: delta.x * velocityMultiplier,\r\n y: delta.y * velocityMultiplier\r\n }\r\n }\r\n this._fireEvent(SCROLL_END_EVENT, e, {\r\n velocity: velocity\r\n })\r\n },\r\n _stop: function(e) {\r\n this._fireEvent(SCROLL_STOP_EVENT, e)\r\n },\r\n cancel: function(e) {\r\n this.callBase.apply(this, arguments);\r\n this._fireEvent(SCROLL_CANCEL_EVENT, e)\r\n },\r\n dispose: function() {\r\n this.callBase.apply(this, arguments);\r\n this._pointerLocker.dispose();\r\n this._wheelLocker.dispose()\r\n },\r\n _clearSelection: function() {\r\n if (this.isNative) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _toggleGestureCover: function() {\r\n if (this.isNative) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n}());\r\nregisterEmitter({\r\n emitter: ScrollEmitter,\r\n events: [SCROLL_INIT_EVENT, SCROLL_START_EVENT, SCROLL_MOVE_EVENT, SCROLL_END_EVENT, SCROLL_STOP_EVENT, SCROLL_CANCEL_EVENT]\r\n});\r\nexport default {\r\n init: SCROLL_INIT_EVENT,\r\n start: SCROLL_START_EVENT,\r\n move: SCROLL_MOVE_EVENT,\r\n end: SCROLL_END_EVENT,\r\n stop: SCROLL_STOP_EVENT,\r\n cancel: SCROLL_CANCEL_EVENT,\r\n scroll: SCROLL_EVENT\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/utils/subscribe_to_event.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport * as clickEvent from \"../../events/click\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport scrollEvents from \"../../events/gesture/emitter.gesture.scroll\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nexport function subscribeToEvent(eventName) {\r\n return (element, handler, eventData, namespace) => {\r\n var event = namespace ? addNamespace(eventName, namespace) : eventName;\r\n if (handler) {\r\n eventsEngine.on(element, event, eventData, handler);\r\n return () => {\r\n eventsEngine.off(element, event, handler)\r\n }\r\n }\r\n return\r\n }\r\n}\r\nexport var subscribeToClickEvent = subscribeToEvent(clickEvent.name);\r\nexport var subscribeToScrollEvent = subscribeToEvent(scrollEvents.scroll);\r\nexport var subscribeToScrollInitEvent = subscribeToEvent(scrollEvents.init);\r\nexport var subscribeToDXScrollStartEvent = subscribeToEvent(scrollEvents.start);\r\nexport var subscribeToDXScrollMoveEvent = subscribeToEvent(scrollEvents.move);\r\nexport var subscribeToDXScrollEndEvent = subscribeToEvent(scrollEvents.end);\r\nexport var subscribeToDXScrollStopEvent = subscribeToEvent(scrollEvents.stop);\r\nexport var subscribeToDXScrollCancelEvent = subscribeToEvent(scrollEvents.cancel);\r\nexport var subscribeToDXPointerDownEvent = subscribeToEvent(pointerEvents.down);\r\nexport var subscribeToDXPointerUpEvent = subscribeToEvent(pointerEvents.up);\r\nexport var subscribeToDXPointerMoveEvent = subscribeToEvent(pointerEvents.move);\r\nexport var subscribeToMouseEnterEvent = subscribeToEvent(\"mouseenter\");\r\nexport var subscribeToMouseLeaveEvent = subscribeToEvent(\"mouseleave\");\r\nexport var subscribeToKeyDownEvent = subscribeToEvent(\"keydown\");\r\nexport var subscribeToDxActiveEvent = subscribeToEvent(\"dxactive\");\r\nexport var subscribeToDxInactiveEvent = subscribeToEvent(\"dxinactive\");\r\nexport var subscribeToDxHoverStartEvent = subscribeToEvent(\"dxhoverstart\");\r\nexport var subscribeToDxHoverEndEvent = subscribeToEvent(\"dxhoverend\");\r\nexport var subscribeToDxFocusInEvent = subscribeToEvent(\"focusin\");\r\nexport var subscribeToDxFocusOutEvent = subscribeToEvent(\"focusout\");\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/base_props.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var BaseWidgetProps = {\r\n className: \"\",\r\n activeStateEnabled: false,\r\n disabled: false,\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false,\r\n tabIndex: 0,\r\n visible: true\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/common/config_context.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n createContext\r\n} from \"@devextreme/runtime/inferno\";\r\nexport var ConfigContext = createContext(void 0);\r\n","/**\r\n * DevExtreme (esm/renovation/common/config_provider.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"children\", \"rtlEnabled\"];\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n ConfigContext\r\n} from \"./config_context\";\r\nexport var viewFunction = viewModel => viewModel.props.children;\r\nexport var ConfigProviderProps = {};\r\nexport class ConfigProvider extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.__getterCache = {}\r\n }\r\n getChildContext() {\r\n return _extends({}, this.context, {\r\n [ConfigContext.id]: this.config || ConfigContext.defaultValue\r\n })\r\n }\r\n get config() {\r\n if (void 0 !== this.__getterCache.config) {\r\n return this.__getterCache.config\r\n }\r\n return this.__getterCache.config = (() => ({\r\n rtlEnabled: this.props.rtlEnabled\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 if (this.props.rtlEnabled !== nextProps.rtlEnabled) {\r\n this.__getterCache.config = 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 config: this.config,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nConfigProvider.defaultProps = ConfigProviderProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/widget.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"_feedbackHideTimeout\", \"_feedbackShowTimeout\", \"accessKey\", \"activeStateEnabled\", \"activeStateUnit\", \"addWidgetClass\", \"aria\", \"children\", \"className\", \"classes\", \"cssText\", \"disabled\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"name\", \"onActive\", \"onClick\", \"onDimensionChanged\", \"onFocusIn\", \"onFocusOut\", \"onHoverEnd\", \"onHoverStart\", \"onInactive\", \"onKeyDown\", \"onRootElementRendered\", \"onVisibilityChange\", \"rootElementRef\", \"rtlEnabled\", \"tabIndex\", \"visible\", \"width\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n normalizeStyles\r\n} from \"@devextreme/runtime/inferno\";\r\nimport \"../../../events/click\";\r\nimport \"../../../events/hover\";\r\nimport {\r\n isFunction\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n dxClick,\r\n focus,\r\n keyboard,\r\n resize,\r\n visibility\r\n} from \"../../../events/short\";\r\nimport {\r\n subscribeToDxActiveEvent,\r\n subscribeToDxInactiveEvent,\r\n subscribeToDxHoverStartEvent,\r\n subscribeToDxHoverEndEvent,\r\n subscribeToDxFocusInEvent,\r\n subscribeToDxFocusOutEvent\r\n} from \"../../utils/subscribe_to_event\";\r\nimport {\r\n combineClasses\r\n} from \"../../utils/combine_classes\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n normalizeStyleProp\r\n} from \"../../../core/utils/style\";\r\nimport {\r\n BaseWidgetProps\r\n} from \"./base_props\";\r\nimport {\r\n ConfigContext\r\n} from \"../../common/config_context\";\r\nimport {\r\n ConfigProvider\r\n} from \"../../common/config_provider\";\r\nimport {\r\n resolveRtlEnabled,\r\n resolveRtlEnabledDefinition\r\n} from \"../../utils/resolve_rtl\";\r\nimport resizeCallbacks from \"../../../core/utils/resize_callbacks\";\r\nimport errors from \"../../../core/errors\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nvar DEFAULT_FEEDBACK_HIDE_TIMEOUT = 400;\r\nvar DEFAULT_FEEDBACK_SHOW_TIMEOUT = 30;\r\nvar getAria = args => Object.keys(args).reduce((r, key) => {\r\n if (args[key]) {\r\n return _extends({}, r, {\r\n [\"role\" === key || \"id\" === key ? key : \"aria-\".concat(key)]: String(args[key])\r\n })\r\n }\r\n return r\r\n}, {});\r\nexport var viewFunction = viewModel => {\r\n var widget = normalizeProps(createVNode(1, \"div\", viewModel.cssClasses, viewModel.props.children, 0, _extends({}, viewModel.attributes, {\r\n tabIndex: viewModel.tabIndex,\r\n title: viewModel.props.hint,\r\n style: normalizeStyles(viewModel.styles)\r\n }), null, viewModel.widgetElementRef));\r\n return viewModel.shouldRenderConfigProvider ? createComponentVNode(2, ConfigProvider, {\r\n rtlEnabled: viewModel.rtlEnabled,\r\n children: widget\r\n }) : widget\r\n};\r\nexport var WidgetProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(BaseWidgetProps), Object.getOwnPropertyDescriptors({\r\n _feedbackHideTimeout: DEFAULT_FEEDBACK_HIDE_TIMEOUT,\r\n _feedbackShowTimeout: DEFAULT_FEEDBACK_SHOW_TIMEOUT,\r\n cssText: \"\",\r\n aria: Object.freeze({}),\r\n classes: \"\",\r\n name: \"\",\r\n addWidgetClass: true\r\n})));\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 Widget extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this.widgetElementRef = infernoCreateRef();\r\n this.state = {\r\n active: false,\r\n focused: false,\r\n hovered: false\r\n };\r\n this.setRootElementRef = this.setRootElementRef.bind(this);\r\n this.activeEffect = this.activeEffect.bind(this);\r\n this.inactiveEffect = this.inactiveEffect.bind(this);\r\n this.clickEffect = this.clickEffect.bind(this);\r\n this.focus = this.focus.bind(this);\r\n this.blur = this.blur.bind(this);\r\n this.activate = this.activate.bind(this);\r\n this.deactivate = this.deactivate.bind(this);\r\n this.focusInEffect = this.focusInEffect.bind(this);\r\n this.focusOutEffect = this.focusOutEffect.bind(this);\r\n this.hoverStartEffect = this.hoverStartEffect.bind(this);\r\n this.hoverEndEffect = this.hoverEndEffect.bind(this);\r\n this.keyboardEffect = this.keyboardEffect.bind(this);\r\n this.resizeEffect = this.resizeEffect.bind(this);\r\n this.windowResizeEffect = this.windowResizeEffect.bind(this);\r\n this.visibilityEffect = this.visibilityEffect.bind(this);\r\n this.checkDeprecation = this.checkDeprecation.bind(this);\r\n this.applyCssTextEffect = this.applyCssTextEffect.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.setRootElementRef, []), new InfernoEffect(this.activeEffect, [this.props._feedbackShowTimeout, this.props.activeStateEnabled, this.props.activeStateUnit, this.props.disabled, this.props.onActive]), new InfernoEffect(this.inactiveEffect, [this.props._feedbackHideTimeout, this.props.activeStateEnabled, this.props.activeStateUnit, this.props.onInactive, this.state.active]), new InfernoEffect(this.clickEffect, [this.props.disabled, this.props.name, this.props.onClick]), new InfernoEffect(this.focusInEffect, [this.props.disabled, this.props.focusStateEnabled, this.props.name, this.props.onFocusIn]), new InfernoEffect(this.focusOutEffect, [this.props.focusStateEnabled, this.props.name, this.props.onFocusOut, this.state.focused]), new InfernoEffect(this.hoverStartEffect, [this.props.activeStateUnit, this.props.disabled, this.props.hoverStateEnabled, this.props.onHoverStart, this.state.active]), new InfernoEffect(this.hoverEndEffect, [this.props.activeStateUnit, this.props.hoverStateEnabled, this.props.onHoverEnd, this.state.hovered]), new InfernoEffect(this.keyboardEffect, [this.props.focusStateEnabled, this.props.onKeyDown]), new InfernoEffect(this.resizeEffect, [this.props.name, this.props.onDimensionChanged]), new InfernoEffect(this.windowResizeEffect, [this.props.onDimensionChanged]), new InfernoEffect(this.visibilityEffect, [this.props.name, this.props.onVisibilityChange]), new InfernoEffect(this.checkDeprecation, [this.props.height, this.props.width]), new InfernoEffect(this.applyCssTextEffect, [this.props.cssText]), createReRenderEffect()]\r\n }\r\n updateEffects() {\r\n var _this$_effects$, _this$_effects$2, _this$_effects$3, _this$_effects$4, _this$_effects$5, _this$_effects$6, _this$_effects$7, _this$_effects$8, _this$_effects$9, _this$_effects$10, _this$_effects$11, _this$_effects$12, _this$_effects$13;\r\n null === (_this$_effects$ = this._effects[1]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.props._feedbackShowTimeout, this.props.activeStateEnabled, this.props.activeStateUnit, this.props.disabled, this.props.onActive]);\r\n null === (_this$_effects$2 = this._effects[2]) || void 0 === _this$_effects$2 ? void 0 : _this$_effects$2.update([this.props._feedbackHideTimeout, this.props.activeStateEnabled, this.props.activeStateUnit, this.props.onInactive, this.state.active]);\r\n null === (_this$_effects$3 = this._effects[3]) || void 0 === _this$_effects$3 ? void 0 : _this$_effects$3.update([this.props.disabled, this.props.name, this.props.onClick]);\r\n null === (_this$_effects$4 = this._effects[4]) || void 0 === _this$_effects$4 ? void 0 : _this$_effects$4.update([this.props.disabled, this.props.focusStateEnabled, this.props.name, this.props.onFocusIn]);\r\n null === (_this$_effects$5 = this._effects[5]) || void 0 === _this$_effects$5 ? void 0 : _this$_effects$5.update([this.props.focusStateEnabled, this.props.name, this.props.onFocusOut, this.state.focused]);\r\n null === (_this$_effects$6 = this._effects[6]) || void 0 === _this$_effects$6 ? void 0 : _this$_effects$6.update([this.props.activeStateUnit, this.props.disabled, this.props.hoverStateEnabled, this.props.onHoverStart, this.state.active]);\r\n null === (_this$_effects$7 = this._effects[7]) || void 0 === _this$_effects$7 ? void 0 : _this$_effects$7.update([this.props.activeStateUnit, this.props.hoverStateEnabled, this.props.onHoverEnd, this.state.hovered]);\r\n null === (_this$_effects$8 = this._effects[8]) || void 0 === _this$_effects$8 ? void 0 : _this$_effects$8.update([this.props.focusStateEnabled, this.props.onKeyDown]);\r\n null === (_this$_effects$9 = this._effects[9]) || void 0 === _this$_effects$9 ? void 0 : _this$_effects$9.update([this.props.name, this.props.onDimensionChanged]);\r\n null === (_this$_effects$10 = this._effects[10]) || void 0 === _this$_effects$10 ? void 0 : _this$_effects$10.update([this.props.onDimensionChanged]);\r\n null === (_this$_effects$11 = this._effects[11]) || void 0 === _this$_effects$11 ? void 0 : _this$_effects$11.update([this.props.name, this.props.onVisibilityChange]);\r\n null === (_this$_effects$12 = this._effects[12]) || void 0 === _this$_effects$12 ? void 0 : _this$_effects$12.update([this.props.height, this.props.width]);\r\n null === (_this$_effects$13 = this._effects[13]) || void 0 === _this$_effects$13 ? void 0 : _this$_effects$13.update([this.props.cssText])\r\n }\r\n setRootElementRef() {\r\n var {\r\n onRootElementRendered: onRootElementRendered,\r\n rootElementRef: rootElementRef\r\n } = this.props;\r\n if (rootElementRef) {\r\n rootElementRef.current = this.widgetElementRef.current\r\n }\r\n null === onRootElementRendered || void 0 === onRootElementRendered ? void 0 : onRootElementRendered(this.widgetElementRef.current)\r\n }\r\n activeEffect() {\r\n var {\r\n _feedbackShowTimeout: _feedbackShowTimeout,\r\n activeStateEnabled: activeStateEnabled,\r\n activeStateUnit: activeStateUnit,\r\n disabled: disabled,\r\n onActive: onActive\r\n } = this.props;\r\n var selector = activeStateUnit;\r\n if (activeStateEnabled) {\r\n if (!disabled) {\r\n return subscribeToDxActiveEvent(this.widgetElementRef.current, event => {\r\n this.setState(__state_argument => ({\r\n active: true\r\n }));\r\n null === onActive || void 0 === onActive ? void 0 : onActive(event)\r\n }, {\r\n timeout: _feedbackShowTimeout,\r\n selector: selector\r\n }, \"UIFeedback\")\r\n }\r\n }\r\n return\r\n }\r\n inactiveEffect() {\r\n var {\r\n _feedbackHideTimeout: _feedbackHideTimeout,\r\n activeStateEnabled: activeStateEnabled,\r\n activeStateUnit: activeStateUnit,\r\n onInactive: onInactive\r\n } = this.props;\r\n var selector = activeStateUnit;\r\n if (activeStateEnabled) {\r\n return subscribeToDxInactiveEvent(this.widgetElementRef.current, event => {\r\n if (this.state.active) {\r\n this.setState(__state_argument => ({\r\n active: false\r\n }));\r\n null === onInactive || void 0 === onInactive ? void 0 : onInactive(event)\r\n }\r\n }, {\r\n timeout: _feedbackHideTimeout,\r\n selector: selector\r\n }, \"UIFeedback\")\r\n }\r\n return\r\n }\r\n clickEffect() {\r\n var {\r\n disabled: disabled,\r\n name: name,\r\n onClick: onClick\r\n } = this.props;\r\n var namespace = name;\r\n if (onClick && !disabled) {\r\n dxClick.on(this.widgetElementRef.current, onClick, {\r\n namespace: namespace\r\n });\r\n return () => dxClick.off(this.widgetElementRef.current, {\r\n namespace: namespace\r\n })\r\n }\r\n return\r\n }\r\n focusInEffect() {\r\n var {\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n name: name,\r\n onFocusIn: onFocusIn\r\n } = this.props;\r\n var namespace = \"\".concat(name, \"Focus\");\r\n if (focusStateEnabled) {\r\n if (!disabled) {\r\n return subscribeToDxFocusInEvent(this.widgetElementRef.current, event => {\r\n if (!event.isDefaultPrevented()) {\r\n this.setState(__state_argument => ({\r\n focused: true\r\n }));\r\n null === onFocusIn || void 0 === onFocusIn ? void 0 : onFocusIn(event)\r\n }\r\n }, null, namespace)\r\n }\r\n }\r\n return\r\n }\r\n focusOutEffect() {\r\n var {\r\n focusStateEnabled: focusStateEnabled,\r\n name: name,\r\n onFocusOut: onFocusOut\r\n } = this.props;\r\n var namespace = \"\".concat(name, \"Focus\");\r\n if (focusStateEnabled) {\r\n return subscribeToDxFocusOutEvent(this.widgetElementRef.current, event => {\r\n if (!event.isDefaultPrevented() && this.state.focused) {\r\n this.setState(__state_argument => ({\r\n focused: false\r\n }));\r\n null === onFocusOut || void 0 === onFocusOut ? void 0 : onFocusOut(event)\r\n }\r\n }, null, namespace)\r\n }\r\n return\r\n }\r\n hoverStartEffect() {\r\n var {\r\n activeStateUnit: activeStateUnit,\r\n disabled: disabled,\r\n hoverStateEnabled: hoverStateEnabled,\r\n onHoverStart: onHoverStart\r\n } = this.props;\r\n var selector = activeStateUnit;\r\n if (hoverStateEnabled) {\r\n if (!disabled) {\r\n return subscribeToDxHoverStartEvent(this.widgetElementRef.current, event => {\r\n !this.state.active && this.setState(__state_argument => ({\r\n hovered: true\r\n }));\r\n null === onHoverStart || void 0 === onHoverStart ? void 0 : onHoverStart(event)\r\n }, {\r\n selector: selector\r\n }, \"UIFeedback\")\r\n }\r\n }\r\n return\r\n }\r\n hoverEndEffect() {\r\n var {\r\n activeStateUnit: activeStateUnit,\r\n hoverStateEnabled: hoverStateEnabled,\r\n onHoverEnd: onHoverEnd\r\n } = this.props;\r\n var selector = activeStateUnit;\r\n if (hoverStateEnabled) {\r\n return subscribeToDxHoverEndEvent(this.widgetElementRef.current, event => {\r\n if (this.state.hovered) {\r\n this.setState(__state_argument => ({\r\n hovered: false\r\n }));\r\n null === onHoverEnd || void 0 === onHoverEnd ? void 0 : onHoverEnd(event)\r\n }\r\n }, {\r\n selector: selector\r\n }, \"UIFeedback\")\r\n }\r\n return\r\n }\r\n keyboardEffect() {\r\n var {\r\n focusStateEnabled: focusStateEnabled,\r\n onKeyDown: onKeyDown\r\n } = this.props;\r\n if (focusStateEnabled && onKeyDown) {\r\n var id = keyboard.on(this.widgetElementRef.current, this.widgetElementRef.current, e => onKeyDown(e));\r\n return () => keyboard.off(id)\r\n }\r\n return\r\n }\r\n resizeEffect() {\r\n var namespace = \"\".concat(this.props.name, \"VisibilityChange\");\r\n var {\r\n onDimensionChanged: onDimensionChanged\r\n } = this.props;\r\n if (onDimensionChanged) {\r\n resize.on(this.widgetElementRef.current, onDimensionChanged, {\r\n namespace: namespace\r\n });\r\n return () => resize.off(this.widgetElementRef.current, {\r\n namespace: namespace\r\n })\r\n }\r\n return\r\n }\r\n windowResizeEffect() {\r\n var {\r\n onDimensionChanged: onDimensionChanged\r\n } = this.props;\r\n if (onDimensionChanged) {\r\n resizeCallbacks.add(onDimensionChanged);\r\n return () => {\r\n resizeCallbacks.remove(onDimensionChanged)\r\n }\r\n }\r\n return\r\n }\r\n visibilityEffect() {\r\n var {\r\n name: name,\r\n onVisibilityChange: onVisibilityChange\r\n } = this.props;\r\n var namespace = \"\".concat(name, \"VisibilityChange\");\r\n if (onVisibilityChange) {\r\n visibility.on(this.widgetElementRef.current, () => onVisibilityChange(true), () => onVisibilityChange(false), {\r\n namespace: namespace\r\n });\r\n return () => visibility.off(this.widgetElementRef.current, {\r\n namespace: namespace\r\n })\r\n }\r\n return\r\n }\r\n checkDeprecation() {\r\n var {\r\n height: height,\r\n width: width\r\n } = this.props;\r\n if (isFunction(width)) {\r\n errors.log(\"W0017\", \"width\")\r\n }\r\n if (isFunction(height)) {\r\n errors.log(\"W0017\", \"height\")\r\n }\r\n }\r\n applyCssTextEffect() {\r\n var {\r\n cssText: cssText\r\n } = this.props;\r\n if (\"\" !== cssText) {\r\n this.widgetElementRef.current.style.cssText = cssText\r\n }\r\n }\r\n get shouldRenderConfigProvider() {\r\n var {\r\n rtlEnabled: rtlEnabled\r\n } = this.props;\r\n return resolveRtlEnabledDefinition(rtlEnabled, this.config)\r\n }\r\n get rtlEnabled() {\r\n var {\r\n rtlEnabled: rtlEnabled\r\n } = this.props;\r\n return resolveRtlEnabled(rtlEnabled, this.config)\r\n }\r\n get attributes() {\r\n var {\r\n aria: aria,\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n visible: visible\r\n } = this.props;\r\n var accessKey = focusStateEnabled && !disabled && this.props.accessKey;\r\n return _extends({}, extend({}, accessKey && {\r\n accessKey: accessKey\r\n }), getAria(_extends({}, aria, {\r\n disabled: disabled,\r\n hidden: !visible\r\n })), extend({}, this.restAttributes))\r\n }\r\n get styles() {\r\n var {\r\n height: height,\r\n width: width\r\n } = this.props;\r\n var style = this.restAttributes.style || {};\r\n var computedWidth = normalizeStyleProp(\"width\", isFunction(width) ? width() : width);\r\n var computedHeight = normalizeStyleProp(\"height\", isFunction(height) ? height() : height);\r\n return _extends({}, style, {\r\n height: null !== computedHeight && void 0 !== computedHeight ? computedHeight : style.height,\r\n width: null !== computedWidth && void 0 !== computedWidth ? computedWidth : style.width\r\n })\r\n }\r\n get cssClasses() {\r\n var {\r\n activeStateEnabled: activeStateEnabled,\r\n addWidgetClass: addWidgetClass,\r\n className: className,\r\n classes: classes,\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n hoverStateEnabled: hoverStateEnabled,\r\n onVisibilityChange: onVisibilityChange,\r\n visible: visible\r\n } = this.props;\r\n var isFocusable = !!focusStateEnabled && !disabled;\r\n var isHoverable = !!hoverStateEnabled && !disabled;\r\n var canBeActive = !!activeStateEnabled && !disabled;\r\n var classesMap = {\r\n \"dx-widget\": !!addWidgetClass,\r\n [String(classes)]: !!classes,\r\n [String(className)]: !!className,\r\n \"dx-state-disabled\": !!disabled,\r\n \"dx-state-invisible\": !visible,\r\n \"dx-state-focused\": !!this.state.focused && isFocusable,\r\n \"dx-state-active\": !!this.state.active && canBeActive,\r\n \"dx-state-hover\": !!this.state.hovered && isHoverable && !this.state.active,\r\n \"dx-rtl\": !!this.rtlEnabled,\r\n \"dx-visibility-change-handler\": !!onVisibilityChange\r\n };\r\n return combineClasses(classesMap)\r\n }\r\n get tabIndex() {\r\n var {\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n tabIndex: tabIndex\r\n } = this.props;\r\n var isFocusable = focusStateEnabled && !disabled;\r\n return isFocusable ? tabIndex : void 0\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 focus() {\r\n focus.trigger(this.widgetElementRef.current)\r\n }\r\n blur() {\r\n var activeElement = domAdapter.getActiveElement(this.widgetElementRef.current);\r\n if (this.widgetElementRef.current === activeElement) {\r\n activeElement.blur()\r\n }\r\n }\r\n activate() {\r\n this.setState(__state_argument => ({\r\n active: true\r\n }))\r\n }\r\n deactivate() {\r\n this.setState(__state_argument => ({\r\n active: false\r\n }))\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n active: this.state.active,\r\n focused: this.state.focused,\r\n hovered: this.state.hovered,\r\n widgetElementRef: this.widgetElementRef,\r\n config: this.config,\r\n shouldRenderConfigProvider: this.shouldRenderConfigProvider,\r\n rtlEnabled: this.rtlEnabled,\r\n attributes: this.attributes,\r\n styles: this.styles,\r\n cssClasses: this.cssClasses,\r\n tabIndex: this.tabIndex,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nWidget.defaultProps = WidgetProps;\r\n","/**\r\n * DevExtreme (esm/renovation/utils/resolve_rtl.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport globalConfig from \"../../core/config\";\r\nexport function resolveRtlEnabled(rtlProp, config) {\r\n if (void 0 !== rtlProp) {\r\n return rtlProp\r\n }\r\n if (void 0 !== (null === config || void 0 === config ? void 0 : config.rtlEnabled)) {\r\n return config.rtlEnabled\r\n }\r\n return globalConfig().rtlEnabled\r\n}\r\nexport function resolveRtlEnabledDefinition(rtlProp, config) {\r\n var isPropDefined = isDefined(rtlProp);\r\n var onlyGlobalDefined = isDefined(globalConfig().rtlEnabled) && !isPropDefined && !isDefined(null === config || void 0 === config ? void 0 : config.rtlEnabled);\r\n return isPropDefined && rtlProp !== (null === config || void 0 === config ? void 0 : config.rtlEnabled) || onlyGlobalDefined\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/button.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"accessKey\", \"activeStateEnabled\", \"children\", \"className\", \"disabled\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"icon\", \"iconPosition\", \"iconTemplate\", \"onClick\", \"onKeyDown\", \"onSubmit\", \"pressed\", \"rtlEnabled\", \"stylingMode\", \"tabIndex\", \"template\", \"templateData\", \"text\", \"type\", \"useInkRipple\", \"useSubmitBehavior\", \"visible\", \"width\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n createDefaultOptionRules,\r\n convertRulesToOptions\r\n} from \"../../core/options/utils\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n isMaterial,\r\n current\r\n} from \"../../ui/themes\";\r\nimport {\r\n click\r\n} from \"../../events/short\";\r\nimport {\r\n combineClasses\r\n} from \"../utils/combine_classes\";\r\nimport {\r\n getImageSourceType\r\n} from \"../../core/utils/icon\";\r\nimport {\r\n camelize\r\n} from \"../../core/utils/inflector\";\r\nimport {\r\n Icon\r\n} from \"./common/icon\";\r\nimport {\r\n InkRipple\r\n} from \"./common/ink_ripple\";\r\nimport {\r\n Widget\r\n} from \"./common/widget\";\r\nimport {\r\n BaseWidgetProps\r\n} from \"./common/base_props\";\r\nimport messageLocalization from \"../../localization/message\";\r\nvar stylingModes = [\"outlined\", \"text\", \"contained\"];\r\nvar getCssClasses = model => {\r\n var {\r\n icon: icon,\r\n iconPosition: iconPosition,\r\n stylingMode: stylingMode,\r\n text: text,\r\n type: type\r\n } = model;\r\n var isValidStylingMode = stylingMode && stylingModes.includes(stylingMode);\r\n var classesMap = {\r\n \"dx-button\": true,\r\n [\"dx-button-mode-\".concat(isValidStylingMode ? stylingMode : \"contained\")]: true,\r\n [\"dx-button-\".concat(null !== type && void 0 !== type ? type : \"normal\")]: true,\r\n \"dx-button-has-text\": !!text,\r\n \"dx-button-has-icon\": !!icon,\r\n \"dx-button-icon-right\": \"left\" !== iconPosition\r\n };\r\n return combineClasses(classesMap)\r\n};\r\nexport var viewFunction = viewModel => {\r\n var {\r\n children: children,\r\n iconPosition: iconPosition,\r\n iconTemplate: IconTemplate,\r\n template: ButtonTemplate,\r\n text: text\r\n } = viewModel.props;\r\n var renderText = !viewModel.props.template && !children && \"\" !== text;\r\n var isIconLeft = \"left\" === iconPosition;\r\n var iconComponent = !viewModel.props.template && !children && (viewModel.iconSource || viewModel.props.iconTemplate) && createComponentVNode(2, Icon, {\r\n source: viewModel.iconSource,\r\n position: iconPosition,\r\n iconTemplate: IconTemplate\r\n });\r\n return normalizeProps(createComponentVNode(2, Widget, _extends({\r\n accessKey: viewModel.props.accessKey,\r\n activeStateEnabled: viewModel.props.activeStateEnabled,\r\n aria: viewModel.aria,\r\n className: viewModel.props.className,\r\n classes: viewModel.cssClasses,\r\n disabled: viewModel.props.disabled,\r\n focusStateEnabled: viewModel.props.focusStateEnabled,\r\n height: viewModel.props.height,\r\n hint: viewModel.props.hint,\r\n hoverStateEnabled: viewModel.props.hoverStateEnabled,\r\n onActive: viewModel.onActive,\r\n onClick: viewModel.onWidgetClick,\r\n onInactive: viewModel.onInactive,\r\n onKeyDown: viewModel.keyDown,\r\n rtlEnabled: viewModel.props.rtlEnabled,\r\n tabIndex: viewModel.props.tabIndex,\r\n visible: viewModel.props.visible,\r\n width: viewModel.props.width\r\n }, viewModel.restAttributes, {\r\n children: createVNode(1, \"div\", \"dx-button-content\", [viewModel.props.template && ButtonTemplate({\r\n data: viewModel.buttonTemplateData\r\n }), !viewModel.props.template && children, isIconLeft && iconComponent, renderText && createVNode(1, \"span\", \"dx-button-text\", text, 0), !isIconLeft && iconComponent, viewModel.props.useSubmitBehavior && createVNode(64, \"input\", \"dx-button-submit-input\", null, 1, {\r\n type: \"submit\",\r\n tabIndex: -1\r\n }, null, viewModel.submitInputRef), viewModel.props.useInkRipple && createComponentVNode(2, InkRipple, {\r\n config: viewModel.inkRippleConfig\r\n }, null, viewModel.inkRippleRef)], 0, null, null, viewModel.contentRef)\r\n }), null, viewModel.widgetRef))\r\n};\r\nexport var ButtonProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(BaseWidgetProps), Object.getOwnPropertyDescriptors({\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true,\r\n icon: \"\",\r\n iconPosition: \"left\",\r\n stylingMode: \"contained\",\r\n text: \"\",\r\n type: \"normal\",\r\n useInkRipple: false,\r\n useSubmitBehavior: false,\r\n templateData: Object.freeze({})\r\n})));\r\nexport var defaultOptionRules = createDefaultOptionRules([{\r\n device: () => \"desktop\" === devices.real().deviceType && !devices.isSimulator(),\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n}, {\r\n device: () => isMaterial(current()),\r\n options: {\r\n useInkRipple: true\r\n }\r\n}]);\r\nimport {\r\n createReRenderEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class Button extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.contentRef = infernoCreateRef();\r\n this.inkRippleRef = infernoCreateRef();\r\n this.submitInputRef = infernoCreateRef();\r\n this.widgetRef = infernoCreateRef();\r\n this.__getterCache = {};\r\n this.focus = this.focus.bind(this);\r\n this.activate = this.activate.bind(this);\r\n this.deactivate = this.deactivate.bind(this);\r\n this.submitEffect = this.submitEffect.bind(this);\r\n this.onActive = this.onActive.bind(this);\r\n this.onInactive = this.onInactive.bind(this);\r\n this.onWidgetClick = this.onWidgetClick.bind(this);\r\n this.keyDown = this.keyDown.bind(this);\r\n this.emitClickEvent = this.emitClickEvent.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.submitEffect, [this.props.onSubmit, this.props.useSubmitBehavior]), 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.onSubmit, this.props.useSubmitBehavior])\r\n }\r\n submitEffect() {\r\n var {\r\n onSubmit: onSubmit,\r\n useSubmitBehavior: useSubmitBehavior\r\n } = this.props;\r\n if (useSubmitBehavior && onSubmit) {\r\n click.on(this.submitInputRef.current, event => onSubmit({\r\n event: event,\r\n submitInput: this.submitInputRef.current\r\n }), {\r\n namespace: \"UIFeedback\"\r\n });\r\n return () => click.off(this.submitInputRef.current, {\r\n namespace: \"UIFeedback\"\r\n })\r\n }\r\n return\r\n }\r\n onActive(event) {\r\n var {\r\n useInkRipple: useInkRipple\r\n } = this.props;\r\n useInkRipple && this.inkRippleRef.current.showWave({\r\n element: this.contentRef.current,\r\n event: event\r\n })\r\n }\r\n onInactive(event) {\r\n var {\r\n useInkRipple: useInkRipple\r\n } = this.props;\r\n useInkRipple && this.inkRippleRef.current.hideWave({\r\n element: this.contentRef.current,\r\n event: event\r\n })\r\n }\r\n onWidgetClick(event) {\r\n var {\r\n onClick: onClick,\r\n useSubmitBehavior: useSubmitBehavior\r\n } = this.props;\r\n null === onClick || void 0 === onClick ? void 0 : onClick({\r\n event: event\r\n });\r\n useSubmitBehavior && this.submitInputRef.current.click()\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 || \"enter\" === keyName || \"enter\" === which) {\r\n originalEvent.preventDefault();\r\n this.emitClickEvent()\r\n }\r\n return\r\n }\r\n emitClickEvent() {\r\n this.contentRef.current.click()\r\n }\r\n get aria() {\r\n var {\r\n icon: icon,\r\n text: text\r\n } = this.props;\r\n var label = null !== text && void 0 !== text ? text : \"\";\r\n if (!text && icon) {\r\n var iconSource = getImageSourceType(icon);\r\n switch (iconSource) {\r\n case \"image\":\r\n var isPathToImage = !icon.includes(\"base64\") && /^(?!(?:https?:\\/\\/)|(?:ftp:\\/\\/)|(?:www\\.))[^\\s]+$/.test(icon);\r\n label = isPathToImage ? icon.replace(/.+\\/([^.]+)\\..+$/, \"$1\") : \"\";\r\n break;\r\n case \"dxIcon\":\r\n label = messageLocalization.format(camelize(icon, true)) || icon;\r\n break;\r\n case \"fontIcon\":\r\n label = icon;\r\n break;\r\n case \"svg\":\r\n var _titleRegexp$exec$, _titleRegexp$exec;\r\n var title = null !== (_titleRegexp$exec$ = null === (_titleRegexp$exec = /(.*?)<\\/title>/.exec(icon)) || void 0 === _titleRegexp$exec ? void 0 : _titleRegexp$exec[1]) && void 0 !== _titleRegexp$exec$ ? _titleRegexp$exec$ : \"\";\r\n label = title\r\n }\r\n }\r\n return _extends({\r\n role: \"button\"\r\n }, label ? {\r\n label: label\r\n } : {})\r\n }\r\n get cssClasses() {\r\n return getCssClasses(this.props)\r\n }\r\n get iconSource() {\r\n var {\r\n icon: icon\r\n } = this.props;\r\n return null !== icon && void 0 !== icon ? icon : \"\"\r\n }\r\n get inkRippleConfig() {\r\n if (void 0 !== this.__getterCache.inkRippleConfig) {\r\n return this.__getterCache.inkRippleConfig\r\n }\r\n return this.__getterCache.inkRippleConfig = (() => {\r\n var {\r\n icon: icon,\r\n text: text\r\n } = this.props;\r\n return !text && icon ? {\r\n isCentered: true,\r\n useHoldAnimation: false,\r\n waveSizeCoefficient: 1\r\n } : {}\r\n })()\r\n }\r\n get buttonTemplateData() {\r\n var {\r\n icon: icon,\r\n templateData: templateData,\r\n text: text\r\n } = this.props;\r\n return _extends({\r\n icon: icon,\r\n text: text\r\n }, templateData)\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 focus() {\r\n this.widgetRef.current.focus()\r\n }\r\n activate() {\r\n this.widgetRef.current.activate()\r\n }\r\n deactivate() {\r\n this.widgetRef.current.deactivate()\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n super.componentWillUpdate();\r\n if (this.props.icon !== nextProps.icon || this.props.text !== nextProps.text) {\r\n this.__getterCache.inkRippleConfig = 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 template: getTemplate(props.template),\r\n iconTemplate: getTemplate(props.iconTemplate)\r\n }),\r\n contentRef: this.contentRef,\r\n submitInputRef: this.submitInputRef,\r\n inkRippleRef: this.inkRippleRef,\r\n widgetRef: this.widgetRef,\r\n onActive: this.onActive,\r\n onInactive: this.onInactive,\r\n onWidgetClick: this.onWidgetClick,\r\n keyDown: this.keyDown,\r\n emitClickEvent: this.emitClickEvent,\r\n aria: this.aria,\r\n cssClasses: this.cssClasses,\r\n iconSource: this.iconSource,\r\n inkRippleConfig: this.inkRippleConfig,\r\n buttonTemplateData: this.buttonTemplateData,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nButton.defaultProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(ButtonProps), Object.getOwnPropertyDescriptors(_extends({}, convertRulesToOptions(defaultOptionRules)))));\r\nvar __defaultOptionRules = [];\r\nexport function defaultOptions(rule) {\r\n __defaultOptionRules.push(rule);\r\n Button.defaultProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(Button.defaultProps), Object.getOwnPropertyDescriptors(convertRulesToOptions(defaultOptionRules)), Object.getOwnPropertyDescriptors(convertRulesToOptions(__defaultOptionRules))))\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/button.j.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport BaseComponent from \"../component_wrapper/button\";\r\nimport {\r\n Button as ButtonComponent,\r\n defaultOptions\r\n} from \"./button\";\r\nexport default class Button 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 activate() {\r\n var _this$viewRef2;\r\n return null === (_this$viewRef2 = this.viewRef) || void 0 === _this$viewRef2 ? void 0 : _this$viewRef2.activate(...arguments)\r\n }\r\n deactivate() {\r\n var _this$viewRef3;\r\n return null === (_this$viewRef3 = this.viewRef) || void 0 === _this$viewRef3 ? void 0 : _this$viewRef3.deactivate(...arguments)\r\n }\r\n _getActionConfigs() {\r\n return {\r\n onClick: {\r\n excludeValidators: [\"readOnly\"]\r\n },\r\n onSubmit: {}\r\n }\r\n }\r\n get _propsInfo() {\r\n return {\r\n twoWay: [],\r\n allowNull: [],\r\n elements: [\"onSubmit\"],\r\n templates: [\"template\", \"iconTemplate\"],\r\n props: [\"activeStateEnabled\", \"hoverStateEnabled\", \"icon\", \"iconPosition\", \"onClick\", \"onSubmit\", \"pressed\", \"stylingMode\", \"template\", \"iconTemplate\", \"text\", \"type\", \"useInkRipple\", \"useSubmitBehavior\", \"templateData\", \"className\", \"accessKey\", \"disabled\", \"focusStateEnabled\", \"height\", \"hint\", \"onKeyDown\", \"rtlEnabled\", \"tabIndex\", \"visible\", \"width\"]\r\n }\r\n }\r\n get _viewComponent() {\r\n return ButtonComponent\r\n }\r\n}\r\nregisterComponent(\"dxButton\", Button);\r\nButton.defaultOptions = defaultOptions;\r\n","/**\r\n * DevExtreme (esm/ui/button.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Widget from \"../renovation/ui/button.j\";\r\nexport default Widget;\r\n","/**\r\n * DevExtreme (esm/mobile/hide_callback.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var hideCallback = function() {\r\n var callbacks = [];\r\n return {\r\n add: function(callback) {\r\n if (!callbacks.includes(callback)) {\r\n callbacks.push(callback)\r\n }\r\n },\r\n remove: function(callback) {\r\n var indexOfCallback = callbacks.indexOf(callback);\r\n if (-1 !== indexOfCallback) {\r\n callbacks.splice(indexOfCallback, 1)\r\n }\r\n },\r\n fire: function() {\r\n var callback = callbacks.pop();\r\n var result = !!callback;\r\n if (result) {\r\n callback()\r\n }\r\n return result\r\n },\r\n hasCallback: function() {\r\n return callbacks.length > 0\r\n }\r\n }\r\n}();\r\n","/**\r\n * DevExtreme (esm/ui/widget/swatch_container.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n value\r\n} from \"../../core/utils/view_port\";\r\nvar SWATCH_CONTAINER_CLASS_PREFIX = \"dx-swatch-\";\r\nvar getSwatchContainer = element => {\r\n var $element = $(element);\r\n var swatchContainer = $element.closest('[class^=\"'.concat(SWATCH_CONTAINER_CLASS_PREFIX, '\"], [class*=\" ').concat(SWATCH_CONTAINER_CLASS_PREFIX, '\"]'));\r\n var viewport = value();\r\n if (!swatchContainer.length) {\r\n return viewport\r\n }\r\n var swatchClassRegex = new RegExp(\"(\\\\s|^)(\".concat(SWATCH_CONTAINER_CLASS_PREFIX, \".*?)(\\\\s|$)\"));\r\n var swatchClass = swatchContainer[0].className.match(swatchClassRegex)[2];\r\n var viewportSwatchContainer = viewport.children(\".\" + swatchClass);\r\n if (!viewportSwatchContainer.length) {\r\n viewportSwatchContainer = $(\"<div>\").addClass(swatchClass).appendTo(viewport)\r\n }\r\n return viewportSwatchContainer\r\n};\r\nexport default {\r\n getSwatchContainer: getSwatchContainer\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/ui/overlay/m_overlay_position_controller.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport positionUtils from \"../../../animation/position\";\r\nimport {\r\n locate,\r\n move,\r\n resetPosition\r\n} from \"../../../animation/translator\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n isDefined,\r\n isEvent,\r\n isString,\r\n isWindow\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n getWindow\r\n} from \"../../../core/utils/window\";\r\nimport swatch from \"../../../ui/widget/swatch_container\";\r\nvar window = getWindow();\r\nvar OVERLAY_POSITION_ALIASES = {\r\n top: {\r\n my: \"top center\",\r\n at: \"top center\"\r\n },\r\n bottom: {\r\n my: \"bottom center\",\r\n at: \"bottom center\"\r\n },\r\n right: {\r\n my: \"right center\",\r\n at: \"right center\"\r\n },\r\n left: {\r\n my: \"left center\",\r\n at: \"left center\"\r\n },\r\n center: {\r\n my: \"center\",\r\n at: \"center\"\r\n },\r\n \"right bottom\": {\r\n my: \"right bottom\",\r\n at: \"right bottom\"\r\n },\r\n \"right top\": {\r\n my: \"right top\",\r\n at: \"right top\"\r\n },\r\n \"left bottom\": {\r\n my: \"left bottom\",\r\n at: \"left bottom\"\r\n },\r\n \"left top\": {\r\n my: \"left top\",\r\n at: \"left top\"\r\n }\r\n};\r\nvar OVERLAY_DEFAULT_BOUNDARY_OFFSET = {\r\n h: 0,\r\n v: 0\r\n};\r\nclass OverlayPositionController {\r\n constructor(_ref) {\r\n var {\r\n position: position,\r\n container: container,\r\n visualContainer: visualContainer,\r\n $root: $root,\r\n $content: $content,\r\n $wrapper: $wrapper,\r\n onPositioned: onPositioned,\r\n onVisualPositionChanged: onVisualPositionChanged,\r\n restorePosition: restorePosition,\r\n _fixWrapperPosition: _fixWrapperPosition,\r\n _skipContentPositioning: _skipContentPositioning\r\n } = _ref;\r\n this._props = {\r\n position: position,\r\n container: container,\r\n visualContainer: visualContainer,\r\n restorePosition: restorePosition,\r\n onPositioned: onPositioned,\r\n onVisualPositionChanged: onVisualPositionChanged,\r\n _fixWrapperPosition: _fixWrapperPosition,\r\n _skipContentPositioning: _skipContentPositioning\r\n };\r\n this._$root = $root;\r\n this._$content = $content;\r\n this._$wrapper = $wrapper;\r\n this._$markupContainer = void 0;\r\n this._$visualContainer = void 0;\r\n this._shouldRenderContentInitialPosition = true;\r\n this._visualPosition = void 0;\r\n this._initialPosition = void 0;\r\n this._previousVisualPosition = void 0;\r\n this.updateContainer(container);\r\n this.updatePosition(position);\r\n this.updateVisualContainer(visualContainer)\r\n }\r\n get $container() {\r\n this.updateContainer();\r\n return this._$markupContainer\r\n }\r\n get $visualContainer() {\r\n return this._$visualContainer\r\n }\r\n get position() {\r\n return this._position\r\n }\r\n set fixWrapperPosition(fixWrapperPosition) {\r\n this._props._fixWrapperPosition = fixWrapperPosition;\r\n this.styleWrapperPosition()\r\n }\r\n set restorePosition(restorePosition) {\r\n this._props.restorePosition = restorePosition\r\n }\r\n restorePositionOnNextRender(value) {\r\n this._shouldRenderContentInitialPosition = value || !this._visualPosition\r\n }\r\n openingHandled() {\r\n var shouldRestorePosition = this._props.restorePosition;\r\n this.restorePositionOnNextRender(shouldRestorePosition)\r\n }\r\n updatePosition(positionProp) {\r\n this._props.position = positionProp;\r\n this._position = this._normalizePosition(positionProp);\r\n this.updateVisualContainer()\r\n }\r\n updateContainer() {\r\n var containerProp = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._props.container;\r\n this._props.container = containerProp;\r\n this._$markupContainer = containerProp ? $(containerProp) : swatch.getSwatchContainer(this._$root);\r\n this.updateVisualContainer(this._props.visualContainer)\r\n }\r\n updateVisualContainer() {\r\n var visualContainer = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._props.visualContainer;\r\n this._props.visualContainer = visualContainer;\r\n this._$visualContainer = this._getVisualContainer()\r\n }\r\n detectVisualPositionChange(event) {\r\n this._updateVisualPositionValue();\r\n this._raisePositionedEvents(event)\r\n }\r\n positionContent() {\r\n if (this._shouldRenderContentInitialPosition) {\r\n this._renderContentInitialPosition()\r\n } else {\r\n move(this._$content, this._visualPosition);\r\n this.detectVisualPositionChange()\r\n }\r\n }\r\n positionWrapper() {\r\n if (this._$visualContainer) {\r\n positionUtils.setup(this._$wrapper, {\r\n my: \"top left\",\r\n at: \"top left\",\r\n of: this._$visualContainer\r\n })\r\n }\r\n }\r\n styleWrapperPosition() {\r\n var useFixed = isWindow(this.$visualContainer.get(0)) || this._props._fixWrapperPosition;\r\n var positionStyle = useFixed ? \"fixed\" : \"absolute\";\r\n this._$wrapper.css(\"position\", positionStyle)\r\n }\r\n _updateVisualPositionValue() {\r\n this._previousVisualPosition = this._visualPosition;\r\n this._visualPosition = locate(this._$content)\r\n }\r\n _renderContentInitialPosition() {\r\n this._renderBoundaryOffset();\r\n resetPosition(this._$content);\r\n var wrapperOverflow = this._$wrapper.css(\"overflow\");\r\n this._$wrapper.css(\"overflow\", \"hidden\");\r\n if (!this._props._skipContentPositioning) {\r\n var resultPosition = positionUtils.setup(this._$content, this._position);\r\n this._initialPosition = resultPosition\r\n }\r\n this._$wrapper.css(\"overflow\", wrapperOverflow);\r\n this.detectVisualPositionChange()\r\n }\r\n _raisePositionedEvents(event) {\r\n var previousPosition = this._previousVisualPosition;\r\n var newPosition = this._visualPosition;\r\n var isVisualPositionChanged = (null === previousPosition || void 0 === previousPosition ? void 0 : previousPosition.top) !== newPosition.top || (null === previousPosition || void 0 === previousPosition ? void 0 : previousPosition.left) !== newPosition.left;\r\n if (isVisualPositionChanged) {\r\n this._props.onVisualPositionChanged({\r\n previousPosition: previousPosition,\r\n position: newPosition,\r\n event: event\r\n })\r\n }\r\n this._props.onPositioned({\r\n position: this._initialPosition\r\n })\r\n }\r\n _renderBoundaryOffset() {\r\n var _a;\r\n var boundaryOffset = null !== (_a = this._position) && void 0 !== _a ? _a : {\r\n boundaryOffset: OVERLAY_DEFAULT_BOUNDARY_OFFSET\r\n };\r\n this._$content.css(\"margin\", \"\".concat(boundaryOffset.v, \"px \").concat(boundaryOffset.h, \"px\"))\r\n }\r\n _getVisualContainer() {\r\n var _a, _b;\r\n var containerProp = this._props.container;\r\n var visualContainerProp = this._props.visualContainer;\r\n var positionOf = isEvent(null === (_a = this._props.position) || void 0 === _a ? void 0 : _a.of) ? this._props.position.of.target : null === (_b = this._props.position) || void 0 === _b ? void 0 : _b.of;\r\n if (visualContainerProp) {\r\n return $(visualContainerProp)\r\n }\r\n if (containerProp) {\r\n return $(containerProp)\r\n }\r\n if (positionOf) {\r\n return $(positionOf)\r\n }\r\n return $(window)\r\n }\r\n _normalizePosition(positionProp) {\r\n var defaultPositionConfig = {\r\n boundaryOffset: OVERLAY_DEFAULT_BOUNDARY_OFFSET\r\n };\r\n if (isDefined(positionProp)) {\r\n return extend(true, {}, defaultPositionConfig, this._positionToObject(positionProp))\r\n }\r\n return defaultPositionConfig\r\n }\r\n _positionToObject(position) {\r\n if (isString(position)) {\r\n return extend({}, OVERLAY_POSITION_ALIASES[position])\r\n }\r\n return position\r\n }\r\n}\r\nexport {\r\n OVERLAY_POSITION_ALIASES,\r\n OverlayPositionController\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/ui/overlay/m_z_index.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n ensureDefined\r\n} from \"../../../core/utils/common\";\r\nvar baseZIndex = 1500;\r\nvar zIndexStack = [];\r\nexport var base = ZIndex => {\r\n baseZIndex = ensureDefined(ZIndex, baseZIndex);\r\n return baseZIndex\r\n};\r\nexport var create = function() {\r\n var baseIndex = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : baseZIndex;\r\n var {\r\n length: length\r\n } = zIndexStack;\r\n var index = (length ? zIndexStack[length - 1] : baseIndex) + 1;\r\n zIndexStack.push(index);\r\n return index\r\n};\r\nexport var remove = zIndex => {\r\n var position = zIndexStack.indexOf(zIndex);\r\n if (position >= 0) {\r\n zIndexStack.splice(position, 1)\r\n }\r\n};\r\nexport var isLastZIndexInStack = zIndex => zIndexStack.length && zIndexStack[zIndexStack.length - 1] === zIndex;\r\nexport var clearStack = () => {\r\n zIndexStack = []\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/ui/overlay/m_overlay.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport fx from \"../../../animation/fx\";\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport devices from \"../../../core/devices\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport errors from \"../../../core/errors\";\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 Deferred\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n contains,\r\n resetActiveElement\r\n} from \"../../../core/utils/dom\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport readyCallbacks from \"../../../core/utils/ready_callbacks\";\r\nimport {\r\n getOuterHeight,\r\n getOuterWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n isFunction,\r\n isObject,\r\n isPromise,\r\n isWindow\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n changeCallback\r\n} from \"../../../core/utils/view_port\";\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 move as dragEventMove\r\n} from \"../../../events/drag\";\r\nimport pointerEvents from \"../../../events/pointer\";\r\nimport {\r\n keyboard\r\n} from \"../../../events/short\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed,\r\n normalizeKeyName\r\n} from \"../../../events/utils/index\";\r\nimport {\r\n triggerHidingEvent,\r\n triggerResizeEvent,\r\n triggerShownEvent\r\n} from \"../../../events/visibility_change\";\r\nimport {\r\n hideCallback as hideTopOverlayCallback\r\n} from \"../../../mobile/hide_callback\";\r\nimport {\r\n tabbable\r\n} from \"../../../ui/widget/selectors\";\r\nimport uiErrors from \"../../../ui/widget/ui.errors\";\r\nimport Widget from \"../../../ui/widget/ui.widget\";\r\nimport {\r\n OverlayPositionController\r\n} from \"./m_overlay_position_controller\";\r\nimport * as zIndexPool from \"./m_z_index\";\r\nvar ready = readyCallbacks.add;\r\nvar window = getWindow();\r\nvar viewPortChanged = changeCallback;\r\nvar OVERLAY_CLASS = \"dx-overlay\";\r\nvar OVERLAY_WRAPPER_CLASS = \"dx-overlay-wrapper\";\r\nvar OVERLAY_CONTENT_CLASS = \"dx-overlay-content\";\r\nvar OVERLAY_SHADER_CLASS = \"dx-overlay-shader\";\r\nvar INNER_OVERLAY_CLASS = \"dx-inner-overlay\";\r\nvar INVISIBLE_STATE_CLASS = \"dx-state-invisible\";\r\nvar ANONYMOUS_TEMPLATE_NAME = \"content\";\r\nvar RTL_DIRECTION_CLASS = \"dx-rtl\";\r\nvar OVERLAY_STACK = [];\r\nvar PREVENT_SAFARI_SCROLLING_CLASS = \"dx-prevent-safari-scrolling\";\r\nvar TAB_KEY = \"tab\";\r\nready(() => {\r\n eventsEngine.subscribeGlobal(domAdapter.getDocument(), pointerEvents.down, e => {\r\n for (var i = OVERLAY_STACK.length - 1; i >= 0; i--) {\r\n if (!OVERLAY_STACK[i]._proxiedDocumentDownHandler(e)) {\r\n return\r\n }\r\n }\r\n })\r\n});\r\nvar Overlay = Widget.inherit({\r\n _supportedKeys() {\r\n return extend(this.callBase(), {\r\n escape() {\r\n this.hide()\r\n }\r\n })\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n activeStateEnabled: false,\r\n visible: false,\r\n deferRendering: true,\r\n shading: true,\r\n shadingColor: \"\",\r\n wrapperAttr: {},\r\n width: \"80vw\",\r\n minWidth: null,\r\n maxWidth: null,\r\n height: \"80vh\",\r\n minHeight: null,\r\n maxHeight: null,\r\n animation: {\r\n show: {\r\n type: \"pop\",\r\n duration: 300,\r\n from: {\r\n scale: .55\r\n }\r\n },\r\n hide: {\r\n type: \"pop\",\r\n duration: 300,\r\n from: {\r\n opacity: 1,\r\n scale: 1\r\n },\r\n to: {\r\n opacity: 0,\r\n scale: .55\r\n }\r\n }\r\n },\r\n closeOnOutsideClick: false,\r\n hideOnOutsideClick: false,\r\n copyRootClassesToWrapper: false,\r\n _ignoreCopyRootClassesToWrapperDeprecation: false,\r\n _ignoreElementAttrDeprecation: false,\r\n _ignorePreventScrollEventsDeprecation: false,\r\n onShowing: null,\r\n onShown: null,\r\n onHiding: null,\r\n onHidden: null,\r\n contentTemplate: \"content\",\r\n innerOverlay: false,\r\n restorePosition: true,\r\n container: void 0,\r\n visualContainer: void 0,\r\n hideTopOverlayHandler: () => {\r\n this.hide()\r\n },\r\n hideOnParentScroll: false,\r\n preventScrollEvents: true,\r\n onPositioned: null,\r\n propagateOutsideClick: false,\r\n ignoreChildEvents: true,\r\n _checkParentVisibility: true,\r\n _hideOnParentScrollTarget: void 0,\r\n _fixWrapperPosition: false\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device: () => !hasWindow(),\r\n options: {\r\n width: null,\r\n height: null,\r\n animation: null,\r\n _checkParentVisibility: false\r\n }\r\n }])\r\n },\r\n _setOptionsByReference() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n animation: true\r\n })\r\n },\r\n $wrapper() {\r\n return this._$wrapper\r\n },\r\n _eventBindingTarget() {\r\n return this._$content\r\n },\r\n _setDeprecatedOptions() {\r\n this.callBase();\r\n extend(this._deprecatedOptions, {\r\n closeOnOutsideClick: {\r\n since: \"22.1\",\r\n alias: \"hideOnOutsideClick\"\r\n }\r\n })\r\n },\r\n ctor(element, options) {\r\n this.callBase(element, options);\r\n if (options) {\r\n if (options.copyRootClassesToWrapper && !options._ignoreCopyRootClassesToWrapperDeprecation) {\r\n this._logDeprecatedOptionWarning(\"copyRootClassesToWrapper\", {\r\n since: \"21.2\",\r\n message: 'Use the \"wrapperAttr\" option instead'\r\n })\r\n }\r\n if (options.elementAttr && !options._ignoreElementAttrDeprecation) {\r\n this._logDeprecatedOptionWarning(\"elementAttr\", {\r\n since: \"21.2\",\r\n message: 'Use the \"wrapperAttr\" option instead'\r\n })\r\n }\r\n if (\"preventScrollEvents\" in options && !options._ignorePreventScrollEventsDeprecation) {\r\n this._logDeprecatedPreventScrollEventsInfo()\r\n }\r\n }\r\n },\r\n _logDeprecatedPreventScrollEventsInfo() {\r\n this._logDeprecatedOptionWarning(\"preventScrollEvents\", {\r\n since: \"23.1\",\r\n message: \"If you enable this option, end-users may experience scrolling issues.\"\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initActions();\r\n this._initHideOnOutsideClickHandler();\r\n this._initTabTerminatorHandler();\r\n this._customWrapperClass = null;\r\n this._$wrapper = $(\"<div>\").addClass(OVERLAY_WRAPPER_CLASS);\r\n this._$content = $(\"<div>\").addClass(OVERLAY_CONTENT_CLASS);\r\n this._initInnerOverlayClass();\r\n var $element = this.$element();\r\n if (this.option(\"copyRootClassesToWrapper\")) {\r\n this._$wrapper.addClass($element.attr(\"class\"))\r\n }\r\n $element.addClass(OVERLAY_CLASS);\r\n this._$wrapper.attr(\"data-bind\", \"dxControlsDescendantBindings: true\");\r\n this._toggleViewPortSubscription(true);\r\n this._initHideTopOverlayHandler(this.option(\"hideTopOverlayHandler\"));\r\n this._parentsScrollSubscriptionInfo = {\r\n handler: e => {\r\n this._hideOnParentsScrollHandler(e)\r\n }\r\n };\r\n this.warnPositionAsFunction()\r\n },\r\n warnPositionAsFunction() {\r\n if (isFunction(this.option(\"position\"))) {\r\n errors.log(\"W0018\")\r\n }\r\n },\r\n _initInnerOverlayClass() {\r\n this._$content.toggleClass(INNER_OVERLAY_CLASS, this.option(\"innerOverlay\"))\r\n },\r\n _initHideTopOverlayHandler(handler) {\r\n this._hideTopOverlayHandler = handler\r\n },\r\n _getActionsList: () => [\"onShowing\", \"onShown\", \"onHiding\", \"onHidden\", \"onPositioned\", \"onVisualPositionChanged\"],\r\n _initActions() {\r\n this._actions = {};\r\n var actions = this._getActionsList();\r\n each(actions, (_, action) => {\r\n this._actions[action] = this._createActionByOption(action, {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n }) || noop\r\n })\r\n },\r\n _initHideOnOutsideClickHandler() {\r\n var _this = this;\r\n this._proxiedDocumentDownHandler = function() {\r\n return _this._documentDownHandler(...arguments)\r\n }\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this._renderWrapperAttributes();\r\n this._initPositionController()\r\n },\r\n _documentDownHandler(e) {\r\n if (this._showAnimationProcessing) {\r\n this._stopAnimation()\r\n }\r\n var isAttachedTarget = $(window.document).is(e.target) || contains(window.document, e.target);\r\n var isInnerOverlay = $(e.target).closest(\".\".concat(INNER_OVERLAY_CLASS)).length;\r\n var outsideClick = isAttachedTarget && !isInnerOverlay && !(this._$content.is(e.target) || contains(this._$content.get(0), e.target));\r\n if (outsideClick && this._shouldHideOnOutsideClick(e)) {\r\n this._outsideClickHandler(e)\r\n }\r\n return this.option(\"propagateOutsideClick\")\r\n },\r\n _shouldHideOnOutsideClick(e) {\r\n var {\r\n hideOnOutsideClick: hideOnOutsideClick\r\n } = this.option();\r\n if (isFunction(hideOnOutsideClick)) {\r\n return hideOnOutsideClick(e)\r\n }\r\n return hideOnOutsideClick\r\n },\r\n _outsideClickHandler(e) {\r\n if (this.option(\"shading\")) {\r\n e.preventDefault()\r\n }\r\n this.hide()\r\n },\r\n _getAnonymousTemplateName: () => ANONYMOUS_TEMPLATE_NAME,\r\n _initTemplates() {\r\n this._templateManager.addDefaultTemplates({\r\n content: new EmptyTemplate\r\n });\r\n this.callBase()\r\n },\r\n _isTopOverlay() {\r\n var overlayStack = this._overlayStack();\r\n for (var i = overlayStack.length - 1; i >= 0; i--) {\r\n var tabbableElements = overlayStack[i]._findTabbableBounds();\r\n if (tabbableElements.first || tabbableElements.last) {\r\n return overlayStack[i] === this\r\n }\r\n }\r\n return false\r\n },\r\n _overlayStack: () => OVERLAY_STACK,\r\n _zIndexInitValue: () => Overlay.baseZIndex(),\r\n _toggleViewPortSubscription(toggle) {\r\n var _this2 = this;\r\n viewPortChanged.remove(this._viewPortChangeHandle);\r\n if (toggle) {\r\n this._viewPortChangeHandle = function() {\r\n _this2._viewPortChangeHandler(...arguments)\r\n };\r\n viewPortChanged.add(this._viewPortChangeHandle)\r\n }\r\n },\r\n _viewPortChangeHandler() {\r\n this._positionController.updateContainer(this.option(\"container\"));\r\n this._refresh()\r\n },\r\n _renderWrapperAttributes() {\r\n var {\r\n wrapperAttr: wrapperAttr\r\n } = this.option();\r\n var attributes = extend({}, wrapperAttr);\r\n var classNames = attributes.class;\r\n delete attributes.class;\r\n this.$wrapper().attr(attributes).removeClass(this._customWrapperClass).addClass(classNames);\r\n this._customWrapperClass = classNames\r\n },\r\n _renderVisibilityAnimate(visible) {\r\n this._stopAnimation();\r\n return visible ? this._show() : this._hide()\r\n },\r\n _getAnimationConfig() {\r\n return this._getOptionValue(\"animation\", this)\r\n },\r\n _toggleBodyScroll: noop,\r\n _animateShowing() {\r\n var _this3 = this;\r\n var _a, _b, _c;\r\n var animation = null !== (_a = this._getAnimationConfig()) && void 0 !== _a ? _a : {};\r\n var showAnimation = this._normalizeAnimation(animation.show, \"to\");\r\n var startShowAnimation = null !== (_b = null === showAnimation || void 0 === showAnimation ? void 0 : showAnimation.start) && void 0 !== _b ? _b : noop;\r\n var completeShowAnimation = null !== (_c = null === showAnimation || void 0 === showAnimation ? void 0 : showAnimation.complete) && void 0 !== _c ? _c : noop;\r\n this._animate(showAnimation, (function() {\r\n if (_this3._isAnimationPaused) {\r\n return\r\n }\r\n if (_this3.option(\"focusStateEnabled\")) {\r\n eventsEngine.trigger(_this3._focusTarget(), \"focus\")\r\n }\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 completeShowAnimation.call(_this3, ...args);\r\n _this3._showAnimationProcessing = false;\r\n _this3._isHidden = false;\r\n _this3._actions.onShown();\r\n _this3._toggleSafariScrolling();\r\n _this3._showingDeferred.resolve()\r\n }), (function() {\r\n if (_this3._isAnimationPaused) {\r\n return\r\n }\r\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\r\n args[_key2] = arguments[_key2]\r\n }\r\n startShowAnimation.call(_this3, ...args);\r\n _this3._showAnimationProcessing = true\r\n }))\r\n },\r\n _processShowingHidingCancel(cancelArg, applyFunction, cancelFunction) {\r\n if (isPromise(cancelArg)) {\r\n cancelArg.then(shouldCancel => {\r\n if (shouldCancel) {\r\n cancelFunction()\r\n } else {\r\n applyFunction()\r\n }\r\n }).catch(() => applyFunction())\r\n } else {\r\n cancelArg ? cancelFunction() : applyFunction()\r\n }\r\n },\r\n _show() {\r\n this._showingDeferred = Deferred();\r\n this._parentHidden = this._isParentHidden();\r\n this._showingDeferred.done(() => {\r\n delete this._parentHidden\r\n });\r\n if (this._parentHidden) {\r\n this._isHidden = true;\r\n return this._showingDeferred.resolve()\r\n }\r\n if (this._currentVisible) {\r\n return Deferred().resolve().promise()\r\n }\r\n this._currentVisible = true;\r\n if (this._isHidingActionCanceled) {\r\n delete this._isHidingActionCanceled;\r\n this._showingDeferred.reject()\r\n } else {\r\n var show = () => {\r\n this._stopAnimation();\r\n this._toggleBodyScroll(this.option(\"enableBodyScroll\"));\r\n this._toggleVisibility(true);\r\n this._$content.css(\"visibility\", \"hidden\");\r\n this._$content.toggleClass(INVISIBLE_STATE_CLASS, false);\r\n this._updateZIndexStackPosition(true);\r\n this._positionController.openingHandled();\r\n this._renderContent();\r\n var showingArgs = {\r\n cancel: false\r\n };\r\n this._actions.onShowing(showingArgs);\r\n this._processShowingHidingCancel(showingArgs.cancel, () => {\r\n this._$content.css(\"visibility\", \"\");\r\n this._renderVisibility(true);\r\n this._animateShowing()\r\n }, () => {\r\n this._toggleVisibility(false);\r\n this._$content.css(\"visibility\", \"\");\r\n this._$content.toggleClass(INVISIBLE_STATE_CLASS, true);\r\n this._isShowingActionCanceled = true;\r\n this._moveFromContainer();\r\n this._toggleBodyScroll(true);\r\n this.option(\"visible\", false);\r\n this._showingDeferred.resolve()\r\n })\r\n };\r\n if (this.option(\"templatesRenderAsynchronously\")) {\r\n this._stopShowTimer();\r\n this._asyncShowTimeout = setTimeout(show)\r\n } else {\r\n show()\r\n }\r\n }\r\n return this._showingDeferred.promise()\r\n },\r\n _normalizeAnimation(showHideConfig, direction) {\r\n if (showHideConfig) {\r\n showHideConfig = extend({\r\n type: \"slide\",\r\n skipElementInitialStyles: true\r\n }, showHideConfig);\r\n if (isObject(showHideConfig[direction])) {\r\n extend(showHideConfig[direction], {\r\n position: this._positionController.position\r\n })\r\n }\r\n }\r\n return showHideConfig\r\n },\r\n _animateHiding() {\r\n var _this4 = this;\r\n var _a, _b, _c;\r\n var animation = null !== (_a = this._getAnimationConfig()) && void 0 !== _a ? _a : {};\r\n var hideAnimation = this._normalizeAnimation(animation.hide, \"from\");\r\n var startHideAnimation = null !== (_b = null === hideAnimation || void 0 === hideAnimation ? void 0 : hideAnimation.start) && void 0 !== _b ? _b : noop;\r\n var completeHideAnimation = null !== (_c = null === hideAnimation || void 0 === hideAnimation ? void 0 : hideAnimation.complete) && void 0 !== _c ? _c : noop;\r\n this._animate(hideAnimation, (function() {\r\n var _a;\r\n _this4._$content.css(\"pointerEvents\", \"\");\r\n _this4._renderVisibility(false);\r\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\r\n args[_key3] = arguments[_key3]\r\n }\r\n completeHideAnimation.call(_this4, ...args);\r\n _this4._hideAnimationProcessing = false;\r\n null === (_a = _this4._actions) || void 0 === _a ? void 0 : _a.onHidden();\r\n _this4._hidingDeferred.resolve()\r\n }), (function() {\r\n _this4._$content.css(\"pointerEvents\", \"none\");\r\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\r\n args[_key4] = arguments[_key4]\r\n }\r\n startHideAnimation.call(_this4, ...args);\r\n _this4._hideAnimationProcessing = true\r\n }))\r\n },\r\n _hide() {\r\n if (!this._currentVisible) {\r\n return Deferred().resolve().promise()\r\n }\r\n this._currentVisible = false;\r\n this._hidingDeferred = Deferred();\r\n var hidingArgs = {\r\n cancel: false\r\n };\r\n if (this._isShowingActionCanceled) {\r\n delete this._isShowingActionCanceled;\r\n this._hidingDeferred.reject()\r\n } else {\r\n this._actions.onHiding(hidingArgs);\r\n this._toggleSafariScrolling();\r\n this._toggleBodyScroll(true);\r\n this._processShowingHidingCancel(hidingArgs.cancel, () => {\r\n this._forceFocusLost();\r\n this._toggleShading(false);\r\n this._toggleSubscriptions(false);\r\n this._stopShowTimer();\r\n this._animateHiding()\r\n }, () => {\r\n this._isHidingActionCanceled = true;\r\n this._toggleBodyScroll(this.option(\"enableBodyScroll\"));\r\n this.option(\"visible\", true);\r\n this._hidingDeferred.resolve()\r\n })\r\n }\r\n return this._hidingDeferred.promise()\r\n },\r\n _forceFocusLost() {\r\n var activeElement = domAdapter.getActiveElement();\r\n var shouldResetActiveElement = !!this._$content.find(activeElement).length;\r\n if (shouldResetActiveElement) {\r\n resetActiveElement()\r\n }\r\n },\r\n _animate(animation, completeCallback, startCallback) {\r\n if (animation) {\r\n startCallback = startCallback || animation.start || noop;\r\n fx.animate(this._$content, extend({}, animation, {\r\n start: startCallback,\r\n complete: completeCallback\r\n }))\r\n } else {\r\n completeCallback()\r\n }\r\n },\r\n _stopAnimation() {\r\n fx.stop(this._$content, true)\r\n },\r\n _renderVisibility(visible) {\r\n if (visible && this._isParentHidden()) {\r\n return\r\n }\r\n this._currentVisible = visible;\r\n this._stopAnimation();\r\n if (!visible) {\r\n triggerHidingEvent(this._$content)\r\n }\r\n if (visible) {\r\n this._checkContainerExists();\r\n this._moveToContainer();\r\n this._renderGeometry();\r\n triggerShownEvent(this._$content);\r\n triggerResizeEvent(this._$content)\r\n } else {\r\n this._toggleVisibility(visible);\r\n this._$content.toggleClass(INVISIBLE_STATE_CLASS, !visible);\r\n this._updateZIndexStackPosition(visible);\r\n this._moveFromContainer()\r\n }\r\n this._toggleShading(visible);\r\n this._toggleSubscriptions(visible)\r\n },\r\n _updateZIndexStackPosition(pushToStack) {\r\n var overlayStack = this._overlayStack();\r\n var index = overlayStack.indexOf(this);\r\n if (pushToStack) {\r\n if (-1 === index) {\r\n this._zIndex = zIndexPool.create(this._zIndexInitValue());\r\n overlayStack.push(this)\r\n }\r\n this._$wrapper.css(\"zIndex\", this._zIndex);\r\n this._$content.css(\"zIndex\", this._zIndex)\r\n } else if (-1 !== index) {\r\n overlayStack.splice(index, 1);\r\n zIndexPool.remove(this._zIndex)\r\n }\r\n },\r\n _toggleShading(visible) {\r\n this._$wrapper.toggleClass(OVERLAY_SHADER_CLASS, visible && this.option(\"shading\"));\r\n this._$wrapper.css(\"backgroundColor\", this.option(\"shading\") ? this.option(\"shadingColor\") : \"\");\r\n this._toggleTabTerminator(visible && this.option(\"shading\"))\r\n },\r\n _initTabTerminatorHandler() {\r\n var _this5 = this;\r\n this._proxiedTabTerminatorHandler = function() {\r\n _this5._tabKeyHandler(...arguments)\r\n }\r\n },\r\n _toggleTabTerminator(enabled) {\r\n var eventName = addNamespace(\"keydown\", this.NAME);\r\n if (enabled) {\r\n eventsEngine.on(domAdapter.getDocument(), eventName, this._proxiedTabTerminatorHandler)\r\n } else {\r\n eventsEngine.off(domAdapter.getDocument(), eventName, this._proxiedTabTerminatorHandler)\r\n }\r\n },\r\n _findTabbableBounds() {\r\n var $elements = this._$wrapper.find(\"*\");\r\n var elementsCount = $elements.length - 1;\r\n var result = {\r\n first: null,\r\n last: null\r\n };\r\n for (var i = 0; i <= elementsCount; i++) {\r\n if (!result.first && $elements.eq(i).is(tabbable)) {\r\n result.first = $elements.eq(i)\r\n }\r\n if (!result.last && $elements.eq(elementsCount - i).is(tabbable)) {\r\n result.last = $elements.eq(elementsCount - i)\r\n }\r\n if (result.first && result.last) {\r\n break\r\n }\r\n }\r\n return result\r\n },\r\n _tabKeyHandler(e) {\r\n if (normalizeKeyName(e) !== TAB_KEY || !this._isTopOverlay()) {\r\n return\r\n }\r\n var tabbableElements = this._findTabbableBounds();\r\n var $firstTabbable = tabbableElements.first;\r\n var $lastTabbable = tabbableElements.last;\r\n var isTabOnLast = !e.shiftKey && e.target === $lastTabbable.get(0);\r\n var isShiftTabOnFirst = e.shiftKey && e.target === $firstTabbable.get(0);\r\n var isEmptyTabList = 0 === tabbableElements.length;\r\n var isOutsideTarget = !contains(this._$wrapper.get(0), e.target);\r\n if (isTabOnLast || isShiftTabOnFirst || isEmptyTabList || isOutsideTarget) {\r\n e.preventDefault();\r\n var $focusElement = e.shiftKey ? $lastTabbable : $firstTabbable;\r\n eventsEngine.trigger($focusElement, \"focusin\");\r\n eventsEngine.trigger($focusElement, \"focus\")\r\n }\r\n },\r\n _toggleSubscriptions(enabled) {\r\n if (hasWindow()) {\r\n this._toggleHideTopOverlayCallback(enabled);\r\n this._toggleHideOnParentsScrollSubscription(enabled)\r\n }\r\n },\r\n _toggleHideTopOverlayCallback(subscribe) {\r\n if (!this._hideTopOverlayHandler) {\r\n return\r\n }\r\n if (subscribe) {\r\n hideTopOverlayCallback.add(this._hideTopOverlayHandler)\r\n } else {\r\n hideTopOverlayCallback.remove(this._hideTopOverlayHandler)\r\n }\r\n },\r\n _toggleHideOnParentsScrollSubscription(needSubscribe) {\r\n var _a;\r\n var scrollEvent = addNamespace(\"scroll\", this.NAME);\r\n var {\r\n prevTargets: prevTargets,\r\n handler: handler\r\n } = null !== (_a = this._parentsScrollSubscriptionInfo) && void 0 !== _a ? _a : {};\r\n eventsEngine.off(prevTargets, scrollEvent, handler);\r\n var hideOnScroll = this.option(\"hideOnParentScroll\");\r\n if (needSubscribe && hideOnScroll) {\r\n var $parents = this._getHideOnParentScrollTarget().parents();\r\n if (\"desktop\" === devices.real().deviceType) {\r\n $parents = $parents.add(window)\r\n }\r\n eventsEngine.on($parents, scrollEvent, handler);\r\n this._parentsScrollSubscriptionInfo.prevTargets = $parents\r\n }\r\n },\r\n _hideOnParentsScrollHandler(e) {\r\n var hideHandled = false;\r\n var hideOnScroll = this.option(\"hideOnParentScroll\");\r\n if (isFunction(hideOnScroll)) {\r\n hideHandled = hideOnScroll(e)\r\n }\r\n if (!hideHandled && !this._showAnimationProcessing) {\r\n this.hide()\r\n }\r\n },\r\n _getHideOnParentScrollTarget() {\r\n var $hideOnParentScrollTarget = $(this.option(\"_hideOnParentScrollTarget\"));\r\n if ($hideOnParentScrollTarget.length) {\r\n return $hideOnParentScrollTarget\r\n }\r\n return this._$wrapper\r\n },\r\n _render() {\r\n this.callBase();\r\n this._appendContentToElement();\r\n this._renderVisibilityAnimate(this.option(\"visible\"))\r\n },\r\n _appendContentToElement() {\r\n if (!this._$content.parent().is(this.$element())) {\r\n this._$content.appendTo(this.$element())\r\n }\r\n },\r\n _renderContent() {\r\n var shouldDeferRendering = !this._currentVisible && this.option(\"deferRendering\");\r\n var isParentHidden = this.option(\"visible\") && this._isParentHidden();\r\n if (isParentHidden) {\r\n this._isHidden = true;\r\n return\r\n }\r\n if (this._contentAlreadyRendered || shouldDeferRendering) {\r\n return\r\n }\r\n this._contentAlreadyRendered = true;\r\n this._appendContentToElement();\r\n this.callBase()\r\n },\r\n _isParentHidden() {\r\n if (!this.option(\"_checkParentVisibility\")) {\r\n return false\r\n }\r\n if (void 0 !== this._parentHidden) {\r\n return this._parentHidden\r\n }\r\n var $parent = this.$element().parent();\r\n if ($parent.is(\":visible\")) {\r\n return false\r\n }\r\n var isHidden = false;\r\n $parent.add($parent.parents()).each((index, element) => {\r\n var $element = $(element);\r\n if (\"none\" === $element.css(\"display\")) {\r\n isHidden = true;\r\n return false\r\n }\r\n });\r\n return isHidden || !domAdapter.getBody().contains($parent.get(0))\r\n },\r\n _renderContentImpl() {\r\n var whenContentRendered = Deferred();\r\n var contentTemplateOption = this.option(\"contentTemplate\");\r\n var contentTemplate = this._getTemplate(contentTemplateOption);\r\n var transclude = this._templateManager.anonymousTemplateName === contentTemplateOption;\r\n contentTemplate && contentTemplate.render({\r\n container: getPublicElement(this.$content()),\r\n noModel: true,\r\n transclude: transclude,\r\n onRendered: () => {\r\n whenContentRendered.resolve();\r\n if (this.option(\"templatesRenderAsynchronously\")) {\r\n this._dimensionChanged()\r\n }\r\n }\r\n });\r\n this._toggleWrapperScrollEventsSubscription(this.option(\"preventScrollEvents\"));\r\n whenContentRendered.done(() => {\r\n if (this.option(\"visible\")) {\r\n this._moveToContainer()\r\n }\r\n });\r\n return whenContentRendered.promise()\r\n },\r\n _getPositionControllerConfig() {\r\n var {\r\n container: container,\r\n visualContainer: visualContainer,\r\n _fixWrapperPosition: _fixWrapperPosition,\r\n restorePosition: restorePosition,\r\n _skipContentPositioning: _skipContentPositioning\r\n } = this.option();\r\n return {\r\n container: container,\r\n visualContainer: visualContainer,\r\n $root: this.$element(),\r\n $content: this._$content,\r\n $wrapper: this._$wrapper,\r\n onPositioned: this._actions.onPositioned,\r\n onVisualPositionChanged: this._actions.onVisualPositionChanged,\r\n restorePosition: restorePosition,\r\n _fixWrapperPosition: _fixWrapperPosition,\r\n _skipContentPositioning: _skipContentPositioning\r\n }\r\n },\r\n _initPositionController() {\r\n this._positionController = new OverlayPositionController(this._getPositionControllerConfig())\r\n },\r\n _toggleWrapperScrollEventsSubscription(enabled) {\r\n var eventName = addNamespace(dragEventMove, this.NAME);\r\n eventsEngine.off(this._$wrapper, eventName);\r\n if (enabled) {\r\n eventsEngine.on(this._$wrapper, eventName, {\r\n validate: () => true,\r\n getDirection: () => \"both\",\r\n _toggleGestureCover(toggle) {\r\n if (!toggle) {\r\n this._toggleGestureCoverImpl(toggle)\r\n }\r\n },\r\n _clearSelection: noop,\r\n isNative: true\r\n }, e => {\r\n var {\r\n originalEvent: originalEvent\r\n } = e.originalEvent;\r\n var {\r\n type: type\r\n } = originalEvent || {};\r\n var isWheel = \"wheel\" === type;\r\n var isMouseMove = \"mousemove\" === type;\r\n var isScrollByWheel = isWheel && !isCommandKeyPressed(e);\r\n e._cancelPreventDefault = true;\r\n if (originalEvent && false !== e.cancelable && (!isMouseMove && !isWheel || isScrollByWheel)) {\r\n e.preventDefault()\r\n }\r\n })\r\n }\r\n },\r\n _moveFromContainer() {\r\n this._$content.appendTo(this.$element());\r\n this._$wrapper.detach()\r\n },\r\n _checkContainerExists() {\r\n var $wrapperContainer = this._positionController.$container;\r\n if (void 0 === $wrapperContainer) {\r\n return\r\n }\r\n var containerExists = $wrapperContainer.length > 0;\r\n if (!containerExists) {\r\n uiErrors.log(\"W1021\", this.NAME)\r\n }\r\n },\r\n _moveToContainer() {\r\n var $wrapperContainer = this._positionController.$container;\r\n this._$wrapper.appendTo($wrapperContainer);\r\n this._$content.appendTo(this._$wrapper)\r\n },\r\n _renderGeometry(options) {\r\n var {\r\n visible: visible\r\n } = this.option();\r\n if (visible && hasWindow()) {\r\n this._stopAnimation();\r\n this._renderGeometryImpl()\r\n }\r\n },\r\n _renderGeometryImpl() {\r\n this._positionController.updatePosition(this._getOptionValue(\"position\"));\r\n this._renderWrapper();\r\n this._renderDimensions();\r\n this._renderPosition()\r\n },\r\n _renderPosition() {\r\n this._positionController.positionContent()\r\n },\r\n _isAllWindowCovered() {\r\n return isWindow(this._positionController.$visualContainer.get(0)) && this.option(\"shading\")\r\n },\r\n _toggleSafariScrolling() {\r\n var visible = this.option(\"visible\");\r\n var $body = $(domAdapter.getBody());\r\n var isIosSafari = \"ios\" === devices.real().platform && browser.safari;\r\n var isAllWindowCovered = this._isAllWindowCovered();\r\n var isScrollingPrevented = $body.hasClass(PREVENT_SAFARI_SCROLLING_CLASS);\r\n var shouldPreventScrolling = !isScrollingPrevented && visible && isAllWindowCovered;\r\n var shouldEnableScrolling = isScrollingPrevented && (!visible || !isAllWindowCovered || this._disposed);\r\n if (isIosSafari) {\r\n if (shouldEnableScrolling) {\r\n $body.removeClass(PREVENT_SAFARI_SCROLLING_CLASS);\r\n window.scrollTo(0, this._cachedBodyScrollTop);\r\n this._cachedBodyScrollTop = void 0\r\n } else if (shouldPreventScrolling) {\r\n this._cachedBodyScrollTop = window.pageYOffset;\r\n $body.addClass(PREVENT_SAFARI_SCROLLING_CLASS)\r\n }\r\n }\r\n },\r\n _renderWrapper() {\r\n this._positionController.styleWrapperPosition();\r\n this._renderWrapperDimensions();\r\n this._positionController.positionWrapper()\r\n },\r\n _renderWrapperDimensions() {\r\n var {\r\n $visualContainer: $visualContainer\r\n } = this._positionController;\r\n var documentElement = domAdapter.getDocumentElement();\r\n var isVisualContainerWindow = isWindow($visualContainer.get(0));\r\n var wrapperWidth = isVisualContainerWindow ? documentElement.clientWidth : getOuterWidth($visualContainer);\r\n var wrapperHeight = isVisualContainerWindow ? window.innerHeight : getOuterHeight($visualContainer);\r\n this._$wrapper.css({\r\n width: wrapperWidth,\r\n height: wrapperHeight\r\n })\r\n },\r\n _renderDimensions() {\r\n var content = this._$content.get(0);\r\n this._$content.css({\r\n minWidth: this._getOptionValue(\"minWidth\", content),\r\n maxWidth: this._getOptionValue(\"maxWidth\", content),\r\n minHeight: this._getOptionValue(\"minHeight\", content),\r\n maxHeight: this._getOptionValue(\"maxHeight\", content),\r\n width: this._getOptionValue(\"width\", content),\r\n height: this._getOptionValue(\"height\", content)\r\n })\r\n },\r\n _focusTarget() {\r\n return this._$content\r\n },\r\n _attachKeyboardEvents() {\r\n this._keyboardListenerId = keyboard.on(this._$content, null, opts => this._keyboardHandler(opts))\r\n },\r\n _keyboardHandler(options) {\r\n var e = options.originalEvent;\r\n var $target = $(e.target);\r\n if ($target.is(this._$content) || !this.option(\"ignoreChildEvents\")) {\r\n this.callBase(...arguments)\r\n }\r\n },\r\n _isVisible() {\r\n return this.option(\"visible\")\r\n },\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n if (this.option(\"visible\")) {\r\n this._renderVisibilityAnimate(visible)\r\n }\r\n } else {\r\n this._renderVisibilityAnimate(visible)\r\n }\r\n },\r\n _dimensionChanged() {\r\n this._renderGeometry()\r\n },\r\n _clean() {\r\n var options = this.option();\r\n if (!this._contentAlreadyRendered && !options.isRenovated) {\r\n this.$content().empty()\r\n }\r\n this._renderVisibility(false);\r\n this._stopShowTimer();\r\n this._cleanFocusState()\r\n },\r\n _stopShowTimer() {\r\n if (this._asyncShowTimeout) {\r\n clearTimeout(this._asyncShowTimeout)\r\n }\r\n this._asyncShowTimeout = null\r\n },\r\n _dispose() {\r\n fx.stop(this._$content, false);\r\n clearTimeout(this._deferShowTimer);\r\n this._toggleViewPortSubscription(false);\r\n this._toggleSubscriptions(false);\r\n this._updateZIndexStackPosition(false);\r\n this._toggleTabTerminator(false);\r\n this._actions = null;\r\n this._parentsScrollSubscriptionInfo = null;\r\n this.callBase();\r\n this._toggleSafariScrolling();\r\n this.option(\"visible\") && zIndexPool.remove(this._zIndex);\r\n this._$wrapper.remove();\r\n this._$content.remove()\r\n },\r\n _toggleRTLDirection(rtl) {\r\n this._$content.toggleClass(RTL_DIRECTION_CLASS, rtl)\r\n },\r\n _optionChanged(args) {\r\n var {\r\n value: value,\r\n name: name\r\n } = args;\r\n if (this._getActionsList().includes(name)) {\r\n this._initActions();\r\n return\r\n }\r\n switch (name) {\r\n case \"animation\":\r\n break;\r\n case \"shading\":\r\n this._toggleShading(this.option(\"visible\"));\r\n this._toggleSafariScrolling();\r\n break;\r\n case \"shadingColor\":\r\n this._toggleShading(this.option(\"visible\"));\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this._renderGeometry();\r\n break;\r\n case \"minWidth\":\r\n case \"maxWidth\":\r\n case \"minHeight\":\r\n case \"maxHeight\":\r\n this._renderGeometry();\r\n break;\r\n case \"position\":\r\n this._positionController.updatePosition(this.option(\"position\"));\r\n this._positionController.restorePositionOnNextRender(true);\r\n this._renderGeometry();\r\n this._toggleSafariScrolling();\r\n break;\r\n case \"visible\":\r\n this._renderVisibilityAnimate(value).done(() => {\r\n var _a;\r\n return null === (_a = this._animateDeferred) || void 0 === _a ? void 0 : _a.resolveWith(this)\r\n }).fail(() => {\r\n var _a;\r\n return null === (_a = this._animateDeferred) || void 0 === _a ? void 0 : _a.reject()\r\n });\r\n break;\r\n case \"container\":\r\n this._positionController.updateContainer(value);\r\n this._invalidate();\r\n this._toggleSafariScrolling();\r\n break;\r\n case \"visualContainer\":\r\n this._positionController.updateVisualContainer(value);\r\n this._renderWrapper();\r\n this._toggleSafariScrolling();\r\n break;\r\n case \"innerOverlay\":\r\n this._initInnerOverlayClass();\r\n break;\r\n case \"deferRendering\":\r\n case \"contentTemplate\":\r\n this._contentAlreadyRendered = false;\r\n this._clean();\r\n this._invalidate();\r\n break;\r\n case \"hideTopOverlayHandler\":\r\n this._toggleHideTopOverlayCallback(false);\r\n this._initHideTopOverlayHandler(value);\r\n this._toggleHideTopOverlayCallback(this.option(\"visible\"));\r\n break;\r\n case \"hideOnParentScroll\":\r\n case \"_hideOnParentScrollTarget\":\r\n this._toggleHideOnParentsScrollSubscription(this.option(\"visible\"));\r\n break;\r\n case \"closeOnOutsideClick\":\r\n case \"hideOnOutsideClick\":\r\n case \"propagateOutsideClick\":\r\n break;\r\n case \"rtlEnabled\":\r\n this._contentAlreadyRendered = false;\r\n this.callBase(args);\r\n break;\r\n case \"_fixWrapperPosition\":\r\n this._positionController.fixWrapperPosition = value;\r\n break;\r\n case \"wrapperAttr\":\r\n this._renderWrapperAttributes();\r\n break;\r\n case \"restorePosition\":\r\n this._positionController.restorePosition = value;\r\n break;\r\n case \"preventScrollEvents\":\r\n this._logDeprecatedPreventScrollEventsInfo();\r\n this._toggleWrapperScrollEventsSubscription(value);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n toggle(showing) {\r\n showing = void 0 === showing ? !this.option(\"visible\") : showing;\r\n var result = Deferred();\r\n if (showing === this.option(\"visible\")) {\r\n return result.resolveWith(this, [showing]).promise()\r\n }\r\n var animateDeferred = Deferred();\r\n this._animateDeferred = animateDeferred;\r\n this.option(\"visible\", showing);\r\n animateDeferred.promise().done(() => {\r\n delete this._animateDeferred;\r\n result.resolveWith(this, [this.option(\"visible\")])\r\n }).fail(() => {\r\n delete this._animateDeferred;\r\n result.reject()\r\n });\r\n return result.promise()\r\n },\r\n $content() {\r\n return this._$content\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 content() {\r\n return getPublicElement(this._$content)\r\n },\r\n repaint() {\r\n if (this._contentAlreadyRendered) {\r\n this._positionController.restorePositionOnNextRender(true);\r\n this._renderGeometry({\r\n forceStopAnimation: true\r\n });\r\n triggerResizeEvent(this._$content)\r\n } else {\r\n this.callBase()\r\n }\r\n }\r\n});\r\nOverlay.baseZIndex = zIndex => zIndexPool.base(zIndex);\r\nregisterComponent(\"dxOverlay\", Overlay);\r\nexport default Overlay;\r\n","/**\r\n * DevExtreme (esm/ui/overlay/ui.overlay.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Overlay from \"../../__internal/ui/overlay/m_overlay\";\r\nexport default Overlay;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/m_resizable.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n 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 getHeight,\r\n getInnerHeight,\r\n getInnerWidth,\r\n getOuterHeight,\r\n getOuterWidth,\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport {\r\n isFunction,\r\n isPlainObject,\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 end as dragEventEnd,\r\n move as dragEventMove,\r\n start as dragEventStart\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() {\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() {\r\n this.callBase();\r\n this.$element().addClass(RESIZABLE_CLASS)\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this._renderHandles()\r\n },\r\n _render() {\r\n this.callBase();\r\n this._renderActions()\r\n },\r\n _renderActions() {\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() {\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(handleName) {\r\n var $handle = $(\"<div>\").addClass(RESIZABLE_HANDLE_CLASS).addClass(\"\".concat(RESIZABLE_HANDLE_CLASS, \"-\").concat(handleName)).appendTo(this.$element());\r\n this._handles.push($handle)\r\n },\r\n _attachEventHandlers() {\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() {\r\n this._handles.forEach(handleElement => {\r\n eventsEngine.off(handleElement)\r\n })\r\n },\r\n _toggleEventHandlers(shouldAttachEvents) {\r\n shouldAttachEvents ? this._attachEventHandlers() : this._detachEventHandlers()\r\n },\r\n _getElementSize() {\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(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(value) {\r\n this.$element().toggleClass(RESIZABLE_RESIZING_CLASS, value)\r\n },\r\n _renderDragOffsets(e) {\r\n var area = this._getArea();\r\n if (!area) {\r\n return\r\n }\r\n var $handle = $(e.target).closest(\".\".concat(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($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(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(_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(axis) {\r\n var sides = this._movingSides;\r\n if (\"x\" === axis) {\r\n return sides.left ? \"left\" : \"right\"\r\n }\r\n return sides.top ? \"top\" : \"bottom\"\r\n },\r\n _fitIntoArea(axis, value) {\r\n var _a;\r\n var directionName = this._getDirectionName(axis);\r\n return Math.min(value, null !== (_a = this[\"_\".concat(directionName, \"MaxOffset\")]) && void 0 !== _a ? _a : 1 / 0)\r\n },\r\n _fitDeltaProportionally(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(_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(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(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(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(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(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(e) {\r\n var {\r\n offset: offset\r\n } = e;\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(delta) {\r\n return \"strict\" === this.option(\"stepPrecision\") ? this._roundStrict(delta) : this._roundNotStrict(delta)\r\n },\r\n _getSteps() {\r\n return pairToObject(this.option(\"step\"), !this.option(\"roundStepValue\"))\r\n },\r\n _roundNotStrict(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(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(e) {\r\n var $target = $(e.target);\r\n var hasCornerTopLeftClass = $target.hasClass(\"\".concat(RESIZABLE_HANDLE_CORNER_CLASS, \"-top-left\"));\r\n var hasCornerTopRightClass = $target.hasClass(\"\".concat(RESIZABLE_HANDLE_CORNER_CLASS, \"-top-right\"));\r\n var hasCornerBottomLeftClass = $target.hasClass(\"\".concat(RESIZABLE_HANDLE_CORNER_CLASS, \"-bottom-left\"));\r\n var hasCornerBottomRightClass = $target.hasClass(\"\".concat(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() {\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() {\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(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(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(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(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(width) {\r\n this.option(\"width\", fitIntoRange(width, this.option(\"minWidth\"), this.option(\"maxWidth\")))\r\n },\r\n _renderHeight(height) {\r\n this.option(\"height\", fitIntoRange(height, this.option(\"minHeight\"), this.option(\"maxHeight\")))\r\n },\r\n _optionChanged(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() {\r\n this.$element().find(\".\".concat(RESIZABLE_HANDLE_CLASS)).remove()\r\n },\r\n _useTemplates: () => false\r\n});\r\nregisterComponent(RESIZABLE, Resizable);\r\nexport default Resizable;\r\n","/**\r\n * DevExtreme (esm/ui/resizable.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Resizable from \"../__internal/ui/m_resizable\";\r\nexport default Resizable;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/popup/m_popup_drag.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n locate,\r\n move\r\n} from \"../../../animation/translator\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport {\r\n fitIntoRange\r\n} from \"../../../core/utils/math\";\r\nimport {\r\n getOffset,\r\n getOuterHeight,\r\n getOuterWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n isWindow\r\n} from \"../../../core/utils/type\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n end as dragEndEvent,\r\n move as dragMoveEvent,\r\n start as dragStartEvent\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 {\r\n outsideDragFactor: outsideDragFactor\r\n } = this._positionController;\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/__internal/ui/popup/m_popup_overflow_manager.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../../core/devices\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../../core/utils/window\";\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 {\r\n documentElement: documentElement\r\n } = domAdapter.getDocument();\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 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 (() => {\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 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 (() => {\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 [\"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/__internal/ui/popup/m_popup_position_controller.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar __rest = this && this.__rest || function(s, e) {\r\n var t = {};\r\n for (var p in s) {\r\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) {\r\n t[p] = s[p]\r\n }\r\n }\r\n if (null != s && \"function\" === typeof Object.getOwnPropertySymbols) {\r\n var i = 0;\r\n for (p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) {\r\n t[p[i]] = s[p[i]]\r\n }\r\n }\r\n }\r\n return t\r\n};\r\nimport {\r\n move\r\n} from \"../../../animation/translator\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n originalViewPort\r\n} from \"../../../core/utils/view_port\";\r\nimport {\r\n getWindow\r\n} from \"../../../core/utils/window\";\r\nimport {\r\n OverlayPositionController\r\n} from \"../../ui/overlay/m_overlay_position_controller\";\r\nvar window = getWindow();\r\nclass PopupPositionController extends OverlayPositionController {\r\n constructor(_a) {\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 } = _a, args = __rest(_a, [\"fullScreen\", \"forceApplyBindings\", \"dragOutsideBoundary\", \"dragAndResizeArea\", \"outsideDragFactor\"]);\r\n super(args);\r\n this._props = _extends(_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 var _a, _b;\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 null === (_b = (_a = this._props).forceApplyBindings) || void 0 === _b ? void 0 : _b.call(_a);\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/__internal/ui/popup/m_popup.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport \"../../../ui/toolbar/ui.toolbar.base\";\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 Guid from \"../../../core/guid\";\r\nimport $ from \"../../../core/renderer\";\r\nimport resizeObserverSingleton from \"../../../core/resize_observer\";\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 getBoundingRect\r\n} from \"../../../core/utils/position\";\r\nimport {\r\n addOffsetToMaxHeight,\r\n addOffsetToMinHeight,\r\n getHeight,\r\n getOuterWidth,\r\n getVerticalOffsets,\r\n getVisibleHeight,\r\n getWidth\r\n} from \"../../../core/utils/size\";\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 Button from \"../../../ui/button\";\r\nimport Overlay from \"../../../ui/overlay/ui.overlay\";\r\nimport Resizable from \"../../../ui/resizable\";\r\nimport {\r\n isFluent,\r\n isMaterial,\r\n isMaterialBased\r\n} from \"../../../ui/themes\";\r\nimport * as zIndexPool from \"../../ui/overlay/m_z_index\";\r\nimport PopupDrag from \"./m_popup_drag\";\r\nimport {\r\n createBodyOverflowManager\r\n} from \"./m_popup_overflow_manager\";\r\nimport {\r\n PopupPositionController\r\n} from \"./m_popup_position_controller\";\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\nexport var 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\nexport var 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 TOOLBAR_LABEL_CLASS = \"dx-toolbar-label\";\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 BUTTON_OUTLINED_MODE = \"outlined\";\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 {\r\n platform: platform\r\n } = device;\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() {\r\n return extend(this.callBase(), {\r\n upArrow: e => {\r\n var _a;\r\n null === (_a = this._drag) || void 0 === _a ? void 0 : _a.moveUp(e)\r\n },\r\n downArrow: e => {\r\n var _a;\r\n null === (_a = this._drag) || void 0 === _a ? void 0 : _a.moveDown(e)\r\n },\r\n leftArrow: e => {\r\n var _a;\r\n null === (_a = this._drag) || void 0 === _a ? void 0 : _a.moveLeft(e)\r\n },\r\n rightArrow: e => {\r\n var _a;\r\n null === (_a = this._drag) || void 0 === _a ? void 0 : _a.moveRight(e)\r\n }\r\n })\r\n },\r\n _getDefaultOptions() {\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() {\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: device => \"desktop\" === devices.real().deviceType && \"generic\" === device.platform,\r\n options: {\r\n dragEnabled: true\r\n }\r\n }, {\r\n device: () => \"desktop\" === devices.real().deviceType && !devices.isSimulator(),\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: () => isMaterialBased(),\r\n options: {\r\n useFlatToolbarButtons: true\r\n }\r\n }, {\r\n device: () => isMaterial(),\r\n options: {\r\n useDefaultToolbarButtons: 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() {\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() {\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($(\"<div>\").addClass(POPUP_CONTENT_CLASS)).children().eq(0);\r\n this._toggleContentScrollClass();\r\n this.$overlayContent().attr(\"role\", \"dialog\")\r\n },\r\n _render() {\r\n var isFullscreen = this.option(\"fullScreen\");\r\n this._toggleFullScreenClass(isFullscreen);\r\n this.callBase()\r\n },\r\n _createBodyOverflowManager() {\r\n this._bodyOverflowManager = createBodyOverflowManager()\r\n },\r\n _toggleFullScreenClass(value) {\r\n this.$overlayContent().toggleClass(POPUP_FULL_SCREEN_CLASS, value).toggleClass(POPUP_NORMAL_CLASS, !value)\r\n },\r\n _initTemplates() {\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() {\r\n return this.callBase().concat([\"onResizeStart\", \"onResize\", \"onResizeEnd\"])\r\n },\r\n _contentResizeHandler(entry) {\r\n if (!this._shouldSkipContentResize(entry)) {\r\n this._renderGeometry({\r\n shouldOnlyReposition: true\r\n })\r\n }\r\n },\r\n _doesShowAnimationChangeDimensions() {\r\n var animation = this.option(\"animation\");\r\n return [\"to\", \"from\"].some(prop => {\r\n var _a;\r\n var config = null === (_a = null === animation || void 0 === animation ? void 0 : animation.show) || void 0 === _a ? void 0 : _a[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(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(entry) {\r\n var _a, _b, _c, _d, _e;\r\n var contentBox = null === (_a = entry.contentBoxSize) || void 0 === _a ? void 0 : _a[0];\r\n if (contentBox) {\r\n return parseInt(contentBox.inlineSize, 10) === (null === (_b = this._renderedDimensions) || void 0 === _b ? void 0 : _b.width) && parseInt(contentBox.blockSize, 10) === (null === (_c = this._renderedDimensions) || void 0 === _c ? void 0 : _c.height)\r\n }\r\n var {\r\n contentRect: contentRect\r\n } = entry;\r\n return parseInt(contentRect.width, 10) === (null === (_d = this._renderedDimensions) || void 0 === _d ? void 0 : _d.width) && parseInt(contentRect.height, 10) === (null === (_e = this._renderedDimensions) || void 0 === _e ? void 0 : _e.height)\r\n },\r\n _renderContent() {\r\n this.callBase();\r\n this._observeContentResize(true)\r\n },\r\n _renderContentImpl() {\r\n this._renderTitle();\r\n this.callBase();\r\n this._renderResize();\r\n this._renderBottom()\r\n },\r\n _renderTitle() {\r\n var items = this._getToolbarItems(\"top\");\r\n var {\r\n title: title,\r\n showTitle: showTitle\r\n } = this.option();\r\n if (showTitle && !!title) {\r\n items.unshift({\r\n location: devices.current().ios ? \"center\" : \"before\",\r\n text: title\r\n })\r\n }\r\n if (showTitle || items.length > 0) {\r\n this._$title && this._$title.remove();\r\n var $title = $(\"<div>\").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 this._toggleAriaLabel()\r\n },\r\n _toggleAriaLabel() {\r\n var _a;\r\n var {\r\n title: title,\r\n showTitle: showTitle\r\n } = this.option();\r\n var shouldSetAriaLabel = showTitle && !!title;\r\n var titleId = shouldSetAriaLabel ? new Guid : null;\r\n null === (_a = this._$title) || void 0 === _a ? void 0 : _a.find(\".\".concat(TOOLBAR_LABEL_CLASS)).eq(0).attr(\"id\", titleId);\r\n this.$overlayContent().attr(\"aria-labelledby\", titleId)\r\n },\r\n _renderTemplateByType(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 }\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 _getToolbarName: () => \"dxToolbarBase\",\r\n _renderVisibilityAnimate(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($titleElement) {\r\n this._getTitleRenderAction()({\r\n titleElement: getPublicElement($titleElement)\r\n })\r\n },\r\n _getTitleRenderAction() {\r\n return this._titleRenderAction || this._createTitleRenderAction()\r\n },\r\n _createTitleRenderAction() {\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() {\r\n return {\r\n toolbar: \"top\",\r\n location: \"after\",\r\n template: this._getCloseButtonRenderer()\r\n }\r\n },\r\n _getCloseButtonRenderer() {\r\n return (_, __, container) => {\r\n var $button = $(\"<div>\").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(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 _getToolbarButtonStylingMode(shortcut) {\r\n if (isFluent()) {\r\n return \"done\" === shortcut ? BUTTON_CONTAINED_MODE : BUTTON_OUTLINED_MODE\r\n }\r\n return this.option(\"useFlatToolbarButtons\") ? BUTTON_TEXT_MODE : BUTTON_CONTAINED_MODE\r\n },\r\n _getToolbarButtonType(shortcut) {\r\n if (isFluent() && \"done\" === shortcut || this.option(\"useDefaultToolbarButtons\")) {\r\n return BUTTON_DEFAULT_TYPE\r\n }\r\n return BUTTON_NORMAL_TYPE\r\n },\r\n _getToolbarItemByAlias(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: this._getToolbarButtonType(itemType),\r\n stylingMode: this._getToolbarButtonStylingMode(itemType)\r\n }, data.options || {});\r\n var itemClass = \"\".concat(POPUP_CLASS, \"-\").concat(itemType);\r\n this._toolbarItemClasses.push(itemClass);\r\n return {\r\n template(_, __, container) {\r\n var $toolbarItem = $(\"<div>\").addClass(itemClass).appendTo(container);\r\n that._createComponent($toolbarItem, Button, itemConfig)\r\n }\r\n }\r\n },\r\n _createToolbarItemAction(clickAction) {\r\n return this._createAction(clickAction, {\r\n afterExecute(e) {\r\n e.component.hide()\r\n }\r\n })\r\n },\r\n _renderBottom() {\r\n var items = this._getToolbarItems(\"bottom\");\r\n if (items.length) {\r\n this._$bottom && this._$bottom.remove();\r\n var $bottom = $(\"<div>\").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(value) {\r\n this.callBase(...arguments);\r\n this.$content().toggleClass(DISABLED_STATE_CLASS, Boolean(value))\r\n },\r\n _toggleClasses() {\r\n var aliases = ALLOWED_TOOLBAR_ITEM_ALIASES;\r\n each(aliases, (_, alias) => {\r\n var className = \"\".concat(POPUP_CLASS, \"-\").concat(alias);\r\n if (this._toolbarItemClasses.includes(className)) {\r\n this.$wrapper().addClass(\"\".concat(className, \"-visible\"));\r\n this._$bottom.addClass(className)\r\n } else {\r\n this.$wrapper().removeClass(\"\".concat(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() {\r\n return this.topToolbar()\r\n },\r\n _renderGeometry(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 ? void 0 : options.forceStopAnimation) && useResizeObserver;\r\n this._isAnimationPaused = shouldRepeatAnimation || void 0;\r\n this._stopAnimation();\r\n if (null === options || void 0 === options ? void 0 : 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() {\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() {\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() {\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() {\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() {\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(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() {\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: (currentHeightStrategyClass, popupVerticalPaddings) => currentHeightStrategyClass === HEIGHT_STRATEGIES.flex ? -popupVerticalPaddings : 0,\r\n _chooseHeightStrategy(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(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($container, currentClass) {\r\n var excessClasses = \"\";\r\n for (var name in HEIGHT_STRATEGIES) {\r\n if (HEIGHT_STRATEGIES[name] !== currentClass) {\r\n excessClasses += \" \".concat(HEIGHT_STRATEGIES[name])\r\n }\r\n }\r\n $container.removeClass(excessClasses).addClass(currentClass)\r\n },\r\n _isAutoHeight() {\r\n return \"auto\" === this.$overlayContent().get(0).style.height\r\n },\r\n _splitPopupHeight() {\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() {\r\n return this.callBase() || this.option(\"fullScreen\")\r\n },\r\n _renderDimensions() {\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() {\r\n this._renderGeometry({\r\n isDimensionChange: true\r\n })\r\n },\r\n _clean() {\r\n this.callBase();\r\n this._observeContentResize(false)\r\n },\r\n _dispose() {\r\n this.callBase();\r\n this._toggleBodyScroll(true)\r\n },\r\n _renderFullscreenWidthClass() {\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(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() {\r\n this._renderPosition()\r\n },\r\n _optionChanged(args) {\r\n var _a, _b;\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 if (this.option(\"visible\")) {\r\n this._toggleBodyScroll(value)\r\n }\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 null === (_a = this._resizable) || void 0 === _a ? void 0 : _a.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 === (_b = this._resizable) || void 0 === _b ? void 0 : _b.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() {\r\n return this._$bottom\r\n },\r\n topToolbar() {\r\n return this._$title\r\n },\r\n $content() {\r\n return this._$popupContent\r\n },\r\n content() {\r\n return getPublicElement(this.$content())\r\n },\r\n $overlayContent() {\r\n return this._$content\r\n },\r\n getFocusableElements() {\r\n return this.$wrapper().find(\"[tabindex]\").filter((index, item) => item.getAttribute(\"tabindex\") >= 0)\r\n }\r\n});\r\nregisterComponent(\"dxPopup\", Popup);\r\nexport default Popup;\r\n","/**\r\n * DevExtreme (esm/ui/popup/ui.popup.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Popup from \"../../__internal/ui/popup/m_popup\";\r\nexport default Popup;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/m_dialog.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport Action from \"../../core/action\";\r\nimport config from \"../../core/config\";\r\nimport devices from \"../../core/devices\";\r\nimport Guid from \"../../core/guid\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n resetActiveElement\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport {\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n value as getViewport\r\n} from \"../../core/utils/view_port\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport Popup from \"../../ui/popup/ui.popup\";\r\nimport {\r\n isFluent\r\n} from \"../../ui/themes\";\r\nimport errors from \"../../ui/widget/ui.errors\";\r\nvar window = getWindow();\r\nvar DEFAULT_BUTTON = {\r\n text: \"OK\",\r\n onClick: () => true\r\n};\r\nvar DX_DIALOG_CLASSNAME = \"dx-dialog\";\r\nvar DX_DIALOG_WRAPPER_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-wrapper\");\r\nvar DX_DIALOG_ROOT_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-root\");\r\nvar DX_DIALOG_CONTENT_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-content\");\r\nvar DX_DIALOG_MESSAGE_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-message\");\r\nvar DX_DIALOG_BUTTONS_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-buttons\");\r\nvar DX_DIALOG_BUTTON_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-button\");\r\nvar DX_BUTTON_CLASSNAME = \"dx-button\";\r\nvar getApplyButtonConfig = () => {\r\n if (isFluent()) {\r\n return {\r\n stylingMode: \"contained\",\r\n type: \"default\"\r\n }\r\n }\r\n return {}\r\n};\r\nvar getCancelButtonConfig = () => {\r\n if (isFluent()) {\r\n return {\r\n stylingMode: \"outlined\",\r\n type: \"default\"\r\n }\r\n }\r\n return {}\r\n};\r\nexport var custom = function(options) {\r\n var _a;\r\n var deferred = Deferred();\r\n options = options || {};\r\n var $element = $(\"<div>\").addClass(DX_DIALOG_CLASSNAME).appendTo(getViewport());\r\n var isMessageDefined = \"message\" in options;\r\n var isMessageHtmlDefined = \"messageHtml\" in options;\r\n if (isMessageDefined) {\r\n errors.log(\"W1013\")\r\n }\r\n var messageHtml = String(isMessageHtmlDefined ? options.messageHtml : options.message);\r\n var messageId = options.title ? null : new Guid;\r\n var $message = $(\"<div>\").addClass(DX_DIALOG_MESSAGE_CLASSNAME).html(messageHtml).attr(\"id\", messageId);\r\n var popupToolbarItems = [];\r\n var popupInstance = new Popup($element, extend({\r\n title: null !== (_a = options.title) && void 0 !== _a ? _a : \"\",\r\n showTitle: ensureDefined(options.showTitle, true),\r\n dragEnabled: ensureDefined(options.dragEnabled, true),\r\n height: \"auto\",\r\n width: options.width,\r\n showCloseButton: options.showCloseButton || false,\r\n ignoreChildEvents: false,\r\n container: $element,\r\n visualContainer: window,\r\n dragAndResizeArea: window,\r\n onContentReady(args) {\r\n args.component.$content().addClass(DX_DIALOG_CONTENT_CLASSNAME).append($message);\r\n if (messageId) {\r\n args.component.$overlayContent().attr(\"aria-labelledby\", messageId)\r\n }\r\n },\r\n onShowing(e) {\r\n e.component.bottomToolbar().addClass(DX_DIALOG_BUTTONS_CLASSNAME).find(\".\".concat(DX_BUTTON_CLASSNAME)).addClass(DX_DIALOG_BUTTON_CLASSNAME);\r\n resetActiveElement()\r\n },\r\n onShown(e) {\r\n var $firstButton = e.component.bottomToolbar().find(\".\".concat(DX_BUTTON_CLASSNAME)).first();\r\n eventsEngine.trigger($firstButton, \"focus\")\r\n },\r\n onHiding() {\r\n deferred.reject()\r\n },\r\n onHidden(_ref) {\r\n var {\r\n element: element\r\n } = _ref;\r\n $(element).remove()\r\n },\r\n animation: {\r\n show: {\r\n type: \"pop\",\r\n duration: 400\r\n },\r\n hide: {\r\n type: \"pop\",\r\n duration: 400,\r\n to: {\r\n opacity: 0,\r\n scale: 0\r\n },\r\n from: {\r\n opacity: 1,\r\n scale: 1\r\n }\r\n }\r\n },\r\n rtlEnabled: config().rtlEnabled,\r\n position: {\r\n boundaryOffset: {\r\n h: 10,\r\n v: 0\r\n }\r\n }\r\n }, options.popupOptions));\r\n var buttonOptions = options.buttons || [DEFAULT_BUTTON];\r\n buttonOptions.forEach(options => {\r\n var action = new Action(options.onClick, {\r\n context: popupInstance\r\n });\r\n popupToolbarItems.push({\r\n toolbar: \"bottom\",\r\n location: devices.current().android ? \"after\" : \"center\",\r\n widget: \"dxButton\",\r\n options: _extends(_extends({}, options), {\r\n onClick() {\r\n var result = action.execute(...arguments);\r\n hide(result)\r\n }\r\n })\r\n })\r\n });\r\n popupInstance.option(\"toolbarItems\", popupToolbarItems);\r\n popupInstance.$wrapper().addClass(DX_DIALOG_WRAPPER_CLASSNAME);\r\n if (options.position) {\r\n popupInstance.option(\"position\", options.position)\r\n }\r\n popupInstance.$wrapper().addClass(DX_DIALOG_ROOT_CLASSNAME);\r\n\r\n function hide(value) {\r\n deferred.resolve(value);\r\n popupInstance.hide()\r\n }\r\n return {\r\n show: function() {\r\n if (\"phone\" === devices.real().deviceType) {\r\n var isPortrait = getHeight(window) > getWidth(window);\r\n var width = isPortrait ? \"90%\" : \"60%\";\r\n popupInstance.option({\r\n width: width\r\n })\r\n }\r\n popupInstance.show();\r\n return deferred.promise()\r\n },\r\n hide: hide\r\n }\r\n};\r\nexport var alert = function(messageHtml) {\r\n var title = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"\";\r\n var showTitle = arguments.length > 2 ? arguments[2] : void 0;\r\n var options = isPlainObject(messageHtml) ? messageHtml : {\r\n title: title,\r\n messageHtml: messageHtml,\r\n showTitle: showTitle,\r\n buttons: [_extends(_extends({}, DEFAULT_BUTTON), getApplyButtonConfig())],\r\n dragEnabled: showTitle\r\n };\r\n return custom(options).show()\r\n};\r\nexport var confirm = function(messageHtml) {\r\n var title = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"\";\r\n var showTitle = arguments.length > 2 ? arguments[2] : void 0;\r\n var options = isPlainObject(messageHtml) ? messageHtml : {\r\n title: title,\r\n messageHtml: messageHtml,\r\n showTitle: showTitle,\r\n buttons: [_extends({\r\n text: messageLocalization.format(\"Yes\"),\r\n onClick: () => true\r\n }, getApplyButtonConfig()), _extends({\r\n text: messageLocalization.format(\"No\"),\r\n onClick: () => false\r\n }, getCancelButtonConfig())],\r\n dragEnabled: showTitle\r\n };\r\n return custom(options).show()\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/timezone_calculator/const.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var PathTimeZoneConversion;\r\n! function(PathTimeZoneConversion) {\r\n PathTimeZoneConversion.fromSourceToAppointment = \"toAppointment\";\r\n PathTimeZoneConversion.fromAppointmentToSource = \"fromAppointment\";\r\n PathTimeZoneConversion.fromSourceToGrid = \"toGrid\";\r\n PathTimeZoneConversion.fromGridToSource = \"fromGrid\"\r\n}(PathTimeZoneConversion || (PathTimeZoneConversion = {}));\r\n","/**\r\n * DevExtreme (esm/__internal/core/utils/date.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar addOffsets = (date, offsets) => {\r\n var newDateMs = offsets.reduce((result, offset) => result + offset, date.getTime());\r\n return new Date(newDateMs)\r\n};\r\nexport var dateUtilsTs = {\r\n addOffsets: addOffsets\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/timezone_calculator/calculator.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n dateUtilsTs\r\n} from \"../../../core/utils/date\";\r\nimport {\r\n PathTimeZoneConversion\r\n} from \"./const\";\r\nvar MS_IN_MINUTE = 6e4;\r\nvar MS_IN_HOUR = 60 * MS_IN_MINUTE;\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nexport class TimeZoneCalculator {\r\n constructor(options) {\r\n this.options = options\r\n }\r\n createDate(sourceDate, info) {\r\n var date = new Date(sourceDate);\r\n switch (info.path) {\r\n case PathTimeZoneConversion.fromSourceToAppointment:\r\n return this.getConvertedDate(date, info.appointmentTimeZone, true, false);\r\n case PathTimeZoneConversion.fromAppointmentToSource:\r\n return this.getConvertedDate(date, info.appointmentTimeZone, true, true);\r\n case PathTimeZoneConversion.fromSourceToGrid:\r\n return this.getConvertedDate(date, info.appointmentTimeZone, false, false);\r\n case PathTimeZoneConversion.fromGridToSource:\r\n return this.getConvertedDate(date, info.appointmentTimeZone, false, true);\r\n default:\r\n throw new Error(\"not specified pathTimeZoneConversion\")\r\n }\r\n }\r\n getOffsets(date, appointmentTimezone) {\r\n var clientOffset = -this.getClientOffset(date) / dateUtils.dateToMilliseconds(\"hour\");\r\n var commonOffset = this.getCommonOffset(date);\r\n var appointmentOffset = this.getAppointmentOffset(date, appointmentTimezone);\r\n return {\r\n client: clientOffset,\r\n common: !isDefined(commonOffset) ? clientOffset : commonOffset,\r\n appointment: \"number\" !== typeof appointmentOffset ? clientOffset : appointmentOffset\r\n }\r\n }\r\n getConvertedDateByOffsets(date, clientOffset, targetOffset, isBack) {\r\n var direction = isBack ? -1 : 1;\r\n var resultDate = new Date(date);\r\n return dateUtilsTs.addOffsets(resultDate, [direction * (toMs(\"hour\") * targetOffset), -direction * (toMs(\"hour\") * clientOffset)])\r\n }\r\n getOriginStartDateOffsetInMs(date, timezone, isUTCDate) {\r\n var offsetInHours = this.getOffsetInHours(date, timezone, isUTCDate);\r\n return offsetInHours * MS_IN_HOUR\r\n }\r\n getOffsetInHours(date, timezone, isUTCDate) {\r\n var {\r\n client: client,\r\n appointment: appointment,\r\n common: common\r\n } = this.getOffsets(date, timezone);\r\n if (!!timezone && isUTCDate) {\r\n return appointment - client\r\n }\r\n if (!!timezone && !isUTCDate) {\r\n return appointment - common\r\n }\r\n if (!timezone && isUTCDate) {\r\n return common - client\r\n }\r\n return 0\r\n }\r\n getClientOffset(date) {\r\n return this.options.getClientOffset(date)\r\n }\r\n getCommonOffset(date) {\r\n return this.options.tryGetCommonOffset(date)\r\n }\r\n getAppointmentOffset(date, appointmentTimezone) {\r\n return this.options.tryGetAppointmentOffset(date, appointmentTimezone)\r\n }\r\n getConvertedDate(date, appointmentTimezone, useAppointmentTimeZone, isBack) {\r\n var newDate = new Date(date.getTime());\r\n var offsets = this.getOffsets(newDate, appointmentTimezone);\r\n if (useAppointmentTimeZone && !!appointmentTimezone) {\r\n return this.getConvertedDateByOffsets(date, offsets.client, offsets.appointment, isBack)\r\n }\r\n return this.getConvertedDateByOffsets(date, offsets.client, offsets.common, isBack)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/m_date_adapter.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../core/utils/date\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nclass DateAdapterCore {\r\n constructor(source) {\r\n this._source = new Date(source.getTime ? source.getTime() : source)\r\n }\r\n get source() {\r\n return this._source\r\n }\r\n result() {\r\n return this._source\r\n }\r\n getTimezoneOffset() {\r\n var format = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : void 0;\r\n var value = this._source.getTimezoneOffset();\r\n if (\"minute\" === format) {\r\n return value * toMs(\"minute\")\r\n }\r\n return value\r\n }\r\n getTime() {\r\n return this._source.getTime()\r\n }\r\n setTime(value) {\r\n this._source.setTime(value);\r\n return this\r\n }\r\n addTime(value) {\r\n this._source.setTime(this._source.getTime() + value);\r\n return this\r\n }\r\n setMinutes(value) {\r\n this._source.setMinutes(value);\r\n return this\r\n }\r\n addMinutes(value) {\r\n this._source.setMinutes(this._source.getMinutes() + value);\r\n return this\r\n }\r\n subtractMinutes(value) {\r\n this._source.setMinutes(this._source.getMinutes() - value);\r\n return this\r\n }\r\n}\r\nvar DateAdapter = date => new DateAdapterCore(date);\r\nexport default DateAdapter;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/timezones/m_utils_timezones_data.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errors from \"../../../core/errors\";\r\nimport {\r\n sign\r\n} from \"../../../core/utils/math\";\r\nimport query from \"../../../data/query\";\r\nimport tzData from \"./timezones_data\";\r\nvar getConvertedUntils = value => value.split(\"|\").map(until => {\r\n if (\"Infinity\" === until) {\r\n return null\r\n }\r\n return 1e3 * parseInt(until, 36)\r\n});\r\nvar parseTimezone = timeZoneConfig => {\r\n var {\r\n offsets: offsets\r\n } = timeZoneConfig;\r\n var {\r\n offsetIndices: offsetIndices\r\n } = timeZoneConfig;\r\n var {\r\n untils: untils\r\n } = timeZoneConfig;\r\n var offsetList = offsets.split(\"|\").map(value => parseInt(value));\r\n var offsetIndexList = offsetIndices.split(\"\").map(value => parseInt(value));\r\n var dateList = getConvertedUntils(untils).map((accumulator = 0, value => accumulator += value));\r\n var accumulator;\r\n return {\r\n offsetList: offsetList,\r\n offsetIndexList: offsetIndexList,\r\n dateList: dateList\r\n }\r\n};\r\nclass TimeZoneCache {\r\n constructor() {\r\n this.map = new Map\r\n }\r\n tryGet(id) {\r\n if (!this.map.get(id)) {\r\n var config = timeZoneDataUtils.getTimezoneById(id);\r\n if (!config) {\r\n return false\r\n }\r\n var timeZoneInfo = parseTimezone(config);\r\n this.map.set(id, timeZoneInfo)\r\n }\r\n return this.map.get(id)\r\n }\r\n}\r\nvar tzCache = new TimeZoneCache;\r\nvar timeZoneDataUtils = {\r\n _tzCache: tzCache,\r\n _timeZones: tzData.zones,\r\n getDisplayedTimeZones(timestamp) {\r\n var timeZones = this._timeZones.map(timezone => {\r\n var timeZoneInfo = parseTimezone(timezone);\r\n var offset = this.getUtcOffset(timeZoneInfo, timestamp);\r\n var title = \"(GMT \".concat(this.formatOffset(offset), \") \").concat(this.formatId(timezone.id));\r\n return {\r\n offset: offset,\r\n title: title,\r\n id: timezone.id\r\n }\r\n });\r\n return query(timeZones).sortBy(\"offset\").toArray()\r\n },\r\n formatOffset(offset) {\r\n var hours = Math.floor(offset);\r\n var minutesInDecimal = offset - hours;\r\n var signString = sign(offset) >= 0 ? \"+\" : \"-\";\r\n var hoursString = \"0\".concat(Math.abs(hours)).slice(-2);\r\n var minutesString = minutesInDecimal > 0 ? \":\".concat(60 * minutesInDecimal) : \":00\";\r\n return signString + hoursString + minutesString\r\n },\r\n formatId: id => id.split(\"/\").join(\" - \").split(\"_\").join(\" \"),\r\n getTimezoneById(id) {\r\n if (!id) {\r\n return\r\n }\r\n var tzList = this._timeZones;\r\n for (var i = 0; i < tzList.length; i++) {\r\n var currentId = tzList[i].id;\r\n if (currentId === id) {\r\n return tzList[i]\r\n }\r\n }\r\n errors.log(\"W0009\", id);\r\n return\r\n },\r\n getTimeZoneOffsetById(id, timestamp) {\r\n var timeZoneInfo = tzCache.tryGet(id);\r\n return timeZoneInfo ? this.getUtcOffset(timeZoneInfo, timestamp) : void 0\r\n },\r\n getTimeZoneDeclarationTuple(id, year) {\r\n var timeZoneInfo = tzCache.tryGet(id);\r\n return timeZoneInfo ? this.getTimeZoneDeclarationTupleCore(timeZoneInfo, year) : []\r\n },\r\n getTimeZoneDeclarationTupleCore(timeZoneInfo, year) {\r\n var {\r\n offsetList: offsetList\r\n } = timeZoneInfo;\r\n var {\r\n offsetIndexList: offsetIndexList\r\n } = timeZoneInfo;\r\n var {\r\n dateList: dateList\r\n } = timeZoneInfo;\r\n var tupleResult = [];\r\n for (var i = 0; i < dateList.length; i++) {\r\n var currentDate = dateList[i];\r\n var currentYear = new Date(currentDate).getFullYear();\r\n if (currentYear === year) {\r\n var offset = offsetList[offsetIndexList[i + 1]];\r\n tupleResult.push({\r\n date: currentDate,\r\n offset: -offset / 60\r\n })\r\n }\r\n if (currentYear > year) {\r\n break\r\n }\r\n }\r\n return tupleResult\r\n },\r\n getUtcOffset(timeZoneInfo, dateTimeStamp) {\r\n var {\r\n offsetList: offsetList\r\n } = timeZoneInfo;\r\n var {\r\n offsetIndexList: offsetIndexList\r\n } = timeZoneInfo;\r\n var {\r\n dateList: dateList\r\n } = timeZoneInfo;\r\n var lastIntervalStartIndex = dateList.length - 1 - 1;\r\n var index = lastIntervalStartIndex;\r\n while (index >= 0 && dateTimeStamp < dateList[index]) {\r\n index--\r\n }\r\n var offset = offsetList[offsetIndexList[index + 1]];\r\n return -offset / 60 || offset\r\n }\r\n};\r\nexport default timeZoneDataUtils;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/timezones/timezones_data.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport default {\r\n zones: [{\r\n id: \"Africa/Abidjan\",\r\n untils: \"-u9rgl4|Infinity\",\r\n offsets: \"16.1333|0\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Accra\",\r\n untils: \"-r507yk|1e3pak|681qo|cjvlc|681qo|cjvlc|681qo|cjvlc|681qo|clq9c|681qo|cjvlc|681qo|cjvlc|681qo|cjvlc|681qo|clq9c|681qo|cjvlc|681qo|cjvlc|681qo|cjvlc|681qo|clq9c|681qo|cjvlc|681qo|cjvlc|681qo|cjvlc|681qo|clq9c|681qo|cjvlc|681qo|cjvlc|681qo|cjvlc|681qo|clq9c|681qo|cjvlc|681qo|cjvlc|681qo|Infinity\",\r\n offsets: \"0.8667|0|-20\",\r\n offsetIndices: \"012121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Africa/Addis_Ababa\",\r\n untils: \"-lnsetg|s8mhg|57v020|afrrb0|Infinity\",\r\n offsets: \"-147.2667|-180|-150|-165\",\r\n offsetIndices: \"01231\"\r\n }, {\r\n id: \"Africa/Algiers\",\r\n untils: \"-uozn3l|2qx1nl|5luo0|8y800|a4tc0|7vc00|auqo0|7idc0|b7pc0|6sg00|cyo00|7ayo0|53c00|9idxc0|3i040|51mw0|253uk0|9o2k0|92040|8l3s0|jutc0|4uy840|3rdzw0|46xc00|7x6o0|2xco40|8n180|7x9g0|9d440|kiqg0|9d440|9q2s0|9cyk0|Infinity\",\r\n offsets: \"-9.35|0|-60|-120\",\r\n offsetIndices: \"0121212121212121232321212122321212\"\r\n }, {\r\n id: \"Africa/Asmara\",\r\n untils: \"-lnsetg|s8mhg|57v020|afrrb0|Infinity\",\r\n offsets: \"-147.2667|-180|-150|-165\",\r\n offsetIndices: \"01231\"\r\n }, {\r\n id: \"Africa/Asmera\",\r\n untils: \"-lnsetg|s8mhg|57v020|afrrb0|Infinity\",\r\n offsets: \"-147.2667|-180|-150|-165\",\r\n offsetIndices: \"01231\"\r\n }, {\r\n id: \"Africa/Bamako\",\r\n untils: \"-u9rgl4|Infinity\",\r\n offsets: \"16.1333|0\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Bangui\",\r\n untils: \"-q9qbao|Infinity\",\r\n offsets: \"-13.6|-60\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Banjul\",\r\n untils: \"-u9rgl4|Infinity\",\r\n offsets: \"16.1333|0\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Bissau\",\r\n untils: \"-u9rek0|wvoyo0|Infinity\",\r\n offsets: \"62.3333|60|0\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"Africa/Blantyre\",\r\n untils: \"-yvtfd8|Infinity\",\r\n offsets: \"-130.3333|-120\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Brazzaville\",\r\n untils: \"-q9qbao|Infinity\",\r\n offsets: \"-13.6|-60\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Bujumbura\",\r\n untils: \"-yvtfd8|Infinity\",\r\n offsets: \"-130.3333|-120\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Cairo\",\r\n untils: \"-fdls80|40d80|a31g0|7x3w0|a4w40|aqyk0|80ys0|b07w0|7tk40|b07w0|8jhg0|a8fw0|60go40|7el80|awo40|7v980|awqw0|7tk40|b07w0|7tk40|ayd80|7tk40|ayd80|7tk40|ayd80|7tk40|b07w0|7tk40|ayd80|7tk40|ayd80|7ves0|awik0|7ves0|ayd80|7ves0|awik0|7ves0|awik0|7ves0|awik0|7ves0|ayd80|7ves0|awik0|7ves0|awik0|7ves0|awik0|7ves0|ayd80|7ves0|awik0|7ves0|awik0|7ves0|awik0|7ves0|ayd80|7ves0|awik0|7ves0|f9x80|3i040|eluk0|462s0|ayd80|7ves0|awik0|7ves0|awik0|7ves0|awik0|7ves0|ayd80|7ves0|b5rw0|7m5g0|awik0|7ves0|awik0|7ves0|ayd80|7ves0|awik0|7ves0|awik0|7ves0|aqvs0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7k580|b5xg0|6u7w0|bvus0|6h980|c8tg0|64ak0|cyqs0|5anw0|1jms0|12t80|1w22s0|25p80|1sw40|2vmk0|Infinity\",\r\n offsets: \"-120|-180\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Africa/Casablanca\",\r\n untils: \"-tblt9g|di7nxg|3huk0|51k40|2znuk0|2dp9g0|776k0|8nt2s0|657w0|3ifxg0|3jp80|va040|4qak0|e1ms0|7pp80|cnms0|3afw0|2xi840|xqqk0|bp56s0|4qak0|e1ms0|45x80|d2g40|51ek0|c8tg0|64ak0|e1sc0|47uo0|1leo0|23xc0|asw00|3lmo0|1qyo0|40g00|7x6o0|4mo00|1stc0|4deo0|7x6o0|3ylc0|1stc0|51hc0|7x6o0|3lmo0|1stc0|5reo0|7k800|2vpc0|25s00|64dc0|7k800|2iqo0|1stc0|gkao0|1stc0|g7c00|25s00|g7c00|1stc0|g7c00|25s00|g7c00|1stc0|gkao0|1stc0|g7c00|25s00|g7c00|1stc0|gkao0|1stc0|g7c00|25s00|g7c00|1stc0|g7c00|25s00|g7c00|1stc0|gkao0|1stc0|g7c00|25s00|g7c00|1stc0|g7c00|25s00|g7c00|25s00|g7c00|1stc0|g7c00|25s00|Infinity\",\r\n offsets: \"30.3333|0|-60\",\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"Africa/Ceuta\",\r\n untils: \"-qyiys0|7x3w0|2vt440|8sqs0|ssyk0|8n6s0|9px80|905g0|a2yo0|902o0|k69dc0|657w0|3ifxg0|3jp80|va040|4qak0|e1ms0|7pp80|cnms0|3afw0|2xi840|129us0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"0|-60|-120\",\r\n offsetIndices: \"010101010101010101010121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Africa/Conakry\",\r\n untils: \"-u9rgl4|Infinity\",\r\n offsets: \"16.1333|0\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Dakar\",\r\n untils: \"-u9rgl4|Infinity\",\r\n offsets: \"16.1333|0\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Dar_es_Salaam\",\r\n untils: \"-lnsetg|s8mhg|57v020|afrrb0|Infinity\",\r\n offsets: \"-147.2667|-180|-150|-165\",\r\n offsetIndices: \"01231\"\r\n }, {\r\n id: \"Africa/Djibouti\",\r\n untils: \"-lnsetg|s8mhg|57v020|afrrb0|Infinity\",\r\n offsets: \"-147.2667|-180|-150|-165\",\r\n offsetIndices: \"01231\"\r\n }, {\r\n id: \"Africa/Douala\",\r\n untils: \"-q9qbao|Infinity\",\r\n offsets: \"-13.6|-60\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/El_Aaiun\",\r\n untils: \"-isdxk0|m2g0c0|vek0|4qak0|e1ms0|7pp80|cnms0|3afw0|fke5g0|4qak0|e1ms0|45x80|d2g40|51ek0|c8tg0|64ak0|e1sc0|47uo0|1leo0|23xc0|asw00|3lmo0|1qyo0|40g00|7x6o0|4mo00|1stc0|4deo0|7x6o0|3ylc0|1stc0|51hc0|7x6o0|3lmo0|1stc0|5reo0|7k800|2vpc0|25s00|64dc0|7k800|2iqo0|1stc0|gkao0|1stc0|g7c00|25s00|g7c00|1stc0|g7c00|25s00|g7c00|1stc0|gkao0|1stc0|g7c00|25s00|g7c00|1stc0|gkao0|1stc0|g7c00|25s00|g7c00|1stc0|g7c00|25s00|g7c00|1stc0|gkao0|1stc0|g7c00|25s00|g7c00|1stc0|g7c00|25s00|g7c00|25s00|g7c00|1stc0|g7c00|25s00|Infinity\",\r\n offsets: \"52.8|60|0|-60\",\r\n offsetIndices: \"012323232323232323232323232323232323232323232323232323232323232323232323232323232323\"\r\n }, {\r\n id: \"Africa/Freetown\",\r\n untils: \"-u9rgl4|Infinity\",\r\n offsets: \"16.1333|0\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Gaborone\",\r\n untils: \"-yvtfd8|Infinity\",\r\n offsets: \"-130.3333|-120\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Harare\",\r\n untils: \"-yvtfd8|Infinity\",\r\n offsets: \"-130.3333|-120\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Johannesburg\",\r\n untils: \"-yvtdi0|kn7o60|9cyk0|9d440|9cyk0|Infinity\",\r\n offsets: \"-90|-120|-180\",\r\n offsetIndices: \"012121\"\r\n }, {\r\n id: \"Africa/Juba\",\r\n untils: \"-kcrsis|kixuys|8l6k0|a4w40|8n180|a6qs0|8n180|a31g0|8ovw0|a16s0|8qqk0|9zc40|8sl80|9xhg0|8wak0|9ts40|8y580|a4w40|8n180|a31g0|8ovw0|a16s0|8sl80|9xhg0|8ufw0|9vms0|8wak0|9ts40|8y580|a4w40|8ovw0|a16s0|8qqk0|7frw40|Infinity\",\r\n offsets: \"-126.4667|-120|-180\",\r\n offsetIndices: \"01212121212121212121212121212121212\"\r\n }, {\r\n id: \"Africa/Kampala\",\r\n untils: \"-lnsetg|s8mhg|57v020|afrrb0|Infinity\",\r\n offsets: \"-147.2667|-180|-150|-165\",\r\n offsetIndices: \"01231\"\r\n }, {\r\n id: \"Africa/Khartoum\",\r\n untils: \"-kcrsow|kixv4w|8l6k0|a4w40|8n180|a6qs0|8n180|a31g0|8ovw0|a16s0|8qqk0|9zc40|8sl80|9xhg0|8wak0|9ts40|8y580|a4w40|8n180|a31g0|8ovw0|a16s0|8sl80|9xhg0|8ufw0|9vms0|8wak0|9ts40|8y580|a4w40|8ovw0|a16s0|8qqk0|7frw40|9ac180|Infinity\",\r\n offsets: \"-130.1333|-120|-180\",\r\n offsetIndices: \"012121212121212121212121212121212121\"\r\n }, {\r\n id: \"Africa/Kigali\",\r\n untils: \"-yvtfd8|Infinity\",\r\n offsets: \"-130.3333|-120\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Kinshasa\",\r\n untils: \"-q9qbao|Infinity\",\r\n offsets: \"-13.6|-60\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Lagos\",\r\n untils: \"-q9qbao|Infinity\",\r\n offsets: \"-13.6|-60\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Libreville\",\r\n untils: \"-q9qbao|Infinity\",\r\n offsets: \"-13.6|-60\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Lome\",\r\n untils: \"-u9rgl4|Infinity\",\r\n offsets: \"16.1333|0\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Luanda\",\r\n untils: \"-q9qbao|Infinity\",\r\n offsets: \"-13.6|-60\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Lubumbashi\",\r\n untils: \"-yvtfd8|Infinity\",\r\n offsets: \"-130.3333|-120\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Lusaka\",\r\n untils: \"-yvtfd8|Infinity\",\r\n offsets: \"-130.3333|-120\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Malabo\",\r\n untils: \"-q9qbao|Infinity\",\r\n offsets: \"-13.6|-60\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Maputo\",\r\n untils: \"-yvtfd8|Infinity\",\r\n offsets: \"-130.3333|-120\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Maseru\",\r\n untils: \"-yvtdi0|kn7o60|9cyk0|9d440|9cyk0|Infinity\",\r\n offsets: \"-90|-120|-180\",\r\n offsetIndices: \"012121\"\r\n }, {\r\n id: \"Africa/Mbabane\",\r\n untils: \"-yvtdi0|kn7o60|9cyk0|9d440|9cyk0|Infinity\",\r\n offsets: \"-90|-120|-180\",\r\n offsetIndices: \"012121\"\r\n }, {\r\n id: \"Africa/Mogadishu\",\r\n untils: \"-lnsetg|s8mhg|57v020|afrrb0|Infinity\",\r\n offsets: \"-147.2667|-180|-150|-165\",\r\n offsetIndices: \"01231\"\r\n }, {\r\n id: \"Africa/Monrovia\",\r\n untils: \"-qj6zc4|rl202a|Infinity\",\r\n offsets: \"43.1333|44.5|0\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"Africa/Nairobi\",\r\n untils: \"-lnsetg|s8mhg|57v020|afrrb0|Infinity\",\r\n offsets: \"-147.2667|-180|-150|-165\",\r\n offsetIndices: \"01231\"\r\n }, {\r\n id: \"Africa/Ndjamena\",\r\n untils: \"-u9rk4c|zdk5cc|7iak0|Infinity\",\r\n offsets: \"-60.2|-60|-120\",\r\n offsetIndices: \"0121\"\r\n }, {\r\n id: \"Africa/Niamey\",\r\n untils: \"-q9qbao|Infinity\",\r\n offsets: \"-13.6|-60\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Nouakchott\",\r\n untils: \"-u9rgl4|Infinity\",\r\n offsets: \"16.1333|0\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Ouagadougou\",\r\n untils: \"-u9rgl4|Infinity\",\r\n offsets: \"16.1333|0\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Porto-Novo\",\r\n untils: \"-q9qbao|Infinity\",\r\n offsets: \"-13.6|-60\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Sao_Tome\",\r\n untils: \"-u9rhc0|1jbm840|irxc0|Infinity\",\r\n offsets: \"36.75|0|-60\",\r\n offsetIndices: \"0121\"\r\n }, {\r\n id: \"Africa/Timbuktu\",\r\n untils: \"-u9rgl4|Infinity\",\r\n offsets: \"16.1333|0\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Africa/Tripoli\",\r\n untils: \"-q3gfrw|gl6ajw|422c0|xado0|4bbo0|wrpg0|4s580|1kdpg0|c05bw0|4mqs0|9et80|9d440|9et80|9eys0|9et80|9mdg0|95jw0|9io40|9cyk0|99es0|9et80|9eys0|9et80|9d440|9et80|b2840|3cf3w0|9kis0|9et80|7vqyw0|75eo0|asw00|Infinity\",\r\n offsets: \"-52.7333|-60|-120\",\r\n offsetIndices: \"012121212121212121212121212122122\"\r\n }, {\r\n id: \"Africa/Tunis\",\r\n untils: \"-uozn3l|enxevl|b5uo0|53c00|u8w00|7x9g0|c8w80|7k800|z3w0|ew40|8bx80|9d440|9nx00|925o0|8l100|gi3440|7k800|b9k00|7vc00|51mw00|5ytc0|9d1c0|9d1c0|b9k00|7thc0|7m0tc0|7tk40|93us0|b5uo0|7k800|b5uo0|7x6o0|asw00|Infinity\",\r\n offsets: \"-9.35|-60|-120\",\r\n offsetIndices: \"0121212121212121212121212121212121\"\r\n }, {\r\n id: \"Africa/Windhoek\",\r\n untils: \"-yvtdi0|kn7o60|9cyk0|oj2nw0|235k00|8lho0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|Infinity\",\r\n offsets: \"-90|-120|-180|-60\",\r\n offsetIndices: \"01211313131313131313131313131313131313131313131313131\"\r\n }, {\r\n id: \"America/Adak\",\r\n untils: \"-ek1nw0|1tyug0|2e6s0|b7yik0|12y080|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|1l940|7rs80|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"660|600|540\",\r\n offsetIndices: \"011001010101010101010101010101010111212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Anchorage\",\r\n untils: \"-ek1qo0|1tyx80|2e400|b7yik0|12y080|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|1l940|7rs80|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"600|540|480\",\r\n offsetIndices: \"011001010101010101010101010101010111212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Anguilla\",\r\n untils: \"-u6m79w|Infinity\",\r\n offsets: \"246.0667|240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"America/Antigua\",\r\n untils: \"-u6m79w|Infinity\",\r\n offsets: \"246.0667|240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"America/Araguaina\",\r\n untils: \"-t85j2o|99k8mo|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|cyqs0|5ed80|dbpg0|64ak0|2yl440|64ak0|c8tg0|6u7w0|bxpg0|7iak0|biw40|6u7w0|biw40|7k580|biw40|6u7w0|c8tg0|6h980|dbpg0|5ed80|51udg0|64ak0|Infinity\",\r\n offsets: \"192.8|180|120\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Argentina/Buenos_Aires\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6u7w0|bvus0|6u7w0|bvus0|776k0|7qcg40|3yik0|b5xg0|7k580|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"01212121212121212121212121212121212121212123232323232323232\"\r\n }, {\r\n id: \"America/Argentina/Catamarca\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6u7w0|bvxk0|6u540|bvus0|776k0|5v42s0|z9g0|1u93w0|3yik0|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"01212121212121212121212121212121212121212123232323132321232\"\r\n }, {\r\n id: \"America/Argentina/ComodRivadavia\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6u7w0|bvxk0|6u540|bvus0|776k0|5v42s0|z9g0|1u93w0|3yik0|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"01212121212121212121212121212121212121212123232323132321232\"\r\n }, {\r\n id: \"America/Argentina/Cordoba\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6u7w0|bvxk0|6u540|bvus0|776k0|7qcg40|3yik0|b5xg0|7k580|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"01212121212121212121212121212121212121212123232323132323232\"\r\n }, {\r\n id: \"America/Argentina/Jujuy\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|c8w80|776k0|ag040|7k2g0|bvus0|776k0|7qcg40|3yik0|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"012121212121212121212121212121212121212121232323121323232\"\r\n }, {\r\n id: \"America/Argentina/La_Rioja\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6qik0|3g880|8jbw0|6u7w0|bvus0|776k0|5v42s0|z9g0|1u93w0|3yik0|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"012121212121212121212121212121212121212121232323231232321232\"\r\n }, {\r\n id: \"America/Argentina/Mendoza\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bktk0|71mk0|bqas0|73h80|bvus0|773s0|5unes0|6hes0|1p7mk0|3yik0|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"01212121212121212121212121212121212121212123232312121321232\"\r\n }, {\r\n id: \"America/Argentina/Rio_Gallegos\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6u7w0|bvus0|6u7w0|bvus0|776k0|5v42s0|z9g0|1u93w0|3yik0|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"01212121212121212121212121212121212121212123232323232321232\"\r\n }, {\r\n id: \"America/Argentina/Salta\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6u7w0|bvxk0|6u540|bvus0|776k0|7qcg40|3yik0|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"012121212121212121212121212121212121212121232323231323232\"\r\n }, {\r\n id: \"America/Argentina/San_Juan\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6qik0|3g880|8jbw0|6u7w0|bvus0|776k0|5v2840|2txg0|1sgak0|3yik0|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"012121212121212121212121212121212121212121232323231232321232\"\r\n }, {\r\n id: \"America/Argentina/San_Luis\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|7pp80|b2aw0|71mk0|4qg40|6s8ik0|2txg0|1sgak0|14nw0|2gys0|b5xg0|7k580|b5xg0|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"012121212121212121212121212121212121212121232323121212321212\"\r\n }, {\r\n id: \"America/Argentina/Tucuman\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6u7w0|bvxk0|6u540|bvus0|776k0|5v42s0|mas0|1um2k0|3yik0|b5xg0|7k580|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212323232313232123232\"\r\n }, {\r\n id: \"America/Argentina/Ushuaia\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6u7w0|bvus0|6u7w0|bvus0|776k0|5v0dg0|12ys0|1u93w0|3yik0|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"01212121212121212121212121212121212121212123232323232321232\"\r\n }, {\r\n id: \"America/Aruba\",\r\n untils: \"-u7lckd|rlo7qd|Infinity\",\r\n offsets: \"275.7833|270|240\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"America/Asuncion\",\r\n untils: \"-jy93zk|ldwofk|s4vw0|s6w40|7tek0|b0dg0|7rjw0|b0dg0|7rjw0|b0dg0|9cyk0|9eys0|9et80|9eys0|9cyk0|9eys0|9cyk0|9eys0|9cyk0|9eys0|9et80|9eys0|9cyk0|9eys0|9cyk0|9eys0|9cyk0|9eys0|9et80|9eys0|9cyk0|ahus0|8a2k0|9eys0|9cyk0|9o840|7k580|b7s40|93p80|9gtg0|7nuk0|b42s0|7lzw0|b5xg0|7tek0|b9ms0|776k0|biw40|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|9cyk0|7kas0|b5rw0|7x9g0|ast80|a31g0|7k580|b5xg0|7k580|b5xg0|7k580|biw40|776k0|biw40|776k0|biw40|8zzw0|905g0|9px80|905g0|9px80|9d440|8n180|a31g0|8n180|a31g0|8n180|a31g0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|a31g0|8n180|a31g0|8n180|a31g0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|a31g0|8n180|a31g0|8n180|a31g0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|a31g0|8n180|a31g0|8n180|a31g0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|a31g0|8n180|a31g0|8n180|a31g0|Infinity\",\r\n offsets: \"230.6667|240|180\",\r\n offsetIndices: \"012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"America/Atikokan\",\r\n untils: \"-qzov40|a2vw0|bfxjw0|pmdk0|1tz8c0|2dsw0|Infinity\",\r\n offsets: \"360|300\",\r\n offsetIndices: \"0101111\"\r\n }, {\r\n id: \"America/Atka\",\r\n untils: \"-ek1nw0|1tyug0|2e6s0|b7yik0|12y080|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|1l940|7rs80|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"660|600|540\",\r\n offsetIndices: \"011001010101010101010101010101010111212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Bahia_Banderas\",\r\n untils: \"-p1u4k0|2u7jw0|1sgdc0|8n400|7thc0|9eys0|591h80|3ie2s0|axvpg0|dpgw40|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|9q2s0|7k580|9q2s0|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|asqg0|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|Infinity\",\r\n offsets: \"421|420|360|480|300\",\r\n offsetIndices: \"0121212131212121212121212121212121212142424242424242424242424242424242424242424242424242424242\"\r\n }, {\r\n id: \"America/Bahia\",\r\n untils: \"-t85kv8|99kaf8|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|cyqs0|5ed80|dbpg0|64ak0|cyqs0|64ak0|cls40|5rbw0|dbpg0|51ek0|dbpg0|6h980|c8tg0|6h980|c8tg0|64ak0|c8tg0|6u7w0|bxpg0|7iak0|biw40|6u7w0|biw40|7k580|biw40|6u7w0|c8tg0|6h980|dbpg0|5ed80|4irc40|6u7w0|Infinity\",\r\n offsets: \"154.0667|180|120\",\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Barbados\",\r\n untils: \"-o0aiaj|46b400|npv1mj|5rbw0|a31g0|8n180|a31g0|8n180|ag040|84ik0|Infinity\",\r\n offsets: \"238.4833|240|180\",\r\n offsetIndices: \"00121212121\"\r\n }, {\r\n id: \"America/Belem\",\r\n untils: \"-t85j0s|99k8ks|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|Infinity\",\r\n offsets: \"193.9333|180|120\",\r\n offsetIndices: \"012121212121212121212121212121\"\r\n }, {\r\n id: \"America/Belize\",\r\n untils: \"-u52ic0|3edkc0|6ham0|c8s20|6u9a0|bvte0|6u9a0|bvte0|6u9a0|c8s20|6ham0|c8s20|6ham0|c8s20|6u9a0|bvte0|6u9a0|bvte0|6u9a0|bvte0|6u9a0|c8s20|6ham0|c8s20|6ham0|c8s20|6u9a0|bvte0|6u9a0|bvte0|6u9a0|c8s20|6ham0|c8s20|6ham0|c8s20|6ham0|c8s20|6u9a0|bvte0|6u9a0|bvte0|6u9a0|c8s20|6ham0|c8s20|6ham0|c8s20|6u9a0|bvte0|6u9a0|g2t2q0|3e580|4mcys0|2vmk0|Infinity\",\r\n offsets: \"352.8|360|330|300\",\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121213131\"\r\n }, {\r\n id: \"America/Blanc-Sablon\",\r\n untils: \"-qzp0o0|a2vw0|c5jxg0|1tzdw0|2dnc0|Infinity\",\r\n offsets: \"240|180\",\r\n offsetIndices: \"010110\"\r\n }, {\r\n id: \"America/Boa_Vista\",\r\n untils: \"-t85grk|99k93k|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|62xk40|7k580|biw40|cvw0|Infinity\",\r\n offsets: \"242.6667|240|180\",\r\n offsetIndices: \"0121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Bogota\",\r\n untils: \"-srdoy8|14f1hi8|ha580|Infinity\",\r\n offsets: \"296.2667|300|240\",\r\n offsetIndices: \"0121\"\r\n }, {\r\n id: \"America/Boise\",\r\n untils: \"-r0emw0|ast80|7x9g0|ast80|1um840|9s7jw0|1tz5k0|2dvo0|b9gdg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|51k40|doik0|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"480|420|360\",\r\n offsetIndices: \"0101012212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Buenos_Aires\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6u7w0|bvus0|6u7w0|bvus0|776k0|7qcg40|3yik0|b5xg0|7k580|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"01212121212121212121212121212121212121212123232323232323232\"\r\n }, {\r\n id: \"America/Cambridge_Bay\",\r\n untils: \"-q3gdc0|bjeec0|1tz5k0|2dvo0|a7n3w0|9q000|7k85k0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x6o0|ast80|ct40|7kj40|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"0|420|360|300\",\r\n offsetIndices: \"0122131212121212121212121212121212121212121212233221212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Campo_Grande\",\r\n untils: \"-t85hvw|99ka7w|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|cyqs0|5ed80|dbpg0|64ak0|cyqs0|64ak0|cls40|5rbw0|dbpg0|51ek0|dbpg0|6h980|c8tg0|6h980|c8tg0|64ak0|c8tg0|6u7w0|bxpg0|7iak0|biw40|6u7w0|biw40|7k580|biw40|6u7w0|c8tg0|6h980|dbpg0|5ed80|cls40|64ak0|dfes0|5nmk0|c8tg0|6h980|dbpg0|5rbw0|bvus0|6h980|cls40|64ak0|cls40|6h980|c8tg0|6h980|c8tg0|6u7w0|c8tg0|64ak0|cls40|64ak0|cls40|6h980|c8tg0|6h980|c8tg0|6h980|c8tg0|6h980|dbpg0|5ed80|Infinity\",\r\n offsets: \"218.4667|240|180\",\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Cancun\",\r\n untils: \"-p1u7c0|vauo00|7ggw40|afuk0|8a840|afuk0|8a840|64ak0|4bms0|8a840|ast80|7x9g0|ast80|9q2s0|7k580|9q2s0|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|51k40|Infinity\",\r\n offsets: \"347.0667|360|300|240\",\r\n offsetIndices: \"0123232321212121212121212121212121212121212\"\r\n }, {\r\n id: \"America/Caracas\",\r\n untils: \"-u7lcxw|rlo83w|meoxm0|4dps00|Infinity\",\r\n offsets: \"267.6667|270|240\",\r\n offsetIndices: \"01212\"\r\n }, {\r\n id: \"America/Catamarca\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6u7w0|bvxk0|6u540|bvus0|776k0|5v42s0|z9g0|1u93w0|3yik0|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"01212121212121212121212121212121212121212123232323132321232\"\r\n }, {\r\n id: \"America/Cayenne\",\r\n untils: \"-uj7yb4|tcw6r4|Infinity\",\r\n offsets: \"209.3333|240|180\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"America/Cayman\",\r\n untils: \"-w757vc|Infinity\",\r\n offsets: \"319.6|300\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"America/Chicago\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bvus0|776k0|7kas0|b5rw0|9d440|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|7x9g0|dbjw0|8a840|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|6w840|1tz8c0|2dsw0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"America/Chihuahua\",\r\n untils: \"-p1u4k0|2u7jw0|1sgdc0|8n400|7thc0|9eys0|xes2s0|afuk0|8a840|afuk0|8aaw0|afuk0|8a840|ast80|7x9g0|ast80|9q2s0|7k580|9q2s0|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|Infinity\",\r\n offsets: \"424.3333|420|360|300\",\r\n offsetIndices: \"0121212323221212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Coral_Harbour\",\r\n untils: \"-qzov40|a2vw0|bfxjw0|pmdk0|1tz8c0|2dsw0|Infinity\",\r\n offsets: \"360|300\",\r\n offsetIndices: \"0101111\"\r\n }, {\r\n id: \"America/Cordoba\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6u7w0|bvxk0|6u540|bvus0|776k0|7qcg40|3yik0|b5xg0|7k580|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"01212121212121212121212121212121212121212123232323132323232\"\r\n }, {\r\n id: \"America/Costa_Rica\",\r\n untils: \"-pjw8fn|ubtl3n|51ek0|doo40|51ek0|5jso40|8drw0|acas0|2xh80|Infinity\",\r\n offsets: \"336.2167|360|300\",\r\n offsetIndices: \"0121212121\"\r\n }, {\r\n id: \"America/Creston\",\r\n untils: \"-rshz80|vbus0|Infinity\",\r\n offsets: \"420|480\",\r\n offsetIndices: \"010\"\r\n }, {\r\n id: \"America/Cuiaba\",\r\n untils: \"-t85hm4|99k9y4|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|cyqs0|5ed80|dbpg0|64ak0|cyqs0|64ak0|cls40|5rbw0|dbpg0|51ek0|dbpg0|6h980|c8tg0|6h980|c8tg0|64ak0|c8tg0|6u7w0|bxpg0|7iak0|biw40|6u7w0|biw40|7k580|biw40|6u7w0|c8tg0|6h980|dbpg0|5ed80|w5hg0|5nmk0|c8tg0|6h980|dbpg0|5rbw0|bvus0|6h980|cls40|64ak0|cls40|6h980|c8tg0|6h980|c8tg0|6u7w0|c8tg0|64ak0|cls40|64ak0|cls40|6h980|c8tg0|6h980|c8tg0|6h980|c8tg0|6h980|dbpg0|5ed80|Infinity\",\r\n offsets: \"224.3333|240|180\",\r\n offsetIndices: \"012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Curacao\",\r\n untils: \"-u7lckd|rlo7qd|Infinity\",\r\n offsets: \"275.7833|270|240\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"America/Danmarkshavn\",\r\n untils: \"-rvusjk|x8nx3k|8zrk0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|53hk0|Infinity\",\r\n offsets: \"74.6667|180|120|0\",\r\n offsetIndices: \"01212121212121212121212121212121213\"\r\n }, {\r\n id: \"America/Dawson_Creek\",\r\n untils: \"-qzopk0|a2vw0|c5jxg0|1tz2s0|2dyg0|tj1g0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|69uk0|Infinity\",\r\n offsets: \"480|420\",\r\n offsetIndices: \"0101101010101010101010101010101010101010101010101010101011\"\r\n }, {\r\n id: \"America/Dawson\",\r\n untils: \"-qzoms0|a2vw0|asys0|882c0|bmiwc0|1tz000|2e180|a7n3w0|9q000|465k00|3e2is0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|Infinity\",\r\n offsets: \"540|480|420\",\r\n offsetIndices: \"01010110201212121212121212121212121212121212121212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"America/Denver\",\r\n untils: \"-r0epo0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|2vmk0|ataw40|1tz5k0|2dvo0|a7n9g0|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"420|360\",\r\n offsetIndices: \"01010101011010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"America/Detroit\",\r\n untils: \"-xx8dyd|5eraud|dyeyk0|1tzb40|2dq40|1c9440|7x3w0|9rlbxo|71s2c|9d440|9cyk0|2cmdg0|9cyk0|3lpg0|f4d80|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"332.1833|360|300|240\",\r\n offsetIndices: \"0123323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"America/Dominica\",\r\n untils: \"-u6m79w|Infinity\",\r\n offsets: \"246.0667|240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"America/Edmonton\",\r\n untils: \"-x1yazk|629ink|a2vw0|8n6s0|29ek0|h6lg0|9px80|905g0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|9l0g40|1tz5k0|2dvo0|tj1g0|7x3w0|ctzk40|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"453.8667|420|360\",\r\n offsetIndices: \"0121212121212122121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Eirunepe\",\r\n untils: \"-t85f28|99ka68|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|2yy2s0|6h980|7hg2s0|2t2t80|Infinity\",\r\n offsets: \"279.4667|300|240\",\r\n offsetIndices: \"0121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/El_Salvador\",\r\n untils: \"-pkm4tc|ymao5c|7k580|b5xg0|7k580|Infinity\",\r\n offsets: \"356.8|360|300\",\r\n offsetIndices: \"012121\"\r\n }, {\r\n id: \"America/Ensenada\",\r\n untils: \"-p1u1s0|11jrw0|1sns00|1sgdc0|71s40|9cyk0|5iidg0|1q6700|4lfk0|190g40|eluk0|2r4o80|7x6o0|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|84qys0|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|77c40|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"468.0667|420|480\",\r\n offsetIndices: \"012121211212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"America/Fort_Nelson\",\r\n untils: \"-qzopk0|a2vw0|c5jxg0|1tz2s0|2dyg0|tj1g0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|Infinity\",\r\n offsets: \"480|420\",\r\n offsetIndices: \"01011010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101\"\r\n }, {\r\n id: \"America/Fort_Wayne\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|baw840|51ek0|6w840|1tz8c0|2dsw0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|19q7w0|asys0|5qonw0|9cyk0|9d440|9cyk0|ihslg0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300|240\",\r\n offsetIndices: \"010101011010101010101010101010121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Fortaleza\",\r\n untils: \"-t85kvc|99kafc|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|cyqs0|5ed80|dbpg0|64ak0|514g40|7k580|biw40|puk0|id6s0|6h980|Infinity\",\r\n offsets: \"154|180|120\",\r\n offsetIndices: \"0121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Glace_Bay\",\r\n untils: \"-z94kwc|89fk8c|a2vw0|c5jxg0|1tzdw0|2dnc0|3y8g40|7x3w0|9pa5g0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"239.8|240|180\",\r\n offsetIndices: \"012122121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Godthab\",\r\n untils: \"-rvumf4|x8nqz4|8zrk0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"206.9333|180|120\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Goose_Bay\",\r\n untils: \"-qzp20k|a2vw0|8kjbw0|kzjyk|7k580|b5xg0|7k580|b5xg0|7k580|biw40|776k0|biw40|7k580|b5xg0|7k580|b5xg0|1pb260|2dly0|biw40|7k580|b5xg0|7k580|b5xg0|7k580|b5xg0|7k580|biw40|7k580|ag040|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|6y2s0|22420|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a2lo|afuk0|8a840|asqg0|7xc80|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8tec|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"210.8667|150.8667|210|150|240|180|120\",\r\n offsetIndices: \"010232323232323233232323232323232323232323232323232323232324545454545454545454545454545454545454545454546454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454\"\r\n }, {\r\n id: \"America/Grand_Turk\",\r\n untils: \"-u85og2|z3brw2|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|18ais0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"307.1667|300|240\",\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121212121212121212121212121222121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Grenada\",\r\n untils: \"-u6m79w|Infinity\",\r\n offsets: \"246.0667|240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"America/Guadeloupe\",\r\n untils: \"-u6m79w|Infinity\",\r\n offsets: \"246.0667|240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"America/Guatemala\",\r\n untils: \"-qqqskk|ss0akk|4ofw0|4tidg0|6djw0|3wwas0|8n180|7n5ms0|7x3w0|Infinity\",\r\n offsets: \"362.0667|360|300\",\r\n offsetIndices: \"0121212121\"\r\n }, {\r\n id: \"America/Guayaquil\",\r\n untils: \"-kcr84o|wb620o|3jp80|Infinity\",\r\n offsets: \"314|300|240\",\r\n offsetIndices: \"0121\"\r\n }, {\r\n id: \"America/Guyana\",\r\n untils: \"-smcak8|vj4sz8|81rf90|Infinity\",\r\n offsets: \"232.6667|225|180|240\",\r\n offsetIndices: \"0123\"\r\n }, {\r\n id: \"America/Halifax\",\r\n untils: \"-z94k80|777go0|9et80|st9o0|a2vw0|ssyk0|5rbw0|cv1g0|69uk0|c6ys0|6kyk0|ci2s0|67zw0|ci2s0|6w2k0|bu040|7lzw0|bu040|66580|bu040|7lzw0|bu040|64ak0|cls40|5v180|cv1g0|6j3w0|c6ys0|79180|b42s0|7lzw0|b42s0|7yyk0|bu040|64ak0|dbpg0|66580|cls40|5ed80|bu040|7lzw0|b42s0|7lzw0|cjxg0|66580|bh1g0|7lzw0|b42s0|7lzw0|6uj00|1tzdw0|2dnc0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|tw040|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|tw040|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|1cm2s0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"254.4|240|180\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212122121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Havana\",\r\n untils: \"-n7762o|1icfyo|69uk0|62s040|4ofw0|e1ms0|51ek0|e1ms0|4ofw0|1fhs40|4ofw0|e1ms0|4ofw0|9s9k40|67zw0|cedg0|6h980|9o840|7yyk0|b5xg0|7k580|bvus0|9cyk0|9d440|9cyk0|9d440|9px80|9d440|8a2k0|ag040|8bx80|ae5g0|8drw0|acas0|9cyk0|9d440|9px80|905g0|9px80|9q2s0|7x3w0|8a840|ast80|7x9g0|ast80|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|8a2k0|ag040|8a2k0|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|905g0|a2vw0|905g0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9d1c0|9d1c0|9q000|8n400|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|8a5c0|afxc0|8a5c0|afxc0|7x6o0|1cm000|6uao0|bvs00|779c0|bitc0|6uao0|bvs00|779c0|bvs00|779c0|c8qo0|779c0|b5uo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|Infinity\",\r\n offsets: \"329.6|300|240\",\r\n offsetIndices: \"012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Hermosillo\",\r\n untils: \"-p1u4k0|2u7jw0|1sgdc0|8n400|7thc0|9eys0|591h80|3ie2s0|axvpg0|dpgw40|afuk0|8a840|afuk0|8a840|afuk0|Infinity\",\r\n offsets: \"443.8667|420|360|480\",\r\n offsetIndices: \"0121212131212121\"\r\n }, {\r\n id: \"America/Indiana/Indianapolis\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|baw840|51ek0|6w840|1tz8c0|2dsw0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|19q7w0|asys0|5qonw0|9cyk0|9d440|9cyk0|ihslg0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300|240\",\r\n offsetIndices: \"010101011010101010101010101010121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Indiana/Knox\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bmtus0|1tz8c0|2dsw0|tj1g0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9px80|9d440|9cyk0|9d440|7x3w0|asys0|7x3w0|asys0|9cyk0|9d440|9px80|9d440|9cyk0|9d440|s3180|1twas0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|7j5400|asw00|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300\",\r\n offsetIndices: \"0101011010101010101010101010101010101010101010101010101010101010101010101010101010101010111010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"America/Indiana/Marengo\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bmtus0|1tz8c0|2dsw0|2wsas0|7x3w0|1c9440|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|465h80|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4g00|64dc0|clmk0|fvt9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300|240\",\r\n offsetIndices: \"0101011010101010101010101212121212111212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Indiana/Petersburg\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bmtus0|1tz8c0|2dsw0|501ek0|7kas0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|sfzw0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|eu02o0|asw00|6udg0|c8nw0|6hc00|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300|240\",\r\n offsetIndices: \"01010110101010101010101010101010101010101010101010111011212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Indiana/Tell_City\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bmtus0|1tz8c0|2dsw0|501ek0|7kas0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|1tw580|9d440|9cyk0|9d440|9cvs0|9d440|9cyk0|ihslg0|asw00|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300|240\",\r\n offsetIndices: \"01010110101010101010101010101021211010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"America/Indiana/Vevay\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bmtus0|1tz8c0|2dsw0|4gyis0|7txx80|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|hfzhg0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300|240\",\r\n offsetIndices: \"010101101212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Indiana/Vincennes\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bmtus0|1tz8c0|2dsw0|asys0|7x3w0|3fidg0|7x3w0|asys0|7x3w0|b5rw0|7kas0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9px80|9d440|7k580|b5xg0|9cyk0|9d440|9cyk0|9d440|2lz980|9cyk0|9d440|9cyk0|ihslg0|asw00|6udg0|c8nw0|6hc00|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300|240\",\r\n offsetIndices: \"01010110101010101010101010101010121211011212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Indiana/Winamac\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bmtus0|1tz8c0|2dsw0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9px80|9d440|9cyk0|9d440|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|465h80|9cyk0|9d440|9cyk0|ihslg0|asw00|6udg0|c8l40|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300|240\",\r\n offsetIndices: \"01010110101010101010101010101010101010121211021212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Indianapolis\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|baw840|51ek0|6w840|1tz8c0|2dsw0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|19q7w0|asys0|5qonw0|9cyk0|9d440|9cyk0|ihslg0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300|240\",\r\n offsetIndices: \"010101011010101010101010101010121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Inuvik\",\r\n untils: \"-8ve5c0|6fce80|9q000|71i2w0|ipzw0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"0|480|360|420\",\r\n offsetIndices: \"0121323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323\"\r\n }, {\r\n id: \"America/Iqaluit\",\r\n untils: \"-eb6ao0|1l3h80|2dq40|a7n3w0|9q000|7k85k0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7xc80|ast80|7x6o0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"0|240|300|180|360\",\r\n offsetIndices: \"01123212121212121212121212121212121212121212142212121212121212121212121212121212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"America/Jamaica\",\r\n untils: \"-u85og2|wbl182|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|Infinity\",\r\n offsets: \"307.1667|300|240\",\r\n offsetIndices: \"0121212121212121212121\"\r\n }, {\r\n id: \"America/Jujuy\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|c8w80|776k0|ag040|7k2g0|bvus0|776k0|7qcg40|3yik0|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"012121212121212121212121212121212121212121232323121323232\"\r\n }, {\r\n id: \"America/Juneau\",\r\n untils: \"-ek1w80|1tz2s0|2dyg0|cawis0|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9d1c0|9d1c0|9cyk0|9d440|9px80|905g0|9px80|1leo0|7rs80|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"480|420|540\",\r\n offsetIndices: \"01101010101010101010101010001010122020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202\"\r\n }, {\r\n id: \"America/Kentucky/Louisville\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|sg5g0|6bp80|a98o40|7x3w0|6w840|1tz8c0|2dsw0|ast9o|1sw2c|21gis0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|4bh80|3j3xc0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4g00|64dc0|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300|240\",\r\n offsetIndices: \"0101010101101010101010101010101010101121212121212111212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Kentucky/Monticello\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bmtus0|1tz8c0|2dsw0|bs6g40|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x6o0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300|240\",\r\n offsetIndices: \"0101011010101010101010101010101010101010101010101010101010101010101010101121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Knox_IN\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bmtus0|1tz8c0|2dsw0|tj1g0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9px80|9d440|9cyk0|9d440|7x3w0|asys0|7x3w0|asys0|9cyk0|9d440|9px80|9d440|9cyk0|9d440|s3180|1twas0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|7j5400|asw00|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300\",\r\n offsetIndices: \"0101011010101010101010101010101010101010101010101010101010101010101010101010101010101010111010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"America/Kralendijk\",\r\n untils: \"-u7lckd|rlo7qd|Infinity\",\r\n offsets: \"275.7833|270|240\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"America/La_Paz\",\r\n untils: \"-jxzspo|84ik0|Infinity\",\r\n offsets: \"272.6|212.6|240\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"America/Lima\",\r\n untils: \"-w25lpo|fcxjlo|4ml80|93us0|9cyk0|9d440|9cyk0|nw16s0|4ml80|e5c40|4ml80|1fr1g0|4ml80|1yiys0|4ml80|Infinity\",\r\n offsets: \"308.6|300|240\",\r\n offsetIndices: \"0121212121212121\"\r\n }, {\r\n id: \"America/Los_Angeles\",\r\n untils: \"-r0emw0|ast80|7x9g0|ast80|bmtus0|1tz2s0|2dyg0|1a3c5o|f2iic|owao0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|902o0|9q000|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"480|420\",\r\n offsetIndices: \"010101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"America/Louisville\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|sg5g0|6bp80|a98o40|7x3w0|6w840|1tz8c0|2dsw0|ast9o|1sw2c|21gis0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|4bh80|3j3xc0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4g00|64dc0|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300|240\",\r\n offsetIndices: \"0101010101101010101010101010101010101121212121212111212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Lower_Princes\",\r\n untils: \"-u7lckd|rlo7qd|Infinity\",\r\n offsets: \"275.7833|270|240\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"America/Maceio\",\r\n untils: \"-t85ldw|99kaxw|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|cyqs0|5ed80|dbpg0|64ak0|2yl440|64ak0|1wf1g0|7k580|biw40|puk0|id6s0|6h980|Infinity\",\r\n offsets: \"142.8667|180|120\",\r\n offsetIndices: \"012121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Managua\",\r\n untils: \"-ijh6oo|ka1i0o|xqqk0|24p6s0|53980|dmtg0|53980|60itw0|dq240|53es0|235h80|4beis0|8zzw0|at4c0|7x140|Infinity\",\r\n offsets: \"345.2|360|300\",\r\n offsetIndices: \"0121212121212121\"\r\n }, {\r\n id: \"America/Manaus\",\r\n untils: \"-t85gvw|99k97w|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|2yy2s0|6h980|Infinity\",\r\n offsets: \"240.0667|240|180\",\r\n offsetIndices: \"01212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Marigot\",\r\n untils: \"-u6m79w|Infinity\",\r\n offsets: \"246.0667|240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"America/Martinique\",\r\n untils: \"-umcvcs|zz5x4s|8zzw0|Infinity\",\r\n offsets: \"244.3333|240|180\",\r\n offsetIndices: \"0121\"\r\n }, {\r\n id: \"America/Matamoros\",\r\n untils: \"-p1u7c0|ykt480|ast80|3vppg0|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|9q2s0|7k580|9q2s0|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|77c40|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"400|360|300\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Mazatlan\",\r\n untils: \"-p1u4k0|2u7jw0|1sgdc0|8n400|7thc0|9eys0|591h80|3ie2s0|axvpg0|dpgw40|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|9q2s0|7k580|9q2s0|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|Infinity\",\r\n offsets: \"425.6667|420|360|480\",\r\n offsetIndices: \"0121212131212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Mendoza\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bktk0|71mk0|bqas0|73h80|bvus0|773s0|5unes0|6hes0|1p7mk0|3yik0|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"01212121212121212121212121212121212121212123232312121321232\"\r\n }, {\r\n id: \"America/Menominee\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bmtus0|1tz8c0|2dsw0|asys0|7x3w0|a7n9g0|9px80|1at9g0|2396k0|9d1c0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300\",\r\n offsetIndices: \"01010110101011010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"America/Merida\",\r\n untils: \"-p1u7c0|vauo00|hoyk0|6ys0c0|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|9q2s0|7k580|9q2s0|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|Infinity\",\r\n offsets: \"358.4667|360|300\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Metlakatla\",\r\n untils: \"-ek1w80|1tz2s0|2dyg0|cawis0|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|gpc840|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|3ylc0|2itg0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"480|420|540\",\r\n offsetIndices: \"01101010101010101010101010101010102020200202020202020202020202020202020202020202\"\r\n }, {\r\n id: \"America/Mexico_City\",\r\n untils: \"-p1u4k0|2u7jw0|1sgdc0|8n400|7thc0|9eys0|3knek0|776k0|rf440|5t6k0|1evk40|71mk0|30p1g0|8n180|nufxo0|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|9q2s0|7k580|9q2s0|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|Infinity\",\r\n offsets: \"396.6|420|360|300\",\r\n offsetIndices: \"012121232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"America/Miquelon\",\r\n untils: \"-ulmyxk|zzqbdk|3m59g0|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"224.6667|240|180|120\",\r\n offsetIndices: \"012323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"America/Moncton\",\r\n untils: \"-z94i40|89fhg0|a2vw0|7mqqo0|4ofw0|e1ms0|4ofw0|e1ms0|4ofw0|e1ms0|4ofw0|e1ms0|4ofw0|e1ms0|4ofw0|dmtg0|64ak0|cao40|6fek0|bkqs0|7iak0|6y5k0|1tzdw0|2dnc0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|s36s0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a2lo|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6uiyc|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"300|240|180\",\r\n offsetIndices: \"012121212121212121212122121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Monterrey\",\r\n untils: \"-p1u7c0|ykt480|ast80|3vppg0|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|9q2s0|7k580|9q2s0|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|Infinity\",\r\n offsets: \"401.2667|360|300\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Montevideo\",\r\n untils: \"-w4mll9|67elc0|1s74p9|9et80|9exe0|9czy0|9exe0|9czy0|3ydyq0|7x5a0|asxe0|7x5a0|asxe0|7x5a0|asxe0|7x5a0|b5w20|7k6m0|b5w20|7k6m0|9q1e0|9czy0|asxe0|7x5a0|6do20|ppvy0|4mmm0|8g9qq0|901a0|38pe0|2inw0|2nf9g0|8zzw0|1e3s40|9o3y0|q8he0|2kik0|yxhg0|4bh80|s36s0|2vl60|905g0|5rg20|51ek0|weqs0|3yik0|e1ms0|4ofw0|erk40|3yik0|2vs40|gk7w0|41iys0|3wnw0|erk40|4bh80|c8tg0|64ak0|c8tg0|6u7w0|c8tg0|6h980|bvus0|6u7w0|614qs0|9q2s0|a31g0|7x3w0|ag040|8a2k0|asys0|7x3w0|asys0|7x3w0|asys0|8a2k0|ag040|8a2k0|ag040|8a2k0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|Infinity\",\r\n offsets: \"224.85|240|180|210|150|120|90\",\r\n offsetIndices: \"001232323232323232323232324242525242525264252525252525252525252525252525252525252525252\"\r\n }, {\r\n id: \"America/Montreal\",\r\n untils: \"-qzoxw0|a2vw0|7yx60|aqzy0|9q8c0|7jzo0|bw0c0|6bp80|cedg0|6h980|c8tg0|6h980|bvus0|776k0|biw40|776k0|biw40|776k0|biw40|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|xjeo0|1tzb40|2dq40|asys0|7x3w0|ast80|7x3w0|asys0|7x3w0|asys0|b5rw0|7xf00|ast80|7x9g0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"300|240\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101011101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"America/Montserrat\",\r\n untils: \"-u6m79w|Infinity\",\r\n offsets: \"246.0667|240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"America/Nassau\",\r\n untils: \"-u6m4c6|r7u7s6|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"309.5|300|240\",\r\n offsetIndices: \"012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/New_York\",\r\n untils: \"-r0ev80|ast80|7x9g0|ast80|7x9g0|b5rw0|905g0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|6w840|1tzb40|2dq40|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"300|240\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"America/Nipigon\",\r\n untils: \"-qzoxw0|a2vw0|bfxjw0|pmdk0|1tzb40|2dq40|ewvus0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"300|240\",\r\n offsetIndices: \"010111010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"America/Nome\",\r\n untils: \"-ek1nw0|1tyug0|2e6s0|b7yik0|12y080|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|1l6c0|7rs80|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"660|600|540|480\",\r\n offsetIndices: \"011001010101010101010101010101010122323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"America/Noronha\",\r\n untils: \"-t85lzw|99k8rw|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|cyqs0|5ed80|dbpg0|64ak0|514g40|7k580|biw40|cvw0|iq5g0|6h980|Infinity\",\r\n offsets: \"129.6667|120|60\",\r\n offsetIndices: \"0121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/North_Dakota/Beulah\",\r\n untils: \"-r0epo0|ast80|7x9g0|ast80|bmtus0|1tz5k0|2dvo0|b9gdg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hc00|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"420|360|300\",\r\n offsetIndices: \"010101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101011212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/North_Dakota/Center\",\r\n untils: \"-r0epo0|ast80|7x9g0|ast80|bmtus0|1tz5k0|2dvo0|b9gdg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a5c0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"420|360|300\",\r\n offsetIndices: \"010101101010101010101010101010101010101010101010101010101011212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/North_Dakota/New_Salem\",\r\n untils: \"-r0epo0|ast80|7x9g0|ast80|bmtus0|1tz5k0|2dvo0|b9gdg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a5c0|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"420|360|300\",\r\n offsetIndices: \"010101101010101010101010101010101010101010101010101010101010101010101010101010101121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Nuuk\",\r\n untils: \"-rvumf4|x8nqz4|8zrk0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"206.9333|180|120\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Ojinaga\",\r\n untils: \"-p1u4k0|2u7jw0|1sgdc0|8n400|7thc0|9eys0|xes2s0|afuk0|8a840|afuk0|8aaw0|afuk0|8a840|ast80|7x9g0|ast80|9q2s0|7k580|9q2s0|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|77c40|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"417.6667|420|360|300\",\r\n offsetIndices: \"0121212323221212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Panama\",\r\n untils: \"-w757vc|Infinity\",\r\n offsets: \"319.6|300\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"America/Pangnirtung\",\r\n untils: \"-pkmlc0|b0ke00|1tzdw0|2dnc0|a7n3w0|9q000|7k85k0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|asw00|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7xc80|ast80|7x6o0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"0|240|180|120|300|360\",\r\n offsetIndices: \"012213121212121212121212121212121212114141414154414141414141414141414141414141414141414141414141414141414141414141414141414\"\r\n }, {\r\n id: \"America/Paramaribo\",\r\n untils: \"-usj4g8|cixc0c|5lydbk|kcrm6c|Infinity\",\r\n offsets: \"220.6667|220.8667|220.6|210|180\",\r\n offsetIndices: \"01234\"\r\n }, {\r\n id: \"America/Phoenix\",\r\n untils: \"-r0epo0|ast80|7x9g0|ast80|bmtus0|zjedo|4olg0|9et80|bs6lmc|9cyk0|Infinity\",\r\n offsets: \"420|360\",\r\n offsetIndices: \"01010101010\"\r\n }, {\r\n id: \"America/Port_of_Spain\",\r\n untils: \"-u6m79w|Infinity\",\r\n offsets: \"246.0667|240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"America/Port-au-Prince\",\r\n untils: \"-rmk9ac|ylcf6c|8zzw0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8aaw0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|afxc0|8a5c0|afxc0|3vpjw0|ast80|7x9g0|ast80|2stv00|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|pkg40|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"289|300|240\",\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Porto_Acre\",\r\n untils: \"-t85fg0|99kak0|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|amves0|2t2t80|Infinity\",\r\n offsets: \"271.2|300|240\",\r\n offsetIndices: \"01212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Porto_Velho\",\r\n untils: \"-t85g60|99k8i0|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|Infinity\",\r\n offsets: \"255.6|240|180\",\r\n offsetIndices: \"012121212121212121212121212121\"\r\n }, {\r\n id: \"America/Puerto_Rico\",\r\n untils: \"-efsnk0|1ppu40|2dnc0|Infinity\",\r\n offsets: \"240|180\",\r\n offsetIndices: \"0110\"\r\n }, {\r\n id: \"America/Punta_Arenas\",\r\n untils: \"-vauawq|3dlssq|157b7a|f4e0q|49hzba|aye0q|7ves0|awik0|7ves0|awik0|7ves0|awik0|7ves0|ayd80|7ves0|534ik0|351g0|2fnh80|2mg00|b73400|7k580|c8tg0|6h980|a31g0|7x3w0|asys0|7x3w0|b5xg0|7k580|ag040|8a2k0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|9cyk0|9d440|7x3w0|asys0|7x3w0|b5xg0|7k580|9q2s0|8zzw0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|8n180|a31g0|7x3w0|a31g0|9px80|9q2s0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|8n180|a31g0|7x3w0|asys0|8zzw0|9q2s0|ast80|5eis0|cyl80|6hes0|c8nw0|6udg0|bvp80|6udg0|vonw0|4olg0|Infinity\",\r\n offsets: \"282.7667|300|240|180\",\r\n offsetIndices: \"0102021212121212121232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323\"\r\n }, {\r\n id: \"America/Rainy_River\",\r\n untils: \"-qzov40|a2vw0|bfxjw0|pmdk0|1tz8c0|2dsw0|ewvus0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300\",\r\n offsetIndices: \"010111010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"America/Rankin_Inlet\",\r\n untils: \"-6s8lc0|4c6oo0|9q000|7k85k0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"0|360|240|300\",\r\n offsetIndices: \"012131313131313131313131313131313131313131313331313131313131313131313131313131313131313131313131313131313131313131313131\"\r\n }, {\r\n id: \"America/Recife\",\r\n untils: \"-t85ljc|99kb3c|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|cyqs0|5ed80|dbpg0|64ak0|514g40|7k580|biw40|cvw0|iq5g0|6h980|Infinity\",\r\n offsets: \"139.6|180|120\",\r\n offsetIndices: \"0121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Regina\",\r\n untils: \"-xkq9yc|6l1hmc|a2vw0|60enw0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|1b6840|9cyk0|9d440|8zzw0|9q2s0|9cyk0|9q2s0|9cyk0|9d440|9cyk0|66gc0|1tz5k0|2dvo0|a31g0|9cyk0|a31g0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|tj1g0|9cyk0|9d440|Infinity\",\r\n offsets: \"418.6|420|360\",\r\n offsetIndices: \"012121212121212121212121221212121212121212121212121212\"\r\n }, {\r\n id: \"America/Resolute\",\r\n untils: \"-bnp9c0|97nco0|9q000|7k85k0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"0|360|240|300\",\r\n offsetIndices: \"012131313131313131313131313131313131313131313331313131313331313131313131313131313131313131313131313131313131313131313131\"\r\n }, {\r\n id: \"America/Rio_Branco\",\r\n untils: \"-t85fg0|99kak0|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|amves0|2t2t80|Infinity\",\r\n offsets: \"271.2|300|240\",\r\n offsetIndices: \"01212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Rosario\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6u7w0|bvxk0|6u540|bvus0|776k0|7qcg40|3yik0|b5xg0|7k580|Infinity\",\r\n offsets: \"256.8|240|180|120\",\r\n offsetIndices: \"01212121212121212121212121212121212121212123232323132323232\"\r\n }, {\r\n id: \"America/Santa_Isabel\",\r\n untils: \"-p1u1s0|11jrw0|1sns00|1sgdc0|71s40|9cyk0|5iidg0|1q6700|4lfk0|190g40|eluk0|2r4o80|7x6o0|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|84qys0|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|77c40|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"468.0667|420|480\",\r\n offsetIndices: \"012121211212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"America/Santarem\",\r\n untils: \"-t85hvc|99ka7c|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|amves0|Infinity\",\r\n offsets: \"218.8|240|180\",\r\n offsetIndices: \"0121212121212121212121212121212\"\r\n }, {\r\n id: \"America/Santiago\",\r\n untils: \"-vauawq|3dlssq|157b7a|f4e0q|49hzba|aye0q|7ves0|awik0|7ves0|awik0|7ves0|awik0|7ves0|ayd80|7ves0|534ik0|351g0|229zw0|2gt80|awo40|2mg00|b73400|7k580|c8tg0|6h980|a31g0|7x3w0|asys0|7x3w0|b5xg0|7k580|ag040|8a2k0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|9cyk0|9d440|7x3w0|asys0|7x3w0|b5xg0|7k580|9q2s0|8zzw0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|8n180|a31g0|7x3w0|a31g0|9px80|9q2s0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|8n180|a31g0|7x3w0|asys0|8zzw0|9q2s0|ast80|5eis0|cyl80|6hes0|c8nw0|6udg0|bvp80|6udg0|vonw0|4olg0|e1h80|4olg0|e1h80|4olg0|c8nw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|Infinity\",\r\n offsets: \"282.7667|300|240|180\",\r\n offsetIndices: \"010202121212121212321232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323\"\r\n }, {\r\n id: \"America/Santo_Domingo\",\r\n untils: \"-j6hz1c|hiw29c|67zw0|1dy840|62ha0|cnle0|4h2m0|elyq0|47ta0|ei9e0|4bim0|eek20|4dda0|ecpe0|dkmtg0|1stc0|Infinity\",\r\n offsets: \"280|300|240|270\",\r\n offsetIndices: \"01213131313131212\"\r\n }, {\r\n id: \"America/Sao_Paulo\",\r\n untils: \"-t85jd8|99k8x8|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5k02s0|6onw0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|cyqs0|5ed80|dbpg0|64ak0|cyqs0|64ak0|cls40|5rbw0|dbpg0|51ek0|dbpg0|6h980|c8tg0|6h980|c8tg0|64ak0|c8tg0|6u7w0|bxpg0|7iak0|biw40|6u7w0|biw40|7k580|biw40|6u7w0|c8tg0|6h980|dbpg0|5ed80|cls40|64ak0|dfes0|5nmk0|c8tg0|6h980|dbpg0|5rbw0|bvus0|6h980|cls40|64ak0|cls40|6h980|c8tg0|6h980|c8tg0|6u7w0|c8tg0|64ak0|cls40|64ak0|cls40|6h980|c8tg0|6h980|c8tg0|6h980|c8tg0|6h980|dbpg0|5ed80|Infinity\",\r\n offsets: \"186.4667|180|120\",\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Scoresbysund\",\r\n untils: \"-rvurxk|x8ntpk|902o0|9cvs0|9cyk0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"87.8667|120|60|0\",\r\n offsetIndices: \"0121323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"America/Shiprock\",\r\n untils: \"-r0epo0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|2vmk0|ataw40|1tz5k0|2dvo0|a7n9g0|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"420|360\",\r\n offsetIndices: \"01010101011010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"America/Sitka\",\r\n untils: \"-ek1w80|1tz2s0|2dyg0|cawis0|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|1leo0|7rs80|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"480|420|540\",\r\n offsetIndices: \"01101010101010101010101010101010122020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202\"\r\n }, {\r\n id: \"America/St_Barthelemy\",\r\n untils: \"-u6m79w|Infinity\",\r\n offsets: \"246.0667|240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"America/St_Johns\",\r\n untils: \"-ris3ck|8bx80|ar440|a2vw0|9tjs0|53980|dkys0|9cyk0|9d440|9cyk0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|9cyk0|9d440|9cyk0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|9cyk0|9q2s0|8zzw0|9q2s0|8zzw0|7tmw0|1wfuk|8zzw0|a3480|7k580|b5xg0|7k580|b5xg0|7k580|biw40|776k0|biw40|7k580|b5xg0|7k580|b5xg0|1pb260|2dly0|biw40|7k580|b5xg0|7k580|b5xg0|7k580|b5xg0|7k580|biw40|7k580|ag040|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a2lo|afuk0|8a840|asqg0|7xc80|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8tec|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"210.8667|150.8667|210|150|90\",\r\n offsetIndices: \"01010101010101010101010101010101010102323232323232323323232323232323232323232323232323232323232323232323232323232323232323232323232323232324232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"America/St_Kitts\",\r\n untils: \"-u6m79w|Infinity\",\r\n offsets: \"246.0667|240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"America/St_Lucia\",\r\n untils: \"-u6m79w|Infinity\",\r\n offsets: \"246.0667|240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"America/St_Thomas\",\r\n untils: \"-u6m79w|Infinity\",\r\n offsets: \"246.0667|240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"America/St_Vincent\",\r\n untils: \"-u6m79w|Infinity\",\r\n offsets: \"246.0667|240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"America/Swift_Current\",\r\n untils: \"-xkq9d4|6l1h14|a2vw0|c5jxg0|1tz5k0|2dvo0|asys0|8n180|a31g0|7x3w0|asys0|7x3w0|asys0|7x3w0|3yles0|9cyk0|s36s0|9cyk0|9d440|7x3w0|b5xg0|7k580|5j4lg0|Infinity\",\r\n offsets: \"431.3333|420|360\",\r\n offsetIndices: \"012122121212121212121212\"\r\n }, {\r\n id: \"America/Tegucigalpa\",\r\n untils: \"-pfzh6k|yho0ik|7k580|b5xg0|7k580|96x1g0|4qak0|Infinity\",\r\n offsets: \"348.8667|360|300\",\r\n offsetIndices: \"01212121\"\r\n }, {\r\n id: \"America/Thule\",\r\n untils: \"-rvuj9g|12yzilg|9cyk0|9d440|9cyk0|9q2s0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"275.1333|240|180\",\r\n offsetIndices: \"012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Thunder_Bay\",\r\n untils: \"-vbavc0|gr8qs0|1tzb40|2dq40|ctmlg0|9cyk0|9d440|9px80|9d440|9cyk0|s36s0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300|240\",\r\n offsetIndices: \"0122121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"America/Tijuana\",\r\n untils: \"-p1u1s0|11jrw0|1sns00|1sgdc0|71s40|9cyk0|5iidg0|1q6700|4lfk0|190g40|eluk0|2r4o80|7x6o0|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|84qys0|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|77c40|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"468.0667|420|480\",\r\n offsetIndices: \"012121211212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"America/Toronto\",\r\n untils: \"-qzoxw0|a2vw0|7yx60|aqzy0|9q8c0|7jzo0|bw0c0|6bp80|cedg0|6h980|c8tg0|6h980|bvus0|776k0|biw40|776k0|biw40|776k0|biw40|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|xjeo0|1tzb40|2dq40|asys0|7x3w0|ast80|7x3w0|asys0|7x3w0|asys0|b5rw0|7xf00|ast80|7x9g0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"300|240\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101011101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"America/Tortola\",\r\n untils: \"-u6m79w|Infinity\",\r\n offsets: \"246.0667|240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"America/Vancouver\",\r\n untils: \"-qzopk0|a2vw0|c5jxg0|1tz2s0|2dyg0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"480|420\",\r\n offsetIndices: \"0101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"America/Virgin\",\r\n untils: \"-u6m79w|Infinity\",\r\n offsets: \"246.0667|240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"America/Whitehorse\",\r\n untils: \"-qzoms0|a2vw0|asys0|882c0|bmiwc0|1tz000|2e180|a7n3w0|9q000|tiyo0|6qp440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|Infinity\",\r\n offsets: \"540|480|420\",\r\n offsetIndices: \"01010110201212121212121212121212121212121212121212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"America/Winnipeg\",\r\n untils: \"-s0s7c0|7k580|tj700|a2vw0|9ok840|6u7w0|2a5hg0|1tz8c0|2dsw0|biw40|7x3w0|a31g0|7x3w0|asys0|7x3w0|asys0|7x3w0|b7s40|7tek0|autg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9cyk0|9d440|7x3w0|1cm2s0|7k580|1cm2s0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|902o0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|902o0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|8a5c0|afxc0|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|7x6o0|asw00|7x6o0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300\",\r\n offsetIndices: \"010101011010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"America/Yakutat\",\r\n untils: \"-ek1tg0|1tz000|2e180|cawis0|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|1lbw0|7rs80|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"540|480\",\r\n offsetIndices: \"01101010101010101010101010101010100101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"America/Yellowknife\",\r\n untils: \"-i9m2o0|3pk3o0|1tz5k0|2dvo0|a7n3w0|9q000|7k85k0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"0|420|360|300\",\r\n offsetIndices: \"012213121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Antarctica/Casey\",\r\n untils: \"-irxc0|lag4o0|73bo0|uz1o0|60l80|2fnh80|pz9g0|Infinity\",\r\n offsets: \"0|-480|-660\",\r\n offsetIndices: \"01212121\"\r\n }, {\r\n id: \"Antarctica/Davis\",\r\n untils: \"-6rmdc0|42jdw0|27wgs0|l8uss0|7eqs0|unmk0|60qs0|Infinity\",\r\n offsets: \"0|-420|-300\",\r\n offsetIndices: \"01012121\"\r\n }, {\r\n id: \"Antarctica/DumontDUrville\",\r\n untils: \"-c05eo0|2mks80|2i72g0|Infinity\",\r\n offsets: \"0|-600\",\r\n offsetIndices: \"0101\"\r\n }, {\r\n id: \"Antarctica/Macquarie\",\r\n untils: \"-rsj4w0|8zzw0|11wqk0|f4kh40|a6p8g0|9d1c0|asw00|6uao0|bvs00|6uao0|bvs00|779c0|bvs00|64dc0|clpc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|7x6o0|b5uo0|7k800|b5uo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|bvs00|7k800|bitc0|7k800|bitc0|779c0|bitc0|779c0|bitc0|7x6o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|7x6o0|asw00|a2yo0|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9d1c0|902o0|a2yo0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\",\r\n offsets: \"-600|-660|0\",\r\n offsetIndices: \"0102010101010101010101010101010101010101010101010101010101010101010101010101010101010101011\"\r\n }, {\r\n id: \"Antarctica/Mawson\",\r\n untils: \"-8aelc0|t22y80|Infinity\",\r\n offsets: \"0|-360|-300\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"Antarctica/McMurdo\",\r\n untils: \"-m01p20|64ak0|biw40|7x5a0|asxe0|7x5a0|asxe0|7x5a0|asxe0|8a3y0|afyq0|8a3y0|afyq0|afvy0|7x820|asum0|7x820|asum0|7x820|asum0|7x820|asum0|7x820|b5ta0|7k9e0|b5ta0|7x820|hsl2m0|5reo0|clpc0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|b5uo0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|8n400|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|a2yo0|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|Infinity\",\r\n offsets: \"-690|-750|-720|-780\",\r\n offsetIndices: \"01020202020202020202020202023232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323\"\r\n }, {\r\n id: \"Antarctica/Palmer\",\r\n untils: \"-2lxhc0|31ho0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|46b6s0|8c2s0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|9cyk0|9d440|7x3w0|asys0|7x3w0|b5xg0|7k580|9q2s0|8zzw0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|8n180|a31g0|7x3w0|a31g0|9px80|9q2s0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|8n180|a31g0|7x3w0|asys0|8zzw0|9q2s0|ast80|5eis0|cyl80|6hes0|c8nw0|6udg0|bvp80|6udg0|vonw0|4olg0|Infinity\",\r\n offsets: \"0|180|240|120\",\r\n offsetIndices: \"0121212121213121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Antarctica/Rothera\",\r\n untils: \"3lxs00|Infinity\",\r\n offsets: \"0|180\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Antarctica/South_Pole\",\r\n untils: \"-m01p20|64ak0|biw40|7x5a0|asxe0|7x5a0|asxe0|7x5a0|asxe0|8a3y0|afyq0|8a3y0|afyq0|afvy0|7x820|asum0|7x820|asum0|7x820|asum0|7x820|asum0|7x820|b5ta0|7k9e0|b5ta0|7x820|hsl2m0|5reo0|clpc0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|b5uo0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|8n400|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|a2yo0|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|Infinity\",\r\n offsets: \"-690|-750|-720|-780\",\r\n offsetIndices: \"01020202020202020202020202023232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323\"\r\n }, {\r\n id: \"Antarctica/Syowa\",\r\n untils: \"-6qsqo0|Infinity\",\r\n offsets: \"0|-180\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Antarctica/Troll\",\r\n untils: \"ibruo0|27pg0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"0|-120\",\r\n offsetIndices: \"00101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Antarctica/Vostok\",\r\n untils: \"-6aaao0|Infinity\",\r\n offsets: \"0|-360\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Arctic/Longyearbyen\",\r\n untils: \"-rzayo0|6qfs0|cgcqo0|15tsc0|7k800|9q000|9d1c0|9d1c0|9d1c0|9d1c0|70q5c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|b5uo0|7k800|7law00|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Asia/Aden\",\r\n untils: \"-bwgbbg|Infinity\",\r\n offsets: \"-186.8667|-180\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Asia/Almaty\",\r\n untils: \"-nu1a90|37a0d0|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|Infinity\",\r\n offsets: \"-307.8|-300|-360|-420\",\r\n offsetIndices: \"012323232323232323232321232323232323232323232323232\"\r\n }, {\r\n id: \"Asia/Amman\",\r\n untils: \"-kcrtbk|m566fk|60l80|awo40|7v980|awo40|7v980|ayis0|9gnw0|9b9g0|7v980|autg0|7v980|3e6840|9et80|9io40|9cyk0|9d440|9cyk0|9d440|9px80|ayis0|7rjw0|ag040|8a2k0|9zc40|8drw0|a31g0|8zzw0|9d440|9cyk0|9d440|8n180|ag040|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|epmo0|4deo0|9o5c0|9ew00|9b6o0|9ew00|9d1c0|9d1c0|9d1c0|asw00|7x6o0|afxc0|8n400|9d1c0|9d1c0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|wel80|51k40|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|Infinity\",\r\n offsets: \"-143.7333|-120|-180\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Asia/Anadyr\",\r\n untils: \"-nu1sv8|379zj8|qi27w0|9et80|is040|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|j3440|7k800|Infinity\",\r\n offsets: \"-709.9333|-720|-780|-840|-660\",\r\n offsetIndices: \"01232121212121212121214121212121212121212121212121212121212141\"\r\n }, {\r\n id: \"Asia/Aqtau\",\r\n untils: \"-nu15b4|379y74|qrh3w0|iruk0|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d440|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|Infinity\",\r\n offsets: \"-201.0667|-240|-300|-360\",\r\n offsetIndices: \"012323232323232323232123232312121212121212121212\"\r\n }, {\r\n id: \"Asia/Aqtobe\",\r\n untils: \"-nu16l4|379zh4|qi27w0|s6qk0|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|Infinity\",\r\n offsets: \"-228.6667|-240|-300|-360\",\r\n offsetIndices: \"0123232323232323232321232323232323232323232323232\"\r\n }, {\r\n id: \"Asia/Ashgabat\",\r\n untils: \"-nu16t8|379zp8|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|Infinity\",\r\n offsets: \"-233.5333|-240|-300|-360\",\r\n offsetIndices: \"0123232323232323232323212\"\r\n }, {\r\n id: \"Asia/Ashkhabad\",\r\n untils: \"-nu16t8|379zp8|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|Infinity\",\r\n offsets: \"-233.5333|-240|-300|-360\",\r\n offsetIndices: \"0123232323232323232323212\"\r\n }, {\r\n id: \"Asia/Atyrau\",\r\n untils: \"-nu15m8|37a1a8|qrh140|iruk0|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|j3440|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|Infinity\",\r\n offsets: \"-207.7333|-180|-300|-360|-240\",\r\n offsetIndices: \"01232323232323232323242323232323232324242424242\"\r\n }, {\r\n id: \"Asia/Baghdad\",\r\n untils: \"-r50g80|xkn3w0|7v980|9b9g0|9gnw0|9eys0|9et80|9d440|9b9g0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9f1k0|9ew00|9ew00|9ew00|9d1c0|9ew00|9d1c0|9ew00|9d1c0|9ew00|9ew00|9ew00|9d1c0|9ew00|9d1c0|9ew00|9d1c0|9ew00|9ew00|9ew00|9d1c0|9ew00|9d1c0|9ew00|9d1c0|9ew00|9ew00|9ew00|9d1c0|9ew00|9d1c0|9ew00|9d1c0|9ew00|Infinity\",\r\n offsets: \"-177.6|-180|-240\",\r\n offsetIndices: \"012121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Asia/Bahrain\",\r\n untils: \"-q3gmvk|rctnrk|Infinity\",\r\n offsets: \"-206.1333|-240|-180\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"Asia/Baku\",\r\n untils: \"-nu158c|h4tkwc|ckinw0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|9d1c0|239ew0|asw00|7x3w0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-199.4|-180|-240|-300\",\r\n offsetIndices: \"01232323232323232323232123232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Asia/Bangkok\",\r\n untils: \"-pysda4|Infinity\",\r\n offsets: \"-402.0667|-420\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Asia/Barnaul\",\r\n untils: \"-q4ljic|5hu6uc|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|38fo0|64og0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|qnc40|Infinity\",\r\n offsets: \"-335|-360|-420|-480\",\r\n offsetIndices: \"0123232323232323232323212323232321212121212121212121212121212121212\"\r\n }, {\r\n id: \"Asia/Beirut\",\r\n untils: \"-pyzew0|aunw0|88dg0|9et80|8yas0|a2vw0|a31g0|7k580|hjqo40|7v980|awo40|7v980|awo40|7v980|ayis0|7v980|awo40|7v980|5lhs40|56yk0|awo40|7v980|awo40|7v980|awo40|7v980|ayis0|7v980|awo40|7v980|autg0|7v980|2wxus0|8n180|a4w40|8n180|a4w40|8n180|a4w40|8n180|bs5g0|71mk0|alk40|86d80|a4w40|8n180|a4w40|8n180|a6qs0|80t80|905g0|9cyk0|9d440|9cyk0|9d440|9cyk0|9q2s0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|Infinity\",\r\n offsets: \"-120|-180\",\r\n offsetIndices: \"010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Asia/Bishkek\",\r\n untils: \"-nu19tc|379zxc|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|h8dc0|bkl80|8n180|a31g0|8n180|a31g0|8n180|a31g0|8n180|a31g0|8zzw0|9db20|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|Infinity\",\r\n offsets: \"-298.4|-300|-360|-420\",\r\n offsetIndices: \"012323232323232323232321212121212121212121212121212\"\r\n }, {\r\n id: \"Asia/Brunei\",\r\n untils: \"-mvofy4|3khxs4|Infinity\",\r\n offsets: \"-459.6667|-450|-480\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"Asia/Calcutta\",\r\n untils: \"-xehava|innm9a|bmfw0|5lxg0|1mn180|Infinity\",\r\n offsets: \"-321.1667|-330|-390\",\r\n offsetIndices: \"012121\"\r\n }, {\r\n id: \"Asia/Chita\",\r\n untils: \"-q4cfog|5hkxgg|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|qnew0|Infinity\",\r\n offsets: \"-453.8667|-480|-540|-600\",\r\n offsetIndices: \"012323232323232323232321232323232323232323232323232323232323232312\"\r\n }, {\r\n id: \"Asia/Choibalsan\",\r\n untils: \"-xmct7c|11sndrc|2qk2k0|9eqg0|9eys0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9q2s0|9cyk0|9d440|9cyk0|9d440|9cyk0|1ckdo0|7x3w0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|s6qk0|3nc0c0|9ct00|9d9o0|9ct00|Infinity\",\r\n offsets: \"-458|-420|-480|-600|-540\",\r\n offsetIndices: \"0123434343434343434343434343434343434343434343424242\"\r\n }, {\r\n id: \"Asia/Chongqing\",\r\n untils: \"-qh00w0|8sl80|asbpg0|6w2k0|7ves0|bxjw0|4mqs0|1vduk0|d4as0|75bw0|a31g0|aaak0|9d440|7v980|awo40|1dx80|j9xpo0|6u7w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|Infinity\",\r\n offsets: \"-480|-540\",\r\n offsetIndices: \"01010101010101010101010101010\"\r\n }, {\r\n id: \"Asia/Chungking\",\r\n untils: \"-qh00w0|8sl80|asbpg0|6w2k0|7ves0|bxjw0|4mqs0|1vduk0|d4as0|75bw0|a31g0|aaak0|9d440|7v980|awo40|1dx80|j9xpo0|6u7w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|Infinity\",\r\n offsets: \"-480|-540\",\r\n offsetIndices: \"01010101010101010101010101010\"\r\n }, {\r\n id: \"Asia/Colombo\",\r\n untils: \"-xehask|isle6k|cajy0|1mp2u0|qetjw0|7x5a0|4xvqq0|Infinity\",\r\n offsets: \"-319.5333|-330|-360|-390\",\r\n offsetIndices: \"01231321\"\r\n }, {\r\n id: \"Asia/Dacca\",\r\n untils: \"-eqtpow|bmgyw|5lxg0|4qknw0|u4ijy0|a1400|Infinity\",\r\n offsets: \"-353.3333|-390|-330|-360|-420\",\r\n offsetIndices: \"0121343\"\r\n }, {\r\n id: \"Asia/Damascus\",\r\n untils: \"-q3gk20|5k6q0|8n180|a31g0|8n180|a31g0|8n180|a31g0|8zzw0|k4hk40|7yyk0|awo40|7tek0|b0dg0|7v980|awo40|7tek0|alk40|887w0|awo40|7v980|ayis0|7v980|awo40|7v980|awo40|7v980|awo40|7v980|ayis0|7v980|awo40|7v980|awo40|7v980|awo40|7v980|ayis0|7v980|awo40|6bp80|cg840|6bp80|2eh1g0|8zzw0|9ts40|8zzw0|pvk40|c33w0|7cw40|cjrw0|6zxg0|btuk0|7rpg0|9gnw0|9d440|9cyk0|9et80|9et80|9rxg0|91uk0|92040|9et80|9o840|9et80|9d440|9et80|9eys0|9et80|9b9g0|9gnw0|99es0|9iik0|9d440|9et80|9eys0|9et80|9d440|9et80|9d440|9et80|9d440|9et80|9eys0|9et80|9d440|9et80|9d440|8y580|9q2s0|b5rw0|7x9g0|aunw0|7ig40|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|Infinity\",\r\n offsets: \"-145.2|-120|-180\",\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Asia/Dhaka\",\r\n untils: \"-eqtpow|bmgyw|5lxg0|4qknw0|u4ijy0|a1400|Infinity\",\r\n offsets: \"-353.3333|-390|-330|-360|-420\",\r\n offsetIndices: \"0121343\"\r\n }, {\r\n id: \"Asia/Dili\",\r\n untils: \"-u9s4l8|fqcu98|hufs00|cpz440|Infinity\",\r\n offsets: \"-502.3333|-480|-540\",\r\n offsetIndices: \"01212\"\r\n }, {\r\n id: \"Asia/Dubai\",\r\n untils: \"-q3gnko|Infinity\",\r\n offsets: \"-221.2|-240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Asia/Dushanbe\",\r\n untils: \"-nu18qo|379yuo|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|hp440|Infinity\",\r\n offsets: \"-275.2|-300|-360|-420\",\r\n offsetIndices: \"012323232323232323232321\"\r\n }, {\r\n id: \"Asia/Famagusta\",\r\n untils: \"-p4bqac|rvhy2c|9cyk0|b42s0|7nuk0|8yas0|8zzw0|9q2s0|9et80|9b9g0|9cyk0|9q2s0|8zzw0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9q2s0|9cyk0|9d440|9cyk0|9d440|at4c0|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|8h8w0|leog0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-135.8|-120|-180\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121212121212121212121212121212212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Asia/Gaza\",\r\n untils: \"-ffv9k0|19f3w0|7rv00|b02c0|7tk40|b07w0|8jhg0|a8lg0|8jhg0|a8ac0|5hoqs0|7el80|awo40|7v980|awqw0|7tk40|b07w0|7tk40|ayd80|7tk40|ayd80|7tk40|ayd80|7tk40|b07w0|7tk40|ayd80|7tk40|ayd80|7ves0|awik0|1sns0|3p6is0|51ek0|9q2s0|6u7w0|2khpg0|25s00|1weyo0|5reo0|bxmo0|7x3w0|cls40|5rbw0|bbhg0|7rjw0|asys0|7k580|c8tg0|6h980|ag040|7x3w0|asys0|8a2k0|asys0|8a2k0|ap9g0|80t80|ap9g0|7nuk0|b2840|80t80|66as0|4vxc0|8n400|a2yo0|8n400|a2yo0|8n400|asw00|9cyk0|9q2s0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|8n400|a2yo0|8ulg0|97ek0|8y580|9ts40|8hms0|a4qk0|7x3w0|asys0|8a5c0|ahs1o|71mic|bzk5o|69uic|cg840|902o0|9q000|9cyk0|9d440|ast80|7z440|aqyk0|7z6w0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7vc00|auqo0|7vc00|b7pc0|7idc0|b7pc0|7idc0|b7pc0|7vc00|auqo0|7vc00|auqo0|7vc00|auqo0|7vc00|b7pc0|7idc0|b7pc0|7vc00|auqo0|7vc00|auqo0|7vc00|auqo0|7vc00|auqo0|7vc00|b7pc0|7idc0|b7pc0|7vc00|auqo0|7vc00|auqo0|7vc00|auqo0|7vc00|b7pc0|Infinity\",\r\n offsets: \"-120|-180\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010100101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Asia/Harbin\",\r\n untils: \"-qh00w0|8sl80|asbpg0|6w2k0|7ves0|bxjw0|4mqs0|1vduk0|d4as0|75bw0|a31g0|aaak0|9d440|7v980|awo40|1dx80|j9xpo0|6u7w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|Infinity\",\r\n offsets: \"-480|-540\",\r\n offsetIndices: \"01010101010101010101010101010\"\r\n }, {\r\n id: \"Asia/Hebron\",\r\n untils: \"-ffv9k0|19f3w0|7rv00|b02c0|7tk40|b07w0|8jhg0|a8lg0|8jhg0|a8ac0|5hoqs0|7el80|awo40|7v980|awqw0|7tk40|b07w0|7tk40|ayd80|7tk40|ayd80|7tk40|ayd80|7tk40|b07w0|7tk40|ayd80|7tk40|ayd80|7ves0|awik0|1sns0|3p6is0|51ek0|9q2s0|6u7w0|2khpg0|25s00|1weyo0|5reo0|bxmo0|7x3w0|cls40|5rbw0|bbhg0|7rjw0|asys0|7k580|c8tg0|6h980|ag040|7x3w0|asys0|8a2k0|asys0|8a2k0|ap9g0|80t80|ap9g0|7nuk0|b2840|80t80|66as0|4vxc0|8n400|a2yo0|8n400|a2yo0|8n400|asw00|9cyk0|9q2s0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|8n400|a2yo0|8ulg0|97ek0|8y580|9ts40|8hms0|a4qk0|82nw0|anes0|8a5c0|afxc0|73h80|bzk5o|69uic|1hs40|1lbw0|9d440|902o0|9q000|9cyk0|9d440|ast80|7z440|aqyk0|7z6w0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7vc00|auqo0|7vc00|b7pc0|7idc0|b7pc0|7idc0|b7pc0|7vc00|auqo0|7vc00|auqo0|7vc00|auqo0|7vc00|b7pc0|7idc0|b7pc0|7vc00|auqo0|7vc00|auqo0|7vc00|auqo0|7vc00|auqo0|7vc00|b7pc0|7idc0|b7pc0|7vc00|auqo0|7vc00|auqo0|7vc00|auqo0|7vc00|b7pc0|Infinity\",\r\n offsets: \"-120|-180\",\r\n offsetIndices: \"010101010101010101010101010101010101010101010101010101010101010010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Asia/Ho_Chi_Minh\",\r\n untils: \"-x56934|2isioa|gj25iu|15ct80|8so00|tmtk0|4azjw0|2cmao0|8285c0|Infinity\",\r\n offsets: \"-426.6667|-426.5|-420|-480|-540\",\r\n offsetIndices: \"0123423232\"\r\n }, {\r\n id: \"Asia/Hong_Kong\",\r\n untils: \"-y0i0s0|j44dk0|5k000|4d4y0|2195i0|7x3w0|bj320|6uao0|bvs00|7x6o0|9d1c0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|asw00|7x6o0|ast80|77c40|biqk0|77c40|bvp80|6udg0|bvp80|77c40|biqk0|77c40|biqk0|77c40|biqk0|77c40|bvp80|6udg0|bvp80|6udg0|bvp80|77c40|biqk0|77c40|biqk0|8n6s0|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|3lpg0|f4d80|9d440|9cyk0|9d440|9cyk0|1c9440|8a2k0|Infinity\",\r\n offsets: \"-456.7|-480|-540|-510\",\r\n offsetIndices: \"0123212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Asia/Hovd\",\r\n untils: \"-xmcoz0|11sncb0|2qk2k0|9et80|9eys0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9q2s0|9cyk0|9d440|9cyk0|9d440|9cyk0|1ckdo0|7x3w0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|4fio40|9ct00|9d9o0|9ct00|Infinity\",\r\n offsets: \"-366.6|-360|-420|-480\",\r\n offsetIndices: \"012323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Asia/Irkutsk\",\r\n untils: \"-q28gn5|5fh175|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|Infinity\",\r\n offsets: \"-417.0833|-420|-480|-540\",\r\n offsetIndices: \"01232323232323232323232123232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Asia/Istanbul\",\r\n untils: \"-ux9xew|2wvx6w|7v980|1tjc40|aunw0|88dg0|9et80|8yas0|a2vw0|tzpg0|79180|awo40|7v980|7p4040|4zjw0|2vs40|f4d80|9vms0|1u5ek0|c5440|69uk0|acas0|8n180|a31g0|8n180|9q2s0|8zzw0|a31g0|8zzw0|a31g0|8n180|5md9g0|o9zw0|a6qs0|75bw0|4iwyw0|7x6o0|7kas0|b5rw0|75hg0|bkl80|77c40|biqk0|7x9g0|a2vw0|8n6s0|4iqc0|2nkw80|38l80|kdes0|8qtc0|8a5c0|9ew00|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|902o0|9q000|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7kdk0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7m2o0|b4000|7k800|b5uo0|7x6o0|asw00|7z1c0|ar1c0|7x6o0|bitc0|779c0|8fe80|Infinity\",\r\n offsets: \"-116.9333|-120|-180|-240\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121223212121212121212121212121212121212121212121212121212121212121212122\"\r\n }, {\r\n id: \"Asia/Jakarta\",\r\n untils: \"-o0bdpc|4lzxc0|4wdzjc|1tu960|1cx860|11jta0|74uc20|Infinity\",\r\n offsets: \"-427.2|-440|-450|-540|-480|-420\",\r\n offsetIndices: \"01232425\"\r\n }, {\r\n id: \"Asia/Jayapura\",\r\n untils: \"-jebm20|66bqe0|a37vy0|Infinity\",\r\n offsets: \"-562.8|-540|-570\",\r\n offsetIndices: \"0121\"\r\n }, {\r\n id: \"Asia/Jerusalem\",\r\n untils: \"-r50eig|bp54yg|19f3w0|7rv00|b02c0|7tk40|b07w0|8jhg0|a8lg0|8jhg0|a8ac0|t9s40|56vs0|35700|9b3w0|9gtg0|8jbw0|7tmw0|a6ig0|biyw0|8a5c0|9d1c0|902o0|7x6o0|e1eg0|4ofw0|dzxo0|4q500|doo40|64iw0|auqo0|7i500|8rfms0|51ek0|9q2s0|6u7w0|2khpg0|25s00|1weyo0|5reo0|bxmo0|7x3w0|cls40|5rbw0|bbhg0|7rjw0|asys0|7k580|c8tg0|6h980|ag040|7x3w0|asys0|8a2k0|asys0|8a2k0|ap9g0|80t80|ap9g0|7nuk0|b2840|80t80|9zc40|9iik0|9kis0|93p80|9mdg0|8qqk0|apf00|7x3w0|biw40|8zx40|9io40|8n180|9kis0|9vh80|8ulg0|9px80|9mdg0|8n180|9tuw0|9tmk0|8wg40|9gnw0|99es0|8qqk0|9zc40|9tmk0|8wg40|9gnw0|99es0|8qqk0|acas0|9gnw0|99es0|93p80|9mdg0|awik0|7tk40|awik0|7tk40|awik0|7tk40|b9h80|7glg0|b9h80|7glg0|b9h80|7tk40|awik0|7tk40|awik0|7tk40|b9h80|7glg0|b9h80|7glg0|b9h80|7tk40|awik0|7tk40|awik0|7tk40|awik0|7tk40|b9h80|7glg0|b9h80|7glg0|b9h80|7tk40|awik0|7tk40|awik0|7tk40|b9h80|7glg0|b9h80|7glg0|b9h80|7glg0|b9h80|7tk40|awik0|7tk40|awik0|Infinity\",\r\n offsets: \"-140.6667|-120|-180|-240\",\r\n offsetIndices: \"012121212121321212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Asia/Kabul\",\r\n untils: \"-d1pkg0|Infinity\",\r\n offsets: \"-240|-270\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Asia/Kamchatka\",\r\n untils: \"-olrupo|3z045o|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|j3440|7k800|Infinity\",\r\n offsets: \"-634.6|-660|-720|-780\",\r\n offsetIndices: \"012323232323232323232321232323232323232323232323232323232323212\"\r\n }, {\r\n id: \"Asia/Karachi\",\r\n untils: \"-wvpb30|im3zt0|1mn180|33xpg0|a63o20|g72qo0|9cyk0|2y85g0|7v980|8hms0|aaak0|Infinity\",\r\n offsets: \"-268.2|-330|-390|-300|-360\",\r\n offsetIndices: \"012133434343\"\r\n }, {\r\n id: \"Asia/Kashgar\",\r\n untils: \"-lx5pjw|Infinity\",\r\n offsets: \"-350.3333|-360\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Asia/Kathmandu\",\r\n untils: \"-q3gt4s|yg2lus|Infinity\",\r\n offsets: \"-341.2667|-330|-345\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"Asia/Katmandu\",\r\n untils: \"-q3gt4s|yg2lus|Infinity\",\r\n offsets: \"-341.2667|-330|-345\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"Asia/Khandyga\",\r\n untils: \"-q4cjrp|5hl1jp|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|3fx40|4h6s0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|8ql00|1mlho0|Infinity\",\r\n offsets: \"-542.2167|-480|-540|-600|-660\",\r\n offsetIndices: \"0123232323232323232323212323232323232323232323232343434343434343432\"\r\n }, {\r\n id: \"Asia/Kolkata\",\r\n untils: \"-xehava|innm9a|bmfw0|5lxg0|1mn180|Infinity\",\r\n offsets: \"-321.1667|-330|-390\",\r\n offsetIndices: \"012121\"\r\n }, {\r\n id: \"Asia/Krasnoyarsk\",\r\n untils: \"-q37l72|5gg8j2|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|Infinity\",\r\n offsets: \"-371.4333|-360|-420|-480\",\r\n offsetIndices: \"01232323232323232323232123232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Asia/Kuala_Lumpur\",\r\n untils: \"-xphpwd|eeb94d|4it32o|8n3jc|1v2p60|iy3o60|Infinity\",\r\n offsets: \"-415.4167|-420|-440|-450|-540|-480\",\r\n offsetIndices: \"0123435\"\r\n }, {\r\n id: \"Asia/Kuching\",\r\n untils: \"-mvof3k|3khwxk|1epvy0|4ohqo|e5a9c|4ohqo|e3flc|4ohqo|e3flc|4ohqo|e3flc|4ohqo|e5a9c|4ohqo|e3flc|4ohqo|3ajlc|1v2qk0|Infinity\",\r\n offsets: \"-441.3333|-450|-480|-500|-540\",\r\n offsetIndices: \"0123232323232323242\"\r\n }, {\r\n id: \"Asia/Kuwait\",\r\n untils: \"-bwgbbg|Infinity\",\r\n offsets: \"-186.8667|-180\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Asia/Macao\",\r\n untils: \"-y0i2cy|jdvyoy|6onw0|ac580|8fs40|7v980|11luw0|awlc0|7vc00|ac800|bko00|7x6o0|9d1c0|7vc00|asw00|7x6o0|asw00|7x6o0|auqo0|88ao0|asw00|7x6o0|asw00|779c0|bitc0|779c0|bvs00|6uao0|bw1q0|77c40|biqk0|77c40|biqk0|77c40|biqk0|77c40|bvp80|6udg0|bvp80|6udg0|bvp80|77c40|biqk0|77c40|biqk0|8n6s0|9cvs0|9d6w0|9cvs0|9d6w0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|3lpg0|f4d80|9d440|9cyk0|9d440|9cyk0|1c9440|8a2k0|Infinity\",\r\n offsets: \"-454.1667|-480|-540|-600\",\r\n offsetIndices: \"012323212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Asia/Macau\",\r\n untils: \"-y0i2cy|jdvyoy|6onw0|ac580|8fs40|7v980|11luw0|awlc0|7vc00|ac800|bko00|7x6o0|9d1c0|7vc00|asw00|7x6o0|asw00|7x6o0|auqo0|88ao0|asw00|7x6o0|asw00|779c0|bitc0|779c0|bvs00|6uao0|bw1q0|77c40|biqk0|77c40|biqk0|77c40|biqk0|77c40|bvp80|6udg0|bvp80|6udg0|bvp80|77c40|biqk0|77c40|biqk0|8n6s0|9cvs0|9d6w0|9cvs0|9d6w0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|3lpg0|f4d80|9d440|9cyk0|9d440|9cyk0|1c9440|8a2k0|Infinity\",\r\n offsets: \"-454.1667|-480|-540|-600\",\r\n offsetIndices: \"012323212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Asia/Magadan\",\r\n untils: \"-nu1nxc|37a05c|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|s39k0|Infinity\",\r\n offsets: \"-603.2|-600|-660|-720\",\r\n offsetIndices: \"012323232323232323232321232323232323232323232323232323232323232312\"\r\n }, {\r\n id: \"Asia/Makassar\",\r\n untils: \"-q3gzg0|6p5hc0|4u87w0|1w02k0|Infinity\",\r\n offsets: \"-477.6|-480|-540\",\r\n offsetIndices: \"00121\"\r\n }, {\r\n id: \"Asia/Manila\",\r\n untils: \"-hb5y80|4qak0|2qidg0|1b2d80|4xf440|442k0|cdqdg0|9et80|Infinity\",\r\n offsets: \"-480|-540\",\r\n offsetIndices: \"010101010\"\r\n }, {\r\n id: \"Asia/Muscat\",\r\n untils: \"-q3gnko|Infinity\",\r\n offsets: \"-221.2|-240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Asia/Nicosia\",\r\n untils: \"-p4bq6g|rvhxyg|9cyk0|b42s0|7nuk0|8yas0|8zzw0|9q2s0|9et80|9b9g0|9cyk0|9q2s0|8zzw0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9q2s0|9cyk0|9d440|9cyk0|9d440|at4c0|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-133.4667|-120|-180\",\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Asia/Novokuznetsk\",\r\n untils: \"-nu36tc|37bu5c|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|j3440|7k800|Infinity\",\r\n offsets: \"-348.8|-360|-420|-480\",\r\n offsetIndices: \"012323232323232323232321232323232323232323232323232323232323212\"\r\n }, {\r\n id: \"Asia/Novosibirsk\",\r\n untils: \"-q4do0s|5hmbcs|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|2vh00|6hn40|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|wrpg0|Infinity\",\r\n offsets: \"-331.6667|-360|-420|-480\",\r\n offsetIndices: \"0123232323232323232323212323212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"Asia/Omsk\",\r\n untils: \"-q5xmx6|5j6d16|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|Infinity\",\r\n offsets: \"-293.5|-300|-360|-420\",\r\n offsetIndices: \"01232323232323232323232123232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Asia/Oral\",\r\n untils: \"-nu15ic|37a16c|qi2540|s6qk0|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|iq5g0|9d1c0|9q000|9d1c0|9d1c0|5reo0|cyo00|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|Infinity\",\r\n offsets: \"-205.4|-180|-300|-360|-240\",\r\n offsetIndices: \"01232323232323232424242424242424242424242424242\"\r\n }, {\r\n id: \"Asia/Phnom_Penh\",\r\n untils: \"-pysda4|Infinity\",\r\n offsets: \"-402.0667|-420\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Asia/Pontianak\",\r\n untils: \"-w6piww|cse2o0|4tnu2w|1wkei0|1cx860|11jta0|74uc20|cixam0|Infinity\",\r\n offsets: \"-437.3333|-450|-540|-480|-420\",\r\n offsetIndices: \"001213134\"\r\n }, {\r\n id: \"Asia/Pyongyang\",\r\n untils: \"-w895yc|1yh10c|hk5da0|10ipmo0|1f4qo0|Infinity\",\r\n offsets: \"-503|-510|-540\",\r\n offsetIndices: \"012212\"\r\n }, {\r\n id: \"Asia/Qatar\",\r\n untils: \"-q3gmvk|rctnrk|Infinity\",\r\n offsets: \"-206.1333|-240|-180\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"Asia/Qostanay\",\r\n untils: \"-nu17s4|37a0o4|qi27w0|s6qk0|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|Infinity\",\r\n offsets: \"-254.4667|-240|-300|-360\",\r\n offsetIndices: \"012323232323232323232123232323232323232323232323\"\r\n }, {\r\n id: \"Asia/Qyzylorda\",\r\n untils: \"-nu184g|37a10g|qi27w0|s6qk0|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|ohhc0|cyo00|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|7osl00|Infinity\",\r\n offsets: \"-261.8667|-240|-300|-360\",\r\n offsetIndices: \"01232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Asia/Rangoon\",\r\n untils: \"-q3gv5b|bnjp3b|1kh520|Infinity\",\r\n offsets: \"-384.7833|-390|-540\",\r\n offsetIndices: \"0121\"\r\n }, {\r\n id: \"Asia/Riyadh\",\r\n untils: \"-bwgbbg|Infinity\",\r\n offsets: \"-186.8667|-180\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Asia/Saigon\",\r\n untils: \"-x56934|2isioa|gj25iu|15ct80|8so00|tmtk0|4azjw0|2cmao0|8285c0|Infinity\",\r\n offsets: \"-426.6667|-426.5|-420|-480|-540\",\r\n offsetIndices: \"0123423232\"\r\n }, {\r\n id: \"Asia/Sakhalin\",\r\n untils: \"-xl87rc|kvnarc|ikvh40|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|iq5g0|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|qnc40|Infinity\",\r\n offsets: \"-570.8|-540|-660|-720|-600\",\r\n offsetIndices: \"01232323232323232323232423232323232424242424242424242424242424242\"\r\n }, {\r\n id: \"Asia/Samarkand\",\r\n untils: \"-nu18eh|37a1ah|qi27w0|s6qk0|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|Infinity\",\r\n offsets: \"-267.8833|-240|-300|-360\",\r\n offsetIndices: \"01232323232323232323232\"\r\n }, {\r\n id: \"Asia/Seoul\",\r\n untils: \"-w8966g|1yh18g|hkx5a0|1faao0|5cik0|ae5g0|8a2k0|ae5g0|8bx80|c8tg0|6h980|1bj6s0|l3aq0|6j3w0|d2g40|6u7w0|b5xg0|776k0|biw40|776k0|biw40|776k0|biw40|776k0|grs40|dfqxi0|7x6o0|asw00|7x6o0|Infinity\",\r\n offsets: \"-507.8667|-510|-540|-600|-570\",\r\n offsetIndices: \"012232323232141414141414123232\"\r\n }, {\r\n id: \"Asia/Shanghai\",\r\n untils: \"-qh00w0|8sl80|asbpg0|6w2k0|7ves0|bxjw0|4mqs0|1vduk0|d4as0|75bw0|a31g0|aaak0|9d440|7v980|awo40|1dx80|j9xpo0|6u7w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|Infinity\",\r\n offsets: \"-480|-540\",\r\n offsetIndices: \"01010101010101010101010101010\"\r\n }, {\r\n id: \"Asia/Singapore\",\r\n untils: \"-xphpwd|eeb94d|4it32o|8n3jc|1v2p60|iy3o60|Infinity\",\r\n offsets: \"-415.4167|-420|-440|-450|-540|-480\",\r\n offsetIndices: \"0123435\"\r\n }, {\r\n id: \"Asia/Srednekolymsk\",\r\n untils: \"-nu1ogs|37a0os|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|Infinity\",\r\n offsets: \"-614.8667|-600|-660|-720\",\r\n offsetIndices: \"01232323232323232323232123232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Asia/Taipei\",\r\n untils: \"-gtzfk0|45slc0|c51c0|75bw0|a31g0|aaak0|9d440|7v980|awo40|7v980|awo40|7v980|awo40|7v980|7tk40|clmk0|7rpg0|b07w0|7rpg0|b07w0|7rpg0|9et80|9eys0|9et80|9d440|9et80|9d440|9et80|9d440|9et80|cjxg0|69uk0|ci2s0|69uk0|6its40|9et80|9d440|9et80|1yf9g0|4qak0|Infinity\",\r\n offsets: \"-480|-540\",\r\n offsetIndices: \"01010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Asia/Tashkent\",\r\n untils: \"-nu18tz|379yxz|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|Infinity\",\r\n offsets: \"-277.1833|-300|-360|-420\",\r\n offsetIndices: \"012323232323232323232321\"\r\n }, {\r\n id: \"Asia/Tbilisi\",\r\n untils: \"-nu14an|h4tjyn|ckinw0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|9cvs0|9cyk0|9d440|9cyk0|9d440|ipzw0|9cyk0|9q2s0|tivw0|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|4ofw0|6hn40|7k800|Infinity\",\r\n offsets: \"-179.1833|-180|-240|-300\",\r\n offsetIndices: \"0123232323232323232323212121232323232323232323212\"\r\n }, {\r\n id: \"Asia/Tehran\",\r\n untils: \"-s6m6uw|fnolc0|gm3h4w|777y0|b07w0|3pes0|42c20|9cyk0|9gtg0|9kd80|5ja5g0|7avw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|1av440|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|Infinity\",\r\n offsets: \"-205.7333|-210|-240|-300|-270\",\r\n offsetIndices: \"00123214141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141\"\r\n }, {\r\n id: \"Asia/Tel_Aviv\",\r\n untils: \"-r50eig|bp54yg|19f3w0|7rv00|b02c0|7tk40|b07w0|8jhg0|a8lg0|8jhg0|a8ac0|t9s40|56vs0|35700|9b3w0|9gtg0|8jbw0|7tmw0|a6ig0|biyw0|8a5c0|9d1c0|902o0|7x6o0|e1eg0|4ofw0|dzxo0|4q500|doo40|64iw0|auqo0|7i500|8rfms0|51ek0|9q2s0|6u7w0|2khpg0|25s00|1weyo0|5reo0|bxmo0|7x3w0|cls40|5rbw0|bbhg0|7rjw0|asys0|7k580|c8tg0|6h980|ag040|7x3w0|asys0|8a2k0|asys0|8a2k0|ap9g0|80t80|ap9g0|7nuk0|b2840|80t80|9zc40|9iik0|9kis0|93p80|9mdg0|8qqk0|apf00|7x3w0|biw40|8zx40|9io40|8n180|9kis0|9vh80|8ulg0|9px80|9mdg0|8n180|9tuw0|9tmk0|8wg40|9gnw0|99es0|8qqk0|9zc40|9tmk0|8wg40|9gnw0|99es0|8qqk0|acas0|9gnw0|99es0|93p80|9mdg0|awik0|7tk40|awik0|7tk40|awik0|7tk40|b9h80|7glg0|b9h80|7glg0|b9h80|7tk40|awik0|7tk40|awik0|7tk40|b9h80|7glg0|b9h80|7glg0|b9h80|7tk40|awik0|7tk40|awik0|7tk40|awik0|7tk40|b9h80|7glg0|b9h80|7glg0|b9h80|7tk40|awik0|7tk40|awik0|7tk40|b9h80|7glg0|b9h80|7glg0|b9h80|7glg0|b9h80|7tk40|awik0|7tk40|awik0|Infinity\",\r\n offsets: \"-140.6667|-120|-180|-240\",\r\n offsetIndices: \"012121212121321212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Asia/Thimbu\",\r\n untils: \"-bojclo|kxymno|Infinity\",\r\n offsets: \"-358.6|-330|-360\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"Asia/Thimphu\",\r\n untils: \"-bojclo|kxymno|Infinity\",\r\n offsets: \"-358.6|-330|-360\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"Asia/Tokyo\",\r\n untils: \"-bb4900|6uao0|afxc0|8a5c0|c8qo0|6hc00|c8qo0|6hc00|Infinity\",\r\n offsets: \"-540|-600\",\r\n offsetIndices: \"010101010\"\r\n }, {\r\n id: \"Asia/Tomsk\",\r\n untils: \"-q3zbqf|5h7z2f|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|1leo0|97k40|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|tw040|Infinity\",\r\n offsets: \"-339.85|-360|-420|-480\",\r\n offsetIndices: \"0123232323232323232323212323232323232323232323212121212121212121212\"\r\n }, {\r\n id: \"Asia/Ujung_Pandang\",\r\n untils: \"-q3gzg0|6p5hc0|4u87w0|1w02k0|Infinity\",\r\n offsets: \"-477.6|-480|-540\",\r\n offsetIndices: \"00121\"\r\n }, {\r\n id: \"Asia/Ulaanbaatar\",\r\n untils: \"-xmcrsk|11sncck|2qk2k0|9et80|9eys0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9q2s0|9cyk0|9d440|9cyk0|9d440|9cyk0|1ckdo0|7x3w0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|4fio40|9ct00|9d9o0|9ct00|Infinity\",\r\n offsets: \"-427.5333|-420|-480|-540\",\r\n offsetIndices: \"012323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Asia/Ulan_Bator\",\r\n untils: \"-xmcrsk|11sncck|2qk2k0|9et80|9eys0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9q2s0|9cyk0|9d440|9cyk0|9d440|9cyk0|1ckdo0|7x3w0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|4fio40|9ct00|9d9o0|9ct00|Infinity\",\r\n offsets: \"-427.5333|-420|-480|-540\",\r\n offsetIndices: \"012323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Asia/Urumqi\",\r\n untils: \"-lx5pjw|Infinity\",\r\n offsets: \"-350.3333|-360\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Asia/Ust-Nera\",\r\n untils: \"-q4cl6u|5hl2yu|qi27w0|9eno0|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|8ql00|1mlho0|Infinity\",\r\n offsets: \"-572.9|-480|-540|-720|-660|-600\",\r\n offsetIndices: \"012343434343434343434345434343434343434343434343434343434343434345\"\r\n }, {\r\n id: \"Asia/Vientiane\",\r\n untils: \"-pysda4|Infinity\",\r\n offsets: \"-402.0667|-420\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Asia/Vladivostok\",\r\n untils: \"-oligf7|3yqvf7|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|Infinity\",\r\n offsets: \"-527.5167|-540|-600|-660\",\r\n offsetIndices: \"01232323232323232323232123232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Asia/Yakutsk\",\r\n untils: \"-q4cioy|5hl0gy|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|Infinity\",\r\n offsets: \"-518.9667|-480|-540|-600\",\r\n offsetIndices: \"01232323232323232323232123232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Asia/Yangon\",\r\n untils: \"-q3gv5b|bnjp3b|1kh520|Infinity\",\r\n offsets: \"-384.7833|-390|-540\",\r\n offsetIndices: \"0121\"\r\n }, {\r\n id: \"Asia/Yekaterinburg\",\r\n untils: \"-rx5hw9|1kybx4|5pfyv5|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|Infinity\",\r\n offsets: \"-242.55|-225.0833|-240|-300|-360\",\r\n offsetIndices: \"012343434343434343434343234343434343434343434343434343434343434343\"\r\n }, {\r\n id: \"Asia/Yerevan\",\r\n untils: \"-nu148o|h4tjwo|ckinw0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|11t180|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|Infinity\",\r\n offsets: \"-178|-180|-240|-300\",\r\n offsetIndices: \"0123232323232323232323212121212323232323232323232323232323232\"\r\n }, {\r\n id: \"Atlantic/Azores\",\r\n untils: \"-u9rbs0|2bufw0|6zxg0|66580|bq800|73k00|bodc0|71pc0|bq800|73k00|bq800|71pc0|bq800|1b2g00|9b6o0|saio0|8n400|9q000|902o0|a2yo0|902o0|a2yo0|8n400|st1c0|8n400|9d1c0|9d1c0|sg2o0|9d1c0|902o0|9q000|a2yo0|8n400|9d1c0|9d1c0|902o0|9q000|a2yo0|b5uo0|51hc0|bitc0|9d1c0|9ew00|88ao0|25p80|5reo0|3lpg0|779c0|1sqk0|6uao0|38qs0|6uao0|25p80|6hc00|38qs0|6uao0|25p80|6hc00|38qs0|8a5c0|9d1c0|9d9o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|s3400|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|5qbjo0|9d1c0|9q000|9d1c0|9d1c0|9d440|9cyk0|9d440|9d1c0|9d1c0|9d1c0|9d1c0|9d440|9cyk0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9cyk0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"114.5333|120|60|0\",\r\n offsetIndices: \"01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121232323232323232323232323232323233323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Atlantic/Bermuda\",\r\n untils: \"-kvj2fu|n4pr3u|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"259.3|240|180\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Atlantic/Canary\",\r\n untils: \"-oytbtc|ctvupc|hhq7s0|905g0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"61.6|60|0|-60\",\r\n offsetIndices: \"01232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Atlantic/Cape_Verde\",\r\n untils: \"-u9rbs0|g06lc0|1mn180|fpqwc0|Infinity\",\r\n offsets: \"94.0667|120|60\",\r\n offsetIndices: \"01212\"\r\n }, {\r\n id: \"Atlantic/Faeroe\",\r\n untils: \"-wcehew|127keuw|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"27.0667|0|-60\",\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Atlantic/Faroe\",\r\n untils: \"-wcehew|127keuw|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"27.0667|0|-60\",\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Atlantic/Jan_Mayen\",\r\n untils: \"-rzayo0|6qfs0|cgcqo0|15tsc0|7k800|9q000|9d1c0|9d1c0|9d1c0|9d1c0|70q5c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|b5uo0|7k800|7law00|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Atlantic/Madeira\",\r\n untils: \"-u9rek0|2bufw0|6zxg0|66580|bq800|73k00|bodc0|71pc0|bq800|73k00|bq800|71pc0|bq800|1b2g00|9b6o0|saio0|8n400|9q000|902o0|a2yo0|902o0|a2yo0|8n400|st1c0|8n400|9d1c0|9d1c0|sg2o0|9d1c0|902o0|9q000|a2yo0|8n400|9d1c0|9d1c0|902o0|9q000|a2yo0|b5uo0|51hc0|bitc0|9d1c0|9ew00|88ao0|25p80|5reo0|3lpg0|779c0|1sqk0|6uao0|38qs0|6uao0|25p80|6hc00|38qs0|6uao0|25p80|6hc00|38qs0|8a5c0|9d1c0|9d9o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|s3400|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|5qbjo0|9d1c0|9q000|9d1c0|9d1c0|9d440|9cyk0|9d440|9d1c0|9d1c0|9d1c0|9d1c0|9d440|9cyk0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"67.6|60|0|-60\",\r\n offsetIndices: \"01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Atlantic/Reykjavik\",\r\n untils: \"-wcwx9c|4rpd9c|ci2s0|69uk0|du840|4xp80|du840|p7bw0|4w040|9bdzw0|9d6w0|64g40|cyl80|64dc0|clpc0|6hc00|bvs00|6uao0|bvs00|6uao0|bvs00|6uao0|c8qo0|6hc00|c8qo0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|7x6o0|afxc0|8a5c0|asw00|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|8a5c0|Infinity\",\r\n offsets: \"88|60|0\",\r\n offsetIndices: \"012121212121212121212121212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"Atlantic/South_Georgia\",\r\n untils: \"Infinity\",\r\n offsets: \"120\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Atlantic/St_Helena\",\r\n untils: \"-u9rgl4|Infinity\",\r\n offsets: \"16.1333|0\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Atlantic/Stanley\",\r\n untils: \"-u63pac|dbvxqc|8zzw0|9q2s0|8zzw0|a31g0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|4xp80|l1pus0|7k580|b5rw0|77c40|biqk0|id6s0|7kas0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7kas0|biqk0|77c40|biqk0|7kas0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7kas0|biqk0|7kas0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7kas0|b5xg0|77c40|bvp80|6udg0|bvp80|77c40|biqk0|77c40|biqk0|77c40|biqk0|77c40|biqk0|77c40|bvp80|77c40|biqk0|77c40|biqk0|77c40|Infinity\",\r\n offsets: \"231.4|240|180|120\",\r\n offsetIndices: \"012121212121212323212121212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"Australia/ACT\",\r\n untils: \"-rnsx2c|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|eeiqs0|64dc0|clpc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|8a5c0|asw00|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|779c0|b5uo0|7k800|bitc0|7k800|bitc0|779c0|bitc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|7x6o0|asw00|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|8a5c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\",\r\n offsets: \"-600|-660\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101\"\r\n }, {\r\n id: \"Australia/Adelaide\",\r\n untils: \"-rnsvoc|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|eeiqs0|64dc0|clpc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|779c0|b5uo0|7k800|bitc0|7k800|bitc0|779c0|bitc0|779c0|bitc0|6hc00|c8qo0|7k800|b5uo0|6uao0|c8qo0|779c0|bitc0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|8a5c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\",\r\n offsets: \"-570|-630\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101\"\r\n }, {\r\n id: \"Australia/Brisbane\",\r\n untils: \"-rnsx2c|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|eeiqs0|64dc0|97zuo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|Infinity\",\r\n offsets: \"-600|-660\",\r\n offsetIndices: \"01010101010101010\"\r\n }, {\r\n id: \"Australia/Broken_Hill\",\r\n untils: \"-rnsvoc|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|eeiqs0|64dc0|clpc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|8a5c0|asw00|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|779c0|b5uo0|7k800|bitc0|7k800|bitc0|779c0|bitc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|8a5c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\",\r\n offsets: \"-570|-630\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101\"\r\n }, {\r\n id: \"Australia/Canberra\",\r\n untils: \"-rnsx2c|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|eeiqs0|64dc0|clpc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|8a5c0|asw00|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|779c0|b5uo0|7k800|bitc0|7k800|bitc0|779c0|bitc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|7x6o0|asw00|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|8a5c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\",\r\n offsets: \"-600|-660\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101\"\r\n }, {\r\n id: \"Australia/Currie\",\r\n untils: \"-rsj4w0|8zzw0|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|eeiqs0|64dc0|clpc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|7x6o0|b5uo0|7k800|b5uo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|bvs00|7k800|bitc0|7k800|bitc0|779c0|bitc0|779c0|bitc0|7x6o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|7x6o0|asw00|a2yo0|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9d1c0|902o0|a2yo0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\",\r\n offsets: \"-600|-660\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101\"\r\n }, {\r\n id: \"Australia/Darwin\",\r\n untils: \"-rnsvoc|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|Infinity\",\r\n offsets: \"-570|-630\",\r\n offsetIndices: \"010101010\"\r\n }, {\r\n id: \"Australia/Eucla\",\r\n untils: \"-rnstlc|49s2c|cxfms0|4h180|9d440|9cyk0|ghf1g0|6hc00|4ir9c0|6hc00|40r400|5eg00|7p9hc0|5reo0|b5uo0|7x6o0|asw00|7x6o0|Infinity\",\r\n offsets: \"-525|-585\",\r\n offsetIndices: \"0101010101010101010\"\r\n }, {\r\n id: \"Australia/Hobart\",\r\n untils: \"-rsj4w0|8zzw0|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|c9tms0|9d1c0|asw00|6uao0|bvs00|6uao0|bvs00|779c0|bvs00|64dc0|clpc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|7x6o0|b5uo0|7k800|b5uo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|bvs00|7k800|bitc0|7k800|bitc0|779c0|bitc0|779c0|bitc0|7x6o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|7x6o0|asw00|a2yo0|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9d1c0|902o0|a2yo0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\",\r\n offsets: \"-600|-660\",\r\n offsetIndices: \"010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101\"\r\n }, {\r\n id: \"Australia/LHI\",\r\n untils: \"5tp880|c8uu0|6u7w0|c8tg0|6h980|c8tg0|6h980|c8tg0|6h980|c8tg0|777y0|b5w20|7k6m0|biuq0|7k6m0|biuq0|777y0|biuq0|6ham0|c8s20|6ham0|c8s20|6ham0|c8s20|6u9a0|c8s20|6ham0|c8s20|6ham0|c8s20|7x5a0|asxe0|7x5a0|asxe0|7x5a0|asxe0|7x5a0|b5w20|7k6m0|7x820|asum0|b5w20|7x5a0|asxe0|7x5a0|asxe0|7x5a0|b5w20|7k6m0|b5w20|7x5a0|asxe0|7k6m0|b5w20|8a3y0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9q1e0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9q1e0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9pym0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9q1e0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9q1e0|9czy0|9d2q0|9czy0|9d2q0|Infinity\",\r\n offsets: \"-600|-630|-690|-660\",\r\n offsetIndices: \"0121212121313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313\"\r\n }, {\r\n id: \"Australia/Lindeman\",\r\n untils: \"-rnsx2c|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|eeiqs0|64dc0|97zuo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|Infinity\",\r\n offsets: \"-600|-660\",\r\n offsetIndices: \"010101010101010101010\"\r\n }, {\r\n id: \"Australia/Lord_Howe\",\r\n untils: \"5tp880|c8uu0|6u7w0|c8tg0|6h980|c8tg0|6h980|c8tg0|6h980|c8tg0|777y0|b5w20|7k6m0|biuq0|7k6m0|biuq0|777y0|biuq0|6ham0|c8s20|6ham0|c8s20|6ham0|c8s20|6u9a0|c8s20|6ham0|c8s20|6ham0|c8s20|7x5a0|asxe0|7x5a0|asxe0|7x5a0|asxe0|7x5a0|b5w20|7k6m0|7x820|asum0|b5w20|7x5a0|asxe0|7x5a0|asxe0|7x5a0|b5w20|7k6m0|b5w20|7x5a0|asxe0|7k6m0|b5w20|8a3y0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9q1e0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9q1e0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9pym0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9q1e0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9q1e0|9czy0|9d2q0|9czy0|9d2q0|Infinity\",\r\n offsets: \"-600|-630|-690|-660\",\r\n offsetIndices: \"0121212121313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313\"\r\n }, {\r\n id: \"Australia/Melbourne\",\r\n untils: \"-rnsx2c|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|eeiqs0|64dc0|clpc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|779c0|b5uo0|7k800|b5uo0|7x6o0|bitc0|779c0|bitc0|779c0|bitc0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|7x6o0|asw00|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|8a5c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\",\r\n offsets: \"-600|-660\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101\"\r\n }, {\r\n id: \"Australia/North\",\r\n untils: \"-rnsvoc|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|Infinity\",\r\n offsets: \"-570|-630\",\r\n offsetIndices: \"010101010\"\r\n }, {\r\n id: \"Australia/NSW\",\r\n untils: \"-rnsx2c|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|eeiqs0|64dc0|clpc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|8a5c0|asw00|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|779c0|b5uo0|7k800|bitc0|7k800|bitc0|779c0|bitc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|7x6o0|asw00|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|8a5c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\",\r\n offsets: \"-600|-660\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101\"\r\n }, {\r\n id: \"Australia/Perth\",\r\n untils: \"-rnsric|49s2c|cxfms0|4h180|9d440|9cyk0|ghf1g0|6hc00|4ir9c0|6hc00|40r400|5eg00|7p9hc0|5reo0|b5uo0|7x6o0|asw00|7x6o0|Infinity\",\r\n offsets: \"-480|-540\",\r\n offsetIndices: \"0101010101010101010\"\r\n }, {\r\n id: \"Australia/Queensland\",\r\n untils: \"-rnsx2c|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|eeiqs0|64dc0|97zuo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|Infinity\",\r\n offsets: \"-600|-660\",\r\n offsetIndices: \"01010101010101010\"\r\n }, {\r\n id: \"Australia/South\",\r\n untils: \"-rnsvoc|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|eeiqs0|64dc0|clpc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|779c0|b5uo0|7k800|bitc0|7k800|bitc0|779c0|bitc0|779c0|bitc0|6hc00|c8qo0|7k800|b5uo0|6uao0|c8qo0|779c0|bitc0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|8a5c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\",\r\n offsets: \"-570|-630\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101\"\r\n }, {\r\n id: \"Australia/Sydney\",\r\n untils: \"-rnsx2c|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|eeiqs0|64dc0|clpc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|8a5c0|asw00|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|779c0|b5uo0|7k800|bitc0|7k800|bitc0|779c0|bitc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|7x6o0|asw00|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|8a5c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\",\r\n offsets: \"-600|-660\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101\"\r\n }, {\r\n id: \"Australia/Tasmania\",\r\n untils: \"-rsj4w0|8zzw0|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|c9tms0|9d1c0|asw00|6uao0|bvs00|6uao0|bvs00|779c0|bvs00|64dc0|clpc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|7x6o0|b5uo0|7k800|b5uo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|bvs00|7k800|bitc0|7k800|bitc0|779c0|bitc0|779c0|bitc0|7x6o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|7x6o0|asw00|a2yo0|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9d1c0|902o0|a2yo0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\",\r\n offsets: \"-600|-660\",\r\n offsetIndices: \"010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101\"\r\n }, {\r\n id: \"Australia/Victoria\",\r\n untils: \"-rnsx2c|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|eeiqs0|64dc0|clpc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|779c0|b5uo0|7k800|b5uo0|7x6o0|bitc0|779c0|bitc0|779c0|bitc0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|7x6o0|asw00|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|8a5c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\",\r\n offsets: \"-600|-660\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101\"\r\n }, {\r\n id: \"Australia/West\",\r\n untils: \"-rnsric|49s2c|cxfms0|4h180|9d440|9cyk0|ghf1g0|6hc00|4ir9c0|6hc00|40r400|5eg00|7p9hc0|5reo0|b5uo0|7x6o0|asw00|7x6o0|Infinity\",\r\n offsets: \"-480|-540\",\r\n offsetIndices: \"0101010101010101010\"\r\n }, {\r\n id: \"Australia/Yancowinna\",\r\n untils: \"-rnsvoc|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|eeiqs0|64dc0|clpc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|8a5c0|asw00|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|779c0|b5uo0|7k800|bitc0|7k800|bitc0|779c0|bitc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|8a5c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\",\r\n offsets: \"-570|-630\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101\"\r\n }, {\r\n id: \"Brazil/Acre\",\r\n untils: \"-t85fg0|99kak0|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|amves0|2t2t80|Infinity\",\r\n offsets: \"271.2|300|240\",\r\n offsetIndices: \"01212121212121212121212121212121\"\r\n }, {\r\n id: \"Brazil/DeNoronha\",\r\n untils: \"-t85lzw|99k8rw|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|cyqs0|5ed80|dbpg0|64ak0|514g40|7k580|biw40|cvw0|iq5g0|6h980|Infinity\",\r\n offsets: \"129.6667|120|60\",\r\n offsetIndices: \"0121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Brazil/East\",\r\n untils: \"-t85jd8|99k8x8|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5k02s0|6onw0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|cyqs0|5ed80|dbpg0|64ak0|cyqs0|64ak0|cls40|5rbw0|dbpg0|51ek0|dbpg0|6h980|c8tg0|6h980|c8tg0|64ak0|c8tg0|6u7w0|bxpg0|7iak0|biw40|6u7w0|biw40|7k580|biw40|6u7w0|c8tg0|6h980|dbpg0|5ed80|cls40|64ak0|dfes0|5nmk0|c8tg0|6h980|dbpg0|5rbw0|bvus0|6h980|cls40|64ak0|cls40|6h980|c8tg0|6h980|c8tg0|6u7w0|c8tg0|64ak0|cls40|64ak0|cls40|6h980|c8tg0|6h980|c8tg0|6h980|c8tg0|6h980|dbpg0|5ed80|Infinity\",\r\n offsets: \"186.4667|180|120\",\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Brazil/West\",\r\n untils: \"-t85gvw|99k97w|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|2yy2s0|6h980|Infinity\",\r\n offsets: \"240.0667|240|180\",\r\n offsetIndices: \"01212121212121212121212121212121\"\r\n }, {\r\n id: \"Canada/Atlantic\",\r\n untils: \"-z94k80|777go0|9et80|st9o0|a2vw0|ssyk0|5rbw0|cv1g0|69uk0|c6ys0|6kyk0|ci2s0|67zw0|ci2s0|6w2k0|bu040|7lzw0|bu040|66580|bu040|7lzw0|bu040|64ak0|cls40|5v180|cv1g0|6j3w0|c6ys0|79180|b42s0|7lzw0|b42s0|7yyk0|bu040|64ak0|dbpg0|66580|cls40|5ed80|bu040|7lzw0|b42s0|7lzw0|cjxg0|66580|bh1g0|7lzw0|b42s0|7lzw0|6uj00|1tzdw0|2dnc0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|tw040|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|tw040|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|1cm2s0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"254.4|240|180\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212122121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Canada/Central\",\r\n untils: \"-s0s7c0|7k580|tj700|a2vw0|9ok840|6u7w0|2a5hg0|1tz8c0|2dsw0|biw40|7x3w0|a31g0|7x3w0|asys0|7x3w0|asys0|7x3w0|b7s40|7tek0|autg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9cyk0|9d440|7x3w0|1cm2s0|7k580|1cm2s0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|902o0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|902o0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|8a5c0|afxc0|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|7x6o0|asw00|7x6o0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300\",\r\n offsetIndices: \"010101011010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Canada/Eastern\",\r\n untils: \"-qzoxw0|a2vw0|7yx60|aqzy0|9q8c0|7jzo0|bw0c0|6bp80|cedg0|6h980|c8tg0|6h980|bvus0|776k0|biw40|776k0|biw40|776k0|biw40|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|xjeo0|1tzb40|2dq40|asys0|7x3w0|ast80|7x3w0|asys0|7x3w0|asys0|b5rw0|7xf00|ast80|7x9g0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"300|240\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101011101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Canada/Mountain\",\r\n untils: \"-x1yazk|629ink|a2vw0|8n6s0|29ek0|h6lg0|9px80|905g0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|9l0g40|1tz5k0|2dvo0|tj1g0|7x3w0|ctzk40|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"453.8667|420|360\",\r\n offsetIndices: \"0121212121212122121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Canada/Newfoundland\",\r\n untils: \"-ris3ck|8bx80|ar440|a2vw0|9tjs0|53980|dkys0|9cyk0|9d440|9cyk0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|9cyk0|9d440|9cyk0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|9cyk0|9q2s0|8zzw0|9q2s0|8zzw0|7tmw0|1wfuk|8zzw0|a3480|7k580|b5xg0|7k580|b5xg0|7k580|biw40|776k0|biw40|7k580|b5xg0|7k580|b5xg0|1pb260|2dly0|biw40|7k580|b5xg0|7k580|b5xg0|7k580|b5xg0|7k580|biw40|7k580|ag040|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a2lo|afuk0|8a840|asqg0|7xc80|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8tec|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"210.8667|150.8667|210|150|90\",\r\n offsetIndices: \"01010101010101010101010101010101010102323232323232323323232323232323232323232323232323232323232323232323232323232323232323232323232323232324232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Canada/Pacific\",\r\n untils: \"-qzopk0|a2vw0|c5jxg0|1tz2s0|2dyg0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"480|420\",\r\n offsetIndices: \"0101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Canada/Saskatchewan\",\r\n untils: \"-xkq9yc|6l1hmc|a2vw0|60enw0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|1b6840|9cyk0|9d440|8zzw0|9q2s0|9cyk0|9q2s0|9cyk0|9d440|9cyk0|66gc0|1tz5k0|2dvo0|a31g0|9cyk0|a31g0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|tj1g0|9cyk0|9d440|Infinity\",\r\n offsets: \"418.6|420|360\",\r\n offsetIndices: \"012121212121212121212121221212121212121212121212121212\"\r\n }, {\r\n id: \"Canada/Yukon\",\r\n untils: \"-qzoms0|a2vw0|asys0|882c0|bmiwc0|1tz000|2e180|a7n3w0|9q000|tiyo0|6qp440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|Infinity\",\r\n offsets: \"540|480|420\",\r\n offsetIndices: \"01010110201212121212121212121212121212121212121212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"CET\",\r\n untils: \"-s0e080|7ves0|a4yw0|7x6o0|asw00|7x6o0|b8qdc0|1cm000|7k800|9q000|9d1c0|9d1c0|9d1c0|8l9c0|ggp1c0|902o0|9q000|9d1c0|9d1c0|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Chile/Continental\",\r\n untils: \"-vauawq|3dlssq|157b7a|f4e0q|49hzba|aye0q|7ves0|awik0|7ves0|awik0|7ves0|awik0|7ves0|ayd80|7ves0|534ik0|351g0|229zw0|2gt80|awo40|2mg00|b73400|7k580|c8tg0|6h980|a31g0|7x3w0|asys0|7x3w0|b5xg0|7k580|ag040|8a2k0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|9cyk0|9d440|7x3w0|asys0|7x3w0|b5xg0|7k580|9q2s0|8zzw0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|8n180|a31g0|7x3w0|a31g0|9px80|9q2s0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|8n180|a31g0|7x3w0|asys0|8zzw0|9q2s0|ast80|5eis0|cyl80|6hes0|c8nw0|6udg0|bvp80|6udg0|vonw0|4olg0|e1h80|4olg0|e1h80|4olg0|c8nw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|Infinity\",\r\n offsets: \"282.7667|300|240|180\",\r\n offsetIndices: \"010202121212121212321232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323\"\r\n }, {\r\n id: \"Chile/EasterIsland\",\r\n untils: \"-jhfaew|ivmeuw|7k580|c8tg0|6h980|a31g0|7x3w0|asys0|7x3w0|b5xg0|7k580|ag040|8a2k0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|7x3w0|asys0|iq2o0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|9cyk0|9d440|7x3w0|asys0|7x3w0|b5xg0|7k580|9q2s0|8zzw0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|8n180|a31g0|7x3w0|a31g0|9px80|9q2s0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|8n180|a31g0|7x3w0|asys0|8zzw0|9q2s0|ast80|5eis0|cyl80|6hes0|c8nw0|6udg0|bvp80|6udg0|vonw0|4olg0|e1h80|4olg0|e1h80|4olg0|c8nw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|Infinity\",\r\n offsets: \"437.4667|420|360|300\",\r\n offsetIndices: \"012121212121212121212121212123232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323\"\r\n }, {\r\n id: \"CST6CDT\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bmtus0|1tz8c0|2dsw0|b9gdg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300\",\r\n offsetIndices: \"010101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Cuba\",\r\n untils: \"-n7762o|1icfyo|69uk0|62s040|4ofw0|e1ms0|51ek0|e1ms0|4ofw0|1fhs40|4ofw0|e1ms0|4ofw0|9s9k40|67zw0|cedg0|6h980|9o840|7yyk0|b5xg0|7k580|bvus0|9cyk0|9d440|9cyk0|9d440|9px80|9d440|8a2k0|ag040|8bx80|ae5g0|8drw0|acas0|9cyk0|9d440|9px80|905g0|9px80|9q2s0|7x3w0|8a840|ast80|7x9g0|ast80|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|8a2k0|ag040|8a2k0|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|905g0|a2vw0|905g0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9d1c0|9d1c0|9q000|8n400|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|8a5c0|afxc0|8a5c0|afxc0|7x6o0|1cm000|6uao0|bvs00|779c0|bitc0|6uao0|bvs00|779c0|bvs00|779c0|c8qo0|779c0|b5uo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|Infinity\",\r\n offsets: \"329.6|300|240\",\r\n offsetIndices: \"012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"EET\",\r\n untils: \"3s9ms0|902o0|9q000|9d1c0|9d1c0|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-120|-180\",\r\n offsetIndices: \"010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Egypt\",\r\n untils: \"-fdls80|40d80|a31g0|7x3w0|a4w40|aqyk0|80ys0|b07w0|7tk40|b07w0|8jhg0|a8fw0|60go40|7el80|awo40|7v980|awqw0|7tk40|b07w0|7tk40|ayd80|7tk40|ayd80|7tk40|ayd80|7tk40|b07w0|7tk40|ayd80|7tk40|ayd80|7ves0|awik0|7ves0|ayd80|7ves0|awik0|7ves0|awik0|7ves0|awik0|7ves0|ayd80|7ves0|awik0|7ves0|awik0|7ves0|awik0|7ves0|ayd80|7ves0|awik0|7ves0|awik0|7ves0|awik0|7ves0|ayd80|7ves0|awik0|7ves0|f9x80|3i040|eluk0|462s0|ayd80|7ves0|awik0|7ves0|awik0|7ves0|awik0|7ves0|ayd80|7ves0|b5rw0|7m5g0|awik0|7ves0|awik0|7ves0|ayd80|7ves0|awik0|7ves0|awik0|7ves0|aqvs0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7k580|b5xg0|6u7w0|bvus0|6h980|c8tg0|64ak0|cyqs0|5anw0|1jms0|12t80|1w22s0|25p80|1sw40|2vmk0|Infinity\",\r\n offsets: \"-120|-180\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Eire\",\r\n untils: \"-rzcmlr|6uao0|9pytr|8c000|9o5c0|9ruo0|9b6o0|9ew00|9b6o0|auqo0|88ao0|9ew00|8y800|a2yo0|a2yo0|7k800|asw00|8a5c0|asw00|8n400|a2yo0|8n400|9q000|902o0|afxc0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|9d1c0|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|b5uo0|51hc0|3g8800|8a5c0|bvs00|8n400|a2yo0|7x6o0|asw00|8n400|9q000|902o0|9q000|9d1c0|9q000|902o0|8n400|9q000|902o0|a2yo0|8n400|afxc0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|902o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|5reo0|1xhuo0|779c0|bitc0|779c0|bitc0|779c0|bitc0|779c0|bitc0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|779c0|bitc0|779c0|bitc0|7x3w0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"25.35|-34.65|0|-60\",\r\n offsetIndices: \"01232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"EST\",\r\n untils: \"Infinity\",\r\n offsets: \"300\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"EST5EDT\",\r\n untils: \"-r0ev80|ast80|7x9g0|ast80|bmtus0|1tzb40|2dq40|b9gdg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"300|240\",\r\n offsetIndices: \"010101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Etc/GMT-0\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT-1\",\r\n untils: \"Infinity\",\r\n offsets: \"-60\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT-10\",\r\n untils: \"Infinity\",\r\n offsets: \"-600\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT-11\",\r\n untils: \"Infinity\",\r\n offsets: \"-660\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT-12\",\r\n untils: \"Infinity\",\r\n offsets: \"-720\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT-13\",\r\n untils: \"Infinity\",\r\n offsets: \"-780\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT-14\",\r\n untils: \"Infinity\",\r\n offsets: \"-840\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT-2\",\r\n untils: \"Infinity\",\r\n offsets: \"-120\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT-3\",\r\n untils: \"Infinity\",\r\n offsets: \"-180\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT-4\",\r\n untils: \"Infinity\",\r\n offsets: \"-240\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT-5\",\r\n untils: \"Infinity\",\r\n offsets: \"-300\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT-6\",\r\n untils: \"Infinity\",\r\n offsets: \"-360\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT-7\",\r\n untils: \"Infinity\",\r\n offsets: \"-420\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT-8\",\r\n untils: \"Infinity\",\r\n offsets: \"-480\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT-9\",\r\n untils: \"Infinity\",\r\n offsets: \"-540\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT+0\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT+1\",\r\n untils: \"Infinity\",\r\n offsets: \"60\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT+10\",\r\n untils: \"Infinity\",\r\n offsets: \"600\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT+11\",\r\n untils: \"Infinity\",\r\n offsets: \"660\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT+12\",\r\n untils: \"Infinity\",\r\n offsets: \"720\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT+2\",\r\n untils: \"Infinity\",\r\n offsets: \"120\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT+3\",\r\n untils: \"Infinity\",\r\n offsets: \"180\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT+4\",\r\n untils: \"Infinity\",\r\n offsets: \"240\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT+5\",\r\n untils: \"Infinity\",\r\n offsets: \"300\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT+6\",\r\n untils: \"Infinity\",\r\n offsets: \"360\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT+7\",\r\n untils: \"Infinity\",\r\n offsets: \"420\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT+8\",\r\n untils: \"Infinity\",\r\n offsets: \"480\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT+9\",\r\n untils: \"Infinity\",\r\n offsets: \"540\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/GMT0\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/Greenwich\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/UCT\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/Universal\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/UTC\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Etc/Zulu\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Europe/Amsterdam\",\r\n untils: \"-s0dvkk|7v980|a51o0|7x6o0|a2yo0|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9b6o0|a2yo0|c51c0|6l1c0|902o0|9q000|ci000|682o0|bgyo0|79400|bitc0|779c0|bmio0|7gio0|bbeo0|7eo00|bd9c0|7ctc0|bf400|7ayo0|bvs00|6uao0|bko00|7idc0|b9k00|7gio0|bbeo0|7eo00|bf400|7ayo0|btxc0|21uc0|4uaz8|bitc0|779c0|bko00|7idc0|bd3s0|1aarpc|7k800|9q000|9d1c0|9d1c0|9d1c0|8l9c0|ggp1c0|902o0|9q000|9d1c0|9d1c0|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-19.5333|-79.5333|-80|-20|-120|-60\",\r\n offsetIndices: \"010101010101010101010101010101010101010101012323234545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545\"\r\n }, {\r\n id: \"Europe/Andorra\",\r\n untils: \"-c4xmo0|k3ctg0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"0|-60|-120\",\r\n offsetIndices: \"012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Astrakhan\",\r\n untils: \"-nu2zkc|37bv8c|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|iq5g0|9d1c0|9q000|9d1c0|s3400|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|qnc40|Infinity\",\r\n offsets: \"-192.2|-180|-240|-300\",\r\n offsetIndices: \"012323232323232323212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"Europe/Athens\",\r\n untils: \"-rvv0cg|8bjasg|2vmk0|4hiw40|16ik0|scog0|7lx40|9o2k0|9eys0|4atzw0|6djw0|bplus0|bq800|71uw0|9d1c0|902o0|91xc0|9o5c0|905g0|9qgo0|9akg0|9iik0|99980|9dcg0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-94.8667|-120|-180|-60\",\r\n offsetIndices: \"012121313121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Belfast\",\r\n untils: \"-rzcns0|6uao0|9q000|8c000|9o5c0|9ruo0|9b6o0|9ew00|9b6o0|auqo0|88ao0|9ew00|8y800|a2yo0|a2yo0|7k800|asw00|8a5c0|asw00|8n400|a2yo0|8n400|9q000|902o0|afxc0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|9d1c0|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|b5uo0|51hc0|mbmk0|51hc0|c8qo0|6hc00|c8qo0|6uao0|bvs00|8n400|a4tc0|5clc0|4bms0|9q000|902o0|8a5c0|1frw0|64dc0|4bms0|6uao0|bvs00|7x6o0|asw00|8n400|9q000|902o0|9q000|9d1c0|9q000|902o0|8n400|9q000|902o0|a2yo0|8n400|afxc0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|902o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|5reo0|1xhuo0|779c0|bitc0|779c0|bitc0|779c0|bitc0|779c0|bitc0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|779c0|bitc0|779c0|bitc0|7x3w0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"0|-60|-120\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010121212121210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Belgrade\",\r\n untils: \"-ezayw0|swz00|7k800|9q000|9d1c0|9d1c0|b7pc0|6qlc0|jl1hc0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Berlin\",\r\n untils: \"-s0e080|7ves0|a4yw0|7x6o0|asw00|7x6o0|b8qdc0|1cm000|7k800|9q000|9d1c0|9d1c0|9d1c0|2o7w0|6bs00|2txg0|7k800|91xc0|9b9g0|1sqk0|2inw0|51k40|a2yo0|8n400|9q000|902o0|fx91c0|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120|-180\",\r\n offsetIndices: \"01010101010101210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Bratislava\",\r\n untils: \"-s0e080|7ves0|a4yw0|7x6o0|asw00|7x6o0|b8qdc0|1cm000|7k800|9q000|9d1c0|9d1c0|9d1c0|9d1c0|b5uo0|7vc00|2vs40|4bk00|2vmk0|8n400|a2yo0|8n400|9o5c0|91xc0|fe6000|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120|0\",\r\n offsetIndices: \"01010101010101010201010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Brussels\",\r\n untils: \"-ss5uo0|rrx80|7vc00|a4yw0|7x6o0|asw00|7x6o0|2wh40|5omo0|b5uo0|6uao0|cyo00|7ayo0|bko00|7rmo0|a2yo0|a2yo0|8n400|902o0|9q000|9d1c0|9d1c0|a2yo0|8n400|9q000|902o0|a2yo0|90b00|a2yo0|8n400|9q000|902o0|a2yo0|8n400|9d1c0|9d1c0|902o0|a2yo0|9d1c0|9d1c0|902o0|9q000|a2yo0|8n400|9d1c0|9d1c0|902o0|9q000|a2yo0|b5uo0|51hc0|4deo0|1a36k0|7k800|9q000|9d1c0|8l9c0|a4tc0|8l9c0|clpc0|79400|fwu800|902o0|9q000|9d1c0|9d1c0|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"0|-60|-120\",\r\n offsetIndices: \"0121212101010101010101010101010101010101010101010101212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Bucharest\",\r\n untils: \"-k29zi0|fj8m0|6w5c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|kp0dc0|6h980|9q000|905g0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9cvs0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9cyk0|9d440|9cyk0|9q2s0|ast80|7xhs0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-104.4|-120|-180\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Budapest\",\r\n untils: \"-s0e080|7ves0|a4yw0|7x6o0|a31g0|8n180|autg0|bgvw0|b5jeg0|th9k0|7k800|9q000|9d1c0|9d1c0|awd00|9ew00|7q0c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9q000|902o0|a4tc0|9q000|1va2g0|6u7w0|bxpg0|6u7w0|cjxg0|64ak0|cluw0|64g40|br3ek0|905g0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Busingen\",\r\n untils: \"-eyh6o0|7x6o0|asw00|7x6o0|k2zus0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Chisinau\",\r\n untils: \"-r2p1bo|70f1to|fj8m0|6w5c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|geqo0|ha580|oc8g0|7k800|9q000|9d1c0|7cl00|j3pbw0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|25p80|7kdk0|9d1c0|9d1c0|9cvs0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9q2s0|ast80|7xf00|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-115|-104.4|-120|-180|-60|-240\",\r\n offsetIndices: \"012323232323232323232424235353535353535353535323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Europe/Copenhagen\",\r\n untils: \"-rzo2w0|75bw0|cbs2w0|1aco80|7k800|9q000|9d1c0|9d1c0|9d1c0|6y000|dbmo0|6bs00|clpc0|51hc0|e1k00|4oio0|giutc0|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Dublin\",\r\n untils: \"-rzcmlr|6uao0|9pytr|8c000|9o5c0|9ruo0|9b6o0|9ew00|9b6o0|auqo0|88ao0|9ew00|8y800|a2yo0|a2yo0|7k800|asw00|8a5c0|asw00|8n400|a2yo0|8n400|9q000|902o0|afxc0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|9d1c0|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|b5uo0|51hc0|3g8800|8a5c0|bvs00|8n400|a2yo0|7x6o0|asw00|8n400|9q000|902o0|9q000|9d1c0|9q000|902o0|8n400|9q000|902o0|a2yo0|8n400|afxc0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|902o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|5reo0|1xhuo0|779c0|bitc0|779c0|bitc0|779c0|bitc0|779c0|bitc0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|779c0|bitc0|779c0|bitc0|7x3w0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"25.35|-34.65|0|-60\",\r\n offsetIndices: \"01232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Europe/Gibraltar\",\r\n untils: \"-rzcns0|6uao0|9q000|8c000|9o5c0|9ruo0|9b6o0|9ew00|9b6o0|auqo0|88ao0|9ew00|8y800|a2yo0|a2yo0|7k800|asw00|8a5c0|asw00|8n400|a2yo0|8n400|9q000|902o0|afxc0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|9d1c0|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|b5uo0|51hc0|mbmk0|51hc0|c8qo0|6hc00|c8qo0|6uao0|bvs00|8n400|a4tc0|5clc0|4bms0|9q000|902o0|8a5c0|1frw0|64dc0|4bms0|6uao0|bvs00|7x6o0|asw00|8n400|9q000|902o0|9q000|9d1c0|9q000|902o0|8n400|9q000|902o0|a2yo0|8n400|afxc0|8n400|9q000|d0tp80|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"0|-60|-120\",\r\n offsetIndices: \"010101010101010101010101010101010101010101010101012121212121010121010101010101010101012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Guernsey\",\r\n untils: \"-rzcns0|6uao0|9q000|8c000|9o5c0|9ruo0|9b6o0|9ew00|9b6o0|auqo0|88ao0|9ew00|8y800|a2yo0|a2yo0|7k800|asw00|8a5c0|asw00|8n400|a2yo0|8n400|9q000|902o0|afxc0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|9d1c0|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|b5uo0|51hc0|mbmk0|51hc0|c8qo0|6hc00|c8qo0|6uao0|bvs00|8n400|a4tc0|5clc0|4bms0|9q000|902o0|8a5c0|1frw0|64dc0|4bms0|6uao0|bvs00|7x6o0|asw00|8n400|9q000|902o0|9q000|9d1c0|9q000|902o0|8n400|9q000|902o0|a2yo0|8n400|afxc0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|902o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|5reo0|1xhuo0|779c0|bitc0|779c0|bitc0|779c0|bitc0|779c0|bitc0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|779c0|bitc0|779c0|bitc0|7x3w0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"0|-60|-120\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010121212121210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Helsinki\",\r\n untils: \"-peghyd|ax3tqd|9gqo0|k31s80|9d1c0|9d1c0|9d1c0|9d440|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-99.8167|-120|-180\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Isle_of_Man\",\r\n untils: \"-rzcns0|6uao0|9q000|8c000|9o5c0|9ruo0|9b6o0|9ew00|9b6o0|auqo0|88ao0|9ew00|8y800|a2yo0|a2yo0|7k800|asw00|8a5c0|asw00|8n400|a2yo0|8n400|9q000|902o0|afxc0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|9d1c0|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|b5uo0|51hc0|mbmk0|51hc0|c8qo0|6hc00|c8qo0|6uao0|bvs00|8n400|a4tc0|5clc0|4bms0|9q000|902o0|8a5c0|1frw0|64dc0|4bms0|6uao0|bvs00|7x6o0|asw00|8n400|9q000|902o0|9q000|9d1c0|9q000|902o0|8n400|9q000|902o0|a2yo0|8n400|afxc0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|902o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|5reo0|1xhuo0|779c0|bitc0|779c0|bitc0|779c0|bitc0|779c0|bitc0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|779c0|bitc0|779c0|bitc0|7x3w0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"0|-60|-120\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010121212121210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Istanbul\",\r\n untils: \"-ux9xew|2wvx6w|7v980|1tjc40|aunw0|88dg0|9et80|8yas0|a2vw0|tzpg0|79180|awo40|7v980|7p4040|4zjw0|2vs40|f4d80|9vms0|1u5ek0|c5440|69uk0|acas0|8n180|a31g0|8n180|9q2s0|8zzw0|a31g0|8zzw0|a31g0|8n180|5md9g0|o9zw0|a6qs0|75bw0|4iwyw0|7x6o0|7kas0|b5rw0|75hg0|bkl80|77c40|biqk0|7x9g0|a2vw0|8n6s0|4iqc0|2nkw80|38l80|kdes0|8qtc0|8a5c0|9ew00|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|902o0|9q000|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7kdk0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7m2o0|b4000|7k800|b5uo0|7x6o0|asw00|7z1c0|ar1c0|7x6o0|bitc0|779c0|8fe80|Infinity\",\r\n offsets: \"-116.9333|-120|-180|-240\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121223212121212121212121212121212121212121212121212121212121212121212122\"\r\n }, {\r\n id: \"Europe/Jersey\",\r\n untils: \"-rzcns0|6uao0|9q000|8c000|9o5c0|9ruo0|9b6o0|9ew00|9b6o0|auqo0|88ao0|9ew00|8y800|a2yo0|a2yo0|7k800|asw00|8a5c0|asw00|8n400|a2yo0|8n400|9q000|902o0|afxc0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|9d1c0|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|b5uo0|51hc0|mbmk0|51hc0|c8qo0|6hc00|c8qo0|6uao0|bvs00|8n400|a4tc0|5clc0|4bms0|9q000|902o0|8a5c0|1frw0|64dc0|4bms0|6uao0|bvs00|7x6o0|asw00|8n400|9q000|902o0|9q000|9d1c0|9q000|902o0|8n400|9q000|902o0|a2yo0|8n400|afxc0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|902o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|5reo0|1xhuo0|779c0|bitc0|779c0|bitc0|779c0|bitc0|779c0|bitc0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|779c0|bitc0|779c0|bitc0|7x3w0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"0|-60|-120\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010121212121210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Kaliningrad\",\r\n untils: \"-s0e080|7ves0|a4yw0|7x6o0|asw00|7x6o0|b8qdc0|1cm000|7k800|9q000|9d1c0|9d1c0|9d1c0|el00|z6o0|9kd80|82tg0|i9avw0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d440|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|Infinity\",\r\n offsets: \"-60|-120|-180|-240\",\r\n offsetIndices: \"01010101010101121232323232323232322121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Kiev\",\r\n untils: \"-nu11ng|37a03g|5vd6k0|kzv40|7k800|9q000|1oyg0|jipzs0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|51ek0|neqw0|9cvs0|9cyk0|9d440|9cyk0|9d440|9cyk0|9dcg0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-122.0667|-120|-180|-60|-240\",\r\n offsetIndices: \"0121313242424242424242424242121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Kirov\",\r\n untils: \"-qcx400|5q5zo0|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|iq5g0|9d1c0|9q000|9d1c0|s3400|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|Infinity\",\r\n offsets: \"-198.8|-180|-240|-300\",\r\n offsetIndices: \"01232323232323232321212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Lisbon\",\r\n untils: \"-u9rhc0|2bufw0|6zxg0|66580|bq800|73k00|bodc0|71pc0|bq800|73k00|bq800|71pc0|bq800|1b2g00|9b6o0|saio0|8n400|9q000|902o0|a2yo0|902o0|a2yo0|8n400|st1c0|8n400|9d1c0|9d1c0|sg2o0|9d1c0|902o0|9q000|a2yo0|8n400|9d1c0|9d1c0|902o0|9q000|a2yo0|b5uo0|51hc0|bitc0|9d1c0|9ew00|88ao0|25p80|5reo0|3lpg0|779c0|1sqk0|6uao0|38qs0|6uao0|25p80|6hc00|38qs0|6uao0|25p80|6hc00|38qs0|8a5c0|9d1c0|9d9o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|s3400|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|5gyl40|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d440|9cyk0|9d440|9d1c0|9d1c0|9d1c0|9d1c0|9d440|9cyk0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"36.75|0|-60|-120\",\r\n offsetIndices: \"012121212121212121212121212121212121212121212321232123212321212121212121212121212121212121212121212121212121212121212121212121212122323232212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Ljubljana\",\r\n untils: \"-ezayw0|swz00|7k800|9q000|9d1c0|9d1c0|b7pc0|6qlc0|jl1hc0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/London\",\r\n untils: \"-rzcns0|6uao0|9q000|8c000|9o5c0|9ruo0|9b6o0|9ew00|9b6o0|auqo0|88ao0|9ew00|8y800|a2yo0|a2yo0|7k800|asw00|8a5c0|asw00|8n400|a2yo0|8n400|9q000|902o0|afxc0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|9d1c0|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|b5uo0|51hc0|mbmk0|51hc0|c8qo0|6hc00|c8qo0|6uao0|bvs00|8n400|a4tc0|5clc0|4bms0|9q000|902o0|8a5c0|1frw0|64dc0|4bms0|6uao0|bvs00|7x6o0|asw00|8n400|9q000|902o0|9q000|9d1c0|9q000|902o0|8n400|9q000|902o0|a2yo0|8n400|afxc0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|902o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|5reo0|1xhuo0|779c0|bitc0|779c0|bitc0|779c0|bitc0|779c0|bitc0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|779c0|bitc0|779c0|bitc0|7x3w0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"0|-60|-120\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010121212121210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Luxembourg\",\r\n untils: \"-y89550|68l290|75hg0|ast80|796s0|at1k0|7x6o0|3lh40|4zmo0|b6300|6u2c0|cytk0|7at40|bktk0|7rh40|a31g0|a2vw0|8n9k0|8zx40|9q2s0|9et80|9b9g0|a2vw0|8n6s0|9px80|905g0|a2vw0|905g0|a2vw0|8ncc0|9q000|902o0|a2yo0|8n400|9d1c0|9d1c0|902o0|a2yo0|9d1c0|9d1c0|902o0|9q000|a2yo0|8n400|9d1c0|9d1c0|902o0|9q000|a2yo0|b5uo0|51hc0|42ao0|1aeak0|7k800|9q000|9d1c0|8n400|a2yo0|8l9c0|clpc0|79400|fwu800|902o0|9q000|9d1c0|9d1c0|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-24.6|-60|-120|0\",\r\n offsetIndices: \"0121212131313131313131313131313131313131313131313131212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Madrid\",\r\n untils: \"-qzlus0|8yas0|9cyk0|9eys0|2d2vw0|8sqs0|ssyk0|8n6s0|9px80|905g0|a2yo0|902o0|a2vw0|8n6s0|40lh80|5k2s0|9cyk0|1frw0|7z1c0|j1c80|8a2k0|13yt80|685g0|brzw0|8n6s0|a2vw0|8n6s0|a2vw0|8n6s0|a2vw0|8n6s0|1clx80|7x9g0|cswik0|905g0|9px80|905g0|8zzw0|9d440|9px80|905g0|9q5k0|9d1c0|9d1c0|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"0|-60|-120\",\r\n offsetIndices: \"010101010101010101210121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Malta\",\r\n untils: \"-rymys0|64ak0|9d440|9et80|88dg0|aunw0|7ig40|b5rw0|8n6s0|9cyk0|aau2s0|18r9k0|7k800|9q000|9b6o0|8n400|a4tc0|8j940|9f1k0|afxc0|89zs0|afxc0|7kdk0|b5uo0|979rs0|6h980|cls40|64dc0|clpc0|64dc0|cyo00|64dc0|clpc0|64dc0|c8qo0|6hc00|clpc0|6hc00|9b6o0|9d1c0|ahs00|7m2o0|b45k0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|a4w40|8y580|9q2s0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Mariehamn\",\r\n untils: \"-peghyd|ax3tqd|9gqo0|k31s80|9d1c0|9d1c0|9d1c0|9d440|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-99.8167|-120|-180\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Minsk\",\r\n untils: \"-nu113c|379zjc|5r1mk0|pbf40|7k800|9q000|9d1c0|4oac0|j6dmk0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|sg2o0|9d440|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|Infinity\",\r\n offsets: \"-110|-120|-180|-60|-240\",\r\n offsetIndices: \"01213131242424242424242424221212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"Europe/Monaco\",\r\n untils: \"-uozn3l|2qx1nl|5luo0|8y800|a4tc0|7vc00|auqo0|7idc0|b7pc0|6sg00|cyo00|7ayo0|bko00|7rmo0|a2yo0|bvs00|6uao0|902o0|9q000|9d1c0|9d1c0|a2yo0|8n400|9q000|902o0|a2yo0|902o0|a2yo0|8n400|9q000|902o0|a2yo0|8n400|9d1c0|9d1c0|902o0|a2yo0|9d1c0|9d1c0|902o0|9q000|a2yo0|8n400|9d1c0|9d1c0|902o0|9q000|a2yo0|b5uo0|51po0|mdbo0|7x3w0|7x9g0|c8w80|7k800|9q000|9d1c0|9nzs0|922w0|8l9c0|fxlx80|9cyk0|9q5k0|902o0|9q000|9d1c0|9d1c0|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-9.35|0|-60|-120\",\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Europe/Moscow\",\r\n untils: \"-rx5dmh|ipzua|97hc0|7yyk0|5i840|d9p80|1jwk7|2cvk0|s8o00|1qvw0|8fpc0|1jms0|is040|412as0|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d440|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|Infinity\",\r\n offsets: \"-150.2833|-151.3167|-211.3167|-271.3167|-240|-180|-300|-120\",\r\n offsetIndices: \"012132345464575454545454545454545455754545454545454545454545454545454545454545\"\r\n }, {\r\n id: \"Europe/Nicosia\",\r\n untils: \"-p4bq6g|rvhxyg|9cyk0|b42s0|7nuk0|8yas0|8zzw0|9q2s0|9et80|9b9g0|9cyk0|9q2s0|8zzw0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9q2s0|9cyk0|9d440|9cyk0|9d440|at4c0|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-133.4667|-120|-180\",\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Oslo\",\r\n untils: \"-rzayo0|6qfs0|cgcqo0|15tsc0|7k800|9q000|9d1c0|9d1c0|9d1c0|9d1c0|70q5c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|b5uo0|7k800|7law00|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Paris\",\r\n untils: \"-uozn1x|2qx1lx|5luo0|8y800|a4tc0|7vc00|auqo0|7idc0|b7pc0|6sg00|cyo00|7ayo0|bko00|7rmo0|a2yo0|bvs00|6uao0|902o0|9q000|9d1c0|9d1c0|a2yo0|8n400|9q000|902o0|a2yo0|902o0|a2yo0|8n400|9q000|902o0|a2yo0|8n400|9d1c0|9d1c0|902o0|a2yo0|9d1c0|9d1c0|902o0|9q000|a2yo0|8n400|9d1c0|9d1c0|902o0|9q000|a2yo0|b5uo0|51po0|5p8w0|18rcc0|7k800|9q000|9d1c0|7efo0|29k40|922w0|8l9c0|fxlx80|9cyk0|9q5k0|902o0|9q000|9d1c0|9d1c0|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-9.35|0|-60|-120\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212123232332323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Europe/Podgorica\",\r\n untils: \"-ezayw0|swz00|7k800|9q000|9d1c0|9d1c0|b7pc0|6qlc0|jl1hc0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Prague\",\r\n untils: \"-s0e080|7ves0|a4yw0|7x6o0|asw00|7x6o0|b8qdc0|1cm000|7k800|9q000|9d1c0|9d1c0|9d1c0|9d1c0|b5uo0|7vc00|2vs40|4bk00|2vmk0|8n400|a2yo0|8n400|9o5c0|91xc0|fe6000|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120|0\",\r\n offsetIndices: \"01010101010101010201010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Riga\",\r\n untils: \"-qznlky|7x6o0|a4tc0|2mg00|3myns0|7fhlky|gz180|p5v40|7k800|9q000|9d1c0|9d1c0|k7s0|j14ns0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d440|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d440|asw00|7x6o0|asw00|7x6o0|b5uo0|qaao0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-96.5667|-156.5667|-120|-180|-60|-240\",\r\n offsetIndices: \"010102324242435353535353535353323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Europe/Rome\",\r\n untils: \"-rymys0|64ak0|9d440|9et80|88dg0|aunw0|7ig40|b5rw0|8n6s0|9cyk0|aau2s0|18r9k0|7k800|9q000|9d1c0|8l9c0|a4tc0|8j940|9f1k0|afxc0|89zs0|afxc0|7kdk0|b5uo0|979rs0|6h980|cls40|64dc0|clpc0|64dc0|cyo00|64dc0|clpc0|64dc0|c8qo0|6hc00|clpc0|6hc00|clpc0|64dc0|c8qo0|6hc00|clpc0|64dc0|clpc0|64dc0|c8qo0|6hc00|clpc0|6hc00|c8qo0|6hc00|9q5k0|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Samara\",\r\n untils: \"-qcx400|5q5zo0|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|iq5g0|9d1c0|9q000|jt1g0|89zs0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|j3440|7k800|Infinity\",\r\n offsets: \"-200.3333|-180|-240|-300\",\r\n offsetIndices: \"0123232323232323232121232323232323232323232323232323232323212\"\r\n }, {\r\n id: \"Europe/San_Marino\",\r\n untils: \"-rymys0|64ak0|9d440|9et80|88dg0|aunw0|7ig40|b5rw0|8n6s0|9cyk0|aau2s0|18r9k0|7k800|9q000|9d1c0|8l9c0|a4tc0|8j940|9f1k0|afxc0|89zs0|afxc0|7kdk0|b5uo0|979rs0|6h980|cls40|64dc0|clpc0|64dc0|cyo00|64dc0|clpc0|64dc0|c8qo0|6hc00|clpc0|6hc00|clpc0|64dc0|c8qo0|6hc00|clpc0|64dc0|clpc0|64dc0|c8qo0|6hc00|clpc0|6hc00|c8qo0|6hc00|9q5k0|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Sarajevo\",\r\n untils: \"-ezayw0|swz00|7k800|9q000|9d1c0|9d1c0|b7pc0|6qlc0|jl1hc0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Saratov\",\r\n untils: \"-qcx400|5q5zo0|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|iq5g0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|s3400|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|13m040|Infinity\",\r\n offsets: \"-184.3|-180|-240|-300\",\r\n offsetIndices: \"012323232323232321212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"Europe/Simferopol\",\r\n untils: \"-nu12ao|37a0qo|5xiyk0|iu340|7k800|9q000|9d1c0|iac0|jajmk0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|eeio0|wrjw0|9cyk0|9d440|9cyk0|9d440|1sqk0|7k580|9d440|9cyk0|9q2s0|at4c0|7x9g0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x3w0|asqg0|Infinity\",\r\n offsets: \"-136|-120|-180|-60|-240\",\r\n offsetIndices: \"012131312424242424242424242121212424242212121212121212121212121212121212142\"\r\n }, {\r\n id: \"Europe/Skopje\",\r\n untils: \"-ezayw0|swz00|7k800|9q000|9d1c0|9d1c0|b7pc0|6qlc0|jl1hc0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Sofia\",\r\n untils: \"-e6dzw0|7k800|9q000|9d1c0|9d1c0|9d440|hqq240|9eys0|9o2k0|92040|9o2k0|90880|9pug0|90b00|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9cvs0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9q2s0|ast80|7xhs0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-120|-60|-180\",\r\n offsetIndices: \"01010102020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020\"\r\n }, {\r\n id: \"Europe/Stockholm\",\r\n untils: \"-rzo2w0|75hg0|x5bew0|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Tallinn\",\r\n untils: \"-r3exx0|3re10|7x6o0|et6g0|ygov0|a1zgd0|ktx80|l94g0|7k800|9q000|9d1c0|8uac0|j27mk0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d440|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asys0|7x6o0|b5uo0|19dc00|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-99|-60|-120|-180|-240\",\r\n offsetIndices: \"012102321212343434343434343433232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Europe/Tirane\",\r\n untils: \"-t85vo8|dt2gw8|18pew0|7k800|m800|g7ot40|7rjw0|autg0|7x3w0|ayis0|7x3w0|b5xg0|7k580|b42s0|7lzw0|b42s0|7lzw0|b42s0|7x3w0|ahus0|7x3w0|b5xg0|7x3w0|a4w40|8jbw0|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-79.3333|-60|-120\",\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Tiraspol\",\r\n untils: \"-r2p1bo|70f1to|fj8m0|6w5c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|geqo0|ha580|oc8g0|7k800|9q000|9d1c0|7cl00|j3pbw0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|25p80|7kdk0|9d1c0|9d1c0|9cvs0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9q2s0|ast80|7xf00|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-115|-104.4|-120|-180|-60|-240\",\r\n offsetIndices: \"012323232323232323232424235353535353535353535323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"Europe/Ulyanovsk\",\r\n untils: \"-qcx400|5q5zo0|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|iq5g0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|qnc40|Infinity\",\r\n offsets: \"-193.6|-180|-240|-300|-120\",\r\n offsetIndices: \"01232323232323232321214121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"Europe/Uzhgorod\",\r\n untils: \"-fizzw0|1cm000|7k800|9q000|9d1c0|al900|cnms0|int140|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|eeio0|e1sc0|iprk0|9cyk0|9d440|9cyk0|9d440|9cyk0|9dcg0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120|-180|-240\",\r\n offsetIndices: \"010101023232323232323232320121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Vaduz\",\r\n untils: \"-eyh6o0|7x6o0|asw00|7x6o0|k2zus0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Vatican\",\r\n untils: \"-rymys0|64ak0|9d440|9et80|88dg0|aunw0|7ig40|b5rw0|8n6s0|9cyk0|aau2s0|18r9k0|7k800|9q000|9d1c0|8l9c0|a4tc0|8j940|9f1k0|afxc0|89zs0|afxc0|7kdk0|b5uo0|979rs0|6h980|cls40|64dc0|clpc0|64dc0|cyo00|64dc0|clpc0|64dc0|c8qo0|6hc00|clpc0|6hc00|clpc0|64dc0|c8qo0|6hc00|clpc0|64dc0|clpc0|64dc0|c8qo0|6hc00|clpc0|6hc00|c8qo0|6hc00|9q5k0|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Vienna\",\r\n untils: \"-s0e080|7ves0|a4yw0|7x6o0|asw00|7x6o0|t6000|8a5c0|a7a800|1cm000|7k800|9q000|9d1c0|9d1c0|9d1c0|iio0|ivmo0|91xc0|9b6o0|9d1c0|a2yo0|8n400|gfyyg0|8zzw0|9d9o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Vilnius\",\r\n untils: \"-rns980|1g224o|e75nc|4kqk0|acbs40|gpp40|pits0|7k800|9q000|9d1c0|65zo0|j4vx80|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d440|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x9g0|asw00|7x6o0|b5uo0|1s3eo0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-84|-95.6|-60|-120|-180|-240\",\r\n offsetIndices: \"012324323234545454545454545443434343434343434332334343434343434343434343434343434343434343434343434343434343434343434343\"\r\n }, {\r\n id: \"Europe/Volgograd\",\r\n untils: \"-q3cw84|5glrw4|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|iq5g0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|s3400|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|239c40|Infinity\",\r\n offsets: \"-177.6667|-180|-240|-300\",\r\n offsetIndices: \"012323232323232321212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"Europe/Warsaw\",\r\n untils: \"-se9yk0|dvyc0|7ves0|a4yw0|7x6o0|asw00|7x6o0|aunw0|7x6o0|1evbs0|9fcwc0|18cao0|7k800|9q000|9d1c0|9gnw0|an980|9kd80|8fs40|922w0|ar1c0|7x6o0|a2yo0|8n400|9q000|902o0|4013w0|64dc0|9d1c0|9d1c0|clpc0|6hc00|9d1c0|9d1c0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|clpc0|64dc0|6j4tc0|902o0|9q000|9d1c0|9d1c0|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d440|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-84|-60|-120|-180\",\r\n offsetIndices: \"012121223212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Zagreb\",\r\n untils: \"-ezayw0|swz00|7k800|9q000|9d1c0|9d1c0|b7pc0|6qlc0|jl1hc0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Europe/Zaporozhye\",\r\n untils: \"-nu12hc|37a0xc|5u1180|mc0g0|7k800|9q000|12qg0|jjc7s0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9cvs0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9dcg0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-140|-120|-180|-60|-240\",\r\n offsetIndices: \"01213132424242424242424242422121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Europe/Zurich\",\r\n untils: \"-eyh6o0|7x6o0|asw00|7x6o0|k2zus0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"GB-Eire\",\r\n untils: \"-rzcns0|6uao0|9q000|8c000|9o5c0|9ruo0|9b6o0|9ew00|9b6o0|auqo0|88ao0|9ew00|8y800|a2yo0|a2yo0|7k800|asw00|8a5c0|asw00|8n400|a2yo0|8n400|9q000|902o0|afxc0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|9d1c0|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|b5uo0|51hc0|mbmk0|51hc0|c8qo0|6hc00|c8qo0|6uao0|bvs00|8n400|a4tc0|5clc0|4bms0|9q000|902o0|8a5c0|1frw0|64dc0|4bms0|6uao0|bvs00|7x6o0|asw00|8n400|9q000|902o0|9q000|9d1c0|9q000|902o0|8n400|9q000|902o0|a2yo0|8n400|afxc0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|902o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|5reo0|1xhuo0|779c0|bitc0|779c0|bitc0|779c0|bitc0|779c0|bitc0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|779c0|bitc0|779c0|bitc0|7x3w0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"0|-60|-120\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010121212121210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"GB\",\r\n untils: \"-rzcns0|6uao0|9q000|8c000|9o5c0|9ruo0|9b6o0|9ew00|9b6o0|auqo0|88ao0|9ew00|8y800|a2yo0|a2yo0|7k800|asw00|8a5c0|asw00|8n400|a2yo0|8n400|9q000|902o0|afxc0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|9d1c0|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|b5uo0|51hc0|mbmk0|51hc0|c8qo0|6hc00|c8qo0|6uao0|bvs00|8n400|a4tc0|5clc0|4bms0|9q000|902o0|8a5c0|1frw0|64dc0|4bms0|6uao0|bvs00|7x6o0|asw00|8n400|9q000|902o0|9q000|9d1c0|9q000|902o0|8n400|9q000|902o0|a2yo0|8n400|afxc0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|902o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|5reo0|1xhuo0|779c0|bitc0|779c0|bitc0|779c0|bitc0|779c0|bitc0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|779c0|bitc0|779c0|bitc0|7x3w0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"0|-60|-120\",\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010121212121210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"GMT-0\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"GMT\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"GMT+0\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"GMT0\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Greenwich\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Hongkong\",\r\n untils: \"-y0i0s0|j44dk0|5k000|4d4y0|2195i0|7x3w0|bj320|6uao0|bvs00|7x6o0|9d1c0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|asw00|7x6o0|ast80|77c40|biqk0|77c40|bvp80|6udg0|bvp80|77c40|biqk0|77c40|biqk0|77c40|biqk0|77c40|bvp80|6udg0|bvp80|6udg0|bvp80|77c40|biqk0|77c40|biqk0|8n6s0|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|3lpg0|f4d80|9d440|9cyk0|9d440|9cyk0|1c9440|8a2k0|Infinity\",\r\n offsets: \"-456.7|-480|-540|-510\",\r\n offsetIndices: \"0123212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"HST\",\r\n untils: \"Infinity\",\r\n offsets: \"600\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Iceland\",\r\n untils: \"-wcwx9c|4rpd9c|ci2s0|69uk0|du840|4xp80|du840|p7bw0|4w040|9bdzw0|9d6w0|64g40|cyl80|64dc0|clpc0|6hc00|bvs00|6uao0|bvs00|6uao0|bvs00|6uao0|c8qo0|6hc00|c8qo0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|7x6o0|afxc0|8a5c0|asw00|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|8a5c0|Infinity\",\r\n offsets: \"88|60|0\",\r\n offsetIndices: \"012121212121212121212121212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"Indian/Antananarivo\",\r\n untils: \"-lnsetg|s8mhg|57v020|afrrb0|Infinity\",\r\n offsets: \"-147.2667|-180|-150|-165\",\r\n offsetIndices: \"01231\"\r\n }, {\r\n id: \"Indian/Chagos\",\r\n untils: \"-wvpc2s|1ag64us|Infinity\",\r\n offsets: \"-289.6667|-300|-360\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"Indian/Christmas\",\r\n untils: \"Infinity\",\r\n offsets: \"-420\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Indian/Cocos\",\r\n untils: \"Infinity\",\r\n offsets: \"-390\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Indian/Comoro\",\r\n untils: \"-lnsetg|s8mhg|57v020|afrrb0|Infinity\",\r\n offsets: \"-147.2667|-180|-150|-165\",\r\n offsetIndices: \"01231\"\r\n }, {\r\n id: \"Indian/Kerguelen\",\r\n untils: \"-afrs00|Infinity\",\r\n offsets: \"0|-300\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Indian/Mahe\",\r\n untils: \"-x6pjlo|Infinity\",\r\n offsets: \"-221.8|-240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Indian/Maldives\",\r\n untils: \"-57x6y0|Infinity\",\r\n offsets: \"-294|-300\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Indian/Mauritius\",\r\n untils: \"-wvp9bc|13jnu7c|8bx80|dd0wc0|7x3w0|Infinity\",\r\n offsets: \"-230|-240|-300\",\r\n offsetIndices: \"012121\"\r\n }, {\r\n id: \"Indian/Mayotte\",\r\n untils: \"-lnsetg|s8mhg|57v020|afrrb0|Infinity\",\r\n offsets: \"-147.2667|-180|-150|-165\",\r\n offsetIndices: \"01231\"\r\n }, {\r\n id: \"Indian/Reunion\",\r\n untils: \"-uks29s|Infinity\",\r\n offsets: \"-221.8667|-240\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Iran\",\r\n untils: \"-s6m6uw|fnolc0|gm3h4w|777y0|b07w0|3pes0|42c20|9cyk0|9gtg0|9kd80|5ja5g0|7avw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|1av440|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|Infinity\",\r\n offsets: \"-205.7333|-210|-240|-300|-270\",\r\n offsetIndices: \"00123214141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141\"\r\n }, {\r\n id: \"Israel\",\r\n untils: \"-r50eig|bp54yg|19f3w0|7rv00|b02c0|7tk40|b07w0|8jhg0|a8lg0|8jhg0|a8ac0|t9s40|56vs0|35700|9b3w0|9gtg0|8jbw0|7tmw0|a6ig0|biyw0|8a5c0|9d1c0|902o0|7x6o0|e1eg0|4ofw0|dzxo0|4q500|doo40|64iw0|auqo0|7i500|8rfms0|51ek0|9q2s0|6u7w0|2khpg0|25s00|1weyo0|5reo0|bxmo0|7x3w0|cls40|5rbw0|bbhg0|7rjw0|asys0|7k580|c8tg0|6h980|ag040|7x3w0|asys0|8a2k0|asys0|8a2k0|ap9g0|80t80|ap9g0|7nuk0|b2840|80t80|9zc40|9iik0|9kis0|93p80|9mdg0|8qqk0|apf00|7x3w0|biw40|8zx40|9io40|8n180|9kis0|9vh80|8ulg0|9px80|9mdg0|8n180|9tuw0|9tmk0|8wg40|9gnw0|99es0|8qqk0|9zc40|9tmk0|8wg40|9gnw0|99es0|8qqk0|acas0|9gnw0|99es0|93p80|9mdg0|awik0|7tk40|awik0|7tk40|awik0|7tk40|b9h80|7glg0|b9h80|7glg0|b9h80|7tk40|awik0|7tk40|awik0|7tk40|b9h80|7glg0|b9h80|7glg0|b9h80|7tk40|awik0|7tk40|awik0|7tk40|awik0|7tk40|b9h80|7glg0|b9h80|7glg0|b9h80|7tk40|awik0|7tk40|awik0|7tk40|b9h80|7glg0|b9h80|7glg0|b9h80|7glg0|b9h80|7tk40|awik0|7tk40|awik0|Infinity\",\r\n offsets: \"-140.6667|-120|-180|-240\",\r\n offsetIndices: \"012121212121321212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Jamaica\",\r\n untils: \"-u85og2|wbl182|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|Infinity\",\r\n offsets: \"307.1667|300|240\",\r\n offsetIndices: \"0121212121212121212121\"\r\n }, {\r\n id: \"Japan\",\r\n untils: \"-bb4900|6uao0|afxc0|8a5c0|c8qo0|6hc00|c8qo0|6hc00|Infinity\",\r\n offsets: \"-540|-600\",\r\n offsetIndices: \"010101010\"\r\n }, {\r\n id: \"Kwajalein\",\r\n untils: \"-h817w0|27sas0|1hjus0|ddxug0|cgv6k0|Infinity\",\r\n offsets: \"-660|-600|-540|720|-720\",\r\n offsetIndices: \"012034\"\r\n }, {\r\n id: \"Libya\",\r\n untils: \"-q3gfrw|gl6ajw|422c0|xado0|4bbo0|wrpg0|4s580|1kdpg0|c05bw0|4mqs0|9et80|9d440|9et80|9eys0|9et80|9mdg0|95jw0|9io40|9cyk0|99es0|9et80|9eys0|9et80|9d440|9et80|b2840|3cf3w0|9kis0|9et80|7vqyw0|75eo0|asw00|Infinity\",\r\n offsets: \"-52.7333|-60|-120\",\r\n offsetIndices: \"012121212121212121212121212122122\"\r\n }, {\r\n id: \"MET\",\r\n untils: \"-s0e080|7ves0|a4yw0|7x6o0|asw00|7x6o0|b8qdc0|1cm000|7k800|9q000|9d1c0|9d1c0|9d1c0|8l9c0|ggp1c0|902o0|9q000|9d1c0|9d1c0|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-60|-120\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Mexico/BajaNorte\",\r\n untils: \"-p1u1s0|11jrw0|1sns00|1sgdc0|71s40|9cyk0|5iidg0|1q6700|4lfk0|190g40|eluk0|2r4o80|7x6o0|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|84qys0|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|77c40|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"468.0667|420|480\",\r\n offsetIndices: \"012121211212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"Mexico/BajaSur\",\r\n untils: \"-p1u4k0|2u7jw0|1sgdc0|8n400|7thc0|9eys0|591h80|3ie2s0|axvpg0|dpgw40|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|9q2s0|7k580|9q2s0|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|Infinity\",\r\n offsets: \"425.6667|420|360|480\",\r\n offsetIndices: \"0121212131212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Mexico/General\",\r\n untils: \"-p1u4k0|2u7jw0|1sgdc0|8n400|7thc0|9eys0|3knek0|776k0|rf440|5t6k0|1evk40|71mk0|30p1g0|8n180|nufxo0|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|9q2s0|7k580|9q2s0|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|Infinity\",\r\n offsets: \"396.6|420|360|300\",\r\n offsetIndices: \"012121232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"MST\",\r\n untils: \"Infinity\",\r\n offsets: \"420\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"MST7MDT\",\r\n untils: \"-r0epo0|ast80|7x9g0|ast80|bmtus0|1tz5k0|2dvo0|b9gdg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"420|360\",\r\n offsetIndices: \"010101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Navajo\",\r\n untils: \"-r0epo0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|2vmk0|ataw40|1tz5k0|2dvo0|a7n9g0|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"420|360\",\r\n offsetIndices: \"01010101011010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"NZ-CHAT\",\r\n untils: \"-ciya10|f1tq90|5reo0|clpc0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|b5uo0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|8n400|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|a2yo0|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|Infinity\",\r\n offsets: \"-735|-765|-825\",\r\n offsetIndices: \"012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"NZ\",\r\n untils: \"-m01p20|64ak0|biw40|7x5a0|asxe0|7x5a0|asxe0|7x5a0|asxe0|8a3y0|afyq0|8a3y0|afyq0|afvy0|7x820|asum0|7x820|asum0|7x820|asum0|7x820|asum0|7x820|b5ta0|7k9e0|b5ta0|7x820|hsl2m0|5reo0|clpc0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|b5uo0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|8n400|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|a2yo0|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|Infinity\",\r\n offsets: \"-690|-750|-720|-780\",\r\n offsetIndices: \"01020202020202020202020202023232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323\"\r\n }, {\r\n id: \"Pacific/Apia\",\r\n untils: \"-usiiv4|kcrmt4|vp3la0|9odo0|902o0|4zbk0|4qog0|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|a2yo0|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|Infinity\",\r\n offsets: \"686.9333|690|660|600|-840|-780\",\r\n offsetIndices: \"01232345454545454545454545454545454545454545454545454545454\"\r\n }, {\r\n id: \"Pacific/Auckland\",\r\n untils: \"-m01p20|64ak0|biw40|7x5a0|asxe0|7x5a0|asxe0|7x5a0|asxe0|8a3y0|afyq0|8a3y0|afyq0|afvy0|7x820|asum0|7x820|asum0|7x820|asum0|7x820|asum0|7x820|b5ta0|7k9e0|b5ta0|7x820|hsl2m0|5reo0|clpc0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|b5uo0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|8n400|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|a2yo0|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|Infinity\",\r\n offsets: \"-690|-750|-720|-780\",\r\n offsetIndices: \"01020202020202020202020202023232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323\"\r\n }, {\r\n id: \"Pacific/Bougainville\",\r\n untils: \"-ecsh40|1n05g0|1071c40|Infinity\",\r\n offsets: \"-600|-540|-660\",\r\n offsetIndices: \"0102\"\r\n }, {\r\n id: \"Pacific/Chatham\",\r\n untils: \"-ciya10|f1tq90|5reo0|clpc0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|b5uo0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|8n400|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|a2yo0|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|Infinity\",\r\n offsets: \"-735|-765|-825\",\r\n offsetIndices: \"012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212\"\r\n }, {\r\n id: \"Pacific/Chuuk\",\r\n untils: \"-su4zs0|29hes0|bkenw0|29fk40|Infinity\",\r\n offsets: \"-600|-540\",\r\n offsetIndices: \"01010\"\r\n }, {\r\n id: \"Pacific/Easter\",\r\n untils: \"-jhfaew|ivmeuw|7k580|c8tg0|6h980|a31g0|7x3w0|asys0|7x3w0|b5xg0|7k580|ag040|8a2k0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|7x3w0|asys0|iq2o0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|9cyk0|9d440|7x3w0|asys0|7x3w0|b5xg0|7k580|9q2s0|8zzw0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|8n180|a31g0|7x3w0|a31g0|9px80|9q2s0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|8n180|a31g0|7x3w0|asys0|8zzw0|9q2s0|ast80|5eis0|cyl80|6hes0|c8nw0|6udg0|bvp80|6udg0|vonw0|4olg0|e1h80|4olg0|e1h80|4olg0|c8nw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|Infinity\",\r\n offsets: \"437.4667|420|360|300\",\r\n offsetIndices: \"012121212121212121212121212123232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323\"\r\n }, {\r\n id: \"Pacific/Efate\",\r\n untils: \"-u964i4|11f4ba4|9cyk0|awo40|7tek0|9q2s0|8zzw0|9q2s0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9q2s0|64ak0|e1ms0|4ofw0|Infinity\",\r\n offsets: \"-673.2667|-660|-720\",\r\n offsetIndices: \"0121212121212121212121\"\r\n }, {\r\n id: \"Pacific/Enderbury\",\r\n untils: \"535io0|7yiqk0|Infinity\",\r\n offsets: \"720|660|-780\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"Pacific/Fakaofo\",\r\n untils: \"lx0jw0|Infinity\",\r\n offsets: \"660|-780\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Pacific/Fiji\",\r\n untils: \"-sa2x4w|17bs00w|64dc0|cyo00|5reo0|53a5c0|64dc0|asw00|6uao0|bvs00|4oio0|e1k00|4oio0|eeio0|4bh80|erk40|3ylc0|erhc0|3ylc0|f4g00|3lmo0|f4g00|3lmo0|f4g00|3lmo0|fheo0|38o00|fheo0|3lmo0|fheo0|38o00|fheo0|38o00|fheo0|38o00|fheo0|38o00|fheo0|3lmo0|f4g00|3lmo0|fheo0|38o00|fheo0|38o00|fheo0|38o00|fheo0|38o00|fheo0|3lmo0|fheo0|38o00|fheo0|38o00|fheo0|38o00|fheo0|38o00|fheo0|3lmo0|f4g00|3lmo0|Infinity\",\r\n offsets: \"-715.7333|-720|-780\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Pacific/Funafuti\",\r\n untils: \"Infinity\",\r\n offsets: \"-720\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Pacific/Galapagos\",\r\n untils: \"-kcr62o|spdryo|3lsas0|3jp80|Infinity\",\r\n offsets: \"358.4|300|360\",\r\n offsetIndices: \"01212\"\r\n }, {\r\n id: \"Pacific/Gambier\",\r\n untils: \"-tvndoc|Infinity\",\r\n offsets: \"539.8|540\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Pacific/Guadalcanal\",\r\n untils: \"-tvowac|Infinity\",\r\n offsets: \"-639.8|-660\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Pacific/Guam\",\r\n untils: \"-en8eg0|1dl9g0|7s1k40|txp80|3frms0|qdrpo|7kgac|3ljw0|c8tg0|6u7w0|bvus0|6u7w0|16uo40|3ljw0|16aas0|4ivxo|cls2c|6h980|c65zw0|Infinity\",\r\n offsets: \"-600|-540|-660\",\r\n offsetIndices: \"01020202020202020200\"\r\n }, {\r\n id: \"Pacific/Honolulu\",\r\n untils: \"-j50la0|13l00|4jvb00|1tyvu0|2e5e0|votg0|Infinity\",\r\n offsets: \"630|570|600\",\r\n offsetIndices: \"0101102\"\r\n }, {\r\n id: \"Pacific/Johnston\",\r\n untils: \"-j50la0|13l00|4jvb00|1tyvu0|2e5e0|votg0|Infinity\",\r\n offsets: \"630|570|600\",\r\n offsetIndices: \"0101102\"\r\n }, {\r\n id: \"Pacific/Kiritimati\",\r\n untils: \"535eyo|7yirhc|Infinity\",\r\n offsets: \"640|600|-840\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"Pacific/Kosrae\",\r\n untils: \"-su52k0|29hhk0|9cmd40|27sas0|29fk40|cm2540|f9l3w0|Infinity\",\r\n offsets: \"-660|-540|-600|-720\",\r\n offsetIndices: \"01021030\"\r\n }, {\r\n id: \"Pacific/Kwajalein\",\r\n untils: \"-h817w0|27sas0|1hjus0|ddxug0|cgv6k0|Infinity\",\r\n offsets: \"-660|-600|-540|720|-720\",\r\n offsetIndices: \"012034\"\r\n }, {\r\n id: \"Pacific/Majuro\",\r\n untils: \"-su52k0|29hhk0|9cmd40|27sas0|1h6w40|deat40|Infinity\",\r\n offsets: \"-660|-540|-600|-720\",\r\n offsetIndices: \"0102103\"\r\n }, {\r\n id: \"Pacific/Marquesas\",\r\n untils: \"-tvncu0|Infinity\",\r\n offsets: \"558|570\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Pacific/Midway\",\r\n untils: \"-usij20|Infinity\",\r\n offsets: \"682.8|660\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Pacific/Nauru\",\r\n untils: \"-pjxiws|ba66ys|1kwca0|hfzda0|Infinity\",\r\n offsets: \"-667.6667|-690|-540|-720\",\r\n offsetIndices: \"01213\"\r\n }, {\r\n id: \"Pacific/Niue\",\r\n untils: \"-9wyz6o|ehcj4o|Infinity\",\r\n offsets: \"680|690|660\",\r\n offsetIndices: \"012\"\r\n }, {\r\n id: \"Pacific/Norfolk\",\r\n untils: \"-9x0ps0|cfj8q0|6hc00|l6nk00|239aq0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\",\r\n offsets: \"-672|-690|-750|-660|-720\",\r\n offsetIndices: \"012134343434343434343434343434343434343434\"\r\n }, {\r\n id: \"Pacific/Noumea\",\r\n untils: \"-u9645o|ye0ixo|4dbw0|ecqs0|4f6k0|99p700|4oio0|Infinity\",\r\n offsets: \"-665.8|-660|-720\",\r\n offsetIndices: \"01212121\"\r\n }, {\r\n id: \"Pacific/Pago_Pago\",\r\n untils: \"-usij20|Infinity\",\r\n offsets: \"682.8|660\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Pacific/Palau\",\r\n untils: \"Infinity\",\r\n offsets: \"-540\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Pacific/Pitcairn\",\r\n untils: \"es2cy0|Infinity\",\r\n offsets: \"510|480\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Pacific/Pohnpei\",\r\n untils: \"-su52k0|29hhk0|9cmd40|27sas0|29fk40|Infinity\",\r\n offsets: \"-660|-540|-600\",\r\n offsetIndices: \"010210\"\r\n }, {\r\n id: \"Pacific/Ponape\",\r\n untils: \"-su52k0|29hhk0|9cmd40|27sas0|29fk40|Infinity\",\r\n offsets: \"-660|-540|-600\",\r\n offsetIndices: \"010210\"\r\n }, {\r\n id: \"Pacific/Port_Moresby\",\r\n untils: \"Infinity\",\r\n offsets: \"-600\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Pacific/Rarotonga\",\r\n untils: \"4mj960|5rbw0|c8s20|6ham0|c8s20|6ham0|c8s20|6u9a0|c8s20|6ham0|c8s20|6ham0|c8s20|6ham0|c8s20|6ham0|c8s20|6ham0|c8s20|6u9a0|c8s20|6ham0|c8s20|6ham0|c8s20|6ham0|Infinity\",\r\n offsets: \"630|570|600\",\r\n offsetIndices: \"012121212121212121212121212\"\r\n }, {\r\n id: \"Pacific/Saipan\",\r\n untils: \"-en8eg0|1dl9g0|7s1k40|txp80|3frms0|qdrpo|7kgac|3ljw0|c8tg0|6u7w0|bvus0|6u7w0|16uo40|3ljw0|16aas0|4ivxo|cls2c|6h980|c65zw0|Infinity\",\r\n offsets: \"-600|-540|-660\",\r\n offsetIndices: \"01020202020202020200\"\r\n }, {\r\n id: \"Pacific/Samoa\",\r\n untils: \"-usij20|Infinity\",\r\n offsets: \"682.8|660\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Pacific/Tahiti\",\r\n untils: \"-tvnayw|Infinity\",\r\n offsets: \"598.2667|600\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"Pacific/Tarawa\",\r\n untils: \"Infinity\",\r\n offsets: \"-720\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Pacific/Tongatapu\",\r\n untils: \"-f4vrlc|uo2edc|8fpc0|bvs00|4bh80|eelg0|4bh80|7pmis0|3lmo0|Infinity\",\r\n offsets: \"-740|-780|-840\",\r\n offsetIndices: \"0121212121\"\r\n }, {\r\n id: \"Pacific/Truk\",\r\n untils: \"-su4zs0|29hes0|bkenw0|29fk40|Infinity\",\r\n offsets: \"-600|-540\",\r\n offsetIndices: \"01010\"\r\n }, {\r\n id: \"Pacific/Wake\",\r\n untils: \"Infinity\",\r\n offsets: \"-720\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Pacific/Wallis\",\r\n untils: \"Infinity\",\r\n offsets: \"-720\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Pacific/Yap\",\r\n untils: \"-su4zs0|29hes0|bkenw0|29fk40|Infinity\",\r\n offsets: \"-600|-540\",\r\n offsetIndices: \"01010\"\r\n }, {\r\n id: \"Poland\",\r\n untils: \"-se9yk0|dvyc0|7ves0|a4yw0|7x6o0|asw00|7x6o0|aunw0|7x6o0|1evbs0|9fcwc0|18cao0|7k800|9q000|9d1c0|9gnw0|an980|9kd80|8fs40|922w0|ar1c0|7x6o0|a2yo0|8n400|9q000|902o0|4013w0|64dc0|9d1c0|9d1c0|clpc0|6hc00|9d1c0|9d1c0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|clpc0|64dc0|6j4tc0|902o0|9q000|9d1c0|9d1c0|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d440|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"-84|-60|-120|-180\",\r\n offsetIndices: \"012121223212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"Portugal\",\r\n untils: \"-u9rhc0|2bufw0|6zxg0|66580|bq800|73k00|bodc0|71pc0|bq800|73k00|bq800|71pc0|bq800|1b2g00|9b6o0|saio0|8n400|9q000|902o0|a2yo0|902o0|a2yo0|8n400|st1c0|8n400|9d1c0|9d1c0|sg2o0|9d1c0|902o0|9q000|a2yo0|8n400|9d1c0|9d1c0|902o0|9q000|a2yo0|b5uo0|51hc0|bitc0|9d1c0|9ew00|88ao0|25p80|5reo0|3lpg0|779c0|1sqk0|6uao0|38qs0|6uao0|25p80|6hc00|38qs0|6uao0|25p80|6hc00|38qs0|8a5c0|9d1c0|9d9o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|s3400|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|5gyl40|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d440|9cyk0|9d440|9d1c0|9d1c0|9d1c0|9d1c0|9d440|9cyk0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"36.75|0|-60|-120\",\r\n offsetIndices: \"012121212121212121212121212121212121212121212321232123212321212121212121212121212121212121212121212121212121212121212121212121212122323232212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"PRC\",\r\n untils: \"-qh00w0|8sl80|asbpg0|6w2k0|7ves0|bxjw0|4mqs0|1vduk0|d4as0|75bw0|a31g0|aaak0|9d440|7v980|awo40|1dx80|j9xpo0|6u7w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|Infinity\",\r\n offsets: \"-480|-540\",\r\n offsetIndices: \"01010101010101010101010101010\"\r\n }, {\r\n id: \"PST8PDT\",\r\n untils: \"-r0emw0|ast80|7x9g0|ast80|bmtus0|1tz2s0|2dyg0|b9gdg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"480|420\",\r\n offsetIndices: \"010101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"ROC\",\r\n untils: \"-gtzfk0|45slc0|c51c0|75bw0|a31g0|aaak0|9d440|7v980|awo40|7v980|awo40|7v980|awo40|7v980|7tk40|clmk0|7rpg0|b07w0|7rpg0|b07w0|7rpg0|9et80|9eys0|9et80|9d440|9et80|9d440|9et80|9d440|9et80|cjxg0|69uk0|ci2s0|69uk0|6its40|9et80|9d440|9et80|1yf9g0|4qak0|Infinity\",\r\n offsets: \"-480|-540\",\r\n offsetIndices: \"01010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"ROK\",\r\n untils: \"-w8966g|1yh18g|hkx5a0|1faao0|5cik0|ae5g0|8a2k0|ae5g0|8bx80|c8tg0|6h980|1bj6s0|l3aq0|6j3w0|d2g40|6u7w0|b5xg0|776k0|biw40|776k0|biw40|776k0|biw40|776k0|grs40|dfqxi0|7x6o0|asw00|7x6o0|Infinity\",\r\n offsets: \"-507.8667|-510|-540|-600|-570\",\r\n offsetIndices: \"012232323232141414141414123232\"\r\n }, {\r\n id: \"Singapore\",\r\n untils: \"-xphpwd|eeb94d|4it32o|8n3jc|1v2p60|iy3o60|Infinity\",\r\n offsets: \"-415.4167|-420|-440|-450|-540|-480\",\r\n offsetIndices: \"0123435\"\r\n }, {\r\n id: \"Turkey\",\r\n untils: \"-ux9xew|2wvx6w|7v980|1tjc40|aunw0|88dg0|9et80|8yas0|a2vw0|tzpg0|79180|awo40|7v980|7p4040|4zjw0|2vs40|f4d80|9vms0|1u5ek0|c5440|69uk0|acas0|8n180|a31g0|8n180|9q2s0|8zzw0|a31g0|8zzw0|a31g0|8n180|5md9g0|o9zw0|a6qs0|75bw0|4iwyw0|7x6o0|7kas0|b5rw0|75hg0|bkl80|77c40|biqk0|7x9g0|a2vw0|8n6s0|4iqc0|2nkw80|38l80|kdes0|8qtc0|8a5c0|9ew00|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|902o0|9q000|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7kdk0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7m2o0|b4000|7k800|b5uo0|7x6o0|asw00|7z1c0|ar1c0|7x6o0|bitc0|779c0|8fe80|Infinity\",\r\n offsets: \"-116.9333|-120|-180|-240\",\r\n offsetIndices: \"0121212121212121212121212121212121212121212121223212121212121212121212121212121212121212121212121212121212121212122\"\r\n }, {\r\n id: \"UCT\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"Universal\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"US/Alaska\",\r\n untils: \"-ek1qo0|1tyx80|2e400|b7yik0|12y080|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|1l940|7rs80|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"600|540|480\",\r\n offsetIndices: \"011001010101010101010101010101010111212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"US/Aleutian\",\r\n untils: \"-ek1nw0|1tyug0|2e6s0|b7yik0|12y080|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|1l940|7rs80|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"660|600|540\",\r\n offsetIndices: \"011001010101010101010101010101010111212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"US/Arizona\",\r\n untils: \"-r0epo0|ast80|7x9g0|ast80|bmtus0|zjedo|4olg0|9et80|bs6lmc|9cyk0|Infinity\",\r\n offsets: \"420|360\",\r\n offsetIndices: \"01010101010\"\r\n }, {\r\n id: \"US/Central\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bvus0|776k0|7kas0|b5rw0|9d440|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|7x9g0|dbjw0|8a840|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|6w840|1tz8c0|2dsw0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"US/East-Indiana\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|baw840|51ek0|6w840|1tz8c0|2dsw0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|19q7w0|asys0|5qonw0|9cyk0|9d440|9cyk0|ihslg0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300|240\",\r\n offsetIndices: \"010101011010101010101010101010121212121212121212121212121212121212121212121212121212121212121212121\"\r\n }, {\r\n id: \"US/Eastern\",\r\n untils: \"-r0ev80|ast80|7x9g0|ast80|7x9g0|b5rw0|905g0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|6w840|1tzb40|2dq40|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"300|240\",\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"US/Hawaii\",\r\n untils: \"-j50la0|13l00|4jvb00|1tyvu0|2e5e0|votg0|Infinity\",\r\n offsets: \"630|570|600\",\r\n offsetIndices: \"0101102\"\r\n }, {\r\n id: \"US/Indiana-Starke\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bmtus0|1tz8c0|2dsw0|tj1g0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9px80|9d440|9cyk0|9d440|7x3w0|asys0|7x3w0|asys0|9cyk0|9d440|9px80|9d440|9cyk0|9d440|s3180|1twas0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|7j5400|asw00|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"360|300\",\r\n offsetIndices: \"0101011010101010101010101010101010101010101010101010101010101010101010101010101010101010111010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"US/Michigan\",\r\n untils: \"-xx8dyd|5eraud|dyeyk0|1tzb40|2dq40|1c9440|7x3w0|9rlbxo|71s2c|9d440|9cyk0|2cmdg0|9cyk0|3lpg0|f4d80|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"332.1833|360|300|240\",\r\n offsetIndices: \"0123323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\"\r\n }, {\r\n id: \"US/Mountain\",\r\n untils: \"-r0epo0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|2vmk0|ataw40|1tz5k0|2dvo0|a7n9g0|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"420|360\",\r\n offsetIndices: \"01010101011010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"US/Pacific-New\",\r\n untils: \"-r0emw0|ast80|7x9g0|ast80|bmtus0|1tz2s0|2dyg0|1a3c5o|f2iic|owao0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|902o0|9q000|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"480|420\",\r\n offsetIndices: \"010101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"US/Pacific\",\r\n untils: \"-r0emw0|ast80|7x9g0|ast80|bmtus0|1tz2s0|2dyg0|1a3c5o|f2iic|owao0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|902o0|9q000|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\",\r\n offsets: \"480|420\",\r\n offsetIndices: \"010101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"US/Samoa\",\r\n untils: \"-usij20|Infinity\",\r\n offsets: \"682.8|660\",\r\n offsetIndices: \"01\"\r\n }, {\r\n id: \"UTC\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }, {\r\n id: \"W-SU\",\r\n untils: \"-rx5dmh|ipzua|97hc0|7yyk0|5i840|d9p80|1jwk7|2cvk0|s8o00|1qvw0|8fpc0|1jms0|is040|412as0|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d440|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|Infinity\",\r\n offsets: \"-150.2833|-151.3167|-211.3167|-271.3167|-240|-180|-300|-120\",\r\n offsetIndices: \"012132345464575454545454545454545455754545454545454545454545454545454545454545\"\r\n }, {\r\n id: \"WET\",\r\n untils: \"3s9ms0|902o0|9q000|9d1c0|9d1c0|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\",\r\n offsets: \"0|-60\",\r\n offsetIndices: \"010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\"\r\n }, {\r\n id: \"Zulu\",\r\n untils: \"Infinity\",\r\n offsets: \"0\",\r\n offsetIndices: \"0\"\r\n }]\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/m_utils_time_zone.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n dateUtilsTs\r\n} from \"../core/utils/date\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport DateAdapter from \"./m_date_adapter\";\r\nimport timeZoneDataUtils from \"./timezones/m_utils_timezones_data\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nvar MINUTES_IN_HOUR = 60;\r\nvar MS_IN_MINUTE = 6e4;\r\nvar createUTCDateWithLocalOffset = date => {\r\n if (!date) {\r\n return null\r\n }\r\n return new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds()))\r\n};\r\nvar createDateFromUTCWithLocalOffset = date => {\r\n var result = DateAdapter(date);\r\n var timezoneOffsetBeforeInMin = result.getTimezoneOffset();\r\n result.addTime(result.getTimezoneOffset(\"minute\"));\r\n result.subtractMinutes(timezoneOffsetBeforeInMin - result.getTimezoneOffset());\r\n return result.source\r\n};\r\nvar getTimeZones = function() {\r\n var date = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : new Date;\r\n var dateInUTC = createUTCDate(date);\r\n return timeZoneDataUtils.getDisplayedTimeZones(dateInUTC.getTime())\r\n};\r\nvar createUTCDate = date => new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes()));\r\nvar getTimezoneOffsetChangeInMinutes = (startDate, endDate, updatedStartDate, updatedEndDate) => getDaylightOffset(updatedStartDate, updatedEndDate) - getDaylightOffset(startDate, endDate);\r\nvar getTimezoneOffsetChangeInMs = (startDate, endDate, updatedStartDate, updatedEndDate) => getTimezoneOffsetChangeInMinutes(startDate, endDate, updatedStartDate, updatedEndDate) * toMs(\"minute\");\r\nvar getDaylightOffset = (startDate, endDate) => new Date(startDate).getTimezoneOffset() - new Date(endDate).getTimezoneOffset();\r\nvar getDaylightOffsetInMs = (startDate, endDate) => getDaylightOffset(startDate, endDate) * toMs(\"minute\");\r\nvar calculateTimezoneByValue = function(timezone) {\r\n var date = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : new Date;\r\n if (\"string\" === typeof timezone) {\r\n var dateUtc = createUTCDate(date);\r\n return timeZoneDataUtils.getTimeZoneOffsetById(timezone, dateUtc.getTime())\r\n }\r\n return timezone\r\n};\r\nvar _getDaylightOffsetByTimezone = (startDate, endDate, timeZone) => calculateTimezoneByValue(timeZone, startDate) - calculateTimezoneByValue(timeZone, endDate);\r\nvar getCorrectedDateByDaylightOffsets = (convertedOriginalStartDate, convertedDate, date, timeZone, startDateTimezone) => {\r\n var daylightOffsetByCommonTimezone = _getDaylightOffsetByTimezone(convertedOriginalStartDate, convertedDate, timeZone);\r\n var daylightOffsetByAppointmentTimezone = _getDaylightOffsetByTimezone(convertedOriginalStartDate, convertedDate, startDateTimezone);\r\n var diff = daylightOffsetByCommonTimezone - daylightOffsetByAppointmentTimezone;\r\n return new Date(date.getTime() - diff * toMs(\"hour\"))\r\n};\r\nvar correctRecurrenceExceptionByTimezone = function(exception, exceptionByStartDate, timeZone, startDateTimeZone) {\r\n var isBackConversion = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : false;\r\n var timezoneOffset = (exception.getTimezoneOffset() - exceptionByStartDate.getTimezoneOffset()) / MINUTES_IN_HOUR;\r\n if (startDateTimeZone) {\r\n timezoneOffset = _getDaylightOffsetByTimezone(exceptionByStartDate, exception, startDateTimeZone)\r\n } else if (timeZone) {\r\n timezoneOffset = _getDaylightOffsetByTimezone(exceptionByStartDate, exception, timeZone)\r\n }\r\n return new Date(exception.getTime() + (isBackConversion ? -1 : 1) * timezoneOffset * toMs(\"hour\"))\r\n};\r\nvar isTimezoneChangeInDate = date => {\r\n var startDayDate = new Date(new Date(date).setHours(0, 0, 0, 0));\r\n var endDayDate = new Date(new Date(date).setHours(23, 59, 59, 0));\r\n return startDayDate.getTimezoneOffset() - endDayDate.getTimezoneOffset() !== 0\r\n};\r\nvar getDateWithoutTimezoneChange = date => {\r\n var clonedDate = new Date(date);\r\n if (isTimezoneChangeInDate(clonedDate)) {\r\n var result = new Date(clonedDate);\r\n return new Date(result.setDate(result.getDate() + 1))\r\n }\r\n return clonedDate\r\n};\r\nvar isSameAppointmentDates = (startDate, endDate) => {\r\n endDate = new Date(endDate.getTime() - 1);\r\n return dateUtils.sameDate(startDate, endDate)\r\n};\r\nvar getClientTimezoneOffset = function() {\r\n var date = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : new Date;\r\n return date.getTimezoneOffset() * MS_IN_MINUTE\r\n};\r\nvar getDiffBetweenClientTimezoneOffsets = function() {\r\n var firstDate = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : new Date;\r\n var secondDate = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : new Date;\r\n return getClientTimezoneOffset(firstDate) - getClientTimezoneOffset(secondDate)\r\n};\r\nvar isEqualLocalTimeZone = function(timeZoneName) {\r\n var date = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : new Date;\r\n if (Intl) {\r\n var localTimeZoneName = Intl.DateTimeFormat().resolvedOptions().timeZone;\r\n if (localTimeZoneName === timeZoneName) {\r\n return true\r\n }\r\n }\r\n return isEqualLocalTimeZoneByDeclaration(timeZoneName, date)\r\n};\r\nvar hasDSTInLocalTimeZone = () => {\r\n var [startDate, endDate] = getExtremeDates();\r\n return startDate.getTimezoneOffset() !== endDate.getTimezoneOffset()\r\n};\r\nvar isEqualLocalTimeZoneByDeclaration = (timeZoneName, date) => {\r\n var year = date.getFullYear();\r\n var getOffset = date => -date.getTimezoneOffset() / 60;\r\n var getDateAndMoveHourBack = dateStamp => new Date(dateStamp - 36e5);\r\n var configTuple = timeZoneDataUtils.getTimeZoneDeclarationTuple(timeZoneName, year);\r\n var [summerTime, winterTime] = configTuple;\r\n var noDSTInTargetTimeZone = configTuple.length < 2;\r\n if (noDSTInTargetTimeZone) {\r\n var targetTimeZoneOffset = timeZoneDataUtils.getTimeZoneOffsetById(timeZoneName, date);\r\n var localTimeZoneOffset = getOffset(date);\r\n if (targetTimeZoneOffset !== localTimeZoneOffset) {\r\n return false\r\n }\r\n return !hasDSTInLocalTimeZone()\r\n }\r\n var localSummerOffset = getOffset(new Date(summerTime.date));\r\n var localWinterOffset = getOffset(new Date(winterTime.date));\r\n if (localSummerOffset !== summerTime.offset) {\r\n return false\r\n }\r\n if (localSummerOffset === getOffset(getDateAndMoveHourBack(summerTime.date))) {\r\n return false\r\n }\r\n if (localWinterOffset !== winterTime.offset) {\r\n return false\r\n }\r\n if (localWinterOffset === getOffset(getDateAndMoveHourBack(winterTime.date))) {\r\n return false\r\n }\r\n return true\r\n};\r\nvar getExtremeDates = () => {\r\n var nowDate = new Date(Date.now());\r\n var startDate = new Date;\r\n var endDate = new Date;\r\n startDate.setFullYear(nowDate.getFullYear(), 0, 1);\r\n endDate.setFullYear(nowDate.getFullYear(), 6, 1);\r\n return [startDate, endDate]\r\n};\r\nvar setOffsetsToDate = (targetDate, offsetsArray) => {\r\n var newDateMs = offsetsArray.reduce((result, offset) => result + offset, targetDate.getTime());\r\n return new Date(newDateMs)\r\n};\r\nvar addOffsetsWithoutDST = function(date) {\r\n for (var _len = arguments.length, offsets = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\r\n offsets[_key - 1] = arguments[_key]\r\n }\r\n var newDate = dateUtilsTs.addOffsets(date, offsets);\r\n var daylightShift = getDaylightOffsetInMs(date, newDate);\r\n if (!daylightShift) {\r\n return newDate\r\n }\r\n var correctLocalDate = dateUtilsTs.addOffsets(newDate, [-daylightShift]);\r\n var daylightSecondShift = getDaylightOffsetInMs(newDate, correctLocalDate);\r\n return !daylightSecondShift ? correctLocalDate : newDate\r\n};\r\nvar utils = {\r\n getDaylightOffset: getDaylightOffset,\r\n getDaylightOffsetInMs: getDaylightOffsetInMs,\r\n getTimezoneOffsetChangeInMinutes: getTimezoneOffsetChangeInMinutes,\r\n getTimezoneOffsetChangeInMs: getTimezoneOffsetChangeInMs,\r\n calculateTimezoneByValue: calculateTimezoneByValue,\r\n getCorrectedDateByDaylightOffsets: getCorrectedDateByDaylightOffsets,\r\n isSameAppointmentDates: isSameAppointmentDates,\r\n correctRecurrenceExceptionByTimezone: correctRecurrenceExceptionByTimezone,\r\n getClientTimezoneOffset: getClientTimezoneOffset,\r\n getDiffBetweenClientTimezoneOffsets: getDiffBetweenClientTimezoneOffsets,\r\n createUTCDateWithLocalOffset: createUTCDateWithLocalOffset,\r\n createDateFromUTCWithLocalOffset: createDateFromUTCWithLocalOffset,\r\n createUTCDate: createUTCDate,\r\n isTimezoneChangeInDate: isTimezoneChangeInDate,\r\n getDateWithoutTimezoneChange: getDateWithoutTimezoneChange,\r\n hasDSTInLocalTimeZone: hasDSTInLocalTimeZone,\r\n isEqualLocalTimeZone: isEqualLocalTimeZone,\r\n isEqualLocalTimeZoneByDeclaration: isEqualLocalTimeZoneByDeclaration,\r\n getTimeZones: getTimeZones,\r\n setOffsetsToDate: setOffsetsToDate,\r\n addOffsetsWithoutDST: addOffsetsWithoutDST\r\n};\r\nexport default utils;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/timezone_calculator/utils.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport timeZoneUtils from \"../../m_utils_time_zone\";\r\nimport {\r\n TimeZoneCalculator\r\n} from \"./calculator\";\r\nexport var createTimeZoneCalculator = currentTimeZone => new TimeZoneCalculator({\r\n getClientOffset: date => timeZoneUtils.getClientTimezoneOffset(date),\r\n tryGetCommonOffset: date => timeZoneUtils.calculateTimezoneByValue(currentTimeZone, date),\r\n tryGetAppointmentOffset: (date, appointmentTimezone) => timeZoneUtils.calculateTimezoneByValue(appointmentTimezone, date)\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/utils/themes.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n current,\r\n isCompact,\r\n isFluent,\r\n isMaterial,\r\n isMaterialBased\r\n} from \"../../../../ui/themes\";\r\nexport var getThemeType = () => {\r\n var theme = current();\r\n return {\r\n isCompact: isCompact(theme),\r\n isMaterial: isMaterial(theme),\r\n isFluent: isFluent(theme),\r\n isMaterialBased: isMaterialBased(theme)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/m_classes.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var FIXED_CONTAINER_CLASS = \"dx-scheduler-fixed-appointments\";\r\nexport var REDUCED_APPOINTMENT_CLASS = \"dx-scheduler-appointment-reduced\";\r\nexport var REDUCED_APPOINTMENT_ICON = \"dx-scheduler-appointment-reduced-icon\";\r\nexport var RECURRENCE_APPOINTMENT_CLASS = \"dx-scheduler-appointment-recurrence\";\r\nexport var EMPTY_APPOINTMENT_CLASS = \"dx-scheduler-appointment-empty\";\r\nexport var ALL_DAY_APPOINTMENT_CLASS = \"dx-scheduler-all-day-appointment\";\r\nexport var REDUCED_APPOINTMENT_PARTS_CLASSES = {\r\n head: \"dx-scheduler-appointment-head\",\r\n body: \"dx-scheduler-appointment-body\",\r\n tail: \"dx-scheduler-appointment-tail\"\r\n};\r\nexport var DIRECTION_APPOINTMENT_CLASSES = {\r\n horizontal: \"dx-scheduler-appointment-horizontal\",\r\n vertical: \"dx-scheduler-appointment-vertical\"\r\n};\r\nexport var APPOINTMENT_DRAG_SOURCE_CLASS = \"dx-scheduler-appointment-drag-source\";\r\nexport var APPOINTMENT_ITEM_CLASS = \"dx-scheduler-appointment\";\r\nexport var APPOINTMENT_CONTENT_CLASSES = {\r\n APPOINTMENT_CONTENT_DETAILS: \"dx-scheduler-appointment-content-details\",\r\n RECURRING_ICON: \"dx-scheduler-appointment-recurrence-icon\",\r\n APPOINTMENT_TITLE: \"dx-scheduler-appointment-title\",\r\n APPOINTMENT_DATE: \"dx-scheduler-appointment-content-date\",\r\n ALL_DAY_CONTENT: \"dx-scheduler-appointment-content-allday\",\r\n ITEM: \"dx-scheduler-appointment\",\r\n STRIP: \"dx-scheduler-appointment-strip\",\r\n AGENDA_MARKER: \"dx-scheduler-agenda-appointment-marker\",\r\n AGENDA_RESOURCE_LIST: \"dx-scheduler-appointment-resource-list\",\r\n AGENDA_RESOURCE_LIST_ITEM: \"dx-scheduler-appointment-resource-item\",\r\n AGENDA_RESOURCE_LIST_ITEM_VALUE: \"dx-scheduler-appointment-resource-item-value\"\r\n};\r\nexport var AGENDA_LAST_IN_DATE_APPOINTMENT_CLASS = \"dx-scheduler-last-in-date-agenda-appointment\";\r\nexport var APPOINTMENT_HAS_RESOURCE_COLOR_CLASS = \"dx-scheduler-appointment-has-resource-color\";\r\nexport var HEADER_CURRENT_TIME_CELL_CLASS = \"dx-scheduler-header-panel-current-time-cell\";\r\nexport var VIRTUAL_CELL_CLASS = \"dx-scheduler-virtual-cell\";\r\nexport var TIME_PANEL_CLASS = \"dx-scheduler-time-panel\";\r\nexport var DATE_TABLE_CLASS = \"dx-scheduler-date-table\";\r\nexport var DATE_TABLE_ROW_CLASS = \"dx-scheduler-date-table-row\";\r\nexport var GROUP_ROW_CLASS = \"dx-scheduler-group-row\";\r\nexport var GROUP_HEADER_CONTENT_CLASS = \"dx-scheduler-group-header-content\";\r\nexport var LAST_GROUP_CELL_CLASS = \"dx-scheduler-last-group-cell\";\r\nexport var FIRST_GROUP_CELL_CLASS = \"dx-scheduler-first-group-cell\";\r\nexport var VERTICAL_GROUP_COUNT_CLASSES = [\"dx-scheduler-group-column-count-one\", \"dx-scheduler-group-column-count-two\", \"dx-scheduler-group-column-count-three\"];\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/m_constants.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var LIST_ITEM_DATA_KEY = \"dxListItemData\";\r\nexport var LIST_ITEM_CLASS = \"dx-list-item\";\r\nexport var APPOINTMENT_SETTINGS_KEY = \"dxAppointmentSettings\";\r\nexport var HORIZONTAL_GROUP_ORIENTATION = \"horizontal\";\r\nexport var VIEWS = {\r\n DAY: \"day\",\r\n WEEK: \"week\",\r\n WORK_WEEK: \"workWeek\",\r\n MONTH: \"month\",\r\n TIMELINE_DAY: \"timelineDay\",\r\n TIMELINE_WEEK: \"timelineWeek\",\r\n TIMELINE_WORK_WEEK: \"timelineWorkWeek\",\r\n TIMELINE_MONTH: \"timelineMonth\",\r\n AGENDA: \"agenda\"\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/const.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var VERTICAL_GROUP_ORIENTATION = \"vertical\";\r\nexport var HORIZONTAL_GROUP_ORIENTATION = \"horizontal\";\r\nexport var TIMELINE_VIEWS = {\r\n timelineDay: true,\r\n timelineWeek: true,\r\n timelineWorkWeek: true,\r\n timelineMonth: true\r\n};\r\nexport var VIEW_TYPES = [\"day\", \"week\", \"workWeek\", \"month\", \"timelineDay\", \"timelineWeek\", \"timelineWorkWeek\", \"timelineMonth\", \"agenda\"];\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/utils/base.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n equalByValue\r\n} from \"../../../../core/utils/common\";\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport dateLocalization from \"../../../../localization/date\";\r\nimport {\r\n dateUtilsTs\r\n} from \"../../../core/utils/date\";\r\nimport {\r\n VERTICAL_GROUP_COUNT_CLASSES\r\n} from \"../../m_classes\";\r\nimport {\r\n VIEWS\r\n} from \"../../m_constants\";\r\nimport timeZoneUtils from \"../../m_utils_time_zone\";\r\nimport {\r\n HORIZONTAL_GROUP_ORIENTATION,\r\n TIMELINE_VIEWS,\r\n VERTICAL_GROUP_ORIENTATION\r\n} from \"../const\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nvar DAY_HOURS = 24;\r\nvar HOUR_IN_MS = 36e5;\r\nvar SATURDAY_INDEX = 6;\r\nvar SUNDAY_INDEX = 0;\r\nvar getDurationInHours = (startDate, endDate) => Math.floor((endDate.getTime() - startDate.getTime()) / toMs(\"hour\"));\r\nexport var getDatesWithoutTime = (min, max) => {\r\n var newMin = dateUtils.trimTime(min);\r\n var newMax = dateUtils.trimTime(max);\r\n newMax.setDate(newMax.getDate() + 1);\r\n return [newMin, newMax]\r\n};\r\nexport var getAppointmentRenderingStrategyName = viewType => {\r\n var {\r\n renderingStrategy: renderingStrategy\r\n } = {\r\n day: {\r\n renderingStrategy: \"vertical\"\r\n },\r\n week: {\r\n renderingStrategy: \"week\"\r\n },\r\n workWeek: {\r\n renderingStrategy: \"week\"\r\n },\r\n month: {\r\n renderingStrategy: \"horizontalMonth\"\r\n },\r\n timelineDay: {\r\n renderingStrategy: \"horizontal\"\r\n },\r\n timelineWeek: {\r\n renderingStrategy: \"horizontal\"\r\n },\r\n timelineWorkWeek: {\r\n renderingStrategy: \"horizontal\"\r\n },\r\n timelineMonth: {\r\n renderingStrategy: \"horizontalMonthLine\"\r\n },\r\n agenda: {\r\n renderingStrategy: \"agenda\"\r\n }\r\n } [viewType];\r\n return renderingStrategy\r\n};\r\nexport var getAppointmentTakesAllDay = (appointmentAdapter, allDayPanelMode) => {\r\n var {\r\n startDate: startDate,\r\n endDate: endDate,\r\n allDay: allDay\r\n } = appointmentAdapter;\r\n switch (allDayPanelMode) {\r\n case \"hidden\":\r\n return false;\r\n case \"allDay\":\r\n return allDay;\r\n case \"all\":\r\n default:\r\n if (allDay) {\r\n return true\r\n }\r\n if (!isDefined(endDate)) {\r\n return false\r\n }\r\n return getDurationInHours(startDate, endDate) >= DAY_HOURS\r\n }\r\n};\r\nexport var getAppointmentKey = geometry => {\r\n var {\r\n left: left,\r\n top: top,\r\n width: width,\r\n height: height\r\n } = geometry;\r\n return \"\".concat(left, \"-\").concat(top, \"-\").concat(width, \"-\").concat(height)\r\n};\r\nexport var hasResourceValue = (resourceValues, itemValue) => isDefined(resourceValues.find(value => equalByValue(value, itemValue)));\r\nexport var getOverflowIndicatorColor = (color, colors) => !colors.length || 0 === colors.filter(item => item !== color).length ? color : void 0;\r\nexport var getVerticalGroupCountClass = groups => {\r\n switch (null === groups || void 0 === groups ? void 0 : groups.length) {\r\n case 1:\r\n return VERTICAL_GROUP_COUNT_CLASSES[0];\r\n case 2:\r\n return VERTICAL_GROUP_COUNT_CLASSES[1];\r\n case 3:\r\n return VERTICAL_GROUP_COUNT_CLASSES[2];\r\n default:\r\n return\r\n }\r\n};\r\nexport var setOptionHour = (date, optionHour) => {\r\n var nextDate = new Date(date);\r\n if (!isDefined(optionHour)) {\r\n return nextDate\r\n }\r\n nextDate.setHours(optionHour, optionHour % 1 * 60, 0, 0);\r\n return nextDate\r\n};\r\nexport var calculateDayDuration = (startDayHour, endDayHour) => endDayHour - startDayHour;\r\nexport var getStartViewDateTimeOffset = (startViewDate, startDayHour) => {\r\n var validStartDayHour = Math.floor(startDayHour);\r\n var isDSTChange = timeZoneUtils.isTimezoneChangeInDate(startViewDate);\r\n if (isDSTChange && validStartDayHour !== startViewDate.getHours()) {\r\n return dateUtils.dateToMilliseconds(\"hour\")\r\n }\r\n return 0\r\n};\r\nexport var getValidCellDateForLocalTimeFormat = (date, _ref) => {\r\n var {\r\n startViewDate: startViewDate,\r\n startDayHour: startDayHour,\r\n cellIndexShift: cellIndexShift,\r\n viewOffset: viewOffset\r\n } = _ref;\r\n var originDate = dateUtilsTs.addOffsets(date, [-viewOffset]);\r\n var localTimeZoneChangedInOriginDate = timeZoneUtils.isTimezoneChangeInDate(originDate);\r\n if (!localTimeZoneChangedInOriginDate) {\r\n return date\r\n }\r\n var startViewDateWithoutDST = new Date(new Date(startViewDate).setDate(startViewDate.getDate() + 2));\r\n var startViewDateOffset = getStartViewDateTimeOffset(startViewDate, startDayHour);\r\n return dateUtilsTs.addOffsets(startViewDateWithoutDST, [viewOffset, cellIndexShift, -startViewDateOffset])\r\n};\r\nexport var getTotalCellCountByCompleteData = completeData => completeData[completeData.length - 1].length;\r\nexport var getDisplayedCellCount = (displayedCellCount, completeData) => null !== displayedCellCount && void 0 !== displayedCellCount ? displayedCellCount : getTotalCellCountByCompleteData(completeData);\r\nexport var getHeaderCellText = (headerIndex, date, headerCellTextFormat, getDateForHeaderText, additionalOptions) => {\r\n var validDate = getDateForHeaderText(headerIndex, date, additionalOptions);\r\n return dateLocalization.format(validDate, headerCellTextFormat)\r\n};\r\nexport var isVerticalGroupingApplied = (groups, groupOrientation) => groupOrientation === VERTICAL_GROUP_ORIENTATION && !!groups.length;\r\nexport var getGroupCount = groups => {\r\n var result = 0;\r\n for (var i = 0, len = groups.length; i < len; i += 1) {\r\n if (!i) {\r\n result = groups[i].items.length\r\n } else {\r\n result *= groups[i].items.length\r\n }\r\n }\r\n return result\r\n};\r\nexport var getHorizontalGroupCount = (groups, groupOrientation) => {\r\n var groupCount = getGroupCount(groups) || 1;\r\n var isVerticalGrouping = isVerticalGroupingApplied(groups, groupOrientation);\r\n return isVerticalGrouping ? 1 : groupCount\r\n};\r\nexport var isTimelineView = viewType => !!TIMELINE_VIEWS[viewType];\r\nexport var isDateAndTimeView = viewType => viewType !== VIEWS.TIMELINE_MONTH && viewType !== VIEWS.MONTH;\r\nexport var isHorizontalView = viewType => {\r\n switch (viewType) {\r\n case VIEWS.TIMELINE_DAY:\r\n case VIEWS.TIMELINE_WEEK:\r\n case VIEWS.TIMELINE_WORK_WEEK:\r\n case VIEWS.TIMELINE_MONTH:\r\n case VIEWS.MONTH:\r\n return true;\r\n default:\r\n return false\r\n }\r\n};\r\nexport var isDateInRange = (date, startDate, endDate, diff) => diff > 0 ? dateUtils.dateInRange(date, startDate, new Date(endDate.getTime() - 1)) : dateUtils.dateInRange(date, endDate, startDate, \"date\");\r\nexport var isFirstCellInMonthWithIntervalCount = (cellDate, intervalCount) => 1 === cellDate.getDate() && intervalCount > 1;\r\nexport var getViewStartByOptions = (startDate, currentDate, intervalDuration, startViewDate) => {\r\n if (!startDate) {\r\n return new Date(currentDate)\r\n }\r\n var currentStartDate = dateUtils.trimTime(startViewDate);\r\n var diff = currentStartDate.getTime() <= currentDate.getTime() ? 1 : -1;\r\n var endDate = new Date(currentStartDate.getTime() + intervalDuration * diff);\r\n while (!isDateInRange(currentDate, currentStartDate, endDate, diff)) {\r\n currentStartDate = endDate;\r\n endDate = new Date(currentStartDate.getTime() + intervalDuration * diff)\r\n }\r\n return diff > 0 ? currentStartDate : endDate\r\n};\r\nexport var calculateIsGroupedAllDayPanel = (groups, groupOrientation, isAllDayPanelVisible) => isVerticalGroupingApplied(groups, groupOrientation) && isAllDayPanelVisible;\r\nexport var calculateViewStartDate = startDateOption => startDateOption;\r\nexport var getCellDuration = (viewType, startDayHour, endDayHour, hoursInterval) => {\r\n switch (viewType) {\r\n case \"month\":\r\n return 36e5 * calculateDayDuration(startDayHour, endDayHour);\r\n case \"timelineMonth\":\r\n return dateUtils.dateToMilliseconds(\"day\");\r\n default:\r\n return 36e5 * hoursInterval\r\n }\r\n};\r\nexport var calculateCellIndex = (rowIndex, columnIndex, rowCount) => columnIndex * rowCount + rowIndex;\r\nexport var getTotalRowCountByCompleteData = completeData => completeData.length;\r\nexport var getDisplayedRowCount = (displayedRowCount, completeData) => null !== displayedRowCount && void 0 !== displayedRowCount ? displayedRowCount : getTotalRowCountByCompleteData(completeData);\r\nexport var getStartViewDateWithoutDST = (startViewDate, startDayHour) => {\r\n var newStartViewDate = timeZoneUtils.getDateWithoutTimezoneChange(startViewDate);\r\n newStartViewDate.setHours(startDayHour);\r\n return newStartViewDate\r\n};\r\nexport var getIsGroupedAllDayPanel = (hasAllDayRow, isVerticalGrouping) => hasAllDayRow && isVerticalGrouping;\r\nexport var getKeyByGroup = (groupIndex, isVerticalGrouping) => {\r\n if (isVerticalGrouping && !!groupIndex) {\r\n return groupIndex.toString()\r\n }\r\n return \"0\"\r\n};\r\nexport var getToday = (indicatorTime, timeZoneCalculator) => {\r\n var todayDate = null !== indicatorTime && void 0 !== indicatorTime ? indicatorTime : new Date;\r\n return (null === timeZoneCalculator || void 0 === timeZoneCalculator ? void 0 : timeZoneCalculator.createDate(todayDate, {\r\n path: \"toGrid\"\r\n })) || todayDate\r\n};\r\nexport var getCalculatedFirstDayOfWeek = firstDayOfWeekOption => isDefined(firstDayOfWeekOption) ? firstDayOfWeekOption : dateLocalization.firstDayOfWeekIndex();\r\nexport var isHorizontalGroupingApplied = (groups, groupOrientation) => groupOrientation === HORIZONTAL_GROUP_ORIENTATION && !!groups.length;\r\nexport var isGroupingByDate = (groups, groupOrientation, groupByDate) => {\r\n var isHorizontalGrouping = isHorizontalGroupingApplied(groups, groupOrientation);\r\n return groupByDate && isHorizontalGrouping\r\n};\r\nexport var getSkippedHoursInRange = (startDate, endDate, allDay, viewDataProvider) => {\r\n var isAllDay = allDay && !viewDataProvider.viewType.includes(\"timeline\");\r\n var result = 0;\r\n var currentDate = new Date(startDate);\r\n currentDate.setDate(currentDate.getDate() + 1);\r\n currentDate.setHours(0, 0, 0, 0);\r\n var endDateWithStartHour = new Date(endDate);\r\n endDateWithStartHour.setHours(0, 0, 0, 0);\r\n var {\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour\r\n } = viewDataProvider.getViewOptions();\r\n var dayHours = isAllDay ? DAY_HOURS : endDayHour - startDayHour;\r\n while (currentDate < endDateWithStartHour) {\r\n if (viewDataProvider.isSkippedDate(currentDate)) {\r\n result += dayHours\r\n }\r\n currentDate.setDate(currentDate.getDate() + 1)\r\n }\r\n var startDateHours = startDate.getHours();\r\n var endDateHours = endDate.getHours() + endDate.getTime() % HOUR_IN_MS / HOUR_IN_MS;\r\n if (viewDataProvider.isSkippedDate(startDate)) {\r\n if (isAllDay) {\r\n result += DAY_HOURS\r\n } else if (startDateHours < startDayHour) {\r\n result += dayHours\r\n } else if (startDateHours < endDayHour) {\r\n result += endDayHour - startDateHours\r\n }\r\n }\r\n if (viewDataProvider.isSkippedDate(endDate)) {\r\n if (isAllDay) {\r\n result += DAY_HOURS\r\n } else if (endDateHours > endDayHour) {\r\n result += dayHours\r\n } else if (endDateHours > startDayHour) {\r\n result += endDateHours - startDayHour\r\n }\r\n }\r\n return result\r\n};\r\nexport var isDataOnWeekend = date => {\r\n var day = date.getDay();\r\n return day === SATURDAY_INDEX || day === SUNDAY_INDEX\r\n};\r\nexport var getWeekendsCount = days => 2 * Math.floor(days / 7);\r\nexport var extendGroupItemsForGroupingByDate = (groupRenderItems, columnCountPerGroup) => [...new Array(columnCountPerGroup)].reduce((currentGroupItems, _, index) => groupRenderItems.map((groupsRow, rowIndex) => {\r\n var currentRow = currentGroupItems[rowIndex] || [];\r\n return [...currentRow, ...groupsRow.map((item, columnIndex) => _extends(_extends({}, item), {\r\n key: \"\".concat(item.key, \"_group_by_date_\").concat(index),\r\n isFirstGroupCell: 0 === columnIndex,\r\n isLastGroupCell: columnIndex === groupsRow.length - 1\r\n }))]\r\n}), []);\r\nexport var getGroupPanelData = (groups, columnCountPerGroup, groupByDate, baseColSpan) => {\r\n var repeatCount = 1;\r\n var groupPanelItems = groups.map(group => {\r\n var result = [];\r\n var {\r\n name: resourceName,\r\n items: items,\r\n data: data\r\n } = group;\r\n var _loop = function(iterator) {\r\n result.push(...items.map((_ref2, index) => {\r\n var {\r\n id: id,\r\n text: text,\r\n color: color\r\n } = _ref2;\r\n return {\r\n id: id,\r\n text: text,\r\n color: color,\r\n key: \"\".concat(iterator, \"_\").concat(resourceName, \"_\").concat(id),\r\n resourceName: resourceName,\r\n data: null === data || void 0 === data ? void 0 : data[index]\r\n }\r\n }))\r\n };\r\n for (var iterator = 0; iterator < repeatCount; iterator += 1) {\r\n _loop(iterator)\r\n }\r\n repeatCount *= items.length;\r\n return result\r\n });\r\n if (groupByDate) {\r\n groupPanelItems = extendGroupItemsForGroupingByDate(groupPanelItems, columnCountPerGroup)\r\n }\r\n return {\r\n groupPanelItems: groupPanelItems,\r\n baseColSpan: baseColSpan\r\n }\r\n};\r\nexport var splitNumber = (value, splitValue) => Array.from({\r\n length: Math.ceil(value / splitValue)\r\n}, (_, index) => Math.min(value - splitValue * index, splitValue));\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/utils/month.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport dateLocalization from \"../../../../localization/date\";\r\nimport {\r\n getCalculatedFirstDayOfWeek,\r\n isDateInRange,\r\n isFirstCellInMonthWithIntervalCount,\r\n setOptionHour\r\n} from \"./base\";\r\nexport var calculateCellIndex = (rowIndex, columnIndex, _, columnCount) => rowIndex * columnCount + columnIndex;\r\nexport var getViewStartByOptions = (startDate, currentDate, intervalCount, startViewDate) => {\r\n if (!startDate) {\r\n return new Date(currentDate)\r\n }\r\n var currentStartDate = new Date(startViewDate);\r\n var validStartViewDate = new Date(startViewDate);\r\n var diff = currentStartDate.getTime() <= currentDate.getTime() ? 1 : -1;\r\n var endDate = new Date(new Date(validStartViewDate.setMonth(validStartViewDate.getMonth() + diff * intervalCount)));\r\n while (!isDateInRange(currentDate, currentStartDate, endDate, diff)) {\r\n currentStartDate = new Date(endDate);\r\n if (diff > 0) {\r\n currentStartDate.setDate(1)\r\n }\r\n endDate = new Date(new Date(endDate.setMonth(endDate.getMonth() + diff * intervalCount)))\r\n }\r\n return diff > 0 ? currentStartDate : endDate\r\n};\r\nexport var getCellText = (date, intervalCount) => {\r\n if (isFirstCellInMonthWithIntervalCount(date, intervalCount)) {\r\n var monthName = dateLocalization.getMonthNames(\"abbreviated\")[date.getMonth()];\r\n return [monthName, dateLocalization.format(date, \"day\")].join(\" \")\r\n }\r\n return dateLocalization.format(date, \"dd\")\r\n};\r\nexport var calculateStartViewDate = (currentDate, startDayHour, startDate, intervalCount, firstDayOfWeekOption) => {\r\n var viewStart = getViewStartByOptions(startDate, currentDate, intervalCount, dateUtils.getFirstMonthDate(startDate));\r\n var firstMonthDate = dateUtils.getFirstMonthDate(viewStart);\r\n var firstDayOfWeek = getCalculatedFirstDayOfWeek(firstDayOfWeekOption);\r\n var firstViewDate = dateUtils.getFirstWeekDate(firstMonthDate, firstDayOfWeek);\r\n return setOptionHour(firstViewDate, startDayHour)\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/utils/render.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nexport var addToStyles = (options, style) => {\r\n var nextStyle = null !== style && void 0 !== style ? style : {};\r\n var result = _extends({}, nextStyle);\r\n options.forEach(_ref => {\r\n var {\r\n attr: attr,\r\n value: value\r\n } = _ref;\r\n result[attr] = value || nextStyle[attr]\r\n });\r\n return result\r\n};\r\nexport var addWidthToStyle = (value, style) => {\r\n var width = value ? \"\".concat(value, \"px\") : \"\";\r\n return addToStyles([{\r\n attr: \"width\",\r\n value: width\r\n }], style)\r\n};\r\nexport var addHeightToStyle = (value, style) => {\r\n var height = value ? \"\".concat(value, \"px\") : \"\";\r\n return addToStyles([{\r\n attr: \"height\",\r\n value: height\r\n }], style)\r\n};\r\nexport var combineClasses = classesMap => Object.keys(classesMap).filter(cssClass => !!cssClass && classesMap[cssClass]).join(\" \");\r\nexport var getGroupCellClasses = function() {\r\n var isFirstGroupCell = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : false;\r\n var isLastGroupCell = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : false;\r\n var className = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : \"\";\r\n return combineClasses({\r\n \"dx-scheduler-first-group-cell\": isFirstGroupCell,\r\n \"dx-scheduler-last-group-cell\": isLastGroupCell,\r\n [className]: true\r\n })\r\n};\r\nexport var getCellSizeHorizontalClass = (viewType, crossScrollingEnabled) => {\r\n switch (viewType) {\r\n case \"day\":\r\n case \"week\":\r\n case \"workWeek\":\r\n case \"month\":\r\n return crossScrollingEnabled ? \"dx-scheduler-cell-sizes-horizontal\" : \"\";\r\n default:\r\n return \"dx-scheduler-cell-sizes-horizontal\"\r\n }\r\n};\r\nexport var getCellSizeVerticalClass = isAllDayCell => !isAllDayCell ? \"dx-scheduler-cell-sizes-vertical\" : \"\";\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/utils/week.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport dateLocalization from \"../../../../localization/date\";\r\nimport {\r\n getCalculatedFirstDayOfWeek,\r\n getValidCellDateForLocalTimeFormat,\r\n getViewStartByOptions,\r\n setOptionHour\r\n} from \"./base\";\r\nexport var getTimePanelCellText = (rowIndex, date, startViewDate, cellDuration, startDayHour, viewOffset) => {\r\n if (rowIndex % 2 !== 0) {\r\n return \"\"\r\n }\r\n var validTimeDate = getValidCellDateForLocalTimeFormat(date, {\r\n startViewDate: startViewDate,\r\n startDayHour: startDayHour,\r\n cellIndexShift: Math.round(cellDuration) * rowIndex,\r\n viewOffset: viewOffset\r\n });\r\n return dateLocalization.format(validTimeDate, \"shorttime\")\r\n};\r\nexport var getIntervalDuration = intervalCount => 7 * dateUtils.dateToMilliseconds(\"day\") * intervalCount;\r\nexport var getValidStartDate = (startDate, firstDayOfWeek) => startDate ? dateUtils.getFirstWeekDate(startDate, firstDayOfWeek) : void 0;\r\nexport var calculateStartViewDate = (currentDate, startDayHour, startDate, intervalDuration, firstDayOfWeekOption) => {\r\n var firstDayOfWeek = getCalculatedFirstDayOfWeek(firstDayOfWeekOption);\r\n var viewStart = getViewStartByOptions(startDate, currentDate, intervalDuration, getValidStartDate(startDate, firstDayOfWeek));\r\n var firstViewDate = dateUtils.getFirstWeekDate(viewStart, firstDayOfWeek);\r\n return setOptionHour(firstViewDate, startDayHour)\r\n};\r\nexport var calculateViewStartDate = (startDateOption, firstDayOfWeek) => {\r\n var validFirstDayOfWeek = null !== firstDayOfWeek && void 0 !== firstDayOfWeek ? firstDayOfWeek : dateLocalization.firstDayOfWeekIndex();\r\n return dateUtils.getFirstWeekDate(startDateOption, validFirstDayOfWeek)\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/scheduler/utils.timeZone.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport timezoneUtils from \"../../__internal/scheduler/m_utils_time_zone\";\r\nexport default timezoneUtils;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/m_expression_utils.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nexport var ExpressionUtils = {\r\n getField: (dataAccessors, field, obj) => {\r\n if (!isDefined(dataAccessors.getter[field])) {\r\n return\r\n }\r\n return dataAccessors.getter[field](obj)\r\n },\r\n setField: (dataAccessors, field, obj, value) => {\r\n if (!isDefined(dataAccessors.setter[field])) {\r\n return\r\n }\r\n dataAccessors.setter[field](obj, value);\r\n return obj\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/data_provider/m_utils.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport dateSerialization from \"../../../../core/utils/date_serialization\";\r\nimport timeZoneUtils from \"../../../../ui/scheduler/utils.timeZone\";\r\nimport {\r\n ExpressionUtils\r\n} from \"../../m_expression_utils\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nvar FULL_DATE_FORMAT = \"yyyyMMddTHHmmss\";\r\nexport var compareDateWithStartDayHour = (startDate, endDate, startDayHour, allDay, severalDays) => {\r\n var startTime = dateUtils.dateTimeFromDecimal(startDayHour);\r\n var result = startDate.getHours() >= startTime.hours && startDate.getMinutes() >= startTime.minutes || endDate.getHours() === startTime.hours && endDate.getMinutes() > startTime.minutes || endDate.getHours() > startTime.hours || severalDays || allDay;\r\n return result\r\n};\r\nexport var compareDateWithEndDayHour = options => {\r\n var {\r\n startDate: startDate,\r\n endDate: endDate,\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour,\r\n viewStartDayHour: viewStartDayHour,\r\n viewEndDayHour: viewEndDayHour,\r\n allDay: allDay,\r\n severalDays: severalDays,\r\n min: min,\r\n max: max,\r\n checkIntersectViewport: checkIntersectViewport\r\n } = options;\r\n var hiddenInterval = (24 - viewEndDayHour + viewStartDayHour) * toMs(\"hour\");\r\n var apptDuration = endDate.getTime() - startDate.getTime();\r\n var delta = (hiddenInterval - apptDuration) / toMs(\"hour\");\r\n var apptStartHour = startDate.getHours();\r\n var apptStartMinutes = startDate.getMinutes();\r\n var result;\r\n var endTime = dateUtils.dateTimeFromDecimal(endDayHour);\r\n var startTime = dateUtils.dateTimeFromDecimal(startDayHour);\r\n var apptIntersectViewport = startDate < max && endDate > min;\r\n result = checkIntersectViewport && apptIntersectViewport || apptStartHour < endTime.hours || apptStartHour === endTime.hours && apptStartMinutes < endTime.minutes || allDay && startDate <= max || severalDays && apptIntersectViewport && (apptStartHour < endTime.hours || 60 * endDate.getHours() + endDate.getMinutes() > 60 * startTime.hours);\r\n if (apptDuration < hiddenInterval) {\r\n if (apptStartHour > endTime.hours && apptStartMinutes > endTime.minutes && delta <= apptStartHour - endDayHour) {\r\n result = false\r\n }\r\n }\r\n return result\r\n};\r\nexport var getAppointmentTakesSeveralDays = adapter => !dateUtils.sameDate(adapter.startDate, adapter.endDate);\r\nexport var _isEndDateWrong = (startDate, endDate) => !endDate || isNaN(endDate.getTime()) || startDate.getTime() > endDate.getTime();\r\nexport var _appointmentPartInInterval = (startDate, endDate, startDayHour, endDayHour) => {\r\n var apptStartDayHour = startDate.getHours();\r\n var apptEndDayHour = endDate.getHours();\r\n return apptStartDayHour <= startDayHour && apptEndDayHour <= endDayHour && apptEndDayHour >= startDayHour || apptEndDayHour >= endDayHour && apptStartDayHour <= endDayHour && apptStartDayHour >= startDayHour\r\n};\r\nexport var getRecurrenceException = (appointmentAdapter, timeZoneCalculator, timeZone) => {\r\n var {\r\n recurrenceException: recurrenceException\r\n } = appointmentAdapter;\r\n if (recurrenceException) {\r\n var exceptions = recurrenceException.split(\",\");\r\n for (var i = 0; i < exceptions.length; i++) {\r\n exceptions[i] = _convertRecurrenceException(exceptions[i], appointmentAdapter.startDate, timeZoneCalculator, timeZone)\r\n }\r\n return exceptions.join()\r\n }\r\n return recurrenceException\r\n};\r\nexport var _convertRecurrenceException = (exceptionString, startDate, timeZoneCalculator, timeZone) => {\r\n exceptionString = exceptionString.replace(/\\s/g, \"\");\r\n var getConvertedToTimeZone = date => timeZoneCalculator.createDate(date, {\r\n path: \"toGrid\"\r\n });\r\n var exceptionDate = dateSerialization.deserializeDate(exceptionString);\r\n var convertedStartDate = getConvertedToTimeZone(startDate);\r\n var convertedExceptionDate = getConvertedToTimeZone(exceptionDate);\r\n convertedExceptionDate = timeZoneUtils.correctRecurrenceExceptionByTimezone(convertedExceptionDate, convertedStartDate, timeZone);\r\n exceptionString = dateSerialization.serializeDate(convertedExceptionDate, FULL_DATE_FORMAT);\r\n return exceptionString\r\n};\r\nexport var replaceWrongEndDate = (rawAppointment, startDate, endDate, appointmentDuration, dataAccessors) => {\r\n if (_isEndDateWrong(startDate, endDate)) {\r\n var isAllDay = ExpressionUtils.getField(dataAccessors, \"allDay\", rawAppointment);\r\n var calculatedEndDate = ((isAllDay, startDate) => {\r\n if (isAllDay) {\r\n return dateUtils.setToDayEnd(new Date(startDate))\r\n }\r\n return new Date(startDate.getTime() + appointmentDuration * toMs(\"minute\"))\r\n })(isAllDay, startDate);\r\n dataAccessors.setter.endDate(rawAppointment, calculatedEndDate)\r\n }\r\n};\r\nexport var sortAppointmentsByStartDate = (appointments, dataAccessors) => {\r\n appointments.sort((a, b) => {\r\n var firstDate = new Date(ExpressionUtils.getField(dataAccessors, \"startDate\", a.settings || a));\r\n var secondDate = new Date(ExpressionUtils.getField(dataAccessors, \"startDate\", b.settings || b));\r\n return Math.sign(firstDate.getTime() - secondDate.getTime())\r\n })\r\n};\r\n",null,null,null,null,"/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"/**\r\n * DevExtreme (esm/__internal/scheduler/m_recurrence.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errors from \"../../core/errors\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n RRule,\r\n RRuleSet\r\n} from \"rrule\";\r\nimport timeZoneUtils from \"./m_utils_time_zone\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nvar ruleNames = [\"freq\", \"interval\", \"byday\", \"byweekno\", \"byyearday\", \"bymonth\", \"bymonthday\", \"count\", \"until\", \"byhour\", \"byminute\", \"bysecond\", \"bysetpos\", \"wkst\"];\r\nvar freqNames = [\"DAILY\", \"WEEKLY\", \"MONTHLY\", \"YEARLY\", \"SECONDLY\", \"MINUTELY\", \"HOURLY\"];\r\nvar days = {\r\n SU: 0,\r\n MO: 1,\r\n TU: 2,\r\n WE: 3,\r\n TH: 4,\r\n FR: 5,\r\n SA: 6\r\n};\r\nvar loggedWarnings = [];\r\nvar MS_IN_HOUR = 36e5;\r\nvar MS_IN_DAY = 24 * MS_IN_HOUR;\r\nvar RRULE_BROKEN_TIMEZONES = [\"Etc/GMT-13\", \"MIT\", \"Pacific/Apia\", \"Pacific/Enderbury\", \"Pacific/Tongatapu\", \"Etc/GMT-14\", \"Pacific/Kiritimati\"];\r\nvar recurrence = null;\r\nexport function getRecurrenceProcessor() {\r\n if (!recurrence) {\r\n recurrence = new RecurrenceProcessor\r\n }\r\n return recurrence\r\n}\r\nclass RecurrenceProcessor {\r\n constructor() {\r\n this.rRule = null;\r\n this.rRuleSet = null;\r\n this.validator = new RecurrenceValidator\r\n }\r\n generateDates(options) {\r\n var recurrenceRule = this.evalRecurrenceRule(options.rule);\r\n var {\r\n rule: rule\r\n } = recurrenceRule;\r\n if (!recurrenceRule.isValid || !rule.freq) {\r\n return []\r\n }\r\n var rruleIntervalParams = this._createRruleIntervalParams(options);\r\n this._initializeRRule(options, rruleIntervalParams.startIntervalDate, rule.until);\r\n return this.rRuleSet.between(rruleIntervalParams.minViewDate, rruleIntervalParams.maxViewDate, true).filter(date => date.getTime() + rruleIntervalParams.appointmentDuration >= rruleIntervalParams.minViewTime).map(date => this._convertRruleResult(rruleIntervalParams, options, date))\r\n }\r\n _createRruleIntervalParams(options) {\r\n var {\r\n start: start,\r\n min: min,\r\n max: max,\r\n appointmentTimezoneOffset: appointmentTimezoneOffset\r\n } = options;\r\n var clientOffsets_startDate = timeZoneUtils.getClientTimezoneOffset(start),\r\n clientOffsets_minViewDate = timeZoneUtils.getClientTimezoneOffset(min),\r\n clientOffsets_maxViewDate = timeZoneUtils.getClientTimezoneOffset(max);\r\n var duration = options.end ? options.end.getTime() - options.start.getTime() : 0;\r\n var startIntervalDate = timeZoneUtils.setOffsetsToDate(options.start, [-clientOffsets_startDate, appointmentTimezoneOffset]);\r\n var minViewTime = options.min.getTime() - clientOffsets_minViewDate + appointmentTimezoneOffset;\r\n var minViewDate = new Date(minViewTime - duration);\r\n var maxViewDate = timeZoneUtils.setOffsetsToDate(options.max, [-clientOffsets_maxViewDate, appointmentTimezoneOffset]);\r\n var startDateDSTDifferenceMs = timeZoneUtils.getDiffBetweenClientTimezoneOffsets(options.start, startIntervalDate);\r\n var switchToSummerTime = startDateDSTDifferenceMs < 0;\r\n return {\r\n startIntervalDate: startIntervalDate,\r\n minViewTime: minViewTime,\r\n minViewDate: minViewDate,\r\n maxViewDate: maxViewDate,\r\n startIntervalDateDSTShift: switchToSummerTime ? 0 : startDateDSTDifferenceMs,\r\n appointmentDuration: duration\r\n }\r\n }\r\n _convertRruleResult(rruleIntervalParams, options, rruleDate) {\r\n var convertedBackDate = timeZoneUtils.setOffsetsToDate(rruleDate, [...this._getLocalMachineOffset(rruleDate), -options.appointmentTimezoneOffset, rruleIntervalParams.startIntervalDateDSTShift]);\r\n var convertedDateDSTShift = timeZoneUtils.getDiffBetweenClientTimezoneOffsets(convertedBackDate, rruleDate);\r\n var switchToSummerTime = convertedDateDSTShift < 0;\r\n var resultDate = timeZoneUtils.setOffsetsToDate(convertedBackDate, [convertedDateDSTShift]);\r\n var resultDateDSTShift = timeZoneUtils.getDiffBetweenClientTimezoneOffsets(resultDate, convertedBackDate);\r\n if (resultDateDSTShift && switchToSummerTime) {\r\n return new Date(resultDate.getTime() + resultDateDSTShift)\r\n }\r\n return resultDate\r\n }\r\n _getLocalMachineOffset(rruleDate) {\r\n var machineTimezoneOffset = timeZoneUtils.getClientTimezoneOffset(rruleDate);\r\n var machineTimezoneName = dateUtils.getMachineTimezoneName();\r\n var result = [machineTimezoneOffset];\r\n var isTimezoneOffsetInBrokenRange = machineTimezoneOffset / MS_IN_HOUR <= -13;\r\n var isTimezoneNameInBrokenNames = !machineTimezoneName || RRULE_BROKEN_TIMEZONES.some(timezone => machineTimezoneName.includes(timezone));\r\n if (isTimezoneOffsetInBrokenRange && isTimezoneNameInBrokenNames) {\r\n result.push(-MS_IN_DAY)\r\n }\r\n return result\r\n }\r\n hasRecurrence(options) {\r\n return !!this.generateDates(options).length\r\n }\r\n evalRecurrenceRule(rule) {\r\n var result = {\r\n rule: {},\r\n isValid: false\r\n };\r\n if (rule) {\r\n result.rule = this._parseRecurrenceRule(rule);\r\n result.isValid = this.validator.validateRRule(result.rule, rule)\r\n }\r\n return result\r\n }\r\n isValidRecurrenceRule(rule) {\r\n return this.evalRecurrenceRule(rule).isValid\r\n }\r\n daysFromByDayRule(rule) {\r\n var result = [];\r\n if (rule.byday) {\r\n if (Array.isArray(rule.byday)) {\r\n result = rule.byday\r\n } else {\r\n result = rule.byday.split(\",\")\r\n }\r\n }\r\n return result.map(item => {\r\n var match = item.match(/[A-Za-z]+/);\r\n return !!match && match[0]\r\n }).filter(item => !!item)\r\n }\r\n getAsciiStringByDate(date) {\r\n var currentOffset = date.getTimezoneOffset() * toMs(\"minute\");\r\n var offsetDate = new Date(date.getTime() + currentOffset);\r\n return \"\".concat(offsetDate.getFullYear() + \"0\".concat(offsetDate.getMonth() + 1).slice(-2) + \"0\".concat(offsetDate.getDate()).slice(-2), \"T\").concat(\"0\".concat(offsetDate.getHours()).slice(-2)).concat(\"0\".concat(offsetDate.getMinutes()).slice(-2)).concat(\"0\".concat(offsetDate.getSeconds()).slice(-2), \"Z\")\r\n }\r\n getRecurrenceString(object) {\r\n if (!object || !object.freq) {\r\n return\r\n }\r\n var result = \"\";\r\n for (var field in object) {\r\n var value = object[field];\r\n if (\"interval\" === field && value < 2) {\r\n continue\r\n }\r\n if (\"until\" === field) {\r\n value = this.getAsciiStringByDate(value)\r\n }\r\n result += \"\".concat(field, \"=\").concat(value, \";\")\r\n }\r\n result = result.substring(0, result.length - 1);\r\n return result.toUpperCase()\r\n }\r\n _parseExceptionToRawArray(value) {\r\n return value.match(/(\\d{4})(\\d{2})(\\d{2})(T(\\d{2})(\\d{2})(\\d{2}))?(Z)?/)\r\n }\r\n getDateByAsciiString(exceptionText) {\r\n if (\"string\" !== typeof exceptionText) {\r\n return exceptionText\r\n }\r\n var result = this._parseExceptionToRawArray(exceptionText);\r\n if (!result) {\r\n return null\r\n }\r\n var [year, month, date, hours, minutes, seconds, isUtc] = this._createDateTuple(result);\r\n if (isUtc) {\r\n return new Date(Date.UTC(year, month, date, hours, minutes, seconds))\r\n }\r\n return new Date(year, month, date, hours, minutes, seconds)\r\n }\r\n _dispose() {\r\n if (this.rRuleSet) {\r\n delete this.rRuleSet;\r\n this.rRuleSet = null\r\n }\r\n if (this.rRule) {\r\n delete this.rRule;\r\n this.rRule = null\r\n }\r\n }\r\n _getTimeZoneOffset() {\r\n return (new Date).getTimezoneOffset()\r\n }\r\n _initializeRRule(options, startDateUtc, until) {\r\n var ruleOptions = RRule.parseString(options.rule);\r\n var {\r\n firstDayOfWeek: firstDayOfWeek\r\n } = options;\r\n ruleOptions.dtstart = startDateUtc;\r\n if (!ruleOptions.wkst && firstDayOfWeek) {\r\n ruleOptions.wkst = [6, 0, 1, 2, 3, 4, 5][firstDayOfWeek]\r\n }\r\n if (until) {\r\n ruleOptions.until = timeZoneUtils.setOffsetsToDate(until, [-timeZoneUtils.getClientTimezoneOffset(until), options.appointmentTimezoneOffset])\r\n }\r\n this._createRRule(ruleOptions);\r\n if (options.exception) {\r\n var exceptionStrings = options.exception;\r\n var exceptionDates = exceptionStrings.split(\",\").map(rule => this.getDateByAsciiString(rule));\r\n exceptionDates.forEach(date => {\r\n if (options.getPostProcessedException) {\r\n date = options.getPostProcessedException(date)\r\n }\r\n var utcDate = timeZoneUtils.setOffsetsToDate(date, [-timeZoneUtils.getClientTimezoneOffset(date), options.appointmentTimezoneOffset]);\r\n this.rRuleSet.exdate(utcDate)\r\n })\r\n }\r\n }\r\n _createRRule(ruleOptions) {\r\n this._dispose();\r\n this.rRuleSet = new RRuleSet;\r\n this.rRule = new RRule(ruleOptions);\r\n this.rRuleSet.rrule(this.rRule)\r\n }\r\n _parseRecurrenceRule(recurrence) {\r\n var ruleObject = {};\r\n var ruleParts = recurrence.split(\";\");\r\n for (var i = 0, len = ruleParts.length; i < len; i++) {\r\n var rule = ruleParts[i].split(\"=\");\r\n var ruleName = rule[0].toLowerCase();\r\n var ruleValue = rule[1];\r\n ruleObject[ruleName] = ruleValue\r\n }\r\n var count = parseInt(ruleObject.count);\r\n if (!isNaN(count)) {\r\n ruleObject.count = count\r\n }\r\n if (ruleObject.interval) {\r\n var interval = parseInt(ruleObject.interval);\r\n if (!isNaN(interval)) {\r\n ruleObject.interval = interval\r\n }\r\n } else {\r\n ruleObject.interval = 1\r\n }\r\n if (ruleObject.freq && ruleObject.until) {\r\n ruleObject.until = this.getDateByAsciiString(ruleObject.until)\r\n }\r\n return ruleObject\r\n }\r\n _createDateTuple(parseResult) {\r\n var isUtc = void 0 !== parseResult[8];\r\n parseResult.shift();\r\n if (void 0 === parseResult[3]) {\r\n parseResult.splice(3)\r\n } else {\r\n parseResult.splice(3, 1);\r\n parseResult.splice(6)\r\n }\r\n parseResult[1]--;\r\n parseResult.unshift(null);\r\n return [parseInt(parseResult[1]), parseInt(parseResult[2]), parseInt(parseResult[3]), parseInt(parseResult[4]) || 0, parseInt(parseResult[5]) || 0, parseInt(parseResult[6]) || 0, isUtc]\r\n }\r\n}\r\nclass RecurrenceValidator {\r\n validateRRule(rule, recurrence) {\r\n if (this._brokenRuleNameExists(rule) || !freqNames.includes(rule.freq) || this._wrongCountRule(rule) || this._wrongIntervalRule(rule) || this._wrongDayOfWeek(rule) || this._wrongByMonthDayRule(rule) || this._wrongByMonth(rule) || this._wrongUntilRule(rule)) {\r\n this._logBrokenRule(recurrence);\r\n return false\r\n }\r\n return true\r\n }\r\n _wrongUntilRule(rule) {\r\n var wrongUntil = false;\r\n var {\r\n until: until\r\n } = rule;\r\n if (void 0 !== until && !(until instanceof Date)) {\r\n wrongUntil = true\r\n }\r\n return wrongUntil\r\n }\r\n _wrongCountRule(rule) {\r\n var wrongCount = false;\r\n var {\r\n count: count\r\n } = rule;\r\n if (count && \"string\" === typeof count) {\r\n wrongCount = true\r\n }\r\n return wrongCount\r\n }\r\n _wrongByMonthDayRule(rule) {\r\n var wrongByMonthDay = false;\r\n var byMonthDay = rule.bymonthday;\r\n if (byMonthDay && isNaN(parseInt(byMonthDay))) {\r\n wrongByMonthDay = true\r\n }\r\n return wrongByMonthDay\r\n }\r\n _wrongByMonth(rule) {\r\n var wrongByMonth = false;\r\n var byMonth = rule.bymonth;\r\n if (byMonth && isNaN(parseInt(byMonth))) {\r\n wrongByMonth = true\r\n }\r\n return wrongByMonth\r\n }\r\n _wrongIntervalRule(rule) {\r\n var wrongInterval = false;\r\n var {\r\n interval: interval\r\n } = rule;\r\n if (interval && \"string\" === typeof interval) {\r\n wrongInterval = true\r\n }\r\n return wrongInterval\r\n }\r\n _wrongDayOfWeek(rule) {\r\n var byDay = rule.byday;\r\n var daysByRule = getRecurrenceProcessor().daysFromByDayRule(rule);\r\n var brokenDaysExist = false;\r\n if (\"\" === byDay) {\r\n brokenDaysExist = true\r\n }\r\n each(daysByRule, (_, day) => {\r\n if (!Object.prototype.hasOwnProperty.call(days, day)) {\r\n brokenDaysExist = true;\r\n return false\r\n }\r\n return\r\n });\r\n return brokenDaysExist\r\n }\r\n _brokenRuleNameExists(rule) {\r\n var brokenRuleExists = false;\r\n each(rule, ruleName => {\r\n if (!ruleNames.includes(ruleName)) {\r\n brokenRuleExists = true;\r\n return false\r\n }\r\n return\r\n });\r\n return brokenRuleExists\r\n }\r\n _logBrokenRule(recurrence) {\r\n if (!loggedWarnings.includes(recurrence)) {\r\n errors.log(\"W0006\", recurrence);\r\n loggedWarnings.push(recurrence)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/m_appointment_adapter.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n deepExtendArraySafe\r\n} from \"../../core/utils/object\";\r\nimport errors from \"../../ui/widget/ui.errors\";\r\nimport {\r\n ExpressionUtils\r\n} from \"./m_expression_utils\";\r\nimport {\r\n getRecurrenceProcessor\r\n} from \"./m_recurrence\";\r\nvar PROPERTY_NAMES = {\r\n startDate: \"startDate\",\r\n endDate: \"endDate\",\r\n allDay: \"allDay\",\r\n text: \"text\",\r\n description: \"description\",\r\n startDateTimeZone: \"startDateTimeZone\",\r\n endDateTimeZone: \"endDateTimeZone\",\r\n recurrenceRule: \"recurrenceRule\",\r\n recurrenceException: \"recurrenceException\",\r\n disabled: \"disabled\"\r\n};\r\nclass AppointmentAdapter {\r\n constructor(rawAppointment, dataAccessors, timeZoneCalculator, options) {\r\n this.rawAppointment = rawAppointment;\r\n this.dataAccessors = dataAccessors;\r\n this.timeZoneCalculator = timeZoneCalculator;\r\n this.options = options\r\n }\r\n get duration() {\r\n return this.endDate ? this.endDate - this.startDate : 0\r\n }\r\n get startDate() {\r\n var result = this.getField(PROPERTY_NAMES.startDate);\r\n return void 0 === result ? result : new Date(result)\r\n }\r\n set startDate(value) {\r\n this.setField(PROPERTY_NAMES.startDate, value)\r\n }\r\n get endDate() {\r\n var result = this.getField(PROPERTY_NAMES.endDate);\r\n return void 0 === result ? result : new Date(result)\r\n }\r\n set endDate(value) {\r\n this.setField(PROPERTY_NAMES.endDate, value)\r\n }\r\n get allDay() {\r\n return this.getField(PROPERTY_NAMES.allDay)\r\n }\r\n set allDay(value) {\r\n this.setField(PROPERTY_NAMES.allDay, value)\r\n }\r\n get text() {\r\n return this.getField(PROPERTY_NAMES.text)\r\n }\r\n set text(value) {\r\n this.setField(PROPERTY_NAMES.text, value)\r\n }\r\n get description() {\r\n return this.getField(PROPERTY_NAMES.description)\r\n }\r\n set description(value) {\r\n this.setField(PROPERTY_NAMES.description, value)\r\n }\r\n get startDateTimeZone() {\r\n return this.getField(PROPERTY_NAMES.startDateTimeZone)\r\n }\r\n get endDateTimeZone() {\r\n return this.getField(PROPERTY_NAMES.endDateTimeZone)\r\n }\r\n get recurrenceRule() {\r\n return this.getField(PROPERTY_NAMES.recurrenceRule)\r\n }\r\n set recurrenceRule(value) {\r\n this.setField(PROPERTY_NAMES.recurrenceRule, value)\r\n }\r\n get recurrenceException() {\r\n return this.getField(PROPERTY_NAMES.recurrenceException)\r\n }\r\n set recurrenceException(value) {\r\n this.setField(PROPERTY_NAMES.recurrenceException, value)\r\n }\r\n get disabled() {\r\n return !!this.getField(PROPERTY_NAMES.disabled)\r\n }\r\n get isRecurrent() {\r\n return getRecurrenceProcessor().isValidRecurrenceRule(this.recurrenceRule)\r\n }\r\n getField(property) {\r\n return ExpressionUtils.getField(this.dataAccessors, property, this.rawAppointment)\r\n }\r\n setField(property, value) {\r\n return ExpressionUtils.setField(this.dataAccessors, property, this.rawAppointment, value)\r\n }\r\n calculateStartDate(pathTimeZoneConversion) {\r\n if (!this.startDate || isNaN(this.startDate.getTime())) {\r\n throw errors.Error(\"E1032\", this.text)\r\n }\r\n return this.calculateDate(this.startDate, this.startDateTimeZone, pathTimeZoneConversion)\r\n }\r\n calculateEndDate(pathTimeZoneConversion) {\r\n return this.calculateDate(this.endDate, this.endDateTimeZone, pathTimeZoneConversion)\r\n }\r\n calculateDate(date, appointmentTimeZone, pathTimeZoneConversion) {\r\n if (!date) {\r\n return\r\n }\r\n return this.timeZoneCalculator.createDate(date, {\r\n appointmentTimeZone: appointmentTimeZone,\r\n path: pathTimeZoneConversion\r\n })\r\n }\r\n clone() {\r\n var options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : void 0;\r\n var result = new AppointmentAdapter(deepExtendArraySafe({}, this.rawAppointment), this.dataAccessors, this.timeZoneCalculator, options);\r\n if (null === options || void 0 === options ? void 0 : options.pathTimeZone) {\r\n result.startDate = result.calculateStartDate(options.pathTimeZone);\r\n result.endDate = result.calculateEndDate(options.pathTimeZone)\r\n }\r\n return result\r\n }\r\n source() {\r\n var serializeDate = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : false;\r\n if (serializeDate) {\r\n var clonedAdapter = this.clone();\r\n clonedAdapter.startDate = this.startDate;\r\n clonedAdapter.endDate = this.endDate;\r\n return clonedAdapter.source()\r\n }\r\n return extend({}, this.rawAppointment)\r\n }\r\n}\r\nexport default AppointmentAdapter;\r\nexport var createAppointmentAdapter = (rawAppointment, dataAccessors, timeZoneCalculator, options) => new AppointmentAdapter(rawAppointment, dataAccessors, timeZoneCalculator, options);\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/utils/exclude_from_recurrence.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport dateSerialization from \"../../../../core/utils/date_serialization\";\r\nimport {\r\n createAppointmentAdapter\r\n} from \"../../m_appointment_adapter\";\r\nvar FULL_DATE_FORMAT = \"yyyyMMddTHHmmss\";\r\nvar UTC_FULL_DATE_FORMAT = \"\".concat(FULL_DATE_FORMAT, \"Z\");\r\nvar getSerializedDate = (date, startDate, isAllDay) => {\r\n if (isAllDay) {\r\n date.setHours(startDate.getHours(), startDate.getMinutes(), startDate.getSeconds(), startDate.getMilliseconds())\r\n }\r\n return dateSerialization.serializeDate(date, UTC_FULL_DATE_FORMAT)\r\n};\r\nvar createRecurrenceException = (appointmentAdapter, exceptionDate) => {\r\n var result = [];\r\n if (appointmentAdapter.recurrenceException) {\r\n result.push(appointmentAdapter.recurrenceException)\r\n }\r\n result.push(getSerializedDate(exceptionDate, appointmentAdapter.startDate, appointmentAdapter.allDay));\r\n return result.join()\r\n};\r\nexport var excludeFromRecurrence = (appointment, exceptionDate, dataAccessors, timeZoneCalculator) => {\r\n var appointmentAdapter = createAppointmentAdapter(_extends({}, appointment), dataAccessors, timeZoneCalculator);\r\n appointmentAdapter.recurrenceException = createRecurrenceException(appointmentAdapter, exceptionDate);\r\n return appointmentAdapter\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/utils/format_weekday.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateLocalization from \"../../../../localization/date\";\r\nexport var formatWeekday = date => dateLocalization.getDayNames(\"abbreviated\")[date.getDay()];\r\nexport var formatWeekdayAndDay = date => \"\".concat(formatWeekday(date), \" \").concat(dateLocalization.format(date, \"day\"));\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/utils/index.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getThemeType\r\n} from \"../../../scheduler/r1/utils/themes\";\r\nimport {\r\n calculateStartViewDate\r\n} from \"./agenda\";\r\nimport {\r\n calculateStartViewDate as dayCalculateStartViewDate\r\n} from \"./day\";\r\nimport {\r\n calculateCellIndex,\r\n calculateStartViewDate as monthCalculateStartViewDate,\r\n getCellText,\r\n getViewStartByOptions\r\n} from \"./month\";\r\nimport {\r\n addHeightToStyle,\r\n addToStyles,\r\n addWidthToStyle,\r\n combineClasses,\r\n getCellSizeHorizontalClass,\r\n getCellSizeVerticalClass,\r\n getGroupCellClasses\r\n} from \"./render\";\r\nimport {\r\n calculateStartViewDate as timelineMonthCalculateStartViewDate\r\n} from \"./timeline_month\";\r\nimport {\r\n getDateForHeaderText\r\n} from \"./timeline_week\";\r\nimport {\r\n getCurrentView\r\n} from \"./views\";\r\nimport {\r\n calculateStartViewDate as weekCalculateStartViewDate,\r\n calculateViewStartDate as weekCalculateViewStartDate,\r\n getIntervalDuration,\r\n getTimePanelCellText\r\n} from \"./week\";\r\nimport {\r\n calculateStartViewDate as workWeekCalculateStartViewDate\r\n} from \"./work_week\";\r\nexport {\r\n calculateCellIndex,\r\n calculateDayDuration,\r\n calculateIsGroupedAllDayPanel,\r\n calculateViewStartDate,\r\n extendGroupItemsForGroupingByDate,\r\n getAppointmentKey,\r\n getAppointmentRenderingStrategyName,\r\n getAppointmentTakesAllDay,\r\n getCalculatedFirstDayOfWeek,\r\n getCellDuration,\r\n getDatesWithoutTime,\r\n getDisplayedCellCount,\r\n getDisplayedRowCount,\r\n getGroupCount,\r\n getGroupPanelData,\r\n getHeaderCellText,\r\n getHorizontalGroupCount,\r\n getIsGroupedAllDayPanel,\r\n getKeyByGroup,\r\n getOverflowIndicatorColor,\r\n getSkippedHoursInRange,\r\n getStartViewDateTimeOffset,\r\n getStartViewDateWithoutDST,\r\n getToday,\r\n getTotalCellCountByCompleteData,\r\n getTotalRowCountByCompleteData,\r\n getValidCellDateForLocalTimeFormat,\r\n getVerticalGroupCountClass,\r\n getViewStartByOptions,\r\n getWeekendsCount,\r\n hasResourceValue,\r\n isDataOnWeekend,\r\n isDateAndTimeView,\r\n isDateInRange,\r\n isFirstCellInMonthWithIntervalCount,\r\n isGroupingByDate,\r\n isHorizontalGroupingApplied,\r\n isHorizontalView,\r\n isTimelineView,\r\n isVerticalGroupingApplied,\r\n setOptionHour,\r\n splitNumber\r\n}\r\nfrom \"./base\";\r\nexport {\r\n getPreparedDataItems\r\n}\r\nfrom \"./data\";\r\nexport {\r\n excludeFromRecurrence\r\n}\r\nfrom \"./exclude_from_recurrence\";\r\nexport {\r\n formatWeekday,\r\n formatWeekdayAndDay\r\n}\r\nfrom \"./format_weekday\";\r\nexport var agendaUtils = {\r\n calculateStartViewDate: calculateStartViewDate\r\n};\r\nexport var dayUtils = {\r\n calculateStartViewDate: dayCalculateStartViewDate\r\n};\r\nexport var weekUtils = {\r\n getIntervalDuration: getIntervalDuration,\r\n getTimePanelCellText: getTimePanelCellText,\r\n calculateStartViewDate: weekCalculateStartViewDate,\r\n calculateViewStartDate: weekCalculateViewStartDate\r\n};\r\nexport var workWeekUtils = {\r\n calculateStartViewDate: workWeekCalculateStartViewDate\r\n};\r\nexport var monthUtils = {\r\n getViewStartByOptions: getViewStartByOptions,\r\n getCellText: getCellText,\r\n calculateCellIndex: calculateCellIndex,\r\n calculateStartViewDate: monthCalculateStartViewDate\r\n};\r\nexport var timelineWeekUtils = {\r\n getDateForHeaderText: getDateForHeaderText\r\n};\r\nexport var timelineMonthUtils = {\r\n calculateStartViewDate: timelineMonthCalculateStartViewDate\r\n};\r\nexport var viewsUtils = {\r\n getCurrentView: getCurrentView\r\n};\r\nexport var renderUtils = {\r\n addToStyles: addToStyles,\r\n addWidthToStyle: addWidthToStyle,\r\n addHeightToStyle: addHeightToStyle,\r\n getGroupCellClasses: getGroupCellClasses,\r\n combineClasses: combineClasses,\r\n getCellSizeHorizontalClass: getCellSizeHorizontalClass,\r\n getCellSizeVerticalClass: getCellSizeVerticalClass\r\n};\r\nexport var themeUtils = {\r\n getThemeType: getThemeType\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/utils/agenda.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n setOptionHour\r\n} from \"./base\";\r\nexport var calculateStartViewDate = (currentDate, startDayHour) => {\r\n var validCurrentDate = new Date(currentDate);\r\n return setOptionHour(validCurrentDate, startDayHour)\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/utils/day.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getViewStartByOptions,\r\n setOptionHour\r\n} from \"./base\";\r\nexport var calculateStartViewDate = (currentDate, startDayHour, startDate, intervalDuration) => {\r\n var firstViewDate = getViewStartByOptions(startDate, currentDate, intervalDuration, startDate);\r\n return setOptionHour(firstViewDate, startDayHour)\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/utils/work_week.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport {\r\n getViewStartByOptions,\r\n isDataOnWeekend,\r\n setOptionHour\r\n} from \"./base\";\r\nimport {\r\n getValidStartDate\r\n} from \"./week\";\r\nvar MONDAY_INDEX = 1;\r\nvar DAYS_IN_WEEK = 7;\r\nexport var calculateStartViewDate = (currentDate, startDayHour, startDate, intervalDuration, firstDayOfWeek) => {\r\n var viewStart = getViewStartByOptions(startDate, currentDate, intervalDuration, getValidStartDate(startDate, firstDayOfWeek));\r\n var firstViewDate = dateUtils.getFirstWeekDate(viewStart, firstDayOfWeek);\r\n if (isDataOnWeekend(firstViewDate)) {\r\n var currentDay = firstViewDate.getDay();\r\n var distance = (MONDAY_INDEX + DAYS_IN_WEEK - currentDay) % 7;\r\n firstViewDate.setDate(firstViewDate.getDate() + distance)\r\n }\r\n return setOptionHour(firstViewDate, startDayHour)\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/utils/timeline_week.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getValidCellDateForLocalTimeFormat\r\n} from \"./base\";\r\nexport var getDateForHeaderText = (index, date, _ref) => {\r\n var {\r\n startDayHour: startDayHour,\r\n startViewDate: startViewDate,\r\n cellCountInDay: cellCountInDay,\r\n interval: interval,\r\n viewOffset: viewOffset\r\n } = _ref;\r\n return getValidCellDateForLocalTimeFormat(date, {\r\n startViewDate: startViewDate,\r\n startDayHour: startDayHour,\r\n cellIndexShift: index % cellCountInDay * interval,\r\n viewOffset: viewOffset\r\n })\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/utils/timeline_month.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport {\r\n setOptionHour\r\n} from \"./base\";\r\nimport {\r\n getViewStartByOptions\r\n} from \"./month\";\r\nexport var calculateStartViewDate = (currentDate, startDayHour, startDate, intervalCount) => {\r\n var firstViewDate = dateUtils.getFirstMonthDate(getViewStartByOptions(startDate, currentDate, intervalCount, dateUtils.getFirstMonthDate(startDate)));\r\n return setOptionHour(firstViewDate, startDayHour)\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/utils/views.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isObject\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n VIEW_TYPES\r\n} from \"../const\";\r\nexport var getCurrentView = (currentView, views) => {\r\n var currentViewProps = views.find(view => {\r\n var names = isObject(view) ? [view.name, view.type] : [view];\r\n if (names.includes(currentView)) {\r\n return true\r\n }\r\n return false\r\n });\r\n if (void 0 === currentViewProps) {\r\n if (VIEW_TYPES.includes(currentView)) {\r\n currentViewProps = currentView\r\n } else {\r\n [currentViewProps] = views\r\n }\r\n }\r\n return currentViewProps\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/ui/editor/m_data_expression.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n ensureDefined,\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n compileGetter,\r\n toComparable\r\n} from \"../../../core/utils/data\";\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 isFunction,\r\n isObject as isObjectType,\r\n isString\r\n} from \"../../../core/utils/type\";\r\nimport variableWrapper from \"../../../core/utils/variable_wrapper\";\r\nimport ArrayStore from \"../../../data/array_store\";\r\nimport {\r\n DataSource\r\n} from \"../../../data/data_source/data_source\";\r\nimport DataHelperMixin from \"../../../data_helper\";\r\nvar DataExpressionMixin = extend({}, DataHelperMixin, {\r\n _dataExpressionDefaultOptions: () => ({\r\n items: [],\r\n dataSource: null,\r\n itemTemplate: \"item\",\r\n value: null,\r\n valueExpr: \"this\",\r\n displayExpr: void 0\r\n }),\r\n _initDataExpressions() {\r\n this._compileValueGetter();\r\n this._compileDisplayGetter();\r\n this._initDynamicTemplates();\r\n this._initDataSource();\r\n this._itemsToDataSource()\r\n },\r\n _itemsToDataSource() {\r\n if (!this.option(\"dataSource\")) {\r\n this._dataSource = new DataSource({\r\n store: new ArrayStore(this.option(\"items\")),\r\n pageSize: 0\r\n });\r\n this._initDataController()\r\n }\r\n },\r\n _compileDisplayGetter() {\r\n this._displayGetter = compileGetter(this._displayGetterExpr())\r\n },\r\n _displayGetterExpr() {\r\n return this.option(\"displayExpr\")\r\n },\r\n _compileValueGetter() {\r\n this._valueGetter = compileGetter(this._valueGetterExpr())\r\n },\r\n _valueGetterExpr() {\r\n return this.option(\"valueExpr\") || \"this\"\r\n },\r\n _loadValue(value) {\r\n var deferred = Deferred();\r\n value = this._unwrappedValue(value);\r\n if (!isDefined(value)) {\r\n return deferred.reject().promise()\r\n }\r\n this._loadSingle(this._valueGetterExpr(), value).done(item => {\r\n this._isValueEquals(this._valueGetter(item), value) ? deferred.resolve(item) : deferred.reject()\r\n }).fail(() => {\r\n deferred.reject()\r\n });\r\n this._loadValueDeferred = deferred;\r\n return deferred.promise()\r\n },\r\n _rejectValueLoading() {\r\n var _a;\r\n null === (_a = this._loadValueDeferred) || void 0 === _a ? void 0 : _a.reject({\r\n shouldSkipCallback: true\r\n })\r\n },\r\n _getCurrentValue() {\r\n return this.option(\"value\")\r\n },\r\n _unwrappedValue(value) {\r\n value = null !== value && void 0 !== value ? value : this._getCurrentValue();\r\n if (value && this._dataSource && \"this\" === this._valueGetterExpr()) {\r\n value = this._getItemKey(value)\r\n }\r\n return variableWrapper.unwrap(value)\r\n },\r\n _getItemKey(value) {\r\n var key = this._dataSource.key();\r\n if (Array.isArray(key)) {\r\n var result = {};\r\n for (var i = 0, n = key.length; i < n; i++) {\r\n result[key[i]] = value[key[i]]\r\n }\r\n return result\r\n }\r\n if (key && \"object\" === typeof value) {\r\n value = value[key]\r\n }\r\n return value\r\n },\r\n _isValueEquals(value1, value2) {\r\n var dataSourceKey = this._dataSource && this._dataSource.key();\r\n var result = this._compareValues(value1, value2);\r\n if (!result && dataSourceKey && isDefined(value1) && isDefined(value2)) {\r\n if (Array.isArray(dataSourceKey)) {\r\n result = this._compareByCompositeKey(value1, value2, dataSourceKey)\r\n } else {\r\n result = this._compareByKey(value1, value2, dataSourceKey)\r\n }\r\n }\r\n return result\r\n },\r\n _compareByCompositeKey(value1, value2, key) {\r\n var isObject = isObjectType;\r\n if (!isObject(value1) || !isObject(value2)) {\r\n return false\r\n }\r\n for (var i = 0, n = key.length; i < n; i++) {\r\n if (value1[key[i]] !== value2[key[i]]) {\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n _compareByKey(value1, value2, key) {\r\n var unwrapObservable = variableWrapper.unwrap;\r\n var valueKey1 = ensureDefined(unwrapObservable(value1[key]), value1);\r\n var valueKey2 = ensureDefined(unwrapObservable(value2[key]), value2);\r\n return this._compareValues(valueKey1, valueKey2)\r\n },\r\n _compareValues: (value1, value2) => toComparable(value1, true) === toComparable(value2, true),\r\n _initDynamicTemplates: noop,\r\n _setCollectionWidgetItemTemplate() {\r\n this._initDynamicTemplates();\r\n this._setCollectionWidgetOption(\"itemTemplate\", this.option(\"itemTemplate\"))\r\n },\r\n _getCollectionKeyExpr() {\r\n var valueExpr = this.option(\"valueExpr\");\r\n var isValueExprField = isString(valueExpr) && \"this\" !== valueExpr || isFunction(valueExpr);\r\n return isValueExprField ? valueExpr : null\r\n },\r\n _dataExpressionOptionChanged(args) {\r\n switch (args.name) {\r\n case \"items\":\r\n this._itemsToDataSource();\r\n this._setCollectionWidgetOption(\"items\");\r\n break;\r\n case \"dataSource\":\r\n this._initDataSource();\r\n break;\r\n case \"itemTemplate\":\r\n this._setCollectionWidgetItemTemplate();\r\n break;\r\n case \"valueExpr\":\r\n this._compileValueGetter();\r\n break;\r\n case \"displayExpr\":\r\n this._compileDisplayGetter();\r\n this._initDynamicTemplates();\r\n this._setCollectionWidgetOption(\"displayExpr\")\r\n }\r\n }\r\n});\r\nexport default DataExpressionMixin;\r\n","/**\r\n * DevExtreme (esm/ui/editor/ui.data_expression.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport DataExpressionMixin from \"../../__internal/ui/editor/m_data_expression\";\r\nexport default DataExpressionMixin;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/m_validation_message.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../../core/utils/position\";\r\nimport {\r\n getOuterWidth\r\n} from \"../../core/utils/size\";\r\nimport {\r\n encodeHtml\r\n} from \"../../core/utils/string\";\r\nimport Overlay from \"../../ui/overlay/ui.overlay\";\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() {\r\n var {\r\n target: target\r\n } = this.option();\r\n this.option(\"position.of\", target)\r\n },\r\n _ensureMessageNotEmpty() {\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(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 _a;\r\n var validationErrors = null !== (_a = this.option(\"validationErrors\")) && void 0 !== _a ? _a : [];\r\n var validationErrorMessage = \"\";\r\n validationErrors.forEach(err => {\r\n var _a;\r\n var separator = validationErrorMessage ? \"<br />\" : \"\";\r\n validationErrorMessage += separator + encodeHtml(null !== (_a = null === err || void 0 === err ? void 0 : err.message) && void 0 !== _a ? _a : \"\")\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(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() {\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/validation_message.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ValidationMessage from \"../__internal/ui/m_validation_message\";\r\nexport default ValidationMessage;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/editor/m_editor.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n data\r\n} from \"../../../core/element_data\";\r\nimport Guid from \"../../../core/guid\";\r\nimport $ from \"../../../core/renderer\";\r\nimport Callbacks from \"../../../core/utils/callbacks\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n resetActiveElement\r\n} from \"../../../core/utils/dom\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport EventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n addNamespace,\r\n normalizeKeyName\r\n} from \"../../../events/utils/index\";\r\nimport ValidationEngine from \"../../../ui/validation_engine\";\r\nimport ValidationMessage from \"../../../ui/validation_message\";\r\nimport Widget from \"../../../ui/widget/ui.widget\";\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() {\r\n this.showValidationMessageTimeout = null;\r\n this.validationRequest = Callbacks();\r\n this.callBase.apply(this, arguments)\r\n },\r\n _createElement(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(options) {\r\n this.callBase.apply(this, arguments);\r\n this.option(ValidationEngine.initValidationOptions(options))\r\n },\r\n _init() {\r\n this._initialValue = this.option(\"value\");\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() {\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 isDirty: false\r\n })\r\n },\r\n _attachKeyboardEvents() {\r\n if (!this.option(\"readOnly\")) {\r\n this.callBase()\r\n }\r\n },\r\n _setOptionsByReference() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n validationError: true\r\n })\r\n },\r\n _createValueChangeAction() {\r\n this._valueChangeAction = this._createActionByOption(\"onValueChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _suppressValueChangeAction() {\r\n this._valueChangeActionSuppressed = true\r\n },\r\n _resumeValueChangeAction() {\r\n this._valueChangeActionSuppressed = false\r\n },\r\n _initMarkup() {\r\n var _a;\r\n this._toggleReadOnlyState();\r\n this._setSubmitElementName(this.option(\"name\"));\r\n this.callBase();\r\n this._renderValidationState();\r\n null === (_a = this.option(\"_onMarkupRendered\")) || void 0 === _a ? void 0 : _a()\r\n },\r\n _raiseValueChangeAction(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(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(e) {\r\n this._valueChangeEventInstance = e\r\n },\r\n _focusInHandler(e) {\r\n var _a;\r\n var isValidationMessageShownOnFocus = \"auto\" === this.option(\"validationMessageMode\");\r\n if (this._canValueBeChangedByClick() && isValidationMessageShownOnFocus) {\r\n var $validationMessageWrapper = null === (_a = this._validationMessage) || void 0 === _a ? void 0 : _a.$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: () => false,\r\n _getStylingModePrefix: () => \"dx-editor-\",\r\n _renderStylingMode() {\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 (!allowedStylingClasses.includes(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() {\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() {\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(isInvalid) {\r\n this.$element().toggleClass(INVALID_CLASS, isInvalid);\r\n this.setAria(VALIDATION_STATUS_INVALID, isInvalid || void 0)\r\n },\r\n _renderValidationState() {\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 = $(\"<div>\").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() {\r\n return this.option(\"validationMessagePosition\")\r\n },\r\n _getValidationMessageTarget() {\r\n return this.$element()\r\n },\r\n _toggleReadOnlyState() {\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(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() {\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(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: () => null,\r\n _setValidationMessageOption(_ref) {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n var _a;\r\n var optionKey = VALIDATION_MESSAGE_KEYS_MAP[name] ? VALIDATION_MESSAGE_KEYS_MAP[name] : name;\r\n null === (_a = this._validationMessage) || void 0 === _a ? void 0 : _a.option(optionKey, value)\r\n },\r\n _hasActiveElement: noop,\r\n _optionChanged(args) {\r\n var _a;\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.option(\"isDirty\", this._initialValue !== args.value);\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 === (_a = this._validationMessage) || void 0 === _a ? void 0 : _a.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 case \"isDirty\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _resetToInitialValue() {\r\n this.option(\"value\", this._initialValue)\r\n },\r\n blur() {\r\n if (this._hasActiveElement()) {\r\n resetActiveElement()\r\n }\r\n },\r\n clear() {\r\n var defaultOptions = this._getDefaultOptions();\r\n this.option(\"value\", defaultOptions.value)\r\n },\r\n reset() {\r\n var value = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : void 0;\r\n if (arguments.length) {\r\n this._initialValue = value\r\n }\r\n this._resetToInitialValue();\r\n this.option(\"isDirty\", false);\r\n this.option(\"isValid\", true)\r\n }\r\n});\r\nEditor.isEditor = instance => instance instanceof Editor;\r\nexport default Editor;\r\n","/**\r\n * DevExtreme (esm/ui/editor/editor.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Editor from \"../../__internal/ui/editor/m_editor\";\r\nexport default Editor;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/editor.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Editor from \"../../ui/editor/editor\";\r\nimport Widget from \"./widget\";\r\nvar TypedEditor = Editor;\r\nexport default TypedEditor;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/radio_group/m_radio_collection.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n deferRender\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport DataExpressionMixin from \"../../../ui/editor/ui.data_expression\";\r\nimport CollectionWidget from \"../../ui/collection/edit\";\r\nvar RADIO_BUTTON_CHECKED_CLASS = \"dx-radiobutton-checked\";\r\nvar RADIO_BUTTON_ICON_CHECKED_CLASS = \"dx-radiobutton-icon-checked\";\r\nvar RADIO_BUTTON_ICON_CLASS = \"dx-radiobutton-icon\";\r\nvar RADIO_BUTTON_ICON_DOT_CLASS = \"dx-radiobutton-icon-dot\";\r\nvar RADIO_VALUE_CONTAINER_CLASS = \"dx-radio-value-container\";\r\nvar RADIO_BUTTON_CLASS = \"dx-radiobutton\";\r\nclass RadioCollection extends CollectionWidget {\r\n _focusTarget() {\r\n return $(this.element()).parent()\r\n }\r\n _nullValueSelectionSupported() {\r\n return true\r\n }\r\n _getDefaultOptions() {\r\n var defaultOptions = super._getDefaultOptions();\r\n return extend(defaultOptions, DataExpressionMixin._dataExpressionDefaultOptions(), {\r\n _itemAttributes: {\r\n role: \"radio\"\r\n }\r\n })\r\n }\r\n _initMarkup() {\r\n super._initMarkup();\r\n deferRender(() => {\r\n this._itemElements().addClass(RADIO_BUTTON_CLASS)\r\n })\r\n }\r\n _keyboardEventBindingTarget() {\r\n return this._focusTarget()\r\n }\r\n _postprocessRenderItem(args) {\r\n var {\r\n itemData: {\r\n html: html\r\n },\r\n itemElement: itemElement\r\n } = args;\r\n if (!html) {\r\n var $radio = $(\"<div>\").addClass(RADIO_BUTTON_ICON_CLASS);\r\n $(\"<div>\").addClass(RADIO_BUTTON_ICON_DOT_CLASS).appendTo($radio);\r\n var $radioContainer = $(\"<div>\").append($radio).addClass(RADIO_VALUE_CONTAINER_CLASS);\r\n $(itemElement).prepend($radioContainer)\r\n }\r\n super._postprocessRenderItem(args)\r\n }\r\n _processSelectableItem($itemElement, isSelected) {\r\n super._processSelectableItem($itemElement, isSelected);\r\n $itemElement.toggleClass(RADIO_BUTTON_CHECKED_CLASS, isSelected).find(\".\".concat(RADIO_BUTTON_ICON_CLASS)).first().toggleClass(RADIO_BUTTON_ICON_CHECKED_CLASS, isSelected);\r\n this.setAria(\"checked\", isSelected, $itemElement)\r\n }\r\n _refreshContent() {\r\n this._prepareContent();\r\n this._renderContent()\r\n }\r\n _supportedKeys() {\r\n var parent = super._supportedKeys();\r\n return extend({}, parent, {\r\n enter(e) {\r\n e.preventDefault();\r\n return parent.enter.apply(this, arguments)\r\n },\r\n space(e) {\r\n e.preventDefault();\r\n return parent.space.apply(this, arguments)\r\n }\r\n })\r\n }\r\n _itemElements() {\r\n return this._itemContainer().children(this._itemSelector())\r\n }\r\n _setAriaSelectionAttribute() {}\r\n}\r\nexport default RadioCollection;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/radio_group/m_radio_group.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport devices from \"../../../core/devices\";\r\nimport $ from \"../../../core/renderer\";\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 DataExpressionMixin from \"../../../ui/editor/ui.data_expression\";\r\nimport Editor from \"../editor\";\r\nimport RadioCollection from \"./m_radio_collection\";\r\nvar RADIO_BUTTON_CLASS = \"dx-radiobutton\";\r\nvar RADIO_GROUP_HORIZONTAL_CLASS = \"dx-radiogroup-horizontal\";\r\nvar RADIO_GROUP_VERTICAL_CLASS = \"dx-radiogroup-vertical\";\r\nvar RADIO_GROUP_CLASS = \"dx-radiogroup\";\r\nvar RADIO_FEEDBACK_HIDE_TIMEOUT = 100;\r\nclass RadioGroup extends Editor {\r\n _dataSourceOptions() {\r\n return {\r\n paginate: false\r\n }\r\n }\r\n _defaultOptionsRules() {\r\n var defaultOptionsRules = super._defaultOptionsRules();\r\n return defaultOptionsRules.concat([{\r\n device: {\r\n tablet: true\r\n },\r\n options: {\r\n layout: \"horizontal\"\r\n }\r\n }, {\r\n device: () => \"desktop\" === devices.real().deviceType && !devices.isSimulator(),\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n }\r\n _fireContentReadyAction(force) {\r\n force && super._fireContentReadyAction()\r\n }\r\n _focusTarget() {\r\n return this.$element()\r\n }\r\n _getAriaTarget() {\r\n return this.$element()\r\n }\r\n _getDefaultOptions() {\r\n var defaultOptions = super._getDefaultOptions();\r\n return extend(defaultOptions, extend(DataExpressionMixin._dataExpressionDefaultOptions(), {\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true,\r\n layout: \"vertical\"\r\n }))\r\n }\r\n _getItemValue(item) {\r\n return this._valueGetter ? this._valueGetter(item) : item.text\r\n }\r\n _getSubmitElement() {\r\n return this._$submitElement\r\n }\r\n _init() {\r\n super._init();\r\n this._activeStateUnit = \".\".concat(RADIO_BUTTON_CLASS);\r\n this._feedbackHideTimeout = RADIO_FEEDBACK_HIDE_TIMEOUT;\r\n this._initDataExpressions()\r\n }\r\n _initMarkup() {\r\n $(this.element()).addClass(RADIO_GROUP_CLASS);\r\n this._renderSubmitElement();\r\n this.setAria(\"role\", \"radiogroup\");\r\n this._renderRadios();\r\n this._renderLayout();\r\n super._initMarkup()\r\n }\r\n _itemClickHandler(_ref) {\r\n var {\r\n itemElement: itemElement,\r\n event: event,\r\n itemData: itemData\r\n } = _ref;\r\n if (this.itemElements().is(itemElement)) {\r\n var newValue = this._getItemValue(itemData);\r\n if (newValue !== this.option(\"value\")) {\r\n this._saveValueChangeEvent(event);\r\n this.option(\"value\", newValue)\r\n }\r\n }\r\n }\r\n _getSelectedItemKeys() {\r\n var value = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.option(\"value\");\r\n var isNullSelectable = \"this\" !== this.option(\"valueExpr\");\r\n var shouldSelectValue = isNullSelectable && null === value || isDefined(value);\r\n return shouldSelectValue ? [value] : []\r\n }\r\n _setSelection(currentValue) {\r\n var value = this._unwrappedValue(currentValue);\r\n this._setCollectionWidgetOption(\"selectedItemKeys\", this._getSelectedItemKeys(value))\r\n }\r\n _renderValidationState() {\r\n var _a;\r\n super._renderValidationState();\r\n null === (_a = this._validationMessage) || void 0 === _a ? void 0 : _a.$content().attr(\"role\", \"alert\")\r\n }\r\n _optionChanged(args) {\r\n var {\r\n name: name,\r\n value: value\r\n } = args;\r\n this._dataExpressionOptionChanged(args);\r\n switch (name) {\r\n case \"dataSource\":\r\n this._invalidate();\r\n break;\r\n case \"focusStateEnabled\":\r\n case \"accessKey\":\r\n case \"tabIndex\":\r\n this._setCollectionWidgetOption(name, value);\r\n break;\r\n case \"disabled\":\r\n super._optionChanged(args);\r\n this._setCollectionWidgetOption(name, value);\r\n break;\r\n case \"valueExpr\":\r\n this._setCollectionWidgetOption(\"keyExpr\", this._getCollectionKeyExpr());\r\n break;\r\n case \"value\":\r\n this._setSelection(value);\r\n this._setSubmitValue(value);\r\n super._optionChanged(args);\r\n break;\r\n case \"items\":\r\n this._setSelection(this.option(\"value\"));\r\n break;\r\n case \"itemTemplate\":\r\n case \"displayExpr\":\r\n break;\r\n case \"layout\":\r\n this._renderLayout();\r\n this._updateItemsSize();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _render() {\r\n super._render();\r\n this._updateItemsSize()\r\n }\r\n _renderLayout() {\r\n var layout = this.option(\"layout\");\r\n var $element = $(this.element());\r\n $element.toggleClass(RADIO_GROUP_VERTICAL_CLASS, \"vertical\" === layout);\r\n $element.toggleClass(RADIO_GROUP_HORIZONTAL_CLASS, \"horizontal\" === layout)\r\n }\r\n _renderRadios() {\r\n this._areRadiosCreated = Deferred();\r\n var $radios = $(\"<div>\").appendTo(this.$element());\r\n var {\r\n displayExpr: displayExpr,\r\n accessKey: accessKey,\r\n focusStateEnabled: focusStateEnabled,\r\n itemTemplate: itemTemplate,\r\n tabIndex: tabIndex\r\n } = this.option();\r\n this._createComponent($radios, RadioCollection, {\r\n onInitialized: _ref2 => {\r\n var {\r\n component: component\r\n } = _ref2;\r\n this._radios = component\r\n },\r\n onContentReady: e => {\r\n this._fireContentReadyAction(true)\r\n },\r\n onItemClick: this._itemClickHandler.bind(this),\r\n displayExpr: displayExpr,\r\n accessKey: accessKey,\r\n dataSource: this._dataSource,\r\n focusStateEnabled: focusStateEnabled,\r\n itemTemplate: itemTemplate,\r\n keyExpr: this._getCollectionKeyExpr(),\r\n noDataText: \"\",\r\n scrollingEnabled: false,\r\n selectByClick: false,\r\n selectionMode: \"single\",\r\n selectedItemKeys: this._getSelectedItemKeys(),\r\n tabIndex: tabIndex\r\n });\r\n this._areRadiosCreated.resolve()\r\n }\r\n _renderSubmitElement() {\r\n this._$submitElement = $(\"<input>\").attr(\"type\", \"hidden\").appendTo(this.$element());\r\n this._setSubmitValue()\r\n }\r\n _setOptionsByReference() {\r\n super._setOptionsByReference();\r\n extend(this._optionsByReference, {\r\n value: true\r\n })\r\n }\r\n _setSubmitValue(value) {\r\n value = null !== value && void 0 !== value ? value : this.option(\"value\");\r\n var submitValue = \"this\" === this.option(\"valueExpr\") ? this._displayGetter(value) : value;\r\n this._$submitElement.val(submitValue)\r\n }\r\n _setCollectionWidgetOption(name, value) {\r\n this._areRadiosCreated.done(this._setWidgetOption.bind(this, \"_radios\", arguments))\r\n }\r\n _updateItemsSize() {\r\n var _a, _b;\r\n if (\"horizontal\" === this.option(\"layout\")) {\r\n null === (_a = this.itemElements()) || void 0 === _a ? void 0 : _a.css(\"height\", \"auto\")\r\n } else {\r\n var itemsCount = this.option(\"items\").length;\r\n null === (_b = this.itemElements()) || void 0 === _b ? void 0 : _b.css(\"height\", \"\".concat(100 / itemsCount, \"%\"))\r\n }\r\n }\r\n focus() {\r\n var _a;\r\n null === (_a = this._radios) || void 0 === _a ? void 0 : _a.focus()\r\n }\r\n itemElements() {\r\n var _a;\r\n return null === (_a = this._radios) || void 0 === _a ? void 0 : _a._itemElements()\r\n }\r\n}\r\nRadioGroup.include(DataExpressionMixin);\r\nregisterComponent(\"dxRadioGroup\", RadioGroup);\r\nexport default RadioGroup;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/m_button_group.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../core/templates/bindable_template\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isDefined,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport Button from \"../../ui/button\";\r\nimport CollectionWidget from \"../../ui/collection/ui.collection_widget.edit\";\r\nimport Widget from \"../../ui/widget/ui.widget\";\r\nvar BUTTON_GROUP_CLASS = \"dx-buttongroup\";\r\nvar BUTTON_GROUP_WRAPPER_CLASS = \"\".concat(BUTTON_GROUP_CLASS, \"-wrapper\");\r\nvar BUTTON_GROUP_ITEM_CLASS = \"\".concat(BUTTON_GROUP_CLASS, \"-item\");\r\nvar BUTTON_GROUP_FIRST_ITEM_CLASS = \"\".concat(BUTTON_GROUP_CLASS, \"-first-item\");\r\nvar BUTTON_GROUP_LAST_ITEM_CLASS = \"\".concat(BUTTON_GROUP_CLASS, \"-last-item\");\r\nvar BUTTON_GROUP_ITEM_HAS_WIDTH = \"\".concat(BUTTON_GROUP_ITEM_CLASS, \"-has-width\");\r\nvar SHAPE_STANDARD_CLASS = \"dx-shape-standard\";\r\nvar BUTTON_GROUP_STYLING_MODE_CLASS = {\r\n contained: \"dx-buttongroup-mode-contained\",\r\n outlined: \"dx-buttongroup-mode-outlined\",\r\n text: \"dx-buttongroup-mode-text\"\r\n};\r\nvar ButtonCollection = CollectionWidget.inherit({\r\n _initTemplates() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n item: new BindableTemplate(($container, data, model) => {\r\n this._prepareItemStyles($container);\r\n var template = this.option(\"buttonTemplate\");\r\n this._createComponent($container, Button, extend({}, model, data, this._getBasicButtonOptions(), {\r\n _templateData: this._hasCustomTemplate(template) ? model : {},\r\n template: model.template || template\r\n }))\r\n }, [\"text\", \"type\", \"icon\", \"disabled\", \"visible\", \"hint\"], this.option(\"integrationOptions.watchMethod\"))\r\n })\r\n },\r\n _getBasicButtonOptions() {\r\n return {\r\n focusStateEnabled: false,\r\n onClick: null,\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n activeStateEnabled: this.option(\"activeStateEnabled\"),\r\n stylingMode: this.option(\"stylingMode\")\r\n }\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n itemTemplateProperty: null\r\n })\r\n },\r\n _hasCustomTemplate(template) {\r\n return isFunction(template) || this.option(\"integrationOptions.templates\")[template]\r\n },\r\n _selectedItemClass: () => \"dx-item-selected dx-state-selected\",\r\n _prepareItemStyles($item) {\r\n var itemIndex = $item.data(\"dxItemIndex\");\r\n 0 === itemIndex && $item.addClass(BUTTON_GROUP_FIRST_ITEM_CLASS);\r\n var items = this.option(\"items\");\r\n items && itemIndex === items.length - 1 && $item.addClass(BUTTON_GROUP_LAST_ITEM_CLASS);\r\n $item.addClass(SHAPE_STANDARD_CLASS)\r\n },\r\n _renderItemContent(args) {\r\n args.container = $(args.container).parent();\r\n return this.callBase(args)\r\n },\r\n _setAriaSelectionAttribute($target, value) {\r\n this.setAria(\"pressed\", value, $target)\r\n },\r\n _renderItemContentByNode(args, $node) {\r\n args.container = $(args.container.children().first());\r\n return this.callBase(args, $node)\r\n },\r\n _focusTarget() {\r\n return this.$element().parent()\r\n },\r\n _keyboardEventBindingTarget() {\r\n return this._focusTarget()\r\n },\r\n _refreshContent() {\r\n this._prepareContent();\r\n this._renderContent()\r\n },\r\n _itemClass: () => BUTTON_GROUP_ITEM_CLASS,\r\n _itemSelectHandler(e) {\r\n if (\"single\" === this.option(\"selectionMode\") && this.isItemSelected(e.currentTarget)) {\r\n return\r\n }\r\n this.callBase(e)\r\n }\r\n});\r\nvar ButtonGroup = Widget.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n focusStateEnabled: true,\r\n selectionMode: \"single\",\r\n selectedItems: [],\r\n selectedItemKeys: [],\r\n stylingMode: \"contained\",\r\n keyExpr: \"text\",\r\n items: [],\r\n buttonTemplate: \"content\",\r\n onSelectionChanged: null,\r\n onItemClick: null\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._createItemClickAction()\r\n },\r\n _createItemClickAction() {\r\n this._itemClickAction = this._createActionByOption(\"onItemClick\")\r\n },\r\n _initMarkup() {\r\n this.setAria(\"role\", \"group\");\r\n this.$element().addClass(BUTTON_GROUP_CLASS);\r\n this._renderStylingMode();\r\n this._renderButtons();\r\n this._syncSelectionOptions();\r\n this.callBase()\r\n },\r\n _renderStylingMode() {\r\n var _a;\r\n var {\r\n stylingMode: stylingMode\r\n } = this.option();\r\n for (var key in BUTTON_GROUP_STYLING_MODE_CLASS) {\r\n this.$element().removeClass(BUTTON_GROUP_STYLING_MODE_CLASS[key])\r\n }\r\n this.$element().addClass(null !== (_a = BUTTON_GROUP_STYLING_MODE_CLASS[stylingMode]) && void 0 !== _a ? _a : BUTTON_GROUP_STYLING_MODE_CLASS.contained)\r\n },\r\n _fireSelectionChangeEvent(addedItems, removedItems) {\r\n this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })({\r\n addedItems: addedItems,\r\n removedItems: removedItems\r\n })\r\n },\r\n _renderButtons() {\r\n var $buttons = $(\"<div>\").addClass(BUTTON_GROUP_WRAPPER_CLASS).appendTo(this.$element());\r\n var selectedItems = this.option(\"selectedItems\");\r\n var options = {\r\n selectionMode: this.option(\"selectionMode\"),\r\n items: this.option(\"items\"),\r\n keyExpr: this.option(\"keyExpr\"),\r\n buttonTemplate: this.option(\"buttonTemplate\"),\r\n scrollingEnabled: false,\r\n selectedItemKeys: this.option(\"selectedItemKeys\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n activeStateEnabled: this.option(\"activeStateEnabled\"),\r\n stylingMode: this.option(\"stylingMode\"),\r\n accessKey: this.option(\"accessKey\"),\r\n tabIndex: this.option(\"tabIndex\"),\r\n noDataText: \"\",\r\n selectionRequired: false,\r\n onItemRendered: e => {\r\n var width = this.option(\"width\");\r\n isDefined(width) && $(e.itemElement).addClass(BUTTON_GROUP_ITEM_HAS_WIDTH)\r\n },\r\n onSelectionChanged: e => {\r\n this._syncSelectionOptions();\r\n this._fireSelectionChangeEvent(e.addedItems, e.removedItems)\r\n },\r\n onItemClick: e => {\r\n this._itemClickAction(e)\r\n }\r\n };\r\n if (isDefined(selectedItems) && selectedItems.length) {\r\n options.selectedItems = selectedItems\r\n }\r\n this._buttonsCollection = this._createComponent($buttons, ButtonCollection, options)\r\n },\r\n _syncSelectionOptions() {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", this._buttonsCollection.option(\"selectedItems\"));\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", this._buttonsCollection.option(\"selectedItemKeys\"))\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"stylingMode\":\r\n case \"selectionMode\":\r\n case \"keyExpr\":\r\n case \"buttonTemplate\":\r\n case \"items\":\r\n case \"activeStateEnabled\":\r\n case \"focusStateEnabled\":\r\n case \"hoverStateEnabled\":\r\n case \"tabIndex\":\r\n this._invalidate();\r\n break;\r\n case \"selectedItemKeys\":\r\n case \"selectedItems\":\r\n this._buttonsCollection.option(args.name, args.value);\r\n break;\r\n case \"onItemClick\":\r\n this._createItemClickAction();\r\n break;\r\n case \"onSelectionChanged\":\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._buttonsCollection.itemElements().toggleClass(BUTTON_GROUP_ITEM_HAS_WIDTH, !!args.value);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxButtonGroup\", ButtonGroup);\r\nexport default ButtonGroup;\r\n","/**\r\n * DevExtreme (esm/ui/button_group.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ButtonGroup from \"../__internal/ui/m_button_group\";\r\nexport default ButtonGroup;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/m_load_indicator.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport devices from \"../../core/devices\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport {\r\n animation\r\n} from \"../../core/utils/support\";\r\nimport {\r\n getNavigator\r\n} from \"../../core/utils/window\";\r\nimport {\r\n current,\r\n isGeneric,\r\n isMaterialBased\r\n} from \"../../ui/themes\";\r\nimport Widget from \"../../ui/widget/ui.widget\";\r\nvar navigator = getNavigator();\r\nvar LOADINDICATOR_CLASS = \"dx-loadindicator\";\r\nvar LOADINDICATOR_WRAPPER_CLASS = \"dx-loadindicator-wrapper\";\r\nvar LOADINDICATOR_CONTENT_CLASS = \"dx-loadindicator-content\";\r\nvar LOADINDICATOR_ICON_CLASS = \"dx-loadindicator-icon\";\r\nvar LOADINDICATOR_SEGMENT_CLASS = \"dx-loadindicator-segment\";\r\nvar LOADINDICATOR_SEGMENT_INNER_CLASS = \"dx-loadindicator-segment-inner\";\r\nvar LOADINDICATOR_IMAGE_CLASS = \"dx-loadindicator-image\";\r\nvar LoadIndicator = Widget.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n indicatorSrc: \"\",\r\n activeStateEnabled: false,\r\n hoverStateEnabled: false,\r\n _animatingSegmentCount: 1,\r\n _animatingSegmentInner: false\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n var themeName = current();\r\n return this.callBase().concat([{\r\n device() {\r\n var realDevice = devices.real();\r\n var obsoleteAndroid = \"android\" === realDevice.platform && !/chrome/i.test(navigator.userAgent);\r\n return obsoleteAndroid\r\n },\r\n options: {\r\n viaImage: true\r\n }\r\n }, {\r\n device: () => isMaterialBased(themeName),\r\n options: {\r\n _animatingSegmentCount: 2,\r\n _animatingSegmentInner: true\r\n }\r\n }, {\r\n device: () => isGeneric(themeName),\r\n options: {\r\n _animatingSegmentCount: 7\r\n }\r\n }])\r\n },\r\n _useTemplates: () => false,\r\n _init() {\r\n this.callBase();\r\n this.$element().addClass(LOADINDICATOR_CLASS)\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this._renderWrapper();\r\n this._renderIndicatorContent();\r\n this._renderMarkup()\r\n },\r\n _renderWrapper() {\r\n this._$wrapper = $(\"<div>\").addClass(LOADINDICATOR_WRAPPER_CLASS);\r\n this.$element().append(this._$wrapper)\r\n },\r\n _renderIndicatorContent() {\r\n this._$content = $(\"<div>\").addClass(LOADINDICATOR_CONTENT_CLASS);\r\n this._$wrapper.append(this._$content)\r\n },\r\n _renderMarkup() {\r\n var {\r\n viaImage: viaImage,\r\n indicatorSrc: indicatorSrc\r\n } = this.option();\r\n if (animation() && !viaImage && !indicatorSrc) {\r\n this._renderMarkupForAnimation()\r\n } else {\r\n this._renderMarkupForImage()\r\n }\r\n },\r\n _renderMarkupForAnimation() {\r\n var animatingSegmentInner = this.option(\"_animatingSegmentInner\");\r\n this._$indicator = $(\"<div>\").addClass(LOADINDICATOR_ICON_CLASS);\r\n this._$content.append(this._$indicator);\r\n for (var i = this.option(\"_animatingSegmentCount\"); i >= 0; --i) {\r\n var $segment = $(\"<div>\").addClass(LOADINDICATOR_SEGMENT_CLASS).addClass(LOADINDICATOR_SEGMENT_CLASS + i);\r\n if (animatingSegmentInner) {\r\n $segment.append($(\"<div>\").addClass(LOADINDICATOR_SEGMENT_INNER_CLASS))\r\n }\r\n this._$indicator.append($segment)\r\n }\r\n },\r\n _renderMarkupForImage() {\r\n var {\r\n indicatorSrc: indicatorSrc\r\n } = this.option();\r\n if (indicatorSrc) {\r\n this._$wrapper.addClass(LOADINDICATOR_IMAGE_CLASS);\r\n this._$wrapper.css(\"backgroundImage\", \"url(\".concat(indicatorSrc, \")\"))\r\n } else if (animation()) {\r\n this._renderMarkupForAnimation()\r\n }\r\n },\r\n _renderDimensions() {\r\n this.callBase();\r\n this._updateContentSizeForAnimation()\r\n },\r\n _updateContentSizeForAnimation() {\r\n if (!this._$indicator) {\r\n return\r\n }\r\n var width = this.option(\"width\");\r\n var height = this.option(\"height\");\r\n if (width || height) {\r\n width = getWidth(this.$element());\r\n height = getHeight(this.$element());\r\n var minDimension = Math.min(height, width);\r\n this._$wrapper.css({\r\n height: minDimension,\r\n width: minDimension,\r\n fontSize: minDimension\r\n })\r\n }\r\n },\r\n _clean() {\r\n this.callBase();\r\n this._removeMarkupForAnimation();\r\n this._removeMarkupForImage()\r\n },\r\n _removeMarkupForAnimation() {\r\n if (!this._$indicator) {\r\n return\r\n }\r\n this._$indicator.remove();\r\n delete this._$indicator\r\n },\r\n _removeMarkupForImage() {\r\n this._$wrapper.css(\"backgroundImage\", \"none\")\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"_animatingSegmentCount\":\r\n case \"_animatingSegmentInner\":\r\n case \"indicatorSrc\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxLoadIndicator\", LoadIndicator);\r\nexport default LoadIndicator;\r\n","/**\r\n * DevExtreme (esm/ui/load_indicator.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport LoadIndicator from \"../__internal/ui/m_load_indicator\";\r\nexport default LoadIndicator;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/text_box/texteditor_button_collection/m_button.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\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 = $(\"<div>\").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(instance, $element) {\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/__internal/ui/text_box/m_text_editor.clear.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n name as click\r\n} from \"../../../events/click\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport pointer from \"../../../events/pointer\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nimport TextEditorButton from \"../../ui/text_box/texteditor_button_collection/m_button\";\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 = $(\"<span>\").addClass(TEXTEDITOR_CLEAR_BUTTON_CLASS).append($(\"<span>\").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/__internal/ui/text_box/m_text_editor.label.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Guid from \"../../../core/guid\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n getWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n getWindow\r\n} from \"../../../core/utils/window\";\r\nimport {\r\n name as click\r\n} from \"../../../events/click\";\r\nimport {\r\n active\r\n} from \"../../../events/core/emitter.feedback\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n start as hoverStart\r\n} from \"../../../events/hover\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nvar TEXTEDITOR_LABEL_CLASS = \"dx-texteditor-label\";\r\nvar TEXTEDITOR_WITH_LABEL_CLASS = \"dx-texteditor-with-label\";\r\nvar TEXTEDITOR_LABEL_OUTSIDE_CLASS = \"dx-texteditor-label-outside\";\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(props) {\r\n this.NAME = \"dxLabel\";\r\n this._props = props;\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 = $(\"<div>\").addClass(LABEL_BEFORE_CLASS);\r\n this._$labelSpan = $(\"<span>\");\r\n this._$label = $(\"<div>\").addClass(LABEL_CLASS).append(this._$labelSpan);\r\n this._$after = $(\"<div>\").addClass(LABEL_AFTER_CLASS);\r\n this._$root = $(\"<div>\").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 this._attachEvents()\r\n }\r\n _attachEvents() {\r\n var clickEventName = addNamespace(click, this.NAME);\r\n var hoverStartEventName = addNamespace(hoverStart, this.NAME);\r\n var activeEventName = addNamespace(active, this.NAME);\r\n eventsEngine.off(this._$labelSpan, clickEventName);\r\n eventsEngine.off(this._$labelSpan, hoverStartEventName);\r\n eventsEngine.off(this._$labelSpan, activeEventName);\r\n if (this._isVisible() && this._isOutsideMode()) {\r\n eventsEngine.on(this._$labelSpan, clickEventName, e => {\r\n var selectedText = getWindow().getSelection().toString();\r\n if (\"\" === selectedText) {\r\n this._props.onClickHandler();\r\n e.preventDefault()\r\n }\r\n });\r\n eventsEngine.on(this._$labelSpan, hoverStartEventName, e => {\r\n this._props.onHoverHandler(e)\r\n });\r\n eventsEngine.on(this._$labelSpan, activeEventName, e => {\r\n this._props.onActiveHandler(e)\r\n })\r\n }\r\n }\r\n _updateEditorLabelClass(visible) {\r\n this._props.$editor.removeClass(TEXTEDITOR_WITH_FLOATING_LABEL_CLASS).removeClass(TEXTEDITOR_LABEL_OUTSIDE_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 if (this._isOutsideMode()) {\r\n this._props.$editor.addClass(TEXTEDITOR_LABEL_OUTSIDE_CLASS)\r\n }\r\n }\r\n }\r\n _isOutsideMode() {\r\n return \"outside\" === this._props.mode\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 var _a;\r\n if (this._isVisible()) {\r\n var width = null !== (_a = this._props.beforeWidth) && void 0 !== _a ? _a : this._props.getBeforeWidth();\r\n this._$before.css({\r\n width: width\r\n });\r\n this._updateLabelTransform()\r\n }\r\n }\r\n _updateLabelTransform() {\r\n var offset = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0;\r\n this._$labelSpan.css(\"transform\", \"\");\r\n if (this._isVisible() && this._isOutsideMode()) {\r\n var sign = this._props.rtlEnabled ? 1 : -1;\r\n var labelTranslateX = sign * (getWidth(this._$before) + offset);\r\n this._$labelSpan.css(\"transform\", \"translateX(\".concat(labelTranslateX, \"px)\"))\r\n }\r\n }\r\n _updateMaxWidth() {\r\n var _a;\r\n if (this._isVisible() && !this._isOutsideMode()) {\r\n var maxWidth = null !== (_a = this._props.containerWidth) && void 0 !== _a ? _a : this._props.getContainerWidth();\r\n this._$label.css({\r\n maxWidth: maxWidth\r\n })\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 this._updateBeforeWidth();\r\n this._updateMaxWidth()\r\n }\r\n updateText(text) {\r\n this._props.text = text;\r\n this._updateText();\r\n this._toggleMarkupVisibility();\r\n this._updateBeforeWidth();\r\n this._updateMaxWidth()\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/__internal/ui/text_box/texteditor_button_collection/m_custom.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport {\r\n end,\r\n start\r\n} from \"../../../../events/hover\";\r\nimport Button from \"../../../../ui/button\";\r\nimport TextEditorButton from \"./m_button\";\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 = $(\"<div>\");\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 }\r\n return this.editor.option(\"readOnly\")\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/text_box/texteditor_button_collection/m_index.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport CustomButton from \"./m_custom\";\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 }\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 _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 = null !== $buttonsContainer && void 0 !== $buttonsContainer ? $buttonsContainer : $(\"<div>\").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/__internal/ui/text_box/m_text_editor.base.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport config from \"../../../core/config\";\r\nimport devices from \"../../../core/devices\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport Guid from \"../../../core/guid\";\r\nimport $ from \"../../../core/renderer\";\r\nimport resizeObserverSingleton from \"../../../core/resize_observer\";\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 getWidth\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 pointerEvents from \"../../../events/pointer\";\r\nimport {\r\n addNamespace,\r\n normalizeKeyName\r\n} from \"../../../events/utils/index\";\r\nimport Editor from \"../../../ui/editor/editor\";\r\nimport LoadIndicator from \"../../../ui/load_indicator\";\r\nimport {\r\n current,\r\n isFluent,\r\n isMaterial\r\n} from \"../../../ui/themes\";\r\nimport {\r\n focused\r\n} from \"../../../ui/widget/selectors\";\r\nimport errors from \"../../../ui/widget/ui.errors\";\r\nimport ClearButton from \"./m_text_editor.clear\";\r\nimport {\r\n TextEditorLabel\r\n} from \"./m_text_editor.label\";\r\nimport TextEditorButtonCollection from \"./texteditor_button_collection/m_index\";\r\nexport var TEXTEDITOR_CLASS = \"dx-texteditor\";\r\nvar TEXTEDITOR_INPUT_CONTAINER_CLASS = \"dx-texteditor-input-container\";\r\nexport var TEXTEDITOR_INPUT_CLASS = \"dx-texteditor-input\";\r\nvar TEXTEDITOR_INPUT_SELECTOR = \".\".concat(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(_, 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() {\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: value => isDefined(value) && false !== value ? value : \"\",\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() {\r\n return this.callBase().concat([{\r\n device() {\r\n var themeName = current();\r\n return isMaterial(themeName)\r\n },\r\n options: {\r\n labelMode: \"floating\",\r\n stylingMode: config().editorStylingMode || \"filled\"\r\n }\r\n }, {\r\n device() {\r\n var themeName = current();\r\n return isFluent(themeName)\r\n },\r\n options: {\r\n labelMode: \"outside\"\r\n }\r\n }])\r\n },\r\n _getDefaultButtons: () => [{\r\n name: \"clear\",\r\n Ctor: ClearButton\r\n }],\r\n _isClearButtonVisible() {\r\n return this.option(\"showClearButton\") && !this.option(\"readOnly\")\r\n },\r\n _input() {\r\n return this.$element().find(TEXTEDITOR_INPUT_SELECTOR).first()\r\n },\r\n _isFocused() {\r\n return focused(this._input()) || this.callBase()\r\n },\r\n _inputWrapper() {\r\n return this.$element()\r\n },\r\n _buttonsContainer() {\r\n return this._inputWrapper().find(\".\".concat(TEXTEDITOR_BUTTONS_CONTAINER_CLASS)).eq(0)\r\n },\r\n _isControlKey: key => CONTROL_KEYS.includes(key),\r\n _renderStylingMode() {\r\n this.callBase();\r\n this._updateButtonsStyling(this.option(\"stylingMode\"))\r\n },\r\n _initMarkup() {\r\n this.$element().addClass(TEXTEDITOR_CLASS);\r\n this._renderInput();\r\n this._renderButtonContainers();\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() {\r\n this.callBase();\r\n this._refreshValueChangeEvent();\r\n this._refreshEvents();\r\n this._renderEnterKeyAction();\r\n this._renderEmptinessEvent()\r\n },\r\n _renderInput() {\r\n this._$textEditorContainer = $(\"<div>\").addClass(TEXTEDITOR_CONTAINER_CLASS).appendTo(this.$element());\r\n this._$textEditorInputContainer = $(\"<div>\").addClass(TEXTEDITOR_INPUT_CONTAINER_CLASS).appendTo(this._$textEditorContainer);\r\n this._$textEditorInputContainer.append(this._createInput())\r\n },\r\n _getInputContainer() {\r\n return this._$textEditorInputContainer\r\n },\r\n _renderPendingIndicator() {\r\n this.$element().addClass(TEXTEDITOR_VALIDATION_PENDING_CLASS);\r\n var $inputContainer = this._getInputContainer();\r\n var $indicatorElement = $(\"<div>\").addClass(TEXTEDITOR_PENDING_INDICATOR_CLASS).appendTo($inputContainer);\r\n this._pendingIndicator = this._createComponent($indicatorElement, LoadIndicator)\r\n },\r\n _disposePendingIndicator() {\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() {\r\n this.callBase();\r\n var isPending = \"pending\" === this.option(\"validationStatus\");\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 this._toggleValidMark()\r\n },\r\n _getButtonsContainer() {\r\n return this._$textEditorContainer\r\n },\r\n _renderButtonContainers() {\r\n var buttons = this.option(\"buttons\");\r\n var $buttonsContainer = this._getButtonsContainer();\r\n this._$beforeButtonsContainer = this._buttonCollection.renderBeforeButtons(buttons, $buttonsContainer);\r\n this._$afterButtonsContainer = this._buttonCollection.renderAfterButtons(buttons, $buttonsContainer)\r\n },\r\n _cleanButtonContainers() {\r\n var _a, _b;\r\n null === (_a = this._$beforeButtonsContainer) || void 0 === _a ? void 0 : _a.remove();\r\n null === (_b = this._$afterButtonsContainer) || void 0 === _b ? void 0 : _b.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.callBase()\r\n },\r\n _createInput() {\r\n var $input = $(\"<input>\");\r\n this._applyInputAttributes($input, this.option(\"inputAttr\"));\r\n return $input\r\n },\r\n _setSubmitElementName(name) {\r\n var inputAttrName = this.option(\"inputAttr.name\");\r\n return this.callBase(name || inputAttrName || \"\")\r\n },\r\n _applyInputAttributes($input, customAttributes) {\r\n var inputAttributes = extend(this._getDefaultAttributes(), customAttributes);\r\n $input.attr(inputAttributes).addClass(TEXTEDITOR_INPUT_CLASS);\r\n this._setInputMinHeight($input)\r\n },\r\n _setInputMinHeight($input) {\r\n $input.css(\"minHeight\", this.option(\"height\") ? \"0\" : \"\")\r\n },\r\n _getPlaceholderAttr() {\r\n var {\r\n ios: ios,\r\n mac: mac\r\n } = devices.real();\r\n var {\r\n placeholder: placeholder\r\n } = this.option();\r\n var value = placeholder || (ios || mac ? \" \" : null);\r\n return value\r\n },\r\n _getDefaultAttributes() {\r\n var defaultAttributes = {\r\n autocomplete: \"off\",\r\n placeholder: this._getPlaceholderAttr()\r\n };\r\n return defaultAttributes\r\n },\r\n _updateButtons(names) {\r\n this._buttonCollection.updateButtons(names)\r\n },\r\n _updateButtonsStyling(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() {\r\n var renderInputPromise = this._renderInputValue();\r\n return renderInputPromise.promise()\r\n },\r\n _renderInputValue(value) {\r\n value = null !== 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 Deferred().resolve()\r\n },\r\n _renderDisplayText(text) {\r\n this._input().val(text);\r\n this._toggleEmptinessEventHandler()\r\n },\r\n _isValueValid() {\r\n if (this._input().length) {\r\n var {\r\n validity: validity\r\n } = this._input().get(0);\r\n if (validity) {\r\n return validity.valid\r\n }\r\n }\r\n return true\r\n },\r\n _toggleEmptiness(isEmpty) {\r\n this.$element().toggleClass(TEXTEDITOR_EMPTY_INPUT_CLASS, isEmpty);\r\n this._togglePlaceholder(isEmpty)\r\n },\r\n _togglePlaceholder(isEmpty) {\r\n this.$element().find(\".\".concat(TEXTEDITOR_PLACEHOLDER_CLASS)).eq(0).toggleClass(STATE_INVISIBLE_CLASS, !isEmpty)\r\n },\r\n _renderProps() {\r\n this._toggleReadOnlyState();\r\n this._toggleSpellcheckState();\r\n this._toggleTabIndex()\r\n },\r\n _toggleDisabledState(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() {\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() {\r\n this._input().prop(\"readOnly\", this._readOnlyPropValue());\r\n this.callBase()\r\n },\r\n _readOnlyPropValue() {\r\n return this.option(\"readOnly\")\r\n },\r\n _toggleSpellcheckState() {\r\n this._input().prop(\"spellcheck\", this.option(\"spellcheck\"))\r\n },\r\n _unobserveLabelContainerResize() {\r\n if (this._labelContainerElement) {\r\n resizeObserverSingleton.unobserve(this._labelContainerElement);\r\n this._labelContainerElement = null\r\n }\r\n },\r\n _getLabelContainer() {\r\n return this._input()\r\n },\r\n _getLabelContainerWidth() {\r\n return getWidth(this._getLabelContainer())\r\n },\r\n _getLabelBeforeWidth() {\r\n var buttonsBeforeWidth = this._$beforeButtonsContainer && getWidth(this._$beforeButtonsContainer);\r\n return null !== buttonsBeforeWidth && void 0 !== buttonsBeforeWidth ? buttonsBeforeWidth : 0\r\n },\r\n _updateLabelWidth() {\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 _a;\r\n var inputAttr = this.option(\"inputAttr\");\r\n var ariaLabel = null === inputAttr || void 0 === inputAttr ? void 0 : inputAttr[\"aria-label\"];\r\n var labelId = null === (_a = this._label) || void 0 === _a ? void 0 : _a.getId();\r\n var value = ariaLabel ? void 0 : labelId;\r\n if (value || force) {\r\n var aria = {\r\n labelledby: value,\r\n label: ariaLabel\r\n };\r\n this.setAria(aria, this._getFieldElement())\r\n }\r\n },\r\n _renderLabel() {\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 rtlEnabled: rtlEnabled\r\n } = this.option();\r\n var labelConfig = {\r\n onClickHandler: () => {\r\n this.focus()\r\n },\r\n onHoverHandler: e => {\r\n e.stopPropagation()\r\n },\r\n onActiveHandler: e => {\r\n e.stopPropagation()\r\n },\r\n $editor: this.$element(),\r\n text: label,\r\n mark: labelMark,\r\n mode: labelMode,\r\n rtlEnabled: rtlEnabled,\r\n containsButtonsBefore: !!this._$beforeButtonsContainer,\r\n getContainerWidth: () => this._getLabelContainerWidth(),\r\n getBeforeWidth: () => 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() {\r\n this._renderPlaceholderMarkup();\r\n this._attachPlaceholderEvents()\r\n },\r\n _renderPlaceholderMarkup() {\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 = $(\"<div>\").attr(placeholderAttributes);\r\n $placeholder.insertAfter($input);\r\n $placeholder.addClass(TEXTEDITOR_PLACEHOLDER_CLASS)\r\n },\r\n _attachPlaceholderEvents() {\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() {\r\n return this._$placeholder || $()\r\n },\r\n _clearValueHandler(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() {\r\n this.clear()\r\n },\r\n _renderEvents() {\r\n var $input = this._input();\r\n each(EVENTS_LIST, (_, event) => {\r\n if (this.hasActionSubscription(\"on\".concat(event))) {\r\n var action = this._createActionByOption(\"on\".concat(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() {\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() {\r\n this.option(\"text\", this._input().val())\r\n },\r\n _keyDownHandler(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: () => \"valueChangeEvent\",\r\n _renderValueChangeEvent() {\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() {\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() {\r\n this._cleanValueChangeEvent();\r\n this._renderValueChangeEvent()\r\n },\r\n _renderValueEventName: () => \"input change keypress\",\r\n _focusTarget() {\r\n return this._input()\r\n },\r\n _focusEventTarget() {\r\n return this.element()\r\n },\r\n _isInput(element) {\r\n return element === this._input().get(0)\r\n },\r\n _preventNestedFocusEvent(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(target) {\r\n return !!this.$element().find(target).length\r\n },\r\n _focusClassTarget() {\r\n return this.$element()\r\n },\r\n _focusInHandler(event) {\r\n this._preventNestedFocusEvent(event);\r\n this.callBase.apply(this, arguments)\r\n },\r\n _focusOutHandler(event) {\r\n this._preventNestedFocusEvent(event);\r\n this.callBase.apply(this, arguments)\r\n },\r\n _toggleFocusClass(isFocused, $element) {\r\n this.callBase(isFocused, this._focusClassTarget($element))\r\n },\r\n _hasFocusClass(element) {\r\n return this.callBase($(element || this.$element()))\r\n },\r\n _renderEmptinessEvent() {\r\n var $input = this._input();\r\n eventsEngine.on($input, \"input blur\", this._toggleEmptinessEventHandler.bind(this))\r\n },\r\n _toggleEmptinessEventHandler() {\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(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() {\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(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() {\r\n this._options.silent(\"text\", null);\r\n this._renderValue()\r\n },\r\n _dispose() {\r\n this._enterKeyAction = void 0;\r\n this.callBase()\r\n },\r\n _getSubmitElement() {\r\n return this._input()\r\n },\r\n _hasActiveElement() {\r\n return this._input().is(domAdapter.getActiveElement(this._input()[0]))\r\n },\r\n _optionChanged(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 this._input().attr({\r\n placeholder: this._getPlaceholderAttr()\r\n });\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() {\r\n this._setInputType(this.option(\"mode\"))\r\n },\r\n _setInputType(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() {\r\n eventsEngine.trigger(this._input(), \"focus\")\r\n },\r\n clear() {\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 _resetToInitialValue() {\r\n if (this.option(\"value\") === this._initialValue) {\r\n this._options.silent(\"text\", this._initialValue);\r\n this._renderValue()\r\n } else {\r\n this.callBase()\r\n }\r\n this._disposePendingIndicator();\r\n this._showValidMark = false;\r\n this._toggleValidMark()\r\n },\r\n _toggleValidMark() {\r\n this.$element().toggleClass(TEXTEDITOR_VALID_CLASS, !!this._showValidMark)\r\n },\r\n reset() {\r\n var value = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : void 0;\r\n if (arguments.length) {\r\n this.callBase(value)\r\n } else {\r\n this.callBase()\r\n }\r\n },\r\n on(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.includes(event)) {\r\n this._refreshEvents()\r\n }\r\n return result\r\n }\r\n});\r\nexport default TextEditorBase;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/text_box/m_text_editor.mask.rule.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n isFunction\r\n} from \"../../../core/utils/type\";\r\nvar EMPTY_CHAR = \" \";\r\nclass BaseMaskRule {\r\n constructor(config) {\r\n this._value = EMPTY_CHAR;\r\n extend(this, config)\r\n }\r\n next(rule) {\r\n if (!arguments.length) {\r\n return this._next\r\n }\r\n this._next = rule\r\n }\r\n _prepareHandlingArgs(args, config) {\r\n var _a, _b, _c;\r\n config = config || {};\r\n var handlingProperty = Object.prototype.hasOwnProperty.call(args, \"value\") ? \"value\" : \"text\";\r\n args[handlingProperty] = null !== (_a = config.str) && void 0 !== _a ? _a : args[handlingProperty];\r\n args.start = null !== (_b = config.start) && void 0 !== _b ? _b : args.start;\r\n args.length = null !== (_c = config.length) && void 0 !== _c ? _c : args.length;\r\n args.index += 1;\r\n return args\r\n }\r\n first(index) {\r\n index = index || 0;\r\n return this.next().first(index + 1)\r\n }\r\n isAccepted(caret) {\r\n return false\r\n }\r\n adjustedCaret(caret, isForwardDirection, char) {\r\n return isForwardDirection ? this._adjustedForward(caret, 0, char) : this._adjustedBackward(caret, 0, char)\r\n }\r\n _adjustedForward(caret, index, char) {}\r\n _adjustedBackward(caret, index, char) {}\r\n isValid(args) {}\r\n reset() {}\r\n clear(args) {}\r\n text() {}\r\n value() {}\r\n rawValue() {}\r\n handle(args) {}\r\n}\r\nexport class EmptyMaskRule extends BaseMaskRule {\r\n next() {}\r\n handle() {\r\n return 0\r\n }\r\n text() {\r\n return \"\"\r\n }\r\n value() {\r\n return \"\"\r\n }\r\n first() {\r\n return 0\r\n }\r\n rawValue() {\r\n return \"\"\r\n }\r\n adjustedCaret() {\r\n return 0\r\n }\r\n isValid() {\r\n return true\r\n }\r\n}\r\nexport class MaskRule extends BaseMaskRule {\r\n text() {\r\n return (this._value !== EMPTY_CHAR ? this._value : this.maskChar) + this.next().text()\r\n }\r\n value() {\r\n return this._value + this.next().value()\r\n }\r\n rawValue() {\r\n return this._value + this.next().rawValue()\r\n }\r\n handle(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(args) {\r\n this._tryAcceptChar(EMPTY_CHAR, args);\r\n this.next().clear(this._prepareHandlingArgs(args))\r\n }\r\n reset() {\r\n this._accepted(false);\r\n this.next().reset()\r\n }\r\n _tryAcceptChar(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(value) {\r\n if (!arguments.length) {\r\n return !!this._isAccepted\r\n }\r\n this._isAccepted = !!value\r\n }\r\n first(index) {\r\n return this._value === EMPTY_CHAR ? index || 0 : super.first(index)\r\n }\r\n _isAllowed(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(char, args) {\r\n var {\r\n allowedChars: allowedChars\r\n } = this;\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(caret) {\r\n return 0 === caret ? this._accepted() : this.next().isAccepted(caret - 1)\r\n }\r\n _adjustedForward(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(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(args) {\r\n return this._isValid(this._value, args) && this.next().isValid(this._prepareHandlingArgs(args))\r\n }\r\n}\r\nexport class StubMaskRule extends MaskRule {\r\n value() {\r\n return this.next().value()\r\n }\r\n handle(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(args) {\r\n this._accepted(false);\r\n this.next().clear(this._prepareHandlingArgs(args))\r\n }\r\n _tryAcceptChar(char) {\r\n this._accepted(this._isValid(char))\r\n }\r\n _isValid(char) {\r\n return char === this.maskChar\r\n }\r\n first(index) {\r\n index = index || 0;\r\n return this.next().first(index + 1)\r\n }\r\n _adjustedForward(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(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(args) {\r\n return this.next().isValid(this._prepareHandlingArgs(args))\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/text_box/m_text_editor.mask.strategy.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport browser from \"../../../core/utils/browser\";\r\nimport {\r\n clipboardText as getClipboardText\r\n} from \"../../../core/utils/dom\";\r\nimport EventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\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 _a, _b;\r\n var length = (null === (_a = this._prevCaret) || void 0 === _a ? void 0 : _a.end) - (null === (_b = this._prevCaret) || void 0 === _b ? void 0 : _b.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 _a, _b;\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 !== (_b = null === (_a = this._prevCaret) || void 0 === _a ? void 0 : _a.start) && void 0 !== _b ? _b : 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 _a;\r\n var $input = this._editorInput();\r\n if (browser.webkit) {\r\n var input = $input.get(0);\r\n return null !== (_a = null === input || void 0 === input ? void 0 : input.matches(\":-webkit-autofill\")) && void 0 !== _a ? _a : false\r\n }\r\n return false\r\n }\r\n _clearDragTimer() {\r\n clearTimeout(this._dragTimer)\r\n }\r\n _clearTimers() {\r\n this._clearDragTimer();\r\n clearTimeout(this._caretTimeout);\r\n clearTimeout(this._inputHandlerTimer)\r\n }\r\n getHandler(handlerName) {\r\n return args => {\r\n var _a;\r\n null === (_a = this[\"_\".concat(handlerName, \"Handler\")]) || void 0 === _a ? void 0 : _a.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 this._clearTimers();\r\n EventsEngine.off(this._editorInput(), \".\".concat(MASK_EVENT_NAMESPACE))\r\n }\r\n clean() {\r\n this._clearTimers()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/text_box/m_utils.caret.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../../core/devices\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\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/__internal/ui/text_box/m_text_editor.mask.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n noop\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 isEmpty\r\n} from \"../../../core/utils/string\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n name as wheelEventName\r\n} from \"../../../events/core/wheel\";\r\nimport {\r\n addNamespace,\r\n createEvent,\r\n isCommandKeyPressed,\r\n normalizeKeyName\r\n} from \"../../../events/utils/index\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport {\r\n focused\r\n} from \"../../../ui/widget/selectors\";\r\nimport TextEditorBase from \"./m_text_editor.base\";\r\nimport {\r\n EmptyMaskRule,\r\n MaskRule,\r\n StubMaskRule\r\n} from \"./m_text_editor.mask.rule\";\r\nimport MaskStrategy from \"./m_text_editor.mask.strategy\";\r\nimport caretUtils from \"./m_utils.caret\";\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 DROP_EVENT_NAME = \"drop\";\r\nvar buildInMaskRules = {\r\n 0: /[0-9]/,\r\n 9: /[0-9\\s]/,\r\n \"#\": /[-+0-9\\s]/,\r\n L: char => isLiteralChar(char),\r\n l: char => isLiteralChar(char) || isSpaceChar(char),\r\n C: /\\S/,\r\n c: /./,\r\n A: char => isLiteralChar(char) || isNumericChar(char),\r\n a: char => isLiteralChar(char) || isNumericChar(char) || isSpaceChar(char)\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 code > 64 && code < 91 || code > 96 && 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() {\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() {\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, (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() {\r\n return !this.option(\"mask\") ? this.callBase() : this._$hiddenElement\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initMaskStrategy()\r\n },\r\n _initMaskStrategy() {\r\n this._maskStrategy = new MaskStrategy(this)\r\n },\r\n _initMarkup() {\r\n this._renderHiddenElement();\r\n this.callBase()\r\n },\r\n _attachMouseWheelEventHandlers() {\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(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 });\r\n eventsEngine.off(input, eventName);\r\n eventsEngine.on(input, eventName, e => {\r\n mouseWheelAction({\r\n event: e\r\n })\r\n })\r\n },\r\n _onMouseWheel: noop,\r\n _useMaskBehavior() {\r\n return Boolean(this.option(\"mask\"))\r\n },\r\n _attachDropEventHandler() {\r\n var useMaskBehavior = this._useMaskBehavior();\r\n if (!useMaskBehavior) {\r\n return\r\n }\r\n var eventName = addNamespace(DROP_EVENT_NAME, this.NAME);\r\n var input = this._input();\r\n eventsEngine.off(input, eventName);\r\n eventsEngine.on(input, eventName, e => e.preventDefault())\r\n },\r\n _render() {\r\n this._attachMouseWheelEventHandlers();\r\n this._renderMask();\r\n this.callBase();\r\n this._attachDropEventHandler()\r\n },\r\n _renderHiddenElement() {\r\n if (this.option(\"mask\")) {\r\n this._$hiddenElement = $(\"<input>\").attr(\"type\", \"hidden\").appendTo(this._inputWrapper())\r\n }\r\n },\r\n _removeHiddenElement() {\r\n this._$hiddenElement && this._$hiddenElement.remove()\r\n },\r\n _renderMask() {\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 _changeHandler(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() {\r\n this._maskRules = extend({}, buildInMaskRules, this.option(\"maskRules\"));\r\n this._maskRulesChain = this._parseMaskRule(0)\r\n },\r\n _parseMaskRule(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(pattern) {\r\n var ruleConfig;\r\n each(this._maskRules, (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() {\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(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() {\r\n return this.option(\"useMaskedValue\")\r\n },\r\n _displayMask(caret) {\r\n caret = caret || this._caret();\r\n this._renderValue();\r\n this._caret(caret)\r\n },\r\n _isValueEmpty() {\r\n return isEmpty(this._value)\r\n },\r\n _shouldShowMask() {\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() {\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() {\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() {\r\n return this._convertToValue().replace(/\\s+$/, \"\")\r\n },\r\n _valueChangeEventHandler(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(e) {\r\n return this._isControlKey(normalizeKeyName(e)) || isCommandKeyPressed(e)\r\n },\r\n _handleChain(args) {\r\n var handledCount = this._maskRulesChain.handle(this._normalizeChainArguments(args));\r\n this._updateMaskInfo();\r\n return handledCount\r\n },\r\n _normalizeChainArguments(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(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(text) {\r\n return text.replace(new RegExp(this.option(\"maskChar\"), \"g\"), EMPTY_CHAR)\r\n },\r\n _maskKeyHandler(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(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() {\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(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() {\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(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() {\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(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() {\r\n var caret = this._caret();\r\n return caret.start !== caret.end\r\n },\r\n _direction(direction) {\r\n if (!arguments.length) {\r\n return this._typingDirection\r\n }\r\n this._typingDirection = direction\r\n },\r\n setForwardDirection() {\r\n this._direction(FORWARD_DIRECTION)\r\n },\r\n setBackwardDirection() {\r\n this._direction(BACKWARD_DIRECTION)\r\n },\r\n isForwardDirection() {\r\n return this._direction() === FORWARD_DIRECTION\r\n },\r\n _updateMaskInfo() {\r\n this._textValue = this._maskRulesChain.text();\r\n this._value = this._maskRulesChain.value()\r\n },\r\n _clean() {\r\n this._maskStrategy && this._maskStrategy.clean();\r\n this.callBase()\r\n },\r\n _validateMask() {\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() {\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() {\r\n this._updateHiddenElement();\r\n this._renderMask();\r\n this._validateMask();\r\n this._refreshValueChangeEvent()\r\n },\r\n _processEmptyMask(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 validationError: null\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(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 clear() {\r\n var {\r\n value: defaultValue\r\n } = this._getDefaultOptions();\r\n if (this.option(\"value\") === defaultValue) {\r\n this._renderMaskedValue()\r\n }\r\n this.callBase()\r\n }\r\n});\r\nexport default TextEditorMask;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/text_box/m_text_editor.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport TextEditorMask from \"./m_text_editor.mask\";\r\nregisterComponent(\"dxTextEditor\", TextEditorMask);\r\nexport default TextEditorMask;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/text_box/m_text_box.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n getOuterWidth,\r\n getWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n getWindow\r\n} from \"../../../core/utils/window\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../../../events/utils/index\";\r\nimport TextEditor from \"./m_text_editor\";\r\nvar window = getWindow();\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(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() {\r\n return extend(this.callBase(), {\r\n value: \"\",\r\n mode: \"text\",\r\n maxLength: null\r\n })\r\n },\r\n _initMarkup() {\r\n this.$element().addClass(TEXTBOX_CLASS);\r\n this.callBase();\r\n this.setAria(\"role\", \"textbox\")\r\n },\r\n _renderInputType() {\r\n this.callBase();\r\n this._renderSearchMode()\r\n },\r\n _useTemplates: () => false,\r\n _renderProps() {\r\n this.callBase();\r\n this._toggleMaxLengthProp()\r\n },\r\n _toggleMaxLengthProp() {\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() {\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() {\r\n var $searchIcon = $(\"<div>\").addClass(ICON_CLASS).addClass(SEARCH_ICON_CLASS);\r\n $searchIcon.prependTo(this._input().parent());\r\n this._$searchIcon = $searchIcon\r\n },\r\n _getLabelContainerWidth() {\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() {\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(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(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 }\r\n return true\r\n },\r\n _onChangeCutOffHandler(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($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() {\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.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport TextBox from \"./text_box/text_box\";\r\nexport default TextBox;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/drop_down_editor/m_drop_down_button.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport Button from \"../../../ui/button\";\r\nimport TextEditorButton from \"../text_box/texteditor_button_collection/m_button\";\r\nvar DROP_DOWN_EDITOR_BUTTON_CLASS = \"dx-dropdowneditor-button\";\r\nvar DROP_DOWN_EDITOR_BUTTON_VISIBLE = \"dx-dropdowneditor-button-visible\";\r\nvar BUTTON_MESSAGE = \"dxDropDownEditor-selectLabel\";\r\nexport default class DropDownButton extends TextEditorButton {\r\n constructor(name, editor, options) {\r\n super(name, editor, options);\r\n this.currentTemplate = null\r\n }\r\n _attachEvents(instance) {\r\n var {\r\n editor: editor\r\n } = this;\r\n instance.option(\"onClick\", e => {\r\n var _a;\r\n if (null === (_a = editor._shouldCallOpenHandler) || void 0 === _a ? void 0 : _a.call(editor)) {\r\n editor._openHandler(e);\r\n return\r\n }!editor.option(\"openOnFieldClick\") && editor._openHandler(e)\r\n });\r\n eventsEngine.on(instance.$element(), \"mousedown\", e => {\r\n if (editor.$element().is(\".dx-state-focused\")) {\r\n e.preventDefault()\r\n }\r\n })\r\n }\r\n _create() {\r\n var {\r\n editor: editor\r\n } = this;\r\n var $element = $(\"<div>\");\r\n var options = this._getOptions();\r\n this._addToContainer($element);\r\n var instance = editor._createComponent($element, Button, extend({}, options, {\r\n elementAttr: {\r\n \"aria-label\": messageLocalization.format(BUTTON_MESSAGE)\r\n }\r\n }));\r\n this._legacyRender(editor.$element(), $element, options.visible);\r\n return {\r\n $element: $element,\r\n instance: instance\r\n }\r\n }\r\n _getOptions() {\r\n var {\r\n editor: editor\r\n } = this;\r\n var visible = this._isVisible();\r\n var isReadOnly = editor.option(\"readOnly\");\r\n var options = {\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false,\r\n activeStateEnabled: false,\r\n useInkRipple: false,\r\n disabled: isReadOnly,\r\n visible: visible\r\n };\r\n this._addTemplate(options);\r\n return options\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return super._isVisible() && editor.option(\"showDropDownButton\")\r\n }\r\n _legacyRender($editor, $element, isVisible) {\r\n $editor.toggleClass(DROP_DOWN_EDITOR_BUTTON_VISIBLE, isVisible);\r\n if ($element) {\r\n $element.removeClass(\"dx-button\").removeClass(\"dx-button-mode-contained\").addClass(DROP_DOWN_EDITOR_BUTTON_CLASS)\r\n }\r\n }\r\n _isSameTemplate() {\r\n return this.editor.option(\"dropDownButtonTemplate\") === this.currentTemplate\r\n }\r\n _addTemplate(options) {\r\n if (!this._isSameTemplate()) {\r\n options.template = this.editor._getTemplateByOption(\"dropDownButtonTemplate\");\r\n this.currentTemplate = this.editor.option(\"dropDownButtonTemplate\")\r\n }\r\n }\r\n update() {\r\n var shouldUpdate = super.update();\r\n if (shouldUpdate) {\r\n var {\r\n editor: editor,\r\n instance: instance\r\n } = this;\r\n var $editor = editor.$element();\r\n var options = this._getOptions();\r\n null === instance || void 0 === instance ? void 0 : instance.option(options);\r\n this._legacyRender($editor, null === instance || void 0 === instance ? void 0 : instance.$element(), options.visible)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/drop_down_editor/m_utils.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nvar getElementWidth = function($element) {\r\n if (hasWindow()) {\r\n return getOuterWidth($element)\r\n }\r\n};\r\nvar getSizeValue = function(size) {\r\n if (null === size) {\r\n size = void 0\r\n }\r\n if (\"function\" === typeof size) {\r\n size = size()\r\n }\r\n return size\r\n};\r\nexport {\r\n getElementWidth,\r\n getSizeValue\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/ui/drop_down_editor/m_drop_down_editor.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport animationPosition from \"../../../animation/position\";\r\nimport {\r\n locate,\r\n move\r\n} from \"../../../animation/translator\";\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 Guid from \"../../../core/guid\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n FunctionTemplate\r\n} from \"../../../core/templates/function_template\";\r\nimport {\r\n noop,\r\n splitPair\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 getDefaultAlignment\r\n} from \"../../../core/utils/position\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport {\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 addNamespace,\r\n isCommandKeyPressed,\r\n normalizeKeyName\r\n} from \"../../../events/utils/index\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport Popup from \"../../../ui/popup/ui.popup\";\r\nimport TextBox from \"../../../ui/text_box\";\r\nimport {\r\n focused\r\n} from \"../../../ui/widget/selectors\";\r\nimport errors from \"../../../ui/widget/ui.errors\";\r\nimport Widget from \"../../../ui/widget/ui.widget\";\r\nimport DropDownButton from \"./m_drop_down_button\";\r\nimport {\r\n getElementWidth,\r\n getSizeValue\r\n} from \"./m_utils\";\r\nexport var DROP_DOWN_EDITOR_CLASS = \"dx-dropdowneditor\";\r\nvar DROP_DOWN_EDITOR_INPUT_WRAPPER = \"dx-dropdowneditor-input-wrapper\";\r\nvar DROP_DOWN_EDITOR_BUTTON_ICON = \"dx-dropdowneditor-icon\";\r\nvar DROP_DOWN_EDITOR_OVERLAY = \"dx-dropdowneditor-overlay\";\r\nvar DROP_DOWN_EDITOR_OVERLAY_FLIPPED = \"dx-dropdowneditor-overlay-flipped\";\r\nvar DROP_DOWN_EDITOR_ACTIVE = \"dx-dropdowneditor-active\";\r\nvar DROP_DOWN_EDITOR_FIELD_CLICKABLE = \"dx-dropdowneditor-field-clickable\";\r\nvar DROP_DOWN_EDITOR_FIELD_TEMPLATE_WRAPPER = \"dx-dropdowneditor-field-template-wrapper\";\r\nvar isIOs = \"ios\" === devices.current().platform;\r\nvar DropDownEditor = TextBox.inherit({\r\n _supportedKeys() {\r\n return extend({}, this.callBase(), {\r\n tab(e) {\r\n if (!this.option(\"opened\")) {\r\n return\r\n }\r\n if (!this._popup.getFocusableElements().length) {\r\n this.close();\r\n return\r\n }\r\n var $focusableElement = e.shiftKey ? this._getLastPopupElement() : this._getFirstPopupElement();\r\n if ($focusableElement) {\r\n eventsEngine.trigger($focusableElement, \"focus\");\r\n $focusableElement.select()\r\n }\r\n e.preventDefault()\r\n },\r\n escape(e) {\r\n if (this.option(\"opened\")) {\r\n e.preventDefault()\r\n }\r\n this.close();\r\n return true\r\n },\r\n upArrow(e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (e.altKey) {\r\n this.close();\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n downArrow(e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (e.altKey) {\r\n this._validatedOpening();\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n enter(e) {\r\n if (this.option(\"opened\")) {\r\n e.preventDefault();\r\n this._valueChangeEventHandler(e)\r\n }\r\n return true\r\n }\r\n })\r\n },\r\n _getDefaultButtons() {\r\n return this.callBase().concat([{\r\n name: \"dropDown\",\r\n Ctor: DropDownButton\r\n }])\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n value: null,\r\n onOpened: null,\r\n onClosed: null,\r\n opened: false,\r\n acceptCustomValue: true,\r\n applyValueMode: \"instantly\",\r\n deferRendering: true,\r\n activeStateEnabled: true,\r\n dropDownButtonTemplate: \"dropDownButton\",\r\n fieldTemplate: null,\r\n openOnFieldClick: false,\r\n showDropDownButton: true,\r\n buttons: void 0,\r\n dropDownOptions: {\r\n showTitle: false\r\n },\r\n popupPosition: this._getDefaultPopupPosition(),\r\n onPopupInitialized: null,\r\n applyButtonText: messageLocalization.format(\"OK\"),\r\n cancelButtonText: messageLocalization.format(\"Cancel\"),\r\n buttonsLocation: \"default\",\r\n useHiddenSubmitElement: false,\r\n validationMessagePosition: \"auto\"\r\n })\r\n },\r\n _useTemplates: () => true,\r\n _getDefaultPopupPosition(isRtlEnabled) {\r\n var position = getDefaultAlignment(isRtlEnabled);\r\n return {\r\n offset: {\r\n h: 0,\r\n v: -1\r\n },\r\n my: \"\".concat(position, \" top\"),\r\n at: \"\".concat(position, \" bottom\"),\r\n collision: \"flip flip\"\r\n }\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device(device) {\r\n var isGeneric = \"generic\" === device.platform;\r\n return isGeneric\r\n },\r\n options: {\r\n popupPosition: {\r\n offset: {\r\n v: 0\r\n }\r\n }\r\n }\r\n }])\r\n },\r\n _inputWrapper() {\r\n return this.$element().find(\".\".concat(DROP_DOWN_EDITOR_INPUT_WRAPPER)).first()\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initVisibilityActions();\r\n this._initPopupInitializedAction();\r\n this._updatePopupPosition(this.option(\"rtlEnabled\"));\r\n this._options.cache(\"dropDownOptions\", this.option(\"dropDownOptions\"))\r\n },\r\n _updatePopupPosition(isRtlEnabled) {\r\n var {\r\n my: my,\r\n at: at\r\n } = this._getDefaultPopupPosition(isRtlEnabled);\r\n var currentPosition = this.option(\"popupPosition\");\r\n this.option(\"popupPosition\", extend({}, currentPosition, {\r\n my: my,\r\n at: at\r\n }))\r\n },\r\n _initVisibilityActions() {\r\n this._openAction = this._createActionByOption(\"onOpened\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this._closeAction = this._createActionByOption(\"onClosed\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initPopupInitializedAction() {\r\n this._popupInitializedAction = this._createActionByOption(\"onPopupInitialized\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initMarkup() {\r\n this._renderSubmitElement();\r\n this.callBase();\r\n this.$element().addClass(DROP_DOWN_EDITOR_CLASS);\r\n this.setAria(\"role\", this._getAriaRole())\r\n },\r\n _render() {\r\n this._detachFocusEvents();\r\n this.callBase();\r\n this._renderOpenHandler();\r\n this._attachFocusOutHandler();\r\n this._renderOpenedState()\r\n },\r\n _renderContentImpl() {\r\n if (!this.option(\"deferRendering\")) {\r\n this._createPopup()\r\n }\r\n },\r\n _renderInput() {\r\n this.callBase();\r\n this._renderTemplateWrapper();\r\n this._wrapInput();\r\n this._setDefaultAria()\r\n },\r\n _wrapInput() {\r\n this._$container = this.$element().wrapInner($(\"<div>\").addClass(DROP_DOWN_EDITOR_INPUT_WRAPPER)).children().eq(0)\r\n },\r\n _getAriaHasPopup: () => \"true\",\r\n _getAriaAutocomplete: () => \"list\",\r\n _getAriaRole: () => \"combobox\",\r\n _setDefaultAria() {\r\n this.setAria({\r\n haspopup: this._getAriaHasPopup(),\r\n autocomplete: this._getAriaAutocomplete(),\r\n role: this._getAriaRole()\r\n })\r\n },\r\n _readOnlyPropValue() {\r\n return !this._isEditable() || this.callBase()\r\n },\r\n _cleanFocusState() {\r\n this.callBase();\r\n if (this.option(\"fieldTemplate\")) {\r\n this._detachFocusEvents()\r\n }\r\n },\r\n _getFieldTemplate() {\r\n return this.option(\"fieldTemplate\") && this._getTemplateByOption(\"fieldTemplate\")\r\n },\r\n _renderMask() {\r\n if (this.option(\"fieldTemplate\")) {\r\n return\r\n }\r\n this.callBase()\r\n },\r\n _renderField() {\r\n var fieldTemplate = this._getFieldTemplate();\r\n if (fieldTemplate) {\r\n this._renderTemplatedField(fieldTemplate, this._fieldRenderData())\r\n }\r\n },\r\n _renderPlaceholder() {\r\n var hasFieldTemplate = !!this._getFieldTemplate();\r\n if (!hasFieldTemplate) {\r\n this.callBase()\r\n }\r\n },\r\n _renderValue() {\r\n if (this.option(\"useHiddenSubmitElement\")) {\r\n this._setSubmitValue()\r\n }\r\n var promise = this.callBase();\r\n promise.always(this._renderField.bind(this))\r\n },\r\n _getButtonsContainer() {\r\n var fieldTemplate = this._getFieldTemplate();\r\n return fieldTemplate ? this._$container : this._$textEditorContainer\r\n },\r\n _renderTemplateWrapper() {\r\n var fieldTemplate = this._getFieldTemplate();\r\n if (!fieldTemplate) {\r\n return\r\n }\r\n if (!this._$templateWrapper) {\r\n this._$templateWrapper = $(\"<div>\").addClass(DROP_DOWN_EDITOR_FIELD_TEMPLATE_WRAPPER).prependTo(this.$element())\r\n }\r\n },\r\n _renderTemplatedField(fieldTemplate, data) {\r\n var isFocused = focused(this._input());\r\n this._detachKeyboardEvents();\r\n this._detachFocusEvents();\r\n this._$textEditorContainer.remove();\r\n this._$templateWrapper.empty();\r\n var $templateWrapper = this._$templateWrapper;\r\n var currentRenderContext = Symbol(\"renderContext\");\r\n this._activeRenderContext = currentRenderContext;\r\n fieldTemplate.render({\r\n model: data,\r\n container: getPublicElement($templateWrapper),\r\n onRendered: () => {\r\n if (this._activeRenderContext !== currentRenderContext) {\r\n return\r\n }\r\n var isRenderedInRoot = !!this.$element().find($templateWrapper).length;\r\n if (!isRenderedInRoot) {\r\n return\r\n }\r\n var $input = this._input();\r\n if (!$input.length) {\r\n throw errors.Error(\"E1010\")\r\n }\r\n this._integrateInput();\r\n isFocused && eventsEngine.trigger($input, \"focus\")\r\n }\r\n })\r\n },\r\n _integrateInput() {\r\n var _a;\r\n var {\r\n isValid: isValid\r\n } = this.option();\r\n this._renderFocusState();\r\n this._refreshValueChangeEvent();\r\n this._refreshEvents();\r\n this._refreshEmptinessEvent();\r\n this._setDefaultAria();\r\n this._setFieldAria();\r\n this._toggleValidationClasses(!isValid);\r\n null === (_a = this.option(\"_onMarkupRendered\")) || void 0 === _a ? void 0 : _a()\r\n },\r\n _refreshEmptinessEvent() {\r\n eventsEngine.off(this._input(), \"input blur\", this._toggleEmptinessEventHandler);\r\n this._renderEmptinessEvent()\r\n },\r\n _fieldRenderData() {\r\n return this.option(\"value\")\r\n },\r\n _initTemplates() {\r\n this._templateManager.addDefaultTemplates({\r\n dropDownButton: new FunctionTemplate(options => {\r\n var $icon = $(\"<div>\").addClass(DROP_DOWN_EDITOR_BUTTON_ICON);\r\n $(options.container).append($icon)\r\n })\r\n });\r\n this.callBase()\r\n },\r\n _renderOpenHandler() {\r\n var $inputWrapper = this._inputWrapper();\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n var openOnFieldClick = this.option(\"openOnFieldClick\");\r\n eventsEngine.off($inputWrapper, eventName);\r\n eventsEngine.on($inputWrapper, eventName, this._getInputClickHandler(openOnFieldClick));\r\n this.$element().toggleClass(DROP_DOWN_EDITOR_FIELD_CLICKABLE, openOnFieldClick);\r\n if (openOnFieldClick) {\r\n this._openOnFieldClickAction = this._createAction(this._openHandler.bind(this))\r\n }\r\n },\r\n _attachFocusOutHandler() {\r\n if (isIOs) {\r\n this._detachFocusOutEvents();\r\n eventsEngine.on(this._inputWrapper(), addNamespace(\"focusout\", this.NAME), event => {\r\n var newTarget = event.relatedTarget;\r\n if (newTarget && this.option(\"opened\")) {\r\n var isNewTargetOutside = this._isTargetOutOfComponent(newTarget);\r\n if (isNewTargetOutside) {\r\n this.close()\r\n }\r\n }\r\n })\r\n }\r\n },\r\n _isTargetOutOfComponent(newTarget) {\r\n var popupWrapper = this.content ? $(this.content()).closest(\".\".concat(DROP_DOWN_EDITOR_OVERLAY)) : this._$popup;\r\n var isTargetOutsidePopup = 0 === $(newTarget).closest(\".\".concat(DROP_DOWN_EDITOR_OVERLAY), popupWrapper).length;\r\n return isTargetOutsidePopup\r\n },\r\n _detachFocusOutEvents() {\r\n isIOs && eventsEngine.off(this._inputWrapper(), addNamespace(\"focusout\", this.NAME))\r\n },\r\n _getInputClickHandler(openOnFieldClick) {\r\n return openOnFieldClick ? e => {\r\n this._executeOpenAction(e)\r\n } : () => {\r\n this._focusInput()\r\n }\r\n },\r\n _openHandler() {\r\n this._toggleOpenState()\r\n },\r\n _executeOpenAction(e) {\r\n this._openOnFieldClickAction({\r\n event: e\r\n })\r\n },\r\n _keyboardEventBindingTarget() {\r\n return this._input()\r\n },\r\n _focusInput() {\r\n if (this.option(\"disabled\")) {\r\n return false\r\n }\r\n if (this.option(\"focusStateEnabled\") && !focused(this._input())) {\r\n this._resetCaretPosition();\r\n eventsEngine.trigger(this._input(), \"focus\")\r\n }\r\n return true\r\n },\r\n _resetCaretPosition() {\r\n var ignoreEditable = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : false;\r\n var inputElement = this._input().get(0);\r\n if (inputElement) {\r\n var {\r\n value: value\r\n } = inputElement;\r\n var caretPosition = isDefined(value) && (ignoreEditable || this._isEditable()) ? value.length : 0;\r\n this._caret({\r\n start: caretPosition,\r\n end: caretPosition\r\n }, true)\r\n }\r\n },\r\n _isEditable() {\r\n return this.option(\"acceptCustomValue\")\r\n },\r\n _toggleOpenState(isVisible) {\r\n if (!this._focusInput()) {\r\n return\r\n }\r\n if (!this.option(\"readOnly\")) {\r\n isVisible = arguments.length ? isVisible : !this.option(\"opened\");\r\n this.option(\"opened\", isVisible)\r\n }\r\n },\r\n _getControlsAria() {\r\n return this._popup && this._popupContentId\r\n },\r\n _renderOpenedState() {\r\n var opened = this.option(\"opened\");\r\n if (opened) {\r\n this._createPopup()\r\n }\r\n this.$element().toggleClass(DROP_DOWN_EDITOR_ACTIVE, opened);\r\n this._setPopupOption(\"visible\", opened);\r\n var arias = {\r\n expanded: opened,\r\n controls: this._getControlsAria()\r\n };\r\n this.setAria(arias);\r\n this.setAria(\"owns\", opened ? this._popupContentId : void 0, this.$element())\r\n },\r\n _createPopup() {\r\n if (this._$popup) {\r\n return\r\n }\r\n this._$popup = $(\"<div>\").addClass(DROP_DOWN_EDITOR_OVERLAY).appendTo(this.$element());\r\n this._renderPopup();\r\n this._renderPopupContent()\r\n },\r\n _renderPopupContent: noop,\r\n _renderPopup() {\r\n var popupConfig = extend(this._popupConfig(), this._options.cache(\"dropDownOptions\"));\r\n delete popupConfig.closeOnOutsideClick;\r\n if (popupConfig.elementAttr && !Object.keys(popupConfig.elementAttr).length) {\r\n delete popupConfig.elementAttr\r\n }\r\n this._popup = this._createComponent(this._$popup, Popup, popupConfig);\r\n this._popup.on({\r\n showing: this._popupShowingHandler.bind(this),\r\n shown: this._popupShownHandler.bind(this),\r\n hiding: this._popupHidingHandler.bind(this),\r\n hidden: this._popupHiddenHandler.bind(this),\r\n contentReady: this._contentReadyHandler.bind(this)\r\n });\r\n this._attachPopupKeyHandler();\r\n this._contentReadyHandler();\r\n this._setPopupContentId(this._popup.$content());\r\n this._bindInnerWidgetOptions(this._popup, \"dropDownOptions\")\r\n },\r\n _attachPopupKeyHandler() {\r\n eventsEngine.on(this._popup.$overlayContent(), addNamespace(\"keydown\", this.NAME), e => this._popupKeyHandler(e))\r\n },\r\n _popupKeyHandler(e) {\r\n switch (normalizeKeyName(e)) {\r\n case \"tab\":\r\n this._popupTabHandler(e);\r\n break;\r\n case \"escape\":\r\n this._popupEscHandler(e)\r\n }\r\n },\r\n _popupTabHandler(e) {\r\n var $target = $(e.target);\r\n var moveBackward = e.shiftKey && $target.is(this._getFirstPopupElement());\r\n var moveForward = !e.shiftKey && $target.is(this._getLastPopupElement());\r\n if (moveForward || moveBackward) {\r\n eventsEngine.trigger(this.field(), \"focus\");\r\n e.preventDefault()\r\n }\r\n },\r\n _popupEscHandler() {\r\n eventsEngine.trigger(this._input(), \"focus\");\r\n this.close()\r\n },\r\n _setPopupContentId($popupContent) {\r\n this._popupContentId = \"dx-\".concat(new Guid);\r\n this.setAria(\"id\", this._popupContentId, $popupContent)\r\n },\r\n _contentReadyHandler: noop,\r\n _popupConfig() {\r\n return {\r\n onInitialized: this._getPopupInitializedHandler(),\r\n position: extend(this.option(\"popupPosition\"), {\r\n of: this.$element()\r\n }),\r\n showTitle: this.option(\"dropDownOptions.showTitle\"),\r\n _ignoreFunctionValueDeprecation: true,\r\n width: () => getElementWidth(this.$element()),\r\n height: \"auto\",\r\n shading: false,\r\n hideOnParentScroll: true,\r\n hideOnOutsideClick: e => this._closeOutsideDropDownHandler(e),\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n duration: 0,\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 deferRendering: false,\r\n focusStateEnabled: false,\r\n showCloseButton: false,\r\n dragEnabled: false,\r\n toolbarItems: this._getPopupToolbarItems(),\r\n onPositioned: this._popupPositionedHandler.bind(this),\r\n fullScreen: false,\r\n contentTemplate: null,\r\n _hideOnParentScrollTarget: this.$element(),\r\n _wrapperClassExternal: DROP_DOWN_EDITOR_OVERLAY,\r\n _ignorePreventScrollEventsDeprecation: true\r\n }\r\n },\r\n _popupInitializedHandler: noop,\r\n _getPopupInitializedHandler() {\r\n var onPopupInitialized = this.option(\"onPopupInitialized\");\r\n return e => {\r\n this._popupInitializedHandler(e);\r\n if (onPopupInitialized) {\r\n this._popupInitializedAction({\r\n popup: e.component\r\n })\r\n }\r\n }\r\n },\r\n _dimensionChanged() {\r\n if (hasWindow() && !this.$element().is(\":visible\")) {\r\n this.close();\r\n return\r\n }\r\n this._updatePopupWidth()\r\n },\r\n _updatePopupWidth() {\r\n var popupWidth = getSizeValue(this.option(\"dropDownOptions.width\"));\r\n if (void 0 === popupWidth) {\r\n this._setPopupOption(\"width\", () => getElementWidth(this.$element()))\r\n }\r\n },\r\n _popupPositionedHandler(e) {\r\n var _a, _b;\r\n var {\r\n labelMode: labelMode,\r\n stylingMode: stylingMode\r\n } = this.option();\r\n if (!this._popup) {\r\n return\r\n }\r\n var $popupOverlayContent = this._popup.$overlayContent();\r\n var isOverlayFlipped = null === (_b = null === (_a = e.position) || void 0 === _a ? void 0 : _a.v) || void 0 === _b ? void 0 : _b.flip;\r\n var shouldIndentForLabel = \"hidden\" !== labelMode && \"outside\" !== labelMode && \"outlined\" === stylingMode;\r\n if (e.position) {\r\n $popupOverlayContent.toggleClass(DROP_DOWN_EDITOR_OVERLAY_FLIPPED, isOverlayFlipped)\r\n }\r\n if (isOverlayFlipped && shouldIndentForLabel && this._label.isVisible()) {\r\n var $label = this._label.$element();\r\n move($popupOverlayContent, {\r\n top: locate($popupOverlayContent).top - parseInt($label.css(\"fontSize\"))\r\n })\r\n }\r\n },\r\n _popupShowingHandler: noop,\r\n _popupHidingHandler() {\r\n this.option(\"opened\", false)\r\n },\r\n _popupShownHandler() {\r\n var _a;\r\n this._openAction();\r\n null === (_a = this._validationMessage) || void 0 === _a ? void 0 : _a.option(\"positionSide\", this._getValidationMessagePositionSide())\r\n },\r\n _popupHiddenHandler() {\r\n var _a;\r\n this._closeAction();\r\n null === (_a = this._validationMessage) || void 0 === _a ? void 0 : _a.option(\"positionSide\", this._getValidationMessagePositionSide())\r\n },\r\n _getValidationMessagePositionSide() {\r\n var validationMessagePosition = this.option(\"validationMessagePosition\");\r\n if (\"auto\" !== validationMessagePosition) {\r\n return validationMessagePosition\r\n }\r\n var positionSide = \"bottom\";\r\n if (this._popup && this._popup.option(\"visible\")) {\r\n var {\r\n top: myTop\r\n } = animationPosition.setup(this.$element());\r\n var {\r\n top: popupTop\r\n } = animationPosition.setup(this._popup.$content());\r\n positionSide = myTop + this.option(\"popupPosition\").offset.v > popupTop ? \"bottom\" : \"top\"\r\n }\r\n return positionSide\r\n },\r\n _closeOutsideDropDownHandler(_ref) {\r\n var {\r\n target: target\r\n } = _ref;\r\n var $target = $(target);\r\n var dropDownButton = this.getButton(\"dropDown\");\r\n var $dropDownButton = dropDownButton && dropDownButton.$element();\r\n var isInputClicked = !!$target.closest(this.$element()).length;\r\n var isDropDownButtonClicked = !!$target.closest($dropDownButton).length;\r\n var isOutsideClick = !isInputClicked && !isDropDownButtonClicked;\r\n return isOutsideClick\r\n },\r\n _clean() {\r\n delete this._openOnFieldClickAction;\r\n delete this._$templateWrapper;\r\n if (this._$popup) {\r\n this._$popup.remove();\r\n delete this._$popup;\r\n delete this._popup\r\n }\r\n this.callBase()\r\n },\r\n _setPopupOption(optionName, value) {\r\n this._setWidgetOption(\"_popup\", arguments)\r\n },\r\n _validatedOpening() {\r\n if (!this.option(\"readOnly\")) {\r\n this._toggleOpenState(true)\r\n }\r\n },\r\n _getPopupToolbarItems() {\r\n return \"useButtons\" === this.option(\"applyValueMode\") ? this._popupToolbarItemsConfig() : []\r\n },\r\n _getFirstPopupElement() {\r\n return $(this._popup.getFocusableElements()).first()\r\n },\r\n _getLastPopupElement() {\r\n return $(this._popup.getFocusableElements()).last()\r\n },\r\n _popupToolbarItemsConfig() {\r\n var buttonsConfig = [{\r\n shortcut: \"done\",\r\n options: {\r\n onClick: this._applyButtonHandler.bind(this),\r\n text: this.option(\"applyButtonText\")\r\n }\r\n }, {\r\n shortcut: \"cancel\",\r\n options: {\r\n onClick: this._cancelButtonHandler.bind(this),\r\n text: this.option(\"cancelButtonText\")\r\n }\r\n }];\r\n return this._applyButtonsLocation(buttonsConfig)\r\n },\r\n _applyButtonsLocation(buttonsConfig) {\r\n var buttonsLocation = this.option(\"buttonsLocation\");\r\n var resultConfig = buttonsConfig;\r\n if (\"default\" !== buttonsLocation) {\r\n var position = splitPair(buttonsLocation);\r\n each(resultConfig, (_, element) => {\r\n extend(element, {\r\n toolbar: position[0],\r\n location: position[1]\r\n })\r\n })\r\n }\r\n return resultConfig\r\n },\r\n _applyButtonHandler() {\r\n this.close();\r\n this.option(\"focusStateEnabled\") && this.focus()\r\n },\r\n _cancelButtonHandler() {\r\n this.close();\r\n this.option(\"focusStateEnabled\") && this.focus()\r\n },\r\n _popupOptionChanged(args) {\r\n var options = Widget.getOptionsFromContainer(args);\r\n this._setPopupOption(options);\r\n var optionsKeys = Object.keys(options);\r\n if (optionsKeys.includes(\"width\") || optionsKeys.includes(\"height\")) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _renderSubmitElement() {\r\n if (this.option(\"useHiddenSubmitElement\")) {\r\n this._$submitElement = $(\"<input>\").attr(\"type\", \"hidden\").appendTo(this.$element())\r\n }\r\n },\r\n _setSubmitValue() {\r\n this._getSubmitElement().val(this.option(\"value\"))\r\n },\r\n _getSubmitElement() {\r\n if (this.option(\"useHiddenSubmitElement\")) {\r\n return this._$submitElement\r\n }\r\n return this.callBase()\r\n },\r\n _dispose() {\r\n this._detachFocusOutEvents();\r\n this.callBase()\r\n },\r\n _optionChanged(args) {\r\n var _a;\r\n switch (args.name) {\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n null === (_a = this._popup) || void 0 === _a ? void 0 : _a.repaint();\r\n break;\r\n case \"opened\":\r\n this._renderOpenedState();\r\n break;\r\n case \"onOpened\":\r\n case \"onClosed\":\r\n this._initVisibilityActions();\r\n break;\r\n case \"onPopupInitialized\":\r\n this._initPopupInitializedAction();\r\n break;\r\n case \"fieldTemplate\":\r\n case \"acceptCustomValue\":\r\n case \"openOnFieldClick\":\r\n this._invalidate();\r\n break;\r\n case \"dropDownButtonTemplate\":\r\n case \"showDropDownButton\":\r\n this._updateButtons([\"dropDown\"]);\r\n break;\r\n case \"dropDownOptions\":\r\n this._popupOptionChanged(args);\r\n this._options.cache(\"dropDownOptions\", this.option(\"dropDownOptions\"));\r\n break;\r\n case \"popupPosition\":\r\n break;\r\n case \"deferRendering\":\r\n if (hasWindow()) {\r\n this._createPopup()\r\n }\r\n break;\r\n case \"applyValueMode\":\r\n case \"applyButtonText\":\r\n case \"cancelButtonText\":\r\n case \"buttonsLocation\":\r\n this._setPopupOption(\"toolbarItems\", this._getPopupToolbarItems());\r\n break;\r\n case \"useHiddenSubmitElement\":\r\n if (this._$submitElement) {\r\n this._$submitElement.remove();\r\n this._$submitElement = void 0\r\n }\r\n this._renderSubmitElement();\r\n break;\r\n case \"rtlEnabled\":\r\n this._updatePopupPosition(args.value);\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n open() {\r\n this.option(\"opened\", true)\r\n },\r\n close() {\r\n this.option(\"opened\", false)\r\n },\r\n field() {\r\n return getPublicElement(this._input())\r\n },\r\n content() {\r\n return this._popup ? this._popup.content() : null\r\n }\r\n});\r\nregisterComponent(\"dxDropDownEditor\", DropDownEditor);\r\nexport default DropDownEditor;\r\n","/**\r\n * DevExtreme (esm/events/swipe.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getHeight\r\n} from \"../core/utils/size\";\r\nimport {\r\n eventData\r\n} from \"./utils/index\";\r\nimport GestureEmitter from \"./gesture/emitter.gesture\";\r\nimport registerEmitter from \"./core/emitter_registrator\";\r\nvar SWIPE_START_EVENT = \"dxswipestart\";\r\nvar SWIPE_EVENT = \"dxswipe\";\r\nvar SWIPE_END_EVENT = \"dxswipeend\";\r\nvar HorizontalStrategy = {\r\n defaultItemSizeFunc: function() {\r\n return getWidth(this.getElement())\r\n },\r\n getBounds: function() {\r\n return [this._maxLeftOffset, this._maxRightOffset]\r\n },\r\n calcOffsetRatio: function(e) {\r\n var endEventData = eventData(e);\r\n return (endEventData.x - (this._savedEventData && this._savedEventData.x || 0)) / this._itemSizeFunc().call(this, e)\r\n },\r\n isFastSwipe: function(e) {\r\n var endEventData = eventData(e);\r\n return this.FAST_SWIPE_SPEED_LIMIT * Math.abs(endEventData.x - this._tickData.x) >= endEventData.time - this._tickData.time\r\n }\r\n};\r\nvar VerticalStrategy = {\r\n defaultItemSizeFunc: function() {\r\n return getHeight(this.getElement())\r\n },\r\n getBounds: function() {\r\n return [this._maxTopOffset, this._maxBottomOffset]\r\n },\r\n calcOffsetRatio: function(e) {\r\n var endEventData = eventData(e);\r\n return (endEventData.y - (this._savedEventData && this._savedEventData.y || 0)) / this._itemSizeFunc().call(this, e)\r\n },\r\n isFastSwipe: function(e) {\r\n var endEventData = eventData(e);\r\n return this.FAST_SWIPE_SPEED_LIMIT * Math.abs(endEventData.y - this._tickData.y) >= endEventData.time - this._tickData.time\r\n }\r\n};\r\nvar STRATEGIES = {\r\n horizontal: HorizontalStrategy,\r\n vertical: VerticalStrategy\r\n};\r\nvar SwipeEmitter = GestureEmitter.inherit({\r\n TICK_INTERVAL: 300,\r\n FAST_SWIPE_SPEED_LIMIT: 10,\r\n ctor: function(element) {\r\n this.callBase(element);\r\n this.direction = \"horizontal\";\r\n this.elastic = true\r\n },\r\n _getStrategy: function() {\r\n return STRATEGIES[this.direction]\r\n },\r\n _defaultItemSizeFunc: function() {\r\n return this._getStrategy().defaultItemSizeFunc.call(this)\r\n },\r\n _itemSizeFunc: function() {\r\n return this.itemSizeFunc || this._defaultItemSizeFunc\r\n },\r\n _init: function(e) {\r\n this._tickData = eventData(e)\r\n },\r\n _start: function(e) {\r\n this._savedEventData = eventData(e);\r\n e = this._fireEvent(SWIPE_START_EVENT, e);\r\n if (!e.cancel) {\r\n this._maxLeftOffset = e.maxLeftOffset;\r\n this._maxRightOffset = e.maxRightOffset;\r\n this._maxTopOffset = e.maxTopOffset;\r\n this._maxBottomOffset = e.maxBottomOffset\r\n }\r\n },\r\n _move: function(e) {\r\n var strategy = this._getStrategy();\r\n var moveEventData = eventData(e);\r\n var offset = strategy.calcOffsetRatio.call(this, e);\r\n offset = this._fitOffset(offset, this.elastic);\r\n if (moveEventData.time - this._tickData.time > this.TICK_INTERVAL) {\r\n this._tickData = moveEventData\r\n }\r\n this._fireEvent(SWIPE_EVENT, e, {\r\n offset: offset\r\n });\r\n if (false !== e.cancelable) {\r\n e.preventDefault()\r\n }\r\n },\r\n _end: function(e) {\r\n var strategy = this._getStrategy();\r\n var offsetRatio = strategy.calcOffsetRatio.call(this, e);\r\n var isFast = strategy.isFastSwipe.call(this, e);\r\n var startOffset = offsetRatio;\r\n var targetOffset = this._calcTargetOffset(offsetRatio, isFast);\r\n startOffset = this._fitOffset(startOffset, this.elastic);\r\n targetOffset = this._fitOffset(targetOffset, false);\r\n this._fireEvent(SWIPE_END_EVENT, e, {\r\n offset: startOffset,\r\n targetOffset: targetOffset\r\n })\r\n },\r\n _fitOffset: function(offset, elastic) {\r\n var strategy = this._getStrategy();\r\n var bounds = strategy.getBounds.call(this);\r\n if (offset < -bounds[0]) {\r\n return elastic ? (-2 * bounds[0] + offset) / 3 : -bounds[0]\r\n }\r\n if (offset > bounds[1]) {\r\n return elastic ? (2 * bounds[1] + offset) / 3 : bounds[1]\r\n }\r\n return offset\r\n },\r\n _calcTargetOffset: function(offsetRatio, isFast) {\r\n var result;\r\n if (isFast) {\r\n result = Math.ceil(Math.abs(offsetRatio));\r\n if (offsetRatio < 0) {\r\n result = -result\r\n }\r\n } else {\r\n result = Math.round(offsetRatio)\r\n }\r\n return result\r\n }\r\n});\r\nregisterEmitter({\r\n emitter: SwipeEmitter,\r\n events: [SWIPE_START_EVENT, SWIPE_EVENT, SWIPE_END_EVENT]\r\n});\r\nexport {\r\n SWIPE_EVENT as swipe, SWIPE_START_EVENT as start, SWIPE_END_EVENT as end\r\n};\r\n","/**\r\n * DevExtreme (esm/events/gesture/swipeable.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n start as swipeEventStart,\r\n swipe as swipeEventSwipe,\r\n end as swipeEventEnd\r\n} from \"../swipe\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport DOMComponent from \"../../core/dom_component\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n addNamespace\r\n} from \"../utils/index\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n name\r\n} from \"../../core/utils/public_component\";\r\nvar DX_SWIPEABLE = \"dxSwipeable\";\r\nvar SWIPEABLE_CLASS = \"dx-swipeable\";\r\nvar ACTION_TO_EVENT_MAP = {\r\n onStart: swipeEventStart,\r\n onUpdated: swipeEventSwipe,\r\n onEnd: swipeEventEnd,\r\n onCancel: \"dxswipecancel\"\r\n};\r\nvar IMMEDIATE_TIMEOUT = 180;\r\nvar Swipeable = DOMComponent.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n elastic: true,\r\n immediate: false,\r\n immediateTimeout: IMMEDIATE_TIMEOUT,\r\n direction: \"horizontal\",\r\n itemSizeFunc: null,\r\n onStart: null,\r\n onUpdated: null,\r\n onEnd: null,\r\n onCancel: null\r\n })\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(SWIPEABLE_CLASS);\r\n this._attachEventHandlers()\r\n },\r\n _attachEventHandlers: function() {\r\n this._detachEventHandlers();\r\n if (this.option(\"disabled\")) {\r\n return\r\n }\r\n var NAME = this.NAME;\r\n this._createEventData();\r\n each(ACTION_TO_EVENT_MAP, function(actionName, eventName) {\r\n var action = this._createActionByOption(actionName, {\r\n context: this\r\n });\r\n eventName = addNamespace(eventName, NAME);\r\n eventsEngine.on(this.$element(), eventName, this._eventData, (function(e) {\r\n return action({\r\n event: e\r\n })\r\n }))\r\n }.bind(this))\r\n },\r\n _createEventData: function() {\r\n this._eventData = {\r\n elastic: this.option(\"elastic\"),\r\n itemSizeFunc: this.option(\"itemSizeFunc\"),\r\n direction: this.option(\"direction\"),\r\n immediate: this.option(\"immediate\"),\r\n immediateTimeout: this.option(\"immediateTimeout\")\r\n }\r\n },\r\n _detachEventHandlers: function() {\r\n eventsEngine.off(this.$element(), \".\" + DX_SWIPEABLE)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"disabled\":\r\n case \"onStart\":\r\n case \"onUpdated\":\r\n case \"onEnd\":\r\n case \"onCancel\":\r\n case \"elastic\":\r\n case \"immediate\":\r\n case \"itemSizeFunc\":\r\n case \"direction\":\r\n this._detachEventHandlers();\r\n this._attachEventHandlers();\r\n break;\r\n case \"rtlEnabled\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _useTemplates: function() {\r\n return false\r\n }\r\n});\r\nname(Swipeable, DX_SWIPEABLE);\r\nexport default Swipeable;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/calendar/m_calendar.selection.strategy.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nclass CalendarSelectionStrategy {\r\n constructor(component) {\r\n this.calendar = component\r\n }\r\n dateOption(optionName) {\r\n return this.calendar._dateOption(optionName)\r\n }\r\n dateValue(value, e) {\r\n this.calendar._dateValue(value, e)\r\n }\r\n skipNavigate() {\r\n this.calendar._skipNavigate = true\r\n }\r\n updateAriaSelected(value, previousValue) {\r\n this.calendar._updateAriaSelected(value, previousValue);\r\n if (value[0] && this.calendar.option(\"currentDate\").getTime() === value[0].getTime()) {\r\n this.calendar._updateAriaId(value[0])\r\n }\r\n }\r\n processValueChanged(value, previousValue) {\r\n if (isDefined(value) && !Array.isArray(value)) {\r\n value = [value]\r\n }\r\n if (isDefined(previousValue) && !Array.isArray(previousValue)) {\r\n previousValue = [previousValue]\r\n }\r\n value = (null === value || void 0 === value ? void 0 : value.map(item => this._convertToDate(item))) || [];\r\n previousValue = (null === previousValue || void 0 === previousValue ? void 0 : previousValue.map(item => this._convertToDate(item))) || [];\r\n this._updateViewsValue(value);\r\n this.updateAriaSelected(value, previousValue);\r\n if (!this._currentDateChanged) {\r\n this.calendar._initCurrentDate()\r\n }\r\n this._currentDateChanged = false\r\n }\r\n _isDateDisabled(date) {\r\n var min = this.calendar._dateOption(\"min\");\r\n var max = this.calendar._dateOption(\"max\");\r\n var isLessThanMin = isDefined(min) && date < min && !dateUtils.sameDate(min, date);\r\n var isBiggerThanMax = isDefined(max) && date > max && !dateUtils.sameDate(max, date);\r\n return this.calendar._view.isDateDisabled(date) || isLessThanMin || isBiggerThanMax\r\n }\r\n _getLowestDateInArray(dates) {\r\n if (dates.length) {\r\n return new Date(Math.min(...dates))\r\n }\r\n }\r\n _convertToDate(value) {\r\n return this.calendar._convertToDate(value)\r\n }\r\n _isMaxZoomLevel() {\r\n return this.calendar._isMaxZoomLevel()\r\n }\r\n _updateViewsOption(optionName, optionValue) {\r\n this.calendar._updateViewsOption(optionName, optionValue)\r\n }\r\n _updateViewsValue(value) {\r\n this._updateViewsOption(\"value\", value)\r\n }\r\n _updateCurrentDate(value) {\r\n this.calendar.option(\"currentDate\", null !== value && void 0 !== value ? value : new Date)\r\n }\r\n _shouldHandleWeekNumberClick() {\r\n var {\r\n selectionMode: selectionMode,\r\n selectWeekOnClick: selectWeekOnClick\r\n } = this.calendar.option();\r\n return selectWeekOnClick && \"single\" !== selectionMode\r\n }\r\n}\r\nexport default CalendarSelectionStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/calendar/m_calendar.multiple.selection.strategy.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport CalendarSelectionStrategy from \"./m_calendar.selection.strategy\";\r\nclass CalendarMultiSelectionStrategy extends CalendarSelectionStrategy {\r\n constructor(component) {\r\n super(component);\r\n this.NAME = \"MultiSelection\"\r\n }\r\n getViewOptions() {\r\n return {\r\n value: this.dateOption(\"value\"),\r\n range: [],\r\n selectionMode: \"multiple\",\r\n onWeekNumberClick: this._shouldHandleWeekNumberClick() ? this._weekNumberClickHandler.bind(this) : null\r\n }\r\n }\r\n selectValue(selectedValue, e) {\r\n var value = [...this.dateOption(\"value\")];\r\n var alreadySelectedIndex = value.findIndex(date => (null === date || void 0 === date ? void 0 : date.toDateString()) === selectedValue.toDateString());\r\n if (alreadySelectedIndex > -1) {\r\n value.splice(alreadySelectedIndex, 1)\r\n } else {\r\n value.push(selectedValue)\r\n }\r\n this.skipNavigate();\r\n this._updateCurrentDate(selectedValue);\r\n this._currentDateChanged = true;\r\n this.dateValue(value, e)\r\n }\r\n updateAriaSelected(value, previousValue) {\r\n null !== value && void 0 !== value ? value : value = this.dateOption(\"value\");\r\n null !== previousValue && void 0 !== previousValue ? previousValue : previousValue = [];\r\n super.updateAriaSelected(value, previousValue)\r\n }\r\n getDefaultCurrentDate() {\r\n var dates = this.dateOption(\"value\").filter(value => value);\r\n return this._getLowestDateInArray(dates)\r\n }\r\n restoreValue() {\r\n this.calendar.option(\"value\", [])\r\n }\r\n _weekNumberClickHandler(_ref) {\r\n var {\r\n rowDates: rowDates,\r\n event: event\r\n } = _ref;\r\n var selectedDates = rowDates.filter(date => !this._isDateDisabled(date));\r\n this.dateValue(selectedDates, event)\r\n }\r\n}\r\nexport default CalendarMultiSelectionStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/calendar/m_calendar.navigator.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../../../core/renderer\";\r\nimport Button from \"../../../ui/button\";\r\nimport {\r\n isFluent,\r\n isMaterial\r\n} from \"../../../ui/themes\";\r\nimport Widget from \"../widget\";\r\nvar CALENDAR_NAVIGATOR_CLASS = \"dx-calendar-navigator\";\r\nvar CALENDAR_NAVIGATOR_PREVIOUS_MONTH_CLASS = \"dx-calendar-navigator-previous-month\";\r\nvar CALENDAR_NAVIGATOR_NEXT_MONTH_CLASS = \"dx-calendar-navigator-next-month\";\r\nvar CALENDAR_NAVIGATOR_PREVIOUS_VIEW_CLASS = \"dx-calendar-navigator-previous-view\";\r\nvar CALENDAR_NAVIGATOR_NEXT_VIEW_CLASS = \"dx-calendar-navigator-next-view\";\r\nvar CALENDAR_NAVIGATOR_DISABLED_LINK_CLASS = \"dx-calendar-disabled-navigator-link\";\r\nvar CALENDAR_NAVIGATOR_CAPTION_BUTTON_CLASS = \"dx-calendar-caption-button\";\r\nvar BUTTON_TEXT_CLASS = \"dx-button-text\";\r\nclass Navigator extends Widget {\r\n _getDefaultOptions() {\r\n return _extends(_extends({}, super._getDefaultOptions()), {\r\n onClick: void 0,\r\n onCaptionClick: void 0,\r\n type: \"normal\",\r\n stylingMode: \"outlined\",\r\n text: \"\"\r\n })\r\n }\r\n _defaultOptionsRules() {\r\n return super._defaultOptionsRules().concat([{\r\n device: () => isMaterial(),\r\n options: {\r\n type: \"default\",\r\n stylingMode: \"text\"\r\n }\r\n }, {\r\n device: () => isFluent(),\r\n options: {\r\n type: \"normal\",\r\n stylingMode: \"text\"\r\n }\r\n }])\r\n }\r\n _init() {\r\n super._init();\r\n this._initActions()\r\n }\r\n _initActions() {\r\n this._clickAction = this._createActionByOption(\"onClick\");\r\n this._captionClickAction = this._createActionByOption(\"onCaptionClick\")\r\n }\r\n _initMarkup() {\r\n super._initMarkup();\r\n $(this.element()).addClass(CALENDAR_NAVIGATOR_CLASS);\r\n this._renderButtons();\r\n this._renderCaption()\r\n }\r\n _renderButtons() {\r\n var {\r\n rtlEnabled: rtlEnabled,\r\n type: type,\r\n stylingMode: stylingMode,\r\n focusStateEnabled: focusStateEnabled\r\n } = this.option();\r\n this._prevButton = this._createComponent($(\"<div>\"), Button, {\r\n focusStateEnabled: focusStateEnabled,\r\n icon: rtlEnabled ? \"chevronright\" : \"chevronleft\",\r\n onClick: e => {\r\n this._clickAction({\r\n direction: -1,\r\n event: e\r\n })\r\n },\r\n type: type,\r\n stylingMode: stylingMode,\r\n integrationOptions: {}\r\n });\r\n var $prevButton = $(this._prevButton.element()).addClass(CALENDAR_NAVIGATOR_PREVIOUS_VIEW_CLASS).addClass(CALENDAR_NAVIGATOR_PREVIOUS_MONTH_CLASS);\r\n this._nextButton = this._createComponent($(\"<div>\"), Button, {\r\n focusStateEnabled: focusStateEnabled,\r\n icon: rtlEnabled ? \"chevronleft\" : \"chevronright\",\r\n onClick: e => {\r\n this._clickAction({\r\n direction: 1,\r\n event: e\r\n })\r\n },\r\n type: type,\r\n stylingMode: stylingMode,\r\n integrationOptions: {}\r\n });\r\n var $nextButton = $(this._nextButton.element()).addClass(CALENDAR_NAVIGATOR_NEXT_VIEW_CLASS).addClass(CALENDAR_NAVIGATOR_NEXT_MONTH_CLASS);\r\n this._caption = this._createComponent($(\"<div>\").addClass(CALENDAR_NAVIGATOR_CAPTION_BUTTON_CLASS), Button, {\r\n focusStateEnabled: focusStateEnabled,\r\n onClick: e => {\r\n this._captionClickAction({\r\n event: e\r\n })\r\n },\r\n type: type,\r\n stylingMode: stylingMode,\r\n template: (_, content) => {\r\n var {\r\n text: text\r\n } = this.option();\r\n var viewCaptionTexts = text.split(\" - \");\r\n viewCaptionTexts.forEach(captionText => {\r\n $(content).append($(\"<span>\").addClass(BUTTON_TEXT_CLASS).text(captionText))\r\n })\r\n },\r\n integrationOptions: {}\r\n });\r\n var $caption = this._caption.$element();\r\n this.$element().append($prevButton, $caption, $nextButton)\r\n }\r\n _renderCaption() {\r\n var _a;\r\n null === (_a = this._caption) || void 0 === _a ? void 0 : _a.option(\"text\", this.option(\"text\"))\r\n }\r\n toggleButton(buttonPrefix, value) {\r\n var buttonName = \"_\".concat(buttonPrefix, \"Button\");\r\n var button = this[buttonName];\r\n if (button) {\r\n button.option(\"disabled\", value);\r\n button.$element().toggleClass(CALENDAR_NAVIGATOR_DISABLED_LINK_CLASS, value)\r\n }\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"text\":\r\n this._renderCaption();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n}\r\nexport default Navigator;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/calendar/m_calendar.range.selection.strategy.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport CalendarSelectionStrategy from \"./m_calendar.selection.strategy\";\r\nvar DAY_INTERVAL = 864e5;\r\nclass CalendarRangeSelectionStrategy extends CalendarSelectionStrategy {\r\n constructor(component) {\r\n super(component);\r\n this.NAME = \"RangeSelection\"\r\n }\r\n getViewOptions() {\r\n var value = this._getValue();\r\n var range = this._getDaysInRange(value[0], value[1]);\r\n return {\r\n value: value,\r\n range: range,\r\n selectionMode: \"range\",\r\n onCellHover: this._cellHoverHandler.bind(this),\r\n onWeekNumberClick: this._shouldHandleWeekNumberClick() ? this._weekNumberClickHandler.bind(this) : null\r\n }\r\n }\r\n selectValue(selectedValue, e) {\r\n var [startDate, endDate] = this._getValue();\r\n this.skipNavigate();\r\n this._updateCurrentDate(selectedValue);\r\n this._currentDateChanged = true;\r\n if (true === this.calendar.option(\"_allowChangeSelectionOrder\")) {\r\n this.calendar._valueSelected = true;\r\n if (\"startDate\" === this.calendar.option(\"_currentSelection\")) {\r\n if (this.calendar._convertToDate(selectedValue) > this.calendar._convertToDate(endDate)) {\r\n this.dateValue([selectedValue, null], e)\r\n } else {\r\n this.dateValue([selectedValue, endDate], e)\r\n }\r\n } else if (this.calendar._convertToDate(selectedValue) >= this.calendar._convertToDate(startDate)) {\r\n this.dateValue([startDate, selectedValue], e)\r\n } else {\r\n this.dateValue([selectedValue, null], e)\r\n }\r\n } else if (!startDate || endDate) {\r\n this.dateValue([selectedValue, null], e)\r\n } else {\r\n this.dateValue(startDate < selectedValue ? [startDate, selectedValue] : [selectedValue, startDate], e)\r\n }\r\n }\r\n updateAriaSelected(value, previousValue) {\r\n null !== value && void 0 !== value ? value : value = this._getValue();\r\n null !== previousValue && void 0 !== previousValue ? previousValue : previousValue = [];\r\n super.updateAriaSelected(value, previousValue)\r\n }\r\n processValueChanged(value, previousValue) {\r\n super.processValueChanged(value, previousValue);\r\n var range = this._getRange();\r\n this._updateViewsOption(\"range\", range)\r\n }\r\n getDefaultCurrentDate() {\r\n var {\r\n _allowChangeSelectionOrder: _allowChangeSelectionOrder,\r\n _currentSelection: _currentSelection\r\n } = this.calendar.option();\r\n var value = this.dateOption(\"value\");\r\n if (_allowChangeSelectionOrder) {\r\n if (\"startDate\" === _currentSelection && value[0]) {\r\n return value[0]\r\n }\r\n if (\"endDate\" === _currentSelection && value[1]) {\r\n return value[1]\r\n }\r\n }\r\n var dates = value.filter(value => value);\r\n return this._getLowestDateInArray(dates)\r\n }\r\n restoreValue() {\r\n this.calendar.option(\"value\", [null, null])\r\n }\r\n _getValue() {\r\n var value = this.dateOption(\"value\");\r\n if (!value.length) {\r\n return value\r\n }\r\n var [startDate, endDate] = value;\r\n if (startDate && endDate && startDate > endDate) {\r\n [startDate, endDate] = [endDate, startDate]\r\n }\r\n return [startDate, endDate]\r\n }\r\n _getRange() {\r\n var [startDate, endDate] = this._getValue();\r\n return this._getDaysInRange(startDate, endDate)\r\n }\r\n _getDaysInRange(startDate, endDate) {\r\n if (!startDate || !endDate) {\r\n return []\r\n }\r\n var {\r\n currentDate: currentDate,\r\n viewsCount: viewsCount\r\n } = this.calendar.option();\r\n var isAdditionalViewDate = this.calendar._isAdditionalViewDate(currentDate);\r\n var firstDateInViews = dateUtils.getFirstMonthDate(currentDate, isAdditionalViewDate ? -2 : -1);\r\n var lastDateInViews = dateUtils.getLastMonthDate(currentDate, isAdditionalViewDate ? 1 : viewsCount);\r\n var rangeStartDate = new Date(Math.max(firstDateInViews, startDate));\r\n var rangeEndDate = new Date(Math.min(lastDateInViews, endDate));\r\n return [...dateUtils.getDatesOfInterval(rangeStartDate, rangeEndDate, DAY_INTERVAL), rangeEndDate]\r\n }\r\n _cellHoverHandler(e) {\r\n var isMaxZoomLevel = this._isMaxZoomLevel();\r\n var [startDate, endDate] = this._getValue();\r\n var {\r\n _allowChangeSelectionOrder: _allowChangeSelectionOrder,\r\n _currentSelection: _currentSelection\r\n } = this.calendar.option();\r\n if (isMaxZoomLevel) {\r\n var skipHoveredRange = _allowChangeSelectionOrder && \"startDate\" === _currentSelection;\r\n if (startDate && !endDate && !skipHoveredRange) {\r\n if (e.value > startDate) {\r\n this._updateViewsOption(\"hoveredRange\", this._getDaysInRange(startDate, e.value));\r\n return\r\n }\r\n } else if (!startDate && endDate && !(_allowChangeSelectionOrder && \"endDate\" === _currentSelection)) {\r\n if (e.value < endDate) {\r\n this._updateViewsOption(\"hoveredRange\", this._getDaysInRange(e.value, endDate));\r\n return\r\n }\r\n } else if (startDate && endDate) {\r\n if (\"startDate\" === _currentSelection && e.value < startDate) {\r\n this._updateViewsOption(\"hoveredRange\", this._getDaysInRange(e.value, startDate));\r\n return\r\n }\r\n if (\"endDate\" === _currentSelection && e.value > endDate) {\r\n this._updateViewsOption(\"hoveredRange\", this._getDaysInRange(endDate, e.value));\r\n return\r\n }\r\n }\r\n this._updateViewsOption(\"hoveredRange\", [])\r\n }\r\n }\r\n _weekNumberClickHandler(_ref) {\r\n var {\r\n rowDates: rowDates,\r\n event: event\r\n } = _ref;\r\n var selectedDates = rowDates.filter(date => !this._isDateDisabled(date));\r\n var value = selectedDates.length ? [selectedDates[0], selectedDates[selectedDates.length - 1]] : [null, null];\r\n this.dateValue(value, event)\r\n }\r\n}\r\nexport default CalendarRangeSelectionStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/calendar/m_calendar.single.selection.strategy.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport CalendarSelectionStrategy from \"./m_calendar.selection.strategy\";\r\nclass CalendarSingleSelectionStrategy extends CalendarSelectionStrategy {\r\n constructor(component) {\r\n super(component);\r\n this.NAME = \"SingleSelection\"\r\n }\r\n getViewOptions() {\r\n return {\r\n value: this.dateOption(\"value\"),\r\n range: [],\r\n selectionMode: \"single\"\r\n }\r\n }\r\n selectValue(selectedValue, e) {\r\n this.skipNavigate();\r\n this.dateValue(selectedValue, e)\r\n }\r\n updateAriaSelected(value, previousValue) {\r\n null !== value && void 0 !== value ? value : value = [this.dateOption(\"value\")];\r\n null !== previousValue && void 0 !== previousValue ? previousValue : previousValue = [];\r\n super.updateAriaSelected(value, previousValue)\r\n }\r\n getDefaultCurrentDate() {\r\n var date = this.dateOption(\"value\");\r\n if (\"\" === date) {\r\n return new Date\r\n }\r\n return date\r\n }\r\n restoreValue() {\r\n this.calendar.option(\"value\", null)\r\n }\r\n _updateViewsValue(value) {\r\n this._updateViewsOption(\"value\", value[0])\r\n }\r\n}\r\nexport default CalendarSingleSelectionStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/calendar/m_calendar.base_view.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport {\r\n 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 {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport coreDateUtils from \"../../../core/utils/date\";\r\nimport dateSerialization from \"../../../core/utils/date_serialization\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../events/click\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n start as hoverStartEventName\r\n} from \"../../../events/hover\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport Widget from \"../../../ui/widget/ui.widget\";\r\nvar {\r\n abstract: abstract\r\n} = Widget;\r\nvar CALENDAR_OTHER_VIEW_CLASS = \"dx-calendar-other-view\";\r\nvar CALENDAR_CELL_CLASS = \"dx-calendar-cell\";\r\nvar CALENDAR_CELL_START_CLASS = \"dx-calendar-cell-start\";\r\nvar CALENDAR_CELL_END_CLASS = \"dx-calendar-cell-end\";\r\nvar CALENDAR_CELL_START_IN_ROW_CLASS = \"dx-calendar-cell-start-in-row\";\r\nvar CALENDAR_CELL_END_IN_ROW_CLASS = \"dx-calendar-cell-end-in-row\";\r\nvar CALENDAR_WEEK_NUMBER_CELL_CLASS = \"dx-calendar-week-number-cell\";\r\nvar CALENDAR_EMPTY_CELL_CLASS = \"dx-calendar-empty-cell\";\r\nvar CALENDAR_TODAY_CLASS = \"dx-calendar-today\";\r\nvar CALENDAR_SELECTED_DATE_CLASS = \"dx-calendar-selected-date\";\r\nvar CALENDAR_CELL_IN_RANGE_CLASS = \"dx-calendar-cell-in-range\";\r\nvar CALENDAR_CELL_RANGE_HOVER_CLASS = \"dx-calendar-cell-range-hover\";\r\nvar CALENDAR_CELL_RANGE_HOVER_START_CLASS = \"dx-calendar-cell-range-hover-start\";\r\nvar CALENDAR_CELL_RANGE_HOVER_END_CLASS = \"dx-calendar-cell-range-hover-end\";\r\nvar CALENDAR_RANGE_START_DATE_CLASS = \"dx-calendar-range-start-date\";\r\nvar CALENDAR_RANGE_END_DATE_CLASS = \"dx-calendar-range-end-date\";\r\nvar CALENDAR_CONTOURED_DATE_CLASS = \"dx-calendar-contoured-date\";\r\nvar NOT_WEEK_CELL_SELECTOR = \"td:not(.\".concat(CALENDAR_WEEK_NUMBER_CELL_CLASS, \")\");\r\nvar CALENDAR_DXCLICK_EVENT_NAME = addNamespace(clickEventName, \"dxCalendar\");\r\nvar CALENDAR_DXHOVERSTART_EVENT_NAME = addNamespace(hoverStartEventName, \"dxCalendar\");\r\nvar CALENDAR_DATE_VALUE_KEY = \"dxDateValueKey\";\r\nvar DAY_INTERVAL = 864e5;\r\nvar BaseView = Widget.inherit({\r\n _getViewName: () => \"base\",\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n date: new Date,\r\n focusStateEnabled: false,\r\n cellTemplate: null,\r\n disabledDates: null,\r\n onCellClick: null,\r\n onCellHover: null,\r\n onWeekNumberClick: null,\r\n rowCount: 3,\r\n colCount: 4,\r\n allowValueSelection: true,\r\n _todayDate: () => new Date\r\n })\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this._renderImpl()\r\n },\r\n _renderImpl() {\r\n this.$element().append(this._createTable());\r\n this._createDisabledDatesHandler();\r\n this._renderBody();\r\n this._renderContouredDate();\r\n this._renderValue();\r\n this._renderRange();\r\n this._renderEvents()\r\n },\r\n _createTable() {\r\n this._$table = $(\"<table>\");\r\n var localizedWidgetName = messageLocalization.format(\"dxCalendar-ariaWidgetName\");\r\n this.setAria({\r\n label: localizedWidgetName,\r\n role: \"grid\"\r\n }, this._$table);\r\n return this._$table\r\n },\r\n _renderBody() {\r\n this.$body = $(\"<tbody>\").appendTo(this._$table);\r\n var rowData = {\r\n cellDate: this._getFirstCellData(),\r\n prevCellDate: null\r\n };\r\n for (var rowIndex = 0, rowCount = this.option(\"rowCount\"); rowIndex < rowCount; rowIndex++) {\r\n rowData.row = this._createRow();\r\n for (var colIndex = 0, colCount = this.option(\"colCount\"); colIndex < colCount; colIndex++) {\r\n this._renderCell(rowData, colIndex)\r\n }\r\n this._renderWeekNumberCell(rowData)\r\n }\r\n },\r\n _createRow() {\r\n var row = domAdapter.createElement(\"tr\");\r\n this.setAria(\"role\", \"row\", $(row));\r\n this.$body.get(0).appendChild(row);\r\n return row\r\n },\r\n _createCell(cellDate, cellIndex) {\r\n var cell = domAdapter.createElement(\"td\");\r\n var $cell = $(cell);\r\n cell.className = this._getClassNameByDate(cellDate, cellIndex);\r\n cell.setAttribute(\"data-value\", dateSerialization.serializeDate(cellDate, coreDateUtils.getShortDateFormat()));\r\n elementData(cell, CALENDAR_DATE_VALUE_KEY, cellDate);\r\n this.setAria({\r\n role: \"gridcell\",\r\n label: this.getCellAriaLabel(cellDate)\r\n }, $cell);\r\n return {\r\n cell: cell,\r\n $cell: $cell\r\n }\r\n },\r\n _renderCell(params, cellIndex) {\r\n var {\r\n cellDate: cellDate,\r\n prevCellDate: prevCellDate,\r\n row: row\r\n } = params;\r\n if (prevCellDate) {\r\n coreDateUtils.fixTimezoneGap(prevCellDate, cellDate)\r\n }\r\n params.prevCellDate = cellDate;\r\n var {\r\n cell: cell,\r\n $cell: $cell\r\n } = this._createCell(cellDate, cellIndex);\r\n var cellTemplate = this.option(\"cellTemplate\");\r\n $(row).append(cell);\r\n if (cellTemplate) {\r\n cellTemplate.render(this._prepareCellTemplateData(cellDate, cellIndex, $cell))\r\n } else {\r\n cell.innerHTML = this._getCellText(cellDate)\r\n }\r\n params.cellDate = this._getNextCellData(cellDate)\r\n },\r\n _getClassNameByDate(cellDate, cellIndex) {\r\n var className = CALENDAR_CELL_CLASS;\r\n if (this._isTodayCell(cellDate)) {\r\n className += \" \".concat(CALENDAR_TODAY_CLASS)\r\n }\r\n if (this._isDateOutOfRange(cellDate) || this.isDateDisabled(cellDate)) {\r\n className += \" \".concat(CALENDAR_EMPTY_CELL_CLASS)\r\n }\r\n if (this._isOtherView(cellDate)) {\r\n className += \" \".concat(CALENDAR_OTHER_VIEW_CLASS)\r\n }\r\n if (\"range\" === this.option(\"selectionMode\")) {\r\n if (0 === cellIndex) {\r\n className += \" \".concat(CALENDAR_CELL_START_IN_ROW_CLASS)\r\n }\r\n if (cellIndex === this.option(\"colCount\") - 1) {\r\n className += \" \".concat(CALENDAR_CELL_END_IN_ROW_CLASS)\r\n }\r\n if (this._isStartDayOfMonth(cellDate)) {\r\n className += \" \".concat(CALENDAR_CELL_START_CLASS)\r\n }\r\n if (this._isEndDayOfMonth(cellDate)) {\r\n className += \" \".concat(CALENDAR_CELL_END_CLASS)\r\n }\r\n }\r\n return className\r\n },\r\n _prepareCellTemplateData(cellDate, cellIndex, $cell) {\r\n var isDateCell = cellDate instanceof Date;\r\n var text = isDateCell ? this._getCellText(cellDate) : cellDate;\r\n var date = isDateCell ? cellDate : void 0;\r\n var view = this._getViewName();\r\n return {\r\n model: {\r\n text: text,\r\n date: date,\r\n view: view\r\n },\r\n container: getPublicElement($cell),\r\n index: cellIndex\r\n }\r\n },\r\n _renderEvents() {\r\n this._createCellClickAction();\r\n eventsEngine.off(this._$table, CALENDAR_DXCLICK_EVENT_NAME);\r\n eventsEngine.on(this._$table, CALENDAR_DXCLICK_EVENT_NAME, NOT_WEEK_CELL_SELECTOR, e => {\r\n if (!$(e.currentTarget).hasClass(CALENDAR_EMPTY_CELL_CLASS)) {\r\n this._cellClickAction({\r\n event: e,\r\n value: $(e.currentTarget).data(CALENDAR_DATE_VALUE_KEY)\r\n })\r\n }\r\n });\r\n var {\r\n selectionMode: selectionMode\r\n } = this.option();\r\n eventsEngine.off(this._$table, CALENDAR_DXHOVERSTART_EVENT_NAME);\r\n if (\"range\" === selectionMode) {\r\n this._createCellHoverAction();\r\n eventsEngine.on(this._$table, CALENDAR_DXHOVERSTART_EVENT_NAME, NOT_WEEK_CELL_SELECTOR, e => {\r\n if (!$(e.currentTarget).hasClass(CALENDAR_EMPTY_CELL_CLASS)) {\r\n this._cellHoverAction({\r\n event: e,\r\n value: $(e.currentTarget).data(CALENDAR_DATE_VALUE_KEY)\r\n })\r\n }\r\n })\r\n }\r\n if (\"single\" !== selectionMode) {\r\n this._createWeekNumberCellClickAction();\r\n eventsEngine.on(this._$table, CALENDAR_DXCLICK_EVENT_NAME, \".\".concat(CALENDAR_WEEK_NUMBER_CELL_CLASS), e => {\r\n var $row = $(e.currentTarget).closest(\"tr\");\r\n var firstDateInRow = $row.find(\".\".concat(CALENDAR_CELL_CLASS)).first().data(CALENDAR_DATE_VALUE_KEY);\r\n var lastDateInRow = $row.find(\".\".concat(CALENDAR_CELL_CLASS)).last().data(CALENDAR_DATE_VALUE_KEY);\r\n var rowDates = [...coreDateUtils.getDatesOfInterval(firstDateInRow, lastDateInRow, DAY_INTERVAL), lastDateInRow];\r\n this._weekNumberCellClickAction({\r\n event: e,\r\n rowDates: rowDates\r\n })\r\n })\r\n }\r\n },\r\n _createCellClickAction() {\r\n this._cellClickAction = this._createActionByOption(\"onCellClick\")\r\n },\r\n _createCellHoverAction() {\r\n this._cellHoverAction = this._createActionByOption(\"onCellHover\")\r\n },\r\n _createWeekNumberCellClickAction() {\r\n this._weekNumberCellClickAction = this._createActionByOption(\"onWeekNumberClick\")\r\n },\r\n _createDisabledDatesHandler() {\r\n var disabledDates = this.option(\"disabledDates\");\r\n this._disabledDatesHandler = Array.isArray(disabledDates) ? this._getDefaultDisabledDatesHandler(disabledDates) : disabledDates || noop\r\n },\r\n _getDefaultDisabledDatesHandler: disabledDates => noop,\r\n _isTodayCell: abstract,\r\n _isDateOutOfRange: abstract,\r\n isDateDisabled(cellDate) {\r\n var dateParts = {\r\n date: cellDate,\r\n view: this._getViewName()\r\n };\r\n return this._disabledDatesHandler(dateParts)\r\n },\r\n _isOtherView: abstract,\r\n _isStartDayOfMonth: abstract,\r\n _isEndDayOfMonth: abstract,\r\n _getCellText: abstract,\r\n _getFirstCellData: abstract,\r\n _getNextCellData: abstract,\r\n _renderContouredDate(contouredDate) {\r\n if (!this.option(\"focusStateEnabled\")) {\r\n return\r\n }\r\n contouredDate = contouredDate || this.option(\"contouredDate\");\r\n var $oldContouredCell = this._getContouredCell();\r\n var $newContouredCell = this._getCellByDate(contouredDate);\r\n $oldContouredCell.removeClass(CALENDAR_CONTOURED_DATE_CLASS);\r\n if (contouredDate) {\r\n $newContouredCell.addClass(CALENDAR_CONTOURED_DATE_CLASS)\r\n }\r\n },\r\n _getContouredCell() {\r\n return this._$table.find(\".\".concat(CALENDAR_CONTOURED_DATE_CLASS))\r\n },\r\n _renderValue() {\r\n if (!this.option(\"allowValueSelection\")) {\r\n return\r\n }\r\n var value = this.option(\"value\");\r\n if (!Array.isArray(value)) {\r\n value = [value]\r\n }\r\n this._updateSelectedClass(value)\r\n },\r\n _updateSelectedClass(value) {\r\n var _a;\r\n if (this._isRangeMode() && !this._isMonthView()) {\r\n return\r\n }\r\n null === (_a = this._$selectedCells) || void 0 === _a ? void 0 : _a.forEach($cell => {\r\n $cell.removeClass(CALENDAR_SELECTED_DATE_CLASS)\r\n });\r\n this._$selectedCells = value.map(value => this._getCellByDate(value));\r\n this._$selectedCells.forEach($cell => {\r\n $cell.addClass(CALENDAR_SELECTED_DATE_CLASS)\r\n })\r\n },\r\n _renderRange() {\r\n var _a, _b, _c, _d, _e, _f, _g, _h;\r\n var {\r\n allowValueSelection: allowValueSelection,\r\n value: value,\r\n range: range\r\n } = this.option();\r\n if (!allowValueSelection || !this._isRangeMode() || !this._isMonthView()) {\r\n return\r\n }\r\n null === (_a = this._$rangeCells) || void 0 === _a ? void 0 : _a.forEach($cell => {\r\n $cell.removeClass(CALENDAR_CELL_IN_RANGE_CLASS)\r\n });\r\n null === (_b = this._$hoveredRangeCells) || void 0 === _b ? void 0 : _b.forEach($cell => {\r\n $cell.removeClass(CALENDAR_CELL_RANGE_HOVER_CLASS)\r\n });\r\n null === (_c = this._$rangeStartHoverCell) || void 0 === _c ? void 0 : _c.removeClass(CALENDAR_CELL_RANGE_HOVER_START_CLASS);\r\n null === (_d = this._$rangeEndHoverCell) || void 0 === _d ? void 0 : _d.removeClass(CALENDAR_CELL_RANGE_HOVER_END_CLASS);\r\n null === (_e = this._$rangeStartDateCell) || void 0 === _e ? void 0 : _e.removeClass(CALENDAR_RANGE_START_DATE_CLASS);\r\n null === (_f = this._$rangeEndDateCell) || void 0 === _f ? void 0 : _f.removeClass(CALENDAR_RANGE_END_DATE_CLASS);\r\n this._$rangeCells = range.map(value => this._getCellByDate(value));\r\n this._$rangeStartDateCell = this._getCellByDate(value[0]);\r\n this._$rangeEndDateCell = this._getCellByDate(value[1]);\r\n this._$rangeCells.forEach($cell => {\r\n $cell.addClass(CALENDAR_CELL_IN_RANGE_CLASS)\r\n });\r\n null === (_g = this._$rangeStartDateCell) || void 0 === _g ? void 0 : _g.addClass(CALENDAR_RANGE_START_DATE_CLASS);\r\n null === (_h = this._$rangeEndDateCell) || void 0 === _h ? void 0 : _h.addClass(CALENDAR_RANGE_END_DATE_CLASS)\r\n },\r\n _renderHoveredRange() {\r\n var _a, _b, _c, _d, _e;\r\n var {\r\n allowValueSelection: allowValueSelection,\r\n hoveredRange: hoveredRange\r\n } = this.option();\r\n if (!allowValueSelection || !this._isRangeMode() || !this._isMonthView()) {\r\n return\r\n }\r\n null === (_a = this._$hoveredRangeCells) || void 0 === _a ? void 0 : _a.forEach($cell => {\r\n $cell.removeClass(CALENDAR_CELL_RANGE_HOVER_CLASS)\r\n });\r\n null === (_b = this._$rangeStartHoverCell) || void 0 === _b ? void 0 : _b.removeClass(CALENDAR_CELL_RANGE_HOVER_START_CLASS);\r\n null === (_c = this._$rangeEndHoverCell) || void 0 === _c ? void 0 : _c.removeClass(CALENDAR_CELL_RANGE_HOVER_END_CLASS);\r\n this._$hoveredRangeCells = hoveredRange.map(value => this._getCellByDate(value));\r\n this._$rangeStartHoverCell = this._getCellByDate(hoveredRange[0]);\r\n this._$rangeEndHoverCell = this._getCellByDate(hoveredRange[hoveredRange.length - 1]);\r\n this._$hoveredRangeCells.forEach($cell => {\r\n $cell.addClass(CALENDAR_CELL_RANGE_HOVER_CLASS)\r\n });\r\n null === (_d = this._$rangeStartHoverCell) || void 0 === _d ? void 0 : _d.addClass(CALENDAR_CELL_RANGE_HOVER_START_CLASS);\r\n null === (_e = this._$rangeEndHoverCell) || void 0 === _e ? void 0 : _e.addClass(CALENDAR_CELL_RANGE_HOVER_END_CLASS)\r\n },\r\n _isMonthView() {\r\n return \"month\" === this.option(\"zoomLevel\")\r\n },\r\n _isRangeMode() {\r\n return \"range\" === this.option(\"selectionMode\")\r\n },\r\n getCellAriaLabel(date) {\r\n return this._getCellText(date)\r\n },\r\n _getFirstAvailableDate() {\r\n var date = this.option(\"date\");\r\n var min = this.option(\"min\");\r\n date = coreDateUtils.getViewFirstCellDate(this._getViewName(), date);\r\n return new Date(min && date < min ? min : date)\r\n },\r\n _getCellByDate: abstract,\r\n isBoundary: abstract,\r\n _optionChanged(args) {\r\n var {\r\n name: name,\r\n value: value\r\n } = args;\r\n switch (name) {\r\n case \"value\":\r\n this._renderValue();\r\n break;\r\n case \"range\":\r\n this._renderRange();\r\n break;\r\n case \"hoveredRange\":\r\n this._renderHoveredRange();\r\n break;\r\n case \"contouredDate\":\r\n this._renderContouredDate(value);\r\n break;\r\n case \"onCellClick\":\r\n this._createCellClickAction();\r\n break;\r\n case \"onCellHover\":\r\n this._createCellHoverAction();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n case \"disabledDates\":\r\n case \"cellTemplate\":\r\n case \"selectionMode\":\r\n this._invalidate();\r\n break;\r\n case \"_todayDate\":\r\n this._renderBody();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default BaseView;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/calendar/m_calendar.views.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport dateSerialization from \"../../../core/utils/date_serialization\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport dateLocalization from \"../../../localization/date\";\r\nimport BaseView from \"./m_calendar.base_view\";\r\nvar CALENDAR_OTHER_MONTH_CLASS = \"dx-calendar-other-month\";\r\nvar CALENDAR_OTHER_VIEW_CLASS = \"dx-calendar-other-view\";\r\nvar CALENDAR_WEEK_NUMBER_CELL_CLASS = \"dx-calendar-week-number-cell\";\r\nvar CALENDAR_WEEK_SELECTION_CLASS = \"dx-calendar-week-selection\";\r\nvar Views = {\r\n month: BaseView.inherit({\r\n _getViewName: () => \"month\",\r\n _getCurrentDateFormat: () => \"longdate\",\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n firstDayOfWeek: 0,\r\n rowCount: 6,\r\n colCount: 7\r\n })\r\n },\r\n _renderImpl() {\r\n this.callBase();\r\n this._renderHeader()\r\n },\r\n _renderBody() {\r\n this.callBase();\r\n this._$table.find(\".\".concat(CALENDAR_OTHER_VIEW_CLASS)).addClass(CALENDAR_OTHER_MONTH_CLASS)\r\n },\r\n _renderFocusTarget: noop,\r\n getCellAriaLabel: date => dateLocalization.format(date, \"longdate\"),\r\n _renderHeader() {\r\n var $headerRow = $(\"<tr>\");\r\n var $header = $(\"<thead>\").append($headerRow);\r\n this._$table.prepend($header);\r\n for (var colIndex = 0, colCount = this.option(\"colCount\"); colIndex < colCount; colIndex++) {\r\n this._renderHeaderCell(colIndex, $headerRow)\r\n }\r\n if (this.option(\"showWeekNumbers\")) {\r\n this._renderWeekHeaderCell($headerRow)\r\n }\r\n },\r\n _renderHeaderCell(cellIndex, $headerRow) {\r\n var {\r\n firstDayOfWeek: firstDayOfWeek\r\n } = this.option();\r\n var {\r\n full: fullCaption,\r\n abbreviated: abbrCaption\r\n } = this._getDayCaption(firstDayOfWeek + cellIndex);\r\n var $cell = $(\"<th>\").attr({\r\n scope: \"col\",\r\n abbr: fullCaption\r\n }).text(abbrCaption);\r\n $headerRow.append($cell)\r\n },\r\n _renderWeekHeaderCell($headerRow) {\r\n var $weekNumberHeaderCell = $(\"<th>\").attr({\r\n scope: \"col\",\r\n abbr: \"WeekNumber\",\r\n class: \"dx-week-number-header\"\r\n });\r\n $headerRow.prepend($weekNumberHeaderCell)\r\n },\r\n _renderWeekNumberCell(rowData) {\r\n var {\r\n showWeekNumbers: showWeekNumbers,\r\n cellTemplate: cellTemplate,\r\n selectionMode: selectionMode,\r\n selectWeekOnClick: selectWeekOnClick\r\n } = this.option();\r\n if (!showWeekNumbers) {\r\n return\r\n }\r\n var weekNumber = this._getWeekNumber(rowData.prevCellDate);\r\n var cell = domAdapter.createElement(\"td\");\r\n var $cell = $(cell);\r\n cell.className = CALENDAR_WEEK_NUMBER_CELL_CLASS;\r\n if (\"single\" !== selectionMode && selectWeekOnClick) {\r\n $cell.addClass(CALENDAR_WEEK_SELECTION_CLASS)\r\n }\r\n if (cellTemplate) {\r\n cellTemplate.render(this._prepareCellTemplateData(weekNumber, -1, $cell))\r\n } else {\r\n cell.innerHTML = weekNumber\r\n }\r\n rowData.row.prepend(cell);\r\n this.setAria({\r\n role: \"gridcell\",\r\n label: \"Week \".concat(weekNumber)\r\n }, $cell)\r\n },\r\n _getWeekNumber(date) {\r\n var {\r\n weekNumberRule: weekNumberRule,\r\n firstDayOfWeek: firstDayOfWeek\r\n } = this.option();\r\n if (\"auto\" === weekNumberRule) {\r\n return dateUtils.getWeekNumber(date, firstDayOfWeek, 1 === firstDayOfWeek ? \"firstFourDays\" : \"firstDay\")\r\n }\r\n return dateUtils.getWeekNumber(date, firstDayOfWeek, weekNumberRule)\r\n },\r\n getNavigatorCaption() {\r\n return dateLocalization.format(this.option(\"date\"), \"monthandyear\")\r\n },\r\n _isTodayCell(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameDate(cellDate, today)\r\n },\r\n _isDateOutOfRange(cellDate) {\r\n var minDate = this.option(\"min\");\r\n var maxDate = this.option(\"max\");\r\n return !dateUtils.dateInRange(cellDate, minDate, maxDate, \"date\")\r\n },\r\n _isOtherView(cellDate) {\r\n return cellDate.getMonth() !== this.option(\"date\").getMonth()\r\n },\r\n _isStartDayOfMonth(cellDate) {\r\n return dateUtils.sameDate(cellDate, dateUtils.getFirstMonthDate(this.option(\"date\")))\r\n },\r\n _isEndDayOfMonth(cellDate) {\r\n return dateUtils.sameDate(cellDate, dateUtils.getLastMonthDate(this.option(\"date\")))\r\n },\r\n _getCellText: cellDate => dateLocalization.format(cellDate, \"d\"),\r\n _getDayCaption(day) {\r\n var daysInWeek = this.option(\"colCount\");\r\n var dayIndex = day % daysInWeek;\r\n return {\r\n full: dateLocalization.getDayNames()[dayIndex],\r\n abbreviated: dateLocalization.getDayNames(\"abbreviated\")[dayIndex]\r\n }\r\n },\r\n _getFirstCellData() {\r\n var {\r\n firstDayOfWeek: firstDayOfWeek\r\n } = this.option();\r\n var firstDay = dateUtils.getFirstMonthDate(this.option(\"date\"));\r\n var firstMonthDayOffset = firstDayOfWeek - firstDay.getDay();\r\n var daysInWeek = this.option(\"colCount\");\r\n if (firstMonthDayOffset >= 0) {\r\n firstMonthDayOffset -= daysInWeek\r\n }\r\n firstDay.setDate(firstDay.getDate() + firstMonthDayOffset);\r\n return firstDay\r\n },\r\n _getNextCellData(date) {\r\n date = new Date(date);\r\n date.setDate(date.getDate() + 1);\r\n return date\r\n },\r\n _getCellByDate(date) {\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(date, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n isBoundary(date) {\r\n return dateUtils.sameMonthAndYear(date, this.option(\"min\")) || dateUtils.sameMonthAndYear(date, this.option(\"max\"))\r\n },\r\n _getDefaultDisabledDatesHandler: disabledDates => function(args) {\r\n var isDisabledDate = disabledDates.some(item => dateUtils.sameDate(item, args.date));\r\n if (isDisabledDate) {\r\n return true\r\n }\r\n }\r\n }),\r\n year: BaseView.inherit({\r\n _getViewName: () => \"year\",\r\n _getCurrentDateFormat: () => \"monthandyear\",\r\n _isTodayCell(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameMonthAndYear(cellDate, today)\r\n },\r\n _isDateOutOfRange(cellDate) {\r\n return !dateUtils.dateInRange(cellDate, dateUtils.getFirstMonthDate(this.option(\"min\")), dateUtils.getLastMonthDate(this.option(\"max\")))\r\n },\r\n _isOtherView: () => false,\r\n _isStartDayOfMonth: () => false,\r\n _isEndDayOfMonth: () => false,\r\n _getCellText: cellDate => dateLocalization.getMonthNames(\"abbreviated\")[cellDate.getMonth()],\r\n _getFirstCellData() {\r\n var currentDate = this.option(\"date\");\r\n var data = new Date(currentDate);\r\n data.setDate(1);\r\n data.setMonth(0);\r\n return data\r\n },\r\n _getNextCellData(date) {\r\n date = new Date(date);\r\n date.setMonth(date.getMonth() + 1);\r\n return date\r\n },\r\n _getCellByDate(date) {\r\n var foundDate = new Date(date);\r\n foundDate.setDate(1);\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(foundDate, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n getCellAriaLabel: date => dateLocalization.format(date, \"monthandyear\"),\r\n getNavigatorCaption() {\r\n return dateLocalization.format(this.option(\"date\"), \"yyyy\")\r\n },\r\n isBoundary(date) {\r\n return dateUtils.sameYear(date, this.option(\"min\")) || dateUtils.sameYear(date, this.option(\"max\"))\r\n },\r\n _renderWeekNumberCell: noop\r\n }),\r\n decade: BaseView.inherit({\r\n _getViewName: () => \"decade\",\r\n _isTodayCell(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameYear(cellDate, today)\r\n },\r\n _isDateOutOfRange(cellDate) {\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n return !dateUtils.dateInRange(cellDate.getFullYear(), min && min.getFullYear(), max && max.getFullYear())\r\n },\r\n _isOtherView(cellDate) {\r\n var date = new Date(cellDate);\r\n date.setMonth(1);\r\n return !dateUtils.sameDecade(date, this.option(\"date\"))\r\n },\r\n _isStartDayOfMonth: () => false,\r\n _isEndDayOfMonth: () => false,\r\n _getCellText: cellDate => dateLocalization.format(cellDate, \"yyyy\"),\r\n _getFirstCellData() {\r\n var year = dateUtils.getFirstYearInDecade(this.option(\"date\")) - 1;\r\n return dateUtils.createDateWithFullYear(year, 0, 1)\r\n },\r\n _getNextCellData(date) {\r\n date = new Date(date);\r\n date.setFullYear(date.getFullYear() + 1);\r\n return date\r\n },\r\n getNavigatorCaption() {\r\n var currentDate = this.option(\"date\");\r\n var firstYearInDecade = dateUtils.getFirstYearInDecade(currentDate);\r\n var startDate = new Date(currentDate);\r\n var endDate = new Date(currentDate);\r\n startDate.setFullYear(firstYearInDecade);\r\n endDate.setFullYear(firstYearInDecade + 9);\r\n return \"\".concat(dateLocalization.format(startDate, \"yyyy\"), \"-\").concat(dateLocalization.format(endDate, \"yyyy\"))\r\n },\r\n _isValueOnCurrentView: (currentDate, value) => dateUtils.sameDecade(currentDate, value),\r\n _getCellByDate(date) {\r\n var foundDate = new Date(date);\r\n foundDate.setDate(1);\r\n foundDate.setMonth(0);\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(foundDate, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n isBoundary(date) {\r\n return dateUtils.sameDecade(date, this.option(\"min\")) || dateUtils.sameDecade(date, this.option(\"max\"))\r\n },\r\n _renderWeekNumberCell: noop\r\n }),\r\n century: BaseView.inherit({\r\n _getViewName: () => \"century\",\r\n _isTodayCell(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameDecade(cellDate, today)\r\n },\r\n _isDateOutOfRange(cellDate) {\r\n var decade = dateUtils.getFirstYearInDecade(cellDate);\r\n var minDecade = dateUtils.getFirstYearInDecade(this.option(\"min\"));\r\n var maxDecade = dateUtils.getFirstYearInDecade(this.option(\"max\"));\r\n return !dateUtils.dateInRange(decade, minDecade, maxDecade)\r\n },\r\n _isOtherView(cellDate) {\r\n var date = new Date(cellDate);\r\n date.setMonth(1);\r\n return !dateUtils.sameCentury(date, this.option(\"date\"))\r\n },\r\n _isStartDayOfMonth: () => false,\r\n _isEndDayOfMonth: () => false,\r\n _getCellText(cellDate) {\r\n var startDate = dateLocalization.format(cellDate, \"yyyy\");\r\n var endDate = new Date(cellDate);\r\n endDate.setFullYear(endDate.getFullYear() + 9);\r\n return \"\".concat(startDate, \" - \").concat(dateLocalization.format(endDate, \"yyyy\"))\r\n },\r\n _getFirstCellData() {\r\n var decade = dateUtils.getFirstDecadeInCentury(this.option(\"date\")) - 10;\r\n return dateUtils.createDateWithFullYear(decade, 0, 1)\r\n },\r\n _getNextCellData(date) {\r\n date = new Date(date);\r\n date.setFullYear(date.getFullYear() + 10);\r\n return date\r\n },\r\n _getCellByDate(date) {\r\n var foundDate = new Date(date);\r\n foundDate.setDate(1);\r\n foundDate.setMonth(0);\r\n foundDate.setFullYear(dateUtils.getFirstYearInDecade(foundDate));\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(foundDate, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n getNavigatorCaption() {\r\n var currentDate = this.option(\"date\");\r\n var firstDecadeInCentury = dateUtils.getFirstDecadeInCentury(currentDate);\r\n var startDate = new Date(currentDate);\r\n var endDate = new Date(currentDate);\r\n startDate.setFullYear(firstDecadeInCentury);\r\n endDate.setFullYear(firstDecadeInCentury + 99);\r\n return \"\".concat(dateLocalization.format(startDate, \"yyyy\"), \"-\").concat(dateLocalization.format(endDate, \"yyyy\"))\r\n },\r\n isBoundary(date) {\r\n return dateUtils.sameCentury(date, this.option(\"min\")) || dateUtils.sameCentury(date, this.option(\"max\"))\r\n },\r\n _renderWeekNumberCell: noop\r\n })\r\n};\r\nexport default Views;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/calendar/m_calendar.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport fx from \"../../../animation/fx\";\r\nimport {\r\n move\r\n} from \"../../../animation/translator\";\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport devices from \"../../../core/devices\";\r\nimport Guid from \"../../../core/guid\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n FunctionTemplate\r\n} from \"../../../core/templates/function_template\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport dateSerialization from \"../../../core/utils/date_serialization\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n inRange\r\n} from \"../../../core/utils/math\";\r\nimport {\r\n getWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isNumeric,\r\n isString\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 Swipeable from \"../../../events/gesture/swipeable\";\r\nimport {\r\n end as hoverEndEventName\r\n} from \"../../../events/hover\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed\r\n} from \"../../../events/utils/index\";\r\nimport dateLocalization from \"../../../localization/date\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport Button from \"../../../ui/button\";\r\nimport Editor from \"../../../ui/editor/editor\";\r\nimport {\r\n isFluent\r\n} from \"../../../ui/themes\";\r\nimport CalendarMultipleSelectionStrategy from \"./m_calendar.multiple.selection.strategy\";\r\nimport Navigator from \"./m_calendar.navigator\";\r\nimport CalendarRangeSelectionStrategy from \"./m_calendar.range.selection.strategy\";\r\nimport CalendarSingleSelectionStrategy from \"./m_calendar.single.selection.strategy\";\r\nimport Views from \"./m_calendar.views\";\r\nvar CALENDAR_CLASS = \"dx-calendar\";\r\nvar CALENDAR_BODY_CLASS = \"dx-calendar-body\";\r\nvar CALENDAR_CELL_CLASS = \"dx-calendar-cell\";\r\nvar CALENDAR_FOOTER_CLASS = \"dx-calendar-footer\";\r\nvar CALENDAR_TODAY_BUTTON_CLASS = \"dx-calendar-today-button\";\r\nvar CALENDAR_HAS_FOOTER_CLASS = \"dx-calendar-with-footer\";\r\nvar CALENDAR_VIEWS_WRAPPER_CLASS = \"dx-calendar-views-wrapper\";\r\nvar CALENDAR_VIEW_CLASS = \"dx-calendar-view\";\r\nvar CALENDAR_MULTIVIEW_CLASS = \"dx-calendar-multiview\";\r\nvar CALENDAR_RANGE_CLASS = \"dx-calendar-range\";\r\nvar GESTURE_COVER_CLASS = \"dx-gesture-cover\";\r\nvar ANIMATION_DURATION_SHOW_VIEW = 250;\r\nvar POP_ANIMATION_FROM = .6;\r\nvar POP_ANIMATION_TO = 1;\r\nvar CALENDAR_INPUT_STANDARD_PATTERN = \"yyyy-MM-dd\";\r\nvar CALENDAR_DATE_VALUE_KEY = \"dxDateValueKey\";\r\nvar CALENDAR_DXHOVEREND_EVENT_NAME = addNamespace(hoverEndEventName, \"dxCalendar\");\r\nvar LEVEL_COMPARE_MAP = {\r\n month: 3,\r\n year: 2,\r\n decade: 1,\r\n century: 0\r\n};\r\nvar ZOOM_LEVEL = {\r\n MONTH: \"month\",\r\n YEAR: \"year\",\r\n DECADE: \"decade\",\r\n CENTURY: \"century\"\r\n};\r\nvar SELECTION_STRATEGIES = {\r\n SingleSelection: CalendarSingleSelectionStrategy,\r\n MultipleSelection: CalendarMultipleSelectionStrategy,\r\n RangeSelection: CalendarRangeSelectionStrategy\r\n};\r\nvar Calendar = Editor.inherit({\r\n _activeStateUnit: \".\".concat(CALENDAR_CELL_CLASS),\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true,\r\n currentDate: new Date,\r\n value: null,\r\n dateSerializationFormat: void 0,\r\n min: new Date(1e3, 0),\r\n max: new Date(3e3, 0),\r\n firstDayOfWeek: void 0,\r\n viewsCount: 1,\r\n zoomLevel: ZOOM_LEVEL.MONTH,\r\n maxZoomLevel: ZOOM_LEVEL.MONTH,\r\n minZoomLevel: ZOOM_LEVEL.CENTURY,\r\n selectionMode: \"single\",\r\n selectWeekOnClick: true,\r\n showTodayButton: false,\r\n showWeekNumbers: false,\r\n weekNumberRule: \"auto\",\r\n cellTemplate: \"cell\",\r\n disabledDates: null,\r\n onCellClick: null,\r\n onContouredChanged: null,\r\n skipFocusCheck: false,\r\n _todayDate: () => new Date\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device: () => \"desktop\" === devices.real().deviceType && !devices.isSimulator(),\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _supportedKeys() {\r\n return extend(this.callBase(), {\r\n rightArrow(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._waitRenderView(1)\r\n } else {\r\n this._moveCurrentDateByOffset(1 * this._getRtlCorrection())\r\n }\r\n },\r\n leftArrow(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._waitRenderView(-1)\r\n } else {\r\n this._moveCurrentDateByOffset(-1 * this._getRtlCorrection())\r\n }\r\n },\r\n upArrow(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._navigateUp()\r\n } else {\r\n if (fx.isAnimating(this._view.$element())) {\r\n return\r\n }\r\n this._moveCurrentDateByOffset(-1 * this._view.option(\"colCount\"))\r\n }\r\n },\r\n downArrow(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._navigateDown()\r\n } else {\r\n if (fx.isAnimating(this._view.$element())) {\r\n return\r\n }\r\n this._moveCurrentDateByOffset(1 * this._view.option(\"colCount\"))\r\n }\r\n },\r\n home(e) {\r\n e.preventDefault();\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var currentDate = this.option(\"currentDate\");\r\n var min = this._dateOption(\"min\");\r\n if (this._view.isDateDisabled(currentDate)) {\r\n return\r\n }\r\n var date = dateUtils.sameView(zoomLevel, currentDate, min) ? min : dateUtils.getViewFirstCellDate(zoomLevel, currentDate);\r\n this._moveToClosestAvailableDate(date)\r\n },\r\n end(e) {\r\n e.preventDefault();\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var currentDate = this.option(\"currentDate\");\r\n var max = this._dateOption(\"max\");\r\n if (this._view.isDateDisabled(currentDate)) {\r\n return\r\n }\r\n var date = dateUtils.sameView(zoomLevel, currentDate, max) ? max : dateUtils.getViewLastCellDate(zoomLevel, currentDate);\r\n this._moveToClosestAvailableDate(date)\r\n },\r\n pageUp(e) {\r\n e.preventDefault();\r\n this._waitRenderView(-1 * this._getRtlCorrection())\r\n },\r\n pageDown(e) {\r\n e.preventDefault();\r\n this._waitRenderView(1 * this._getRtlCorrection())\r\n },\r\n tab: noop,\r\n enter: this._enterKeyHandler\r\n })\r\n },\r\n _enterKeyHandler(e) {\r\n if (!this._isMaxZoomLevel()) {\r\n this._navigateDown()\r\n } else if (!this._view.isDateDisabled(this.option(\"currentDate\"))) {\r\n var value = this._updateTimeComponent(this.option(\"currentDate\"));\r\n this._selectionStrategy.selectValue(value, e)\r\n }\r\n },\r\n _getSerializationFormat(optionName) {\r\n var value = this.option(optionName || \"value\");\r\n if (this.option(\"dateSerializationFormat\")) {\r\n return this.option(\"dateSerializationFormat\")\r\n }\r\n if (isNumeric(value)) {\r\n return \"number\"\r\n }\r\n if (!isString(value)) {\r\n return\r\n }\r\n return dateSerialization.getDateSerializationFormat(value)\r\n },\r\n _convertToDate: value => dateSerialization.deserializeDate(value),\r\n _dateValue(value, event) {\r\n if (event) {\r\n if (\"keydown\" === event.type) {\r\n var cellElement = this._view._getContouredCell().get(0);\r\n event.target = cellElement\r\n }\r\n this._saveValueChangeEvent(event)\r\n }\r\n this._dateOption(\"value\", value)\r\n },\r\n _dateOption(optionName, optionValue) {\r\n var isArray = \"value\" === optionName && !this._isSingleMode();\r\n var value = this.option(\"value\");\r\n if (1 === arguments.length) {\r\n return isArray ? (null !== value && void 0 !== value ? value : []).map(value => this._convertToDate(value)) : this._convertToDate(this.option(optionName))\r\n }\r\n var serializationFormat = this._getSerializationFormat(optionName);\r\n var serializedValue = isArray ? (null === optionValue || void 0 === optionValue ? void 0 : optionValue.map(value => dateSerialization.serializeDate(value, serializationFormat))) || [] : dateSerialization.serializeDate(optionValue, serializationFormat);\r\n this.option(optionName, serializedValue)\r\n },\r\n _isSingleMode() {\r\n return \"single\" === this.option(\"selectionMode\")\r\n },\r\n _shiftDate(zoomLevel, date, offset, reverse) {\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.MONTH:\r\n date.setDate(date.getDate() + offset * reverse);\r\n break;\r\n case ZOOM_LEVEL.YEAR:\r\n date.setMonth(date.getMonth() + offset * reverse);\r\n break;\r\n case ZOOM_LEVEL.DECADE:\r\n date.setFullYear(date.getFullYear() + offset * reverse);\r\n break;\r\n case ZOOM_LEVEL.CENTURY:\r\n date.setFullYear(date.getFullYear() + 10 * offset * reverse)\r\n }\r\n },\r\n _moveCurrentDateByOffset(offset) {\r\n var baseDate = this.option(\"currentDate\");\r\n var currentDate = new Date(baseDate);\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n this._shiftDate(zoomLevel, currentDate, offset, 1);\r\n var maxDate = this._getMaxDate();\r\n var minDate = this._getMinDate();\r\n var isDateForwardInNeighborView = this._areDatesInNeighborView(zoomLevel, currentDate, baseDate);\r\n var isDateForwardInRange = inRange(currentDate, minDate, maxDate) && isDateForwardInNeighborView;\r\n var dateForward = new Date(currentDate);\r\n while (isDateForwardInRange) {\r\n if (!this._view.isDateDisabled(dateForward)) {\r\n currentDate = dateForward;\r\n break\r\n }\r\n this._shiftDate(zoomLevel, dateForward, offset, 1);\r\n isDateForwardInNeighborView = this._areDatesInNeighborView(zoomLevel, dateForward, baseDate);\r\n isDateForwardInRange = inRange(dateForward, minDate, maxDate) && isDateForwardInNeighborView\r\n }\r\n if (this._view.isDateDisabled(baseDate) || this._view.isDateDisabled(currentDate)) {\r\n var direction = offset > 0 ? 1 : -1;\r\n var isViewDisabled = 1 === direction ? this._isNextViewDisabled() : this._isPrevViewDisabled();\r\n if (!isViewDisabled) {\r\n this._waitRenderView(direction)\r\n } else {\r\n this._moveToClosestAvailableDate(currentDate)\r\n }\r\n } else {\r\n this._skipNavigate = true;\r\n this.option(\"currentDate\", currentDate)\r\n }\r\n },\r\n _isNextViewDisabled() {\r\n return this._navigator._nextButton.option(\"disabled\")\r\n },\r\n _isPrevViewDisabled() {\r\n return this._navigator._prevButton.option(\"disabled\")\r\n },\r\n _areDatesInSameView(zoomLevel, date1, date2) {\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.MONTH:\r\n return date1.getMonth() === date2.getMonth();\r\n case ZOOM_LEVEL.YEAR:\r\n return date1.getYear() === date2.getYear();\r\n case ZOOM_LEVEL.DECADE:\r\n return parseInt(date1.getYear() / 10) === parseInt(date2.getYear() / 10);\r\n case ZOOM_LEVEL.CENTURY:\r\n return parseInt(date1.getYear() / 100) === parseInt(date2.getYear() / 100)\r\n }\r\n },\r\n _areDatesInNeighborView(zoomLevel, date1, date2) {\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.MONTH:\r\n return (a = date1.getMonth(), b = date2.getMonth(), abs = Math.abs(a - b), Math.min(abs, 12 - abs)) <= 1;\r\n case ZOOM_LEVEL.YEAR:\r\n return Math.abs(date1.getYear() - date2.getYear()) <= 1;\r\n case ZOOM_LEVEL.DECADE:\r\n return Math.abs(date1.getYear() - date2.getYear()) <= 10;\r\n case ZOOM_LEVEL.CENTURY:\r\n return Math.abs(date1.getYear() - date2.getYear()) <= 100\r\n }\r\n var a, b, abs\r\n },\r\n _moveToClosestAvailableDate() {\r\n var baseDate = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.option(\"currentDate\");\r\n var currentDate = new Date(baseDate);\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var isCurrentDateAvailable = !this._isDateNotAvailable(currentDate);\r\n var isDateForwardAvailable = isCurrentDateAvailable;\r\n var isDateBackwardAvailable = isCurrentDateAvailable;\r\n var isDateForwardInStartView;\r\n var isDateBackwardInStartView;\r\n var dateForward = new Date(currentDate);\r\n var dateBackward = new Date(currentDate);\r\n do {\r\n if (isDateForwardAvailable) {\r\n currentDate = dateForward;\r\n break\r\n }\r\n if (isDateBackwardAvailable) {\r\n currentDate = dateBackward;\r\n break\r\n }\r\n this._shiftDate(zoomLevel, dateForward, 1, 1);\r\n this._shiftDate(zoomLevel, dateBackward, 1, -1);\r\n isDateForwardInStartView = this._areDatesInSameView(zoomLevel, dateForward, baseDate);\r\n isDateBackwardInStartView = this._areDatesInSameView(zoomLevel, dateBackward, baseDate);\r\n isDateForwardAvailable = isDateForwardInStartView && !this._isDateNotAvailable(dateForward);\r\n isDateBackwardAvailable = isDateBackwardInStartView && !this._isDateNotAvailable(dateBackward)\r\n } while (isDateForwardInStartView || isDateBackwardInStartView);\r\n this.option(\"currentDate\", currentDate)\r\n },\r\n _isDateNotAvailable(date) {\r\n var maxDate = this._getMaxDate();\r\n var minDate = this._getMinDate();\r\n return !inRange(date, minDate, maxDate) || this._view.isDateDisabled(date)\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initSelectionStrategy();\r\n this._correctZoomLevel();\r\n this._initCurrentDate();\r\n this._initActions()\r\n },\r\n _initSelectionStrategy() {\r\n var strategyName = this._getSelectionStrategyName();\r\n var strategy = SELECTION_STRATEGIES[strategyName];\r\n if (!this._selectionStrategy || this._selectionStrategy.NAME !== strategyName) {\r\n this._selectionStrategy = new strategy(this)\r\n }\r\n },\r\n _refreshSelectionStrategy() {\r\n this._initSelectionStrategy();\r\n this._selectionStrategy.restoreValue();\r\n this._refresh()\r\n },\r\n _getSelectionStrategyName() {\r\n var selectionMode = this.option(\"selectionMode\");\r\n switch (selectionMode) {\r\n case \"multiple\":\r\n return \"MultipleSelection\";\r\n case \"range\":\r\n return \"RangeSelection\";\r\n default:\r\n return \"SingleSelection\"\r\n }\r\n },\r\n _correctZoomLevel() {\r\n var minZoomLevel = this.option(\"minZoomLevel\");\r\n var maxZoomLevel = this.option(\"maxZoomLevel\");\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n if (LEVEL_COMPARE_MAP[maxZoomLevel] < LEVEL_COMPARE_MAP[minZoomLevel]) {\r\n return\r\n }\r\n if (LEVEL_COMPARE_MAP[zoomLevel] > LEVEL_COMPARE_MAP[maxZoomLevel]) {\r\n this.option(\"zoomLevel\", maxZoomLevel)\r\n } else if (LEVEL_COMPARE_MAP[zoomLevel] < LEVEL_COMPARE_MAP[minZoomLevel]) {\r\n this.option(\"zoomLevel\", minZoomLevel)\r\n }\r\n },\r\n _initCurrentDate() {\r\n var _a;\r\n var currentDate = null !== (_a = this._getNormalizedDate(this._selectionStrategy.getDefaultCurrentDate())) && void 0 !== _a ? _a : this._getNormalizedDate(this.option(\"currentDate\"));\r\n this.option(\"currentDate\", currentDate)\r\n },\r\n _getNormalizedDate(date) {\r\n date = dateUtils.normalizeDate(date, this._getMinDate(), this._getMaxDate());\r\n return isDefined(date) ? this._getDate(date) : date\r\n },\r\n _initActions() {\r\n this._cellClickAction = this._createActionByOption(\"onCellClick\");\r\n this._onContouredChanged = this._createActionByOption(\"onContouredChanged\")\r\n },\r\n _initTemplates() {\r\n this._templateManager.addDefaultTemplates({\r\n cell: new FunctionTemplate(options => {\r\n var data = options.model;\r\n $(options.container).append($(\"<span>\").text(data && data.text || String(data)))\r\n })\r\n });\r\n this.callBase()\r\n },\r\n _updateCurrentDate(date) {\r\n if (fx.isAnimating(this._$viewsWrapper)) {\r\n fx.stop(this._$viewsWrapper, true)\r\n }\r\n var min = this._getMinDate();\r\n var max = this._getMaxDate();\r\n if (min > max) {\r\n this.option(\"currentDate\", new Date);\r\n return\r\n }\r\n var normalizedDate = this._getNormalizedDate(date);\r\n if (date.getTime() !== normalizedDate.getTime()) {\r\n this.option(\"currentDate\", new Date(normalizedDate));\r\n return\r\n }\r\n var offset = this._getViewsOffset(this._view.option(\"date\"), normalizedDate);\r\n if (0 !== offset && !this._isMaxZoomLevel() && this._isOtherViewCellClicked) {\r\n offset = 0\r\n }\r\n if (this._view && 0 !== offset && !this._suppressNavigation) {\r\n if (this._additionalView) {\r\n if (offset > 2 || offset < -1) {\r\n this._refreshViews();\r\n this._setViewContoured(normalizedDate);\r\n this._updateAriaId(normalizedDate);\r\n this._renderNavigator()\r\n } else if (1 === offset && this._skipNavigate) {\r\n this._setViewContoured(normalizedDate);\r\n this._updateAriaId(normalizedDate)\r\n } else {\r\n this._navigate(offset, normalizedDate)\r\n }\r\n } else {\r\n this._navigate(offset, normalizedDate)\r\n }\r\n } else {\r\n this._renderNavigator();\r\n this._setViewContoured(normalizedDate);\r\n this._updateAriaId(normalizedDate)\r\n }\r\n this._skipNavigate = false\r\n },\r\n _isAdditionalViewDate(date) {\r\n if (!this._additionalView) {\r\n return false\r\n }\r\n return date >= this._additionalView._getFirstAvailableDate()\r\n },\r\n _getActiveView(date) {\r\n return this._isAdditionalViewDate(date) ? this._additionalView : this._view\r\n },\r\n _setViewContoured(date) {\r\n var _a;\r\n if (this.option(\"skipFocusCheck\") || $(this._$viewsWrapper).is(\":focus\")) {\r\n this._view.option(\"contouredDate\", null);\r\n null === (_a = this._additionalView) || void 0 === _a ? void 0 : _a.option(\"contouredDate\", null);\r\n var view = this._isAdditionalViewDate(date) ? this._additionalView : this._view;\r\n view.option(\"contouredDate\", date)\r\n }\r\n },\r\n _getMinDate() {\r\n var _rangeMin = this.option(\"_rangeMin\");\r\n if (_rangeMin) {\r\n return _rangeMin\r\n }\r\n if (this.min) {\r\n return this.min\r\n }\r\n this.min = this._dateOption(\"min\") || new Date(1e3, 0);\r\n return this.min\r\n },\r\n _getMaxDate() {\r\n var _rangeMax = this.option(\"_rangeMax\");\r\n if (_rangeMax) {\r\n return _rangeMax\r\n }\r\n if (this.max) {\r\n return this.max\r\n }\r\n this.max = this._dateOption(\"max\") || new Date(3e3, 0);\r\n return this.max\r\n },\r\n _getViewsOffset(startDate, endDate) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n if (zoomLevel === ZOOM_LEVEL.MONTH) {\r\n return this._getMonthsOffset(startDate, endDate)\r\n }\r\n var zoomCorrection;\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.CENTURY:\r\n zoomCorrection = 100;\r\n break;\r\n case ZOOM_LEVEL.DECADE:\r\n zoomCorrection = 10;\r\n break;\r\n default:\r\n zoomCorrection = 1\r\n }\r\n return parseInt(endDate.getFullYear() / zoomCorrection) - parseInt(startDate.getFullYear() / zoomCorrection)\r\n },\r\n _getMonthsOffset(startDate, endDate) {\r\n var yearOffset = endDate.getFullYear() - startDate.getFullYear();\r\n var monthOffset = endDate.getMonth() - startDate.getMonth();\r\n return 12 * yearOffset + monthOffset\r\n },\r\n _waitRenderView(offset) {\r\n if (this._alreadyViewRender) {\r\n return\r\n }\r\n this._alreadyViewRender = true;\r\n var date = this._getDateByOffset(offset * this._getRtlCorrection());\r\n this._moveToClosestAvailableDate(date);\r\n this._waitRenderViewTimeout = setTimeout(() => {\r\n this._alreadyViewRender = false\r\n })\r\n },\r\n _getRtlCorrection() {\r\n return this.option(\"rtlEnabled\") ? -1 : 1\r\n },\r\n _getDateByOffset(offset, date) {\r\n date = this._getDate(null !== date && void 0 !== date ? date : this.option(\"currentDate\"));\r\n var currentDay = date.getDate();\r\n var difference = dateUtils.getDifferenceInMonth(this.option(\"zoomLevel\")) * offset;\r\n date.setDate(1);\r\n date.setMonth(date.getMonth() + difference);\r\n var lastDay = dateUtils.getLastMonthDate(date).getDate();\r\n date.setDate(currentDay > lastDay ? lastDay : currentDay);\r\n return date\r\n },\r\n _focusTarget() {\r\n return this._$viewsWrapper\r\n },\r\n _focusEventTarget() {\r\n return this.$element()\r\n },\r\n _initMarkup() {\r\n this._renderSubmitElement();\r\n var $element = this.$element();\r\n $element.addClass(CALENDAR_CLASS);\r\n $element.toggleClass(CALENDAR_RANGE_CLASS, \"range\" === this.option(\"selectionMode\"));\r\n this._renderBody();\r\n $element.append(this.$body);\r\n this._renderViews();\r\n this._renderNavigator();\r\n this.callBase();\r\n this._renderEvents();\r\n $element.prepend(this._navigator.$element());\r\n this._renderSwipeable();\r\n this._renderFooter();\r\n this._selectionStrategy.updateAriaSelected();\r\n this._updateAriaId();\r\n this._updateNavigatorLabels();\r\n this.setAria(\"role\", \"application\");\r\n this._moveToClosestAvailableDate()\r\n },\r\n _render() {\r\n this.callBase();\r\n this._setViewContoured(this.option(\"currentDate\"))\r\n },\r\n _renderBody() {\r\n if (!this._$viewsWrapper) {\r\n this.$body = $(\"<div>\").addClass(CALENDAR_BODY_CLASS);\r\n this._$viewsWrapper = $(\"<div>\").addClass(CALENDAR_VIEWS_WRAPPER_CLASS);\r\n this.$body.append(this._$viewsWrapper)\r\n }\r\n },\r\n _getKeyboardListeners() {\r\n return this.callBase().concat([this._view])\r\n },\r\n _renderViews() {\r\n this.$element().addClass(\"\".concat(CALENDAR_VIEW_CLASS, \"-\").concat(this.option(\"zoomLevel\")));\r\n var {\r\n currentDate: currentDate,\r\n viewsCount: viewsCount\r\n } = this.option();\r\n this.$element().toggleClass(CALENDAR_MULTIVIEW_CLASS, viewsCount > 1);\r\n this._view = this._renderSpecificView(currentDate);\r\n if (hasWindow()) {\r\n var beforeDate = this._getDateByOffset(-1, currentDate);\r\n this._beforeView = this._isViewAvailable(beforeDate) ? this._renderSpecificView(beforeDate) : null;\r\n var afterDate = this._getDateByOffset(viewsCount, currentDate);\r\n afterDate.setDate(1);\r\n this._afterView = this._isViewAvailable(afterDate) ? this._renderSpecificView(afterDate) : null\r\n }\r\n if (viewsCount > 1) {\r\n this._additionalView = this._renderSpecificView(this._getDateByOffset(1, currentDate))\r\n }\r\n this._translateViews()\r\n },\r\n _renderSpecificView(date) {\r\n var {\r\n zoomLevel: zoomLevel\r\n } = this.option();\r\n var specificView = Views[zoomLevel];\r\n var $view = $(\"<div>\").appendTo(this._$viewsWrapper);\r\n var config = this._viewConfig(date);\r\n var view = this._createComponent($view, specificView, config);\r\n return view\r\n },\r\n _viewConfig(date) {\r\n var _a;\r\n var disabledDates = this.option(\"disabledDates\");\r\n disabledDates = isFunction(disabledDates) ? this._injectComponent(disabledDates.bind(this)) : disabledDates;\r\n return _extends(_extends({}, this._selectionStrategy.getViewOptions()), {\r\n date: date,\r\n min: this._getMinDate(),\r\n max: this._getMaxDate(),\r\n firstDayOfWeek: null !== (_a = this.option(\"firstDayOfWeek\")) && void 0 !== _a ? _a : dateLocalization.firstDayOfWeekIndex(),\r\n showWeekNumbers: this.option(\"showWeekNumbers\"),\r\n selectWeekOnClick: this.option(\"selectWeekOnClick\"),\r\n weekNumberRule: this.option(\"weekNumberRule\"),\r\n zoomLevel: this.option(\"zoomLevel\"),\r\n tabIndex: void 0,\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n disabledDates: disabledDates,\r\n onCellClick: this._cellClickHandler.bind(this),\r\n cellTemplate: this._getTemplateByOption(\"cellTemplate\"),\r\n allowValueSelection: this._isMaxZoomLevel(),\r\n _todayDate: this.option(\"_todayDate\")\r\n })\r\n },\r\n _renderEvents() {\r\n eventsEngine.off(this._$viewsWrapper, CALENDAR_DXHOVEREND_EVENT_NAME);\r\n if (\"range\" === this.option(\"selectionMode\")) {\r\n eventsEngine.on(this._$viewsWrapper, CALENDAR_DXHOVEREND_EVENT_NAME, null, () => {\r\n this._updateViewsOption(\"hoveredRange\", [])\r\n })\r\n }\r\n },\r\n _injectComponent(func) {\r\n var that = this;\r\n return function(params) {\r\n extend(params, {\r\n component: that\r\n });\r\n return func(params)\r\n }\r\n },\r\n _isViewAvailable(date) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var min = dateUtils.getViewMinBoundaryDate(zoomLevel, this._getMinDate());\r\n var max = dateUtils.getViewMaxBoundaryDate(zoomLevel, this._getMaxDate());\r\n return dateUtils.dateInRange(date, min, max)\r\n },\r\n _translateViews() {\r\n var {\r\n viewsCount: viewsCount\r\n } = this.option();\r\n move(this._view.$element(), {\r\n left: 0,\r\n top: 0\r\n });\r\n this._moveViewElement(this._beforeView, -1);\r\n this._moveViewElement(this._afterView, viewsCount);\r\n this._moveViewElement(this._additionalView, 1)\r\n },\r\n _moveViewElement(view, coefficient) {\r\n view && move(view.$element(), {\r\n left: this._getViewPosition(coefficient),\r\n top: 0\r\n })\r\n },\r\n _getViewPosition(coefficient) {\r\n var rtlCorrection = this.option(\"rtlEnabled\") ? -1 : 1;\r\n return \"\".concat(100 * coefficient * rtlCorrection, \"%\")\r\n },\r\n _cellClickHandler(e) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var nextView = dateUtils.getViewDown(zoomLevel);\r\n var isMaxZoomLevel = this._isMaxZoomLevel();\r\n if (nextView && !isMaxZoomLevel) {\r\n this._navigateDown(e.event.currentTarget)\r\n } else {\r\n var newValue = this._updateTimeComponent(e.value);\r\n this._selectionStrategy.selectValue(newValue, e.event);\r\n this._cellClickAction(e)\r\n }\r\n },\r\n _updateTimeComponent(date) {\r\n var result = new Date(date);\r\n var currentValue = this._dateOption(\"value\");\r\n if (currentValue && this._isSingleMode()) {\r\n result.setHours(currentValue.getHours());\r\n result.setMinutes(currentValue.getMinutes());\r\n result.setSeconds(currentValue.getSeconds());\r\n result.setMilliseconds(currentValue.getMilliseconds())\r\n }\r\n return result\r\n },\r\n _isMaxZoomLevel() {\r\n return this.option(\"zoomLevel\") === this.option(\"maxZoomLevel\")\r\n },\r\n _navigateDown(cell) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n if (this._isMaxZoomLevel()) {\r\n return\r\n }\r\n var nextView = dateUtils.getViewDown(zoomLevel);\r\n if (!nextView) {\r\n return\r\n }\r\n var newCurrentDate = this._view.option(\"contouredDate\") || this._view.option(\"date\");\r\n if (cell) {\r\n newCurrentDate = $(cell).data(CALENDAR_DATE_VALUE_KEY)\r\n }\r\n this._isOtherViewCellClicked = true;\r\n this.option(\"currentDate\", newCurrentDate);\r\n this.option(\"zoomLevel\", nextView);\r\n this._isOtherViewCellClicked = false;\r\n this._renderNavigator();\r\n this._animateShowView();\r\n this._moveToClosestAvailableDate();\r\n this._setViewContoured(this._getNormalizedDate(this.option(\"currentDate\")))\r\n },\r\n _renderNavigator() {\r\n if (!this._navigator) {\r\n this._navigator = new Navigator($(\"<div>\"), this._navigatorConfig())\r\n }\r\n this._navigator.option(\"text\", this._getViewsCaption(this._view, this._additionalView));\r\n this._updateButtonsVisibility()\r\n },\r\n _navigatorConfig() {\r\n var {\r\n focusStateEnabled: focusStateEnabled,\r\n rtlEnabled: rtlEnabled\r\n } = this.option();\r\n return {\r\n text: this._getViewsCaption(this._view, this._additionalView),\r\n onClick: this._navigatorClickHandler.bind(this),\r\n onCaptionClick: this._navigateUp.bind(this),\r\n focusStateEnabled: focusStateEnabled,\r\n rtlEnabled: rtlEnabled,\r\n tabIndex: void 0\r\n }\r\n },\r\n _navigatorClickHandler(e) {\r\n var {\r\n currentDate: currentDate,\r\n viewsCount: viewsCount\r\n } = this.option();\r\n var offset = e.direction;\r\n if (viewsCount > 1) {\r\n var additionalViewActive = this._isAdditionalViewDate(currentDate);\r\n var shouldDoubleOffset = additionalViewActive && offset < 0 || !additionalViewActive && offset > 0;\r\n if (shouldDoubleOffset) {\r\n offset *= 2\r\n }\r\n }\r\n var newCurrentDate = this._getDateByOffset(offset, currentDate);\r\n this._moveToClosestAvailableDate(newCurrentDate)\r\n },\r\n _navigateUp() {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var nextView = dateUtils.getViewUp(zoomLevel);\r\n if (!nextView || this._isMinZoomLevel(zoomLevel)) {\r\n return\r\n }\r\n this.option(\"zoomLevel\", nextView);\r\n this._renderNavigator();\r\n this._animateShowView();\r\n this._moveToClosestAvailableDate();\r\n this._setViewContoured(this._getNormalizedDate(this.option(\"currentDate\")))\r\n },\r\n _isMinZoomLevel(zoomLevel) {\r\n var min = this._getMinDate();\r\n var max = this._getMaxDate();\r\n return dateUtils.sameView(zoomLevel, min, max) || this.option(\"minZoomLevel\") === zoomLevel\r\n },\r\n _updateButtonsVisibility() {\r\n this._navigator.toggleButton(\"next\", !isDefined(this._afterView));\r\n this._navigator.toggleButton(\"prev\", !isDefined(this._beforeView))\r\n },\r\n _renderSwipeable() {\r\n if (!this._swipeable) {\r\n this._swipeable = this._createComponent(this.$element(), Swipeable, {\r\n onStart: this._swipeStartHandler.bind(this),\r\n onUpdated: this._swipeUpdateHandler.bind(this),\r\n onEnd: this._swipeEndHandler.bind(this),\r\n itemSizeFunc: this._viewWidth.bind(this)\r\n })\r\n }\r\n },\r\n _swipeStartHandler(e) {\r\n fx.stop(this._$viewsWrapper, true);\r\n var {\r\n viewsCount: viewsCount\r\n } = this.option();\r\n this._toggleGestureCoverCursor(\"grabbing\");\r\n e.event.maxLeftOffset = this._getRequiredView(\"next\") ? 1 / viewsCount : 0;\r\n e.event.maxRightOffset = this._getRequiredView(\"prev\") ? 1 / viewsCount : 0\r\n },\r\n _toggleGestureCoverCursor(cursor) {\r\n $(\".\".concat(GESTURE_COVER_CLASS)).css(\"cursor\", cursor)\r\n },\r\n _getRequiredView(name) {\r\n var view;\r\n var isRtl = this.option(\"rtlEnabled\");\r\n if (\"next\" === name) {\r\n view = isRtl ? this._beforeView : this._afterView\r\n } else if (\"prev\" === name) {\r\n view = isRtl ? this._afterView : this._beforeView\r\n }\r\n return view\r\n },\r\n _swipeUpdateHandler(e) {\r\n var {\r\n offset: offset\r\n } = e.event;\r\n move(this._$viewsWrapper, {\r\n left: offset * this._viewWidth(),\r\n top: 0\r\n });\r\n this._updateNavigatorCaption(offset)\r\n },\r\n _swipeEndHandler(e) {\r\n this._toggleGestureCoverCursor(\"auto\");\r\n var {\r\n currentDate: currentDate,\r\n rtlEnabled: rtlEnabled\r\n } = this.option();\r\n var {\r\n targetOffset: targetOffset\r\n } = e.event;\r\n var moveOffset = !targetOffset ? 0 : targetOffset / Math.abs(targetOffset);\r\n var isAdditionalViewActive = this._isAdditionalViewDate(currentDate);\r\n var shouldDoubleOffset = isAdditionalViewActive && (rtlEnabled ? -1 === moveOffset : 1 === moveOffset);\r\n if (0 === moveOffset) {\r\n this._animateWrapper(0, ANIMATION_DURATION_SHOW_VIEW);\r\n return\r\n }\r\n var offset = -moveOffset * this._getRtlCorrection() * (shouldDoubleOffset ? 2 : 1);\r\n var date = this._getDateByOffset(offset);\r\n if (this._isDateInInvalidRange(date)) {\r\n if (moveOffset >= 0) {\r\n date = new Date(this._getMinDate())\r\n } else {\r\n date = new Date(this._getMaxDate())\r\n }\r\n }\r\n this.option(\"currentDate\", date)\r\n },\r\n _viewWidth() {\r\n if (!this._viewWidthValue) {\r\n this._viewWidthValue = getWidth(this.$element()) / this.option(\"viewsCount\")\r\n }\r\n return this._viewWidthValue\r\n },\r\n _updateNavigatorCaption(offset) {\r\n offset *= this._getRtlCorrection();\r\n var isMultiView = this.option(\"viewsCount\") > 1;\r\n var view;\r\n var additionalView;\r\n if (offset > .5 && this._beforeView) {\r\n view = this._beforeView;\r\n additionalView = isMultiView && this._view\r\n } else if (offset < -.5 && this._afterView) {\r\n view = isMultiView ? this._additionalView : this._afterView;\r\n additionalView = isMultiView ? this._afterView : null\r\n } else {\r\n view = this._view;\r\n additionalView = isMultiView ? this._additionalView : null\r\n }\r\n this._navigator.option(\"text\", this._getViewsCaption(view, additionalView))\r\n },\r\n _getViewsCaption(view, additionalView) {\r\n var caption = view.getNavigatorCaption();\r\n var {\r\n viewsCount: viewsCount\r\n } = this.option();\r\n if (viewsCount > 1 && additionalView) {\r\n var additionalViewCaption = additionalView.getNavigatorCaption();\r\n caption = \"\".concat(caption, \" - \").concat(additionalViewCaption)\r\n }\r\n return caption\r\n },\r\n _isDateInInvalidRange(date) {\r\n if (this._view.isBoundary(date)) {\r\n return\r\n }\r\n var min = this._getMinDate();\r\n var max = this._getMaxDate();\r\n var normalizedDate = dateUtils.normalizeDate(date, min, max);\r\n return normalizedDate === min || normalizedDate === max\r\n },\r\n _renderFooter() {\r\n var showTodayButton = this.option(\"showTodayButton\");\r\n if (showTodayButton) {\r\n var $todayButton = this._createComponent($(\"<div>\"), Button, {\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n text: messageLocalization.format(\"dxCalendar-todayButtonText\"),\r\n onClick: args => {\r\n this._toTodayView(args)\r\n },\r\n type: isFluent() ? \"normal\" : \"default\",\r\n stylingMode: isFluent() ? \"outlined\" : \"text\",\r\n integrationOptions: {}\r\n }).$element().addClass(CALENDAR_TODAY_BUTTON_CLASS);\r\n this._$footer = $(\"<div>\").addClass(CALENDAR_FOOTER_CLASS).append($todayButton);\r\n this.$element().append(this._$footer)\r\n }\r\n this.$element().toggleClass(CALENDAR_HAS_FOOTER_CLASS, showTodayButton)\r\n },\r\n _renderSubmitElement() {\r\n this._$submitElement = $(\"<input>\").attr(\"type\", \"hidden\").appendTo(this.$element());\r\n this._setSubmitValue(this.option(\"value\"))\r\n },\r\n _setSubmitValue(value) {\r\n var dateValue = this._convertToDate(value);\r\n this._getSubmitElement().val(dateSerialization.serializeDate(dateValue, CALENDAR_INPUT_STANDARD_PATTERN))\r\n },\r\n _getSubmitElement() {\r\n return this._$submitElement\r\n },\r\n _animateShowView() {\r\n fx.stop(this._view.$element(), true);\r\n this._popAnimationView(this._view, POP_ANIMATION_FROM, POP_ANIMATION_TO, ANIMATION_DURATION_SHOW_VIEW);\r\n if (this.option(\"viewsCount\") > 1) {\r\n fx.stop(this._additionalView.$element(), true);\r\n this._popAnimationView(this._additionalView, POP_ANIMATION_FROM, POP_ANIMATION_TO, ANIMATION_DURATION_SHOW_VIEW)\r\n }\r\n },\r\n _popAnimationView: (view, from, to, duration) => fx.animate(view.$element(), {\r\n type: \"pop\",\r\n from: {\r\n scale: from,\r\n opacity: from\r\n },\r\n to: {\r\n scale: to,\r\n opacity: to\r\n },\r\n duration: duration\r\n }),\r\n _navigate(offset, value) {\r\n if (0 !== offset && 1 !== Math.abs(offset) && this._isViewAvailable(value)) {\r\n var newView = this._renderSpecificView(value);\r\n if (offset > 0) {\r\n this._afterView && this._afterView.$element().remove();\r\n this._afterView = newView\r\n } else {\r\n this._beforeView && this._beforeView.$element().remove();\r\n this._beforeView = newView\r\n }\r\n this._translateViews()\r\n }\r\n var rtlCorrection = this._getRtlCorrection();\r\n var offsetSign = offset > 0 ? 1 : offset < 0 ? -1 : 0;\r\n var endPosition = -rtlCorrection * offsetSign * this._viewWidth();\r\n var viewsWrapperPosition = this._$viewsWrapper.position().left;\r\n if (viewsWrapperPosition !== endPosition) {\r\n if (this._preventViewChangeAnimation) {\r\n this._wrapperAnimationEndHandler(offset, value)\r\n } else {\r\n this._animateWrapper(endPosition, ANIMATION_DURATION_SHOW_VIEW).done(this._wrapperAnimationEndHandler.bind(this, offset, value))\r\n }\r\n }\r\n },\r\n _animateWrapper(to, duration) {\r\n return fx.animate(this._$viewsWrapper, {\r\n type: \"slide\",\r\n from: {\r\n left: this._$viewsWrapper.position().left\r\n },\r\n to: {\r\n left: to\r\n },\r\n duration: duration\r\n })\r\n },\r\n _getDate: value => new Date(value),\r\n _toTodayView(args) {\r\n var today = new Date;\r\n if (this._isMaxZoomLevel()) {\r\n this._selectionStrategy.selectValue(today, args.event);\r\n return\r\n }\r\n this._preventViewChangeAnimation = true;\r\n this.option(\"zoomLevel\", this.option(\"maxZoomLevel\"));\r\n this._selectionStrategy.selectValue(today, args.event);\r\n this._animateShowView();\r\n this._preventViewChangeAnimation = false\r\n },\r\n _wrapperAnimationEndHandler(offset, newDate) {\r\n this._rearrangeViews(offset);\r\n this._translateViews();\r\n this._resetLocation();\r\n this._renderNavigator();\r\n this._setViewContoured(newDate);\r\n this._updateAriaId(newDate);\r\n this._selectionStrategy.updateAriaSelected()\r\n },\r\n _rearrangeViews(offset) {\r\n var _a;\r\n if (0 === offset) {\r\n return\r\n }\r\n var {\r\n viewsCount: viewsCount\r\n } = this.option();\r\n var viewOffset;\r\n var viewToCreateKey;\r\n var viewToRemoveKey;\r\n var viewBeforeCreateKey;\r\n var viewAfterRemoveKey;\r\n if (offset < 0) {\r\n viewOffset = 1;\r\n viewToCreateKey = \"_beforeView\";\r\n viewToRemoveKey = \"_afterView\";\r\n viewBeforeCreateKey = \"_view\";\r\n viewAfterRemoveKey = 1 === viewsCount ? \"_view\" : \"_additionalView\"\r\n } else {\r\n viewOffset = -1;\r\n viewToCreateKey = \"_afterView\";\r\n viewToRemoveKey = \"_beforeView\";\r\n viewBeforeCreateKey = 1 === viewsCount ? \"_view\" : \"_additionalView\";\r\n viewAfterRemoveKey = \"_view\"\r\n }\r\n if (!this[viewToCreateKey]) {\r\n return\r\n }\r\n var destinationDate = this[viewToCreateKey].option(\"date\");\r\n null === (_a = this[viewToRemoveKey]) || void 0 === _a ? void 0 : _a.$element().remove();\r\n this[viewToRemoveKey] = this._renderSpecificView(this._getDateByOffset(viewOffset * viewsCount, destinationDate));\r\n this[viewAfterRemoveKey].$element().remove();\r\n if (1 === viewsCount) {\r\n this[viewAfterRemoveKey] = this[viewToCreateKey]\r\n } else {\r\n this[viewAfterRemoveKey] = this[viewBeforeCreateKey];\r\n this[viewBeforeCreateKey] = this[viewToCreateKey]\r\n }\r\n var dateByOffset = this._getDateByOffset(-viewOffset, destinationDate);\r\n this[viewToCreateKey] = this._isViewAvailable(dateByOffset) ? this._renderSpecificView(dateByOffset) : null\r\n },\r\n _resetLocation() {\r\n move(this._$viewsWrapper, {\r\n left: 0,\r\n top: 0\r\n })\r\n },\r\n _clean() {\r\n this.callBase();\r\n this._clearViewWidthCache();\r\n delete this._$viewsWrapper;\r\n delete this._navigator;\r\n delete this._$footer\r\n },\r\n _clearViewWidthCache() {\r\n delete this._viewWidthValue\r\n },\r\n _disposeViews() {\r\n this._view.$element().remove();\r\n this._beforeView && this._beforeView.$element().remove();\r\n this._additionalView && this._additionalView.$element().remove();\r\n this._afterView && this._afterView.$element().remove();\r\n delete this._view;\r\n delete this._additionalView;\r\n delete this._beforeView;\r\n delete this._afterView;\r\n delete this._skipNavigate\r\n },\r\n _dispose() {\r\n clearTimeout(this._waitRenderViewTimeout);\r\n this.callBase()\r\n },\r\n _refreshViews() {\r\n this._resetActiveState();\r\n this._disposeViews();\r\n this._renderViews()\r\n },\r\n _visibilityChanged() {\r\n this._translateViews()\r\n },\r\n _shouldSkipFocusEvent(event) {\r\n var {\r\n target: target,\r\n relatedTarget: relatedTarget\r\n } = event;\r\n return $(target).parents(\".\".concat(CALENDAR_CLASS)).length && $(relatedTarget).parents(\".\".concat(CALENDAR_CLASS)).length\r\n },\r\n _focusInHandler(event) {\r\n if ($(event.target).is(this._$viewsWrapper)) {\r\n this._setViewContoured(this.option(\"currentDate\"))\r\n }\r\n if (this._shouldSkipFocusEvent(event)) {\r\n return\r\n }\r\n this.callBase.apply(this, arguments);\r\n this._toggleFocusClass(true, this.$element())\r\n },\r\n _focusOutHandler(event) {\r\n var _a;\r\n if ($(event.target).is(this._$viewsWrapper)) {\r\n this._view.option(\"contouredDate\", null);\r\n null === (_a = this._additionalView) || void 0 === _a ? void 0 : _a.option(\"contouredDate\", null)\r\n }\r\n if (this._shouldSkipFocusEvent(event)) {\r\n return\r\n }\r\n this.callBase.apply(this, arguments);\r\n this._toggleFocusClass(false, this.$element())\r\n },\r\n _updateViewsOption(optionName, newValue) {\r\n var _a, _b, _c;\r\n this._view.option(optionName, newValue);\r\n null === (_a = this._additionalView) || void 0 === _a ? void 0 : _a.option(optionName, newValue);\r\n null === (_b = this._beforeView) || void 0 === _b ? void 0 : _b.option(optionName, newValue);\r\n null === (_c = this._afterView) || void 0 === _c ? void 0 : _c.option(optionName, newValue)\r\n },\r\n _setViewsMinOption(min) {\r\n this._restoreViewsMinMaxOptions();\r\n this.option(\"_rangeMin\", this._convertToDate(min));\r\n this._updateViewsOption(\"min\", this._getMinDate())\r\n },\r\n _setViewsMaxOption(max) {\r\n this._restoreViewsMinMaxOptions();\r\n this.option(\"_rangeMax\", this._convertToDate(max));\r\n this._updateViewsOption(\"max\", this._getMaxDate())\r\n },\r\n _restoreViewsMinMaxOptions() {\r\n this._resetActiveState();\r\n this.option({\r\n _rangeMin: null,\r\n _rangeMax: null\r\n });\r\n this._updateViewsOption(\"min\", this._getMinDate());\r\n this._updateViewsOption(\"max\", this._getMaxDate())\r\n },\r\n _updateNavigatorLabels() {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n zoomLevel = zoomLevel.charAt(0).toUpperCase() + zoomLevel.slice(1);\r\n var captionButtonText = this._navigator._caption.option(\"text\");\r\n var localizedPrevButtonLabel = messageLocalization.format(\"dxCalendar-previous\".concat(zoomLevel, \"ButtonLabel\"));\r\n var localizedCaptionLabel = messageLocalization.format(\"dxCalendar-caption\".concat(zoomLevel, \"Label\"));\r\n var localizedNextButtonLabel = messageLocalization.format(\"dxCalendar-next\".concat(zoomLevel, \"ButtonLabel\"));\r\n this.setAria(\"label\", localizedPrevButtonLabel, this._navigator._prevButton.$element());\r\n this.setAria(\"label\", \"\".concat(captionButtonText, \". \").concat(localizedCaptionLabel), this._navigator._caption.$element());\r\n this.setAria(\"label\", localizedNextButtonLabel, this._navigator._nextButton.$element())\r\n },\r\n _updateAriaSelected(value, previousValue) {\r\n previousValue.forEach(item => {\r\n this.setAria(\"selected\", void 0, this._view._getCellByDate(item))\r\n });\r\n value.forEach(item => {\r\n this.setAria(\"selected\", true, this._view._getCellByDate(item))\r\n });\r\n if (this.option(\"viewsCount\") > 1) {\r\n previousValue.forEach(item => {\r\n this.setAria(\"selected\", void 0, this._additionalView._getCellByDate(item))\r\n });\r\n value.forEach(item => {\r\n this.setAria(\"selected\", true, this._additionalView._getCellByDate(item))\r\n })\r\n }\r\n },\r\n _updateAriaId(value) {\r\n value = null !== value && void 0 !== value ? value : this.option(\"currentDate\");\r\n var ariaId = \"dx-\".concat(new Guid);\r\n var view = this._getActiveView(value);\r\n var $newCell = view._getCellByDate(value);\r\n this.setAria(\"id\", ariaId, $newCell);\r\n this.setAria(\"activedescendant\", ariaId);\r\n this._onContouredChanged(ariaId)\r\n },\r\n _suppressingNavigation(callback, args) {\r\n this._suppressNavigation = true;\r\n callback.apply(this, args);\r\n delete this._suppressNavigation\r\n },\r\n _optionChanged(args) {\r\n var {\r\n value: value,\r\n previousValue: previousValue\r\n } = args;\r\n switch (args.name) {\r\n case \"width\":\r\n this.callBase(args);\r\n this._clearViewWidthCache();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n this.min = void 0;\r\n this.max = void 0;\r\n this._suppressingNavigation(this._updateCurrentDate, [this.option(\"currentDate\")]);\r\n this._refreshViews();\r\n this._renderNavigator();\r\n break;\r\n case \"selectionMode\":\r\n this._refreshSelectionStrategy();\r\n this._initCurrentDate();\r\n break;\r\n case \"selectWeekOnClick\":\r\n this._refreshViews();\r\n break;\r\n case \"firstDayOfWeek\":\r\n this._refreshViews();\r\n this._updateButtonsVisibility();\r\n break;\r\n case \"focusStateEnabled\":\r\n this._invalidate();\r\n break;\r\n case \"currentDate\":\r\n this.setAria(\"id\", void 0, this._view._getCellByDate(previousValue));\r\n this._updateCurrentDate(value);\r\n break;\r\n case \"zoomLevel\":\r\n this.$element().removeClass(\"\".concat(CALENDAR_VIEW_CLASS, \"-\").concat(previousValue));\r\n this._correctZoomLevel();\r\n this._refreshViews();\r\n this._renderNavigator();\r\n this._updateAriaId();\r\n this._updateNavigatorLabels();\r\n break;\r\n case \"minZoomLevel\":\r\n case \"maxZoomLevel\":\r\n this._correctZoomLevel();\r\n this._updateButtonsVisibility();\r\n break;\r\n case \"value\":\r\n this._selectionStrategy.processValueChanged(value, previousValue);\r\n this._setSubmitValue(value);\r\n this.callBase(args);\r\n break;\r\n case \"viewsCount\":\r\n this._refreshViews();\r\n this._renderNavigator();\r\n break;\r\n case \"onCellClick\":\r\n this._view.option(\"onCellClick\", value);\r\n break;\r\n case \"onContouredChanged\":\r\n this._onContouredChanged = this._createActionByOption(\"onContouredChanged\");\r\n break;\r\n case \"disabledDates\":\r\n case \"dateSerializationFormat\":\r\n case \"cellTemplate\":\r\n case \"showTodayButton\":\r\n this._invalidate();\r\n break;\r\n case \"skipFocusCheck\":\r\n break;\r\n case \"_todayDate\":\r\n case \"showWeekNumbers\":\r\n case \"weekNumberRule\":\r\n this._refreshViews();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n getContouredDate() {\r\n return this._view.option(\"contouredDate\")\r\n }\r\n});\r\nregisterComponent(\"dxCalendar\", Calendar);\r\nexport default Calendar;\r\n","/**\r\n * DevExtreme (esm/ui/calendar.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Calendar from \"../__internal/ui/calendar/m_calendar\";\r\nexport default Calendar;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/date_box/m_date_box.strategy.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../../core/class\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport dateLocalization from \"../../../localization/date\";\r\nvar {\r\n abstract: abstract\r\n} = Class;\r\nvar DateBoxStrategy = Class.inherit({\r\n ctor(dateBox) {\r\n this.dateBox = dateBox\r\n },\r\n widgetOption() {\r\n return this._widget && this._widget.option.apply(this._widget, arguments)\r\n },\r\n _renderWidget(element) {\r\n element = element || $(\"<div>\");\r\n this._widget = this._createWidget(element);\r\n this._widget.$element().appendTo(this._getWidgetContainer())\r\n },\r\n _createWidget(element) {\r\n var widgetName = this._getWidgetName();\r\n var widgetOptions = this._getWidgetOptions();\r\n return this.dateBox._createComponent(element, widgetName, widgetOptions)\r\n },\r\n _getWidgetOptions: abstract,\r\n _getWidgetName: abstract,\r\n getDefaultOptions: () => ({\r\n mode: \"text\"\r\n }),\r\n getDisplayFormat: abstract,\r\n supportedKeys: noop,\r\n getKeyboardListener: noop,\r\n customizeButtons: noop,\r\n getParsedText(text, format) {\r\n var value = dateLocalization.parse(text, format);\r\n return value || dateLocalization.parse(text)\r\n },\r\n renderInputMinMax: noop,\r\n renderOpenedState() {\r\n this._updateValue()\r\n },\r\n popupConfig: abstract,\r\n _dimensionChanged() {\r\n var _a;\r\n null === (_a = this._getPopup()) || void 0 === _a ? void 0 : _a.repaint()\r\n },\r\n renderPopupContent() {\r\n var popup = this._getPopup();\r\n this._renderWidget();\r\n var $popupContent = popup.$content().parent();\r\n eventsEngine.off($popupContent, \"mousedown\");\r\n eventsEngine.on($popupContent, \"mousedown\", this._preventFocusOnPopup.bind(this))\r\n },\r\n _preventFocusOnPopup(e) {\r\n e.preventDefault()\r\n },\r\n _getWidgetContainer() {\r\n return this._getPopup().$content()\r\n },\r\n _getPopup() {\r\n return this.dateBox._popup\r\n },\r\n popupShowingHandler: noop,\r\n popupHiddenHandler: noop,\r\n _updateValue() {\r\n this._widget && this._widget.option(\"value\", this.dateBoxValue())\r\n },\r\n useCurrentDateByDefault: noop,\r\n getDefaultDate: () => new Date,\r\n textChangedHandler: noop,\r\n renderValue() {\r\n if (this.dateBox.option(\"opened\")) {\r\n this._updateValue()\r\n }\r\n },\r\n getValue() {\r\n return this._widget.option(\"value\")\r\n },\r\n isAdaptivityChanged: () => false,\r\n dispose() {\r\n var popup = this._getPopup();\r\n if (popup) {\r\n popup.$content().empty()\r\n }\r\n },\r\n dateBoxValue() {\r\n if (arguments.length) {\r\n return this.dateBox.dateValue.apply(this.dateBox, arguments)\r\n }\r\n return this.dateBox.dateOption.apply(this.dateBox, [\"value\"])\r\n }\r\n});\r\nexport default DateBoxStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/date_box/m_date_box.strategy.calendar.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n splitPair\r\n} from \"../../../core/utils/common\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n isEmptyObject,\r\n isFunction\r\n} from \"../../../core/utils/type\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport Calendar from \"../../../ui/calendar\";\r\nimport {\r\n isMaterial\r\n} from \"../../../ui/themes\";\r\nimport DateBoxStrategy from \"./m_date_box.strategy\";\r\nvar TODAY_BUTTON_CLASS = \"dx-button-today\";\r\nvar CalendarStrategy = DateBoxStrategy.inherit({\r\n NAME: \"Calendar\",\r\n getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n todayButtonText: messageLocalization.format(\"dxCalendar-todayButtonText\")\r\n })\r\n },\r\n supportedKeys() {\r\n var homeEndHandler = function(e) {\r\n if (this.option(\"opened\")) {\r\n e.preventDefault();\r\n return true\r\n }\r\n return false\r\n };\r\n return {\r\n rightArrow() {\r\n if (this.option(\"opened\")) {\r\n return true\r\n }\r\n },\r\n leftArrow() {\r\n if (this.option(\"opened\")) {\r\n return true\r\n }\r\n },\r\n enter: function(e) {\r\n if (this.dateBox.option(\"opened\")) {\r\n e.preventDefault();\r\n if (this._widget.option(\"zoomLevel\") === this._widget.option(\"maxZoomLevel\")) {\r\n var viewValue = this._getContouredValue();\r\n var lastActionElement = this._lastActionElement;\r\n var shouldCloseDropDown = this._closeDropDownByEnter();\r\n if (shouldCloseDropDown && viewValue && \"calendar\" === lastActionElement) {\r\n this.dateBoxValue(viewValue, e)\r\n }\r\n shouldCloseDropDown && this.dateBox.close();\r\n this.dateBox._valueChangeEventHandler(e);\r\n return !shouldCloseDropDown\r\n }\r\n return true\r\n }\r\n this.dateBox._valueChangeEventHandler(e)\r\n }.bind(this),\r\n home: homeEndHandler,\r\n end: homeEndHandler\r\n }\r\n },\r\n getDisplayFormat: displayFormat => displayFormat || \"shortdate\",\r\n _closeDropDownByEnter: () => true,\r\n _getWidgetName: () => Calendar,\r\n _getContouredValue() {\r\n return this._widget._view.option(\"contouredDate\")\r\n },\r\n getKeyboardListener() {\r\n return this._widget\r\n },\r\n _getWidgetOptions() {\r\n var disabledDates = this.dateBox.option(\"disabledDates\");\r\n return extend(this.dateBox.option(\"calendarOptions\"), {\r\n value: this.dateBoxValue() || null,\r\n selectionMode: \"single\",\r\n dateSerializationFormat: null,\r\n min: this.dateBox.dateOption(\"min\"),\r\n max: this.dateBox.dateOption(\"max\"),\r\n onValueChanged: this._valueChangedHandler.bind(this),\r\n onCellClick: this._cellClickHandler.bind(this),\r\n disabledDates: isFunction(disabledDates) ? this._injectComponent(disabledDates.bind(this.dateBox)) : disabledDates,\r\n onContouredChanged: this._refreshActiveDescendant.bind(this),\r\n skipFocusCheck: true\r\n })\r\n },\r\n _injectComponent(func) {\r\n var that = this;\r\n return function(params) {\r\n extend(params, {\r\n component: that.dateBox\r\n });\r\n return func(params)\r\n }\r\n },\r\n _refreshActiveDescendant(e) {\r\n this._lastActionElement = \"calendar\";\r\n this.dateBox.setAria(\"activedescendant\", e.actionValue)\r\n },\r\n _getTodayButtonConfig() {\r\n var buttonsLocation = this.dateBox.option(\"buttonsLocation\");\r\n var isButtonsLocationDefault = \"default\" === buttonsLocation;\r\n var position = isButtonsLocationDefault ? [\"bottom\", \"center\"] : splitPair(buttonsLocation);\r\n var stylingMode = isMaterial() ? \"text\" : \"outlined\";\r\n return {\r\n widget: \"dxButton\",\r\n toolbar: position[0],\r\n location: \"after\" === position[1] ? \"before\" : position[1],\r\n options: {\r\n onClick: args => {\r\n this._widget._toTodayView(args)\r\n },\r\n text: this.dateBox.option(\"todayButtonText\"),\r\n elementAttr: {\r\n class: TODAY_BUTTON_CLASS\r\n },\r\n stylingMode: stylingMode\r\n }\r\n }\r\n },\r\n _isCalendarVisible() {\r\n var {\r\n calendarOptions: calendarOptions\r\n } = this.dateBox.option();\r\n return isEmptyObject(calendarOptions) || false !== calendarOptions.visible\r\n },\r\n _getPopupToolbarItems(toolbarItems) {\r\n var useButtons = \"useButtons\" === this.dateBox.option(\"applyValueMode\");\r\n var shouldRenderTodayButton = useButtons && this._isCalendarVisible();\r\n if (shouldRenderTodayButton) {\r\n var todayButton = this._getTodayButtonConfig();\r\n return [todayButton, ...toolbarItems]\r\n }\r\n return toolbarItems\r\n },\r\n popupConfig: popupConfig => extend(true, popupConfig, {\r\n position: {\r\n collision: \"flipfit flip\"\r\n },\r\n width: \"auto\"\r\n }),\r\n _valueChangedHandler(e) {\r\n var {\r\n value: value\r\n } = e;\r\n var prevValue = e.previousValue;\r\n if (dateUtils.sameDate(value, prevValue) && dateUtils.sameHoursAndMinutes(value, prevValue)) {\r\n return\r\n }\r\n if (\"instantly\" === this.dateBox.option(\"applyValueMode\")) {\r\n this.dateBoxValue(this.getValue(), e.event)\r\n }\r\n },\r\n _updateValue() {\r\n if (!this._widget) {\r\n return\r\n }\r\n this._widget.option(\"value\", this.dateBoxValue())\r\n },\r\n textChangedHandler() {\r\n this._lastActionElement = \"input\";\r\n if (this.dateBox.option(\"opened\") && this._widget) {\r\n this._updateValue(true)\r\n }\r\n },\r\n _cellClickHandler(e) {\r\n var {\r\n dateBox: dateBox\r\n } = this;\r\n if (\"instantly\" === dateBox.option(\"applyValueMode\")) {\r\n dateBox.option(\"opened\", false);\r\n this.dateBoxValue(this.getValue(), e.event)\r\n }\r\n }\r\n});\r\nexport default CalendarStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/m_box.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n dasherize\r\n} from \"../../core/utils/inflector\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n normalizeStyleProp,\r\n setStyle,\r\n styleProp,\r\n stylePropPrefix\r\n} from \"../../core/utils/style\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport CollectionWidget from \"../../ui/collection/ui.collection_widget.edit\";\r\nimport CollectionWidgetItem from \"../ui/collection/m_item\";\r\nvar BOX_CLASS = \"dx-box\";\r\nvar BOX_FLEX_CLASS = \"dx-box-flex\";\r\nvar BOX_ITEM_CLASS = \"dx-box-item\";\r\nvar BOX_ITEM_DATA_KEY = \"dxBoxItemData\";\r\nvar SHRINK = 1;\r\nvar MINSIZE_MAP = {\r\n row: \"minWidth\",\r\n col: \"minHeight\"\r\n};\r\nvar MAXSIZE_MAP = {\r\n row: \"maxWidth\",\r\n col: \"maxHeight\"\r\n};\r\nvar FLEX_JUSTIFY_CONTENT_MAP = {\r\n start: \"flex-start\",\r\n end: \"flex-end\",\r\n center: \"center\",\r\n \"space-between\": \"space-between\",\r\n \"space-around\": \"space-around\"\r\n};\r\nvar FLEX_ALIGN_ITEMS_MAP = {\r\n start: \"flex-start\",\r\n end: \"flex-end\",\r\n center: \"center\",\r\n stretch: \"stretch\"\r\n};\r\nvar FLEX_DIRECTION_MAP = {\r\n row: \"row\",\r\n col: \"column\"\r\n};\r\nvar setFlexProp = (element, prop, value) => {\r\n value = normalizeStyleProp(prop, value);\r\n element.style[styleProp(prop)] = value;\r\n if (!hasWindow()) {\r\n if (\"\" === value || !isDefined(value)) {\r\n return\r\n }\r\n var cssName = dasherize(prop);\r\n var styleExpr = \"\".concat(cssName, \": \").concat(value, \";\");\r\n setStyle(element, styleExpr, false)\r\n }\r\n};\r\nclass BoxItem extends CollectionWidgetItem {\r\n _renderVisible(value, oldValue) {\r\n super._renderVisible(value);\r\n if (isDefined(oldValue)) {\r\n this._options.fireItemStateChangedAction({\r\n name: \"visible\",\r\n state: value,\r\n oldState: oldValue\r\n })\r\n }\r\n }\r\n}\r\nclass LayoutStrategy {\r\n constructor($element, option) {\r\n this._$element = $element;\r\n this._option = option\r\n }\r\n renderBox() {\r\n this._$element.css({\r\n display: \"\".concat(stylePropPrefix(\"flexDirection\"), \"flex\")\r\n });\r\n setFlexProp(this._$element.get(0), \"flexDirection\", FLEX_DIRECTION_MAP[this._option(\"direction\")])\r\n }\r\n renderAlign() {\r\n this._$element.css({\r\n justifyContent: this._normalizedAlign()\r\n })\r\n }\r\n _normalizedAlign() {\r\n var align = this._option(\"align\");\r\n return align in FLEX_JUSTIFY_CONTENT_MAP ? FLEX_JUSTIFY_CONTENT_MAP[align] : align\r\n }\r\n renderCrossAlign() {\r\n this._$element.css({\r\n alignItems: this._normalizedCrossAlign()\r\n })\r\n }\r\n _normalizedCrossAlign() {\r\n var crossAlign = this._option(\"crossAlign\");\r\n return crossAlign in FLEX_ALIGN_ITEMS_MAP ? FLEX_ALIGN_ITEMS_MAP[crossAlign] : crossAlign\r\n }\r\n renderItems($items) {\r\n var flexPropPrefix = stylePropPrefix(\"flexDirection\");\r\n var direction = this._option(\"direction\");\r\n each($items, (function() {\r\n var $item = $(this);\r\n var item = $item.data(BOX_ITEM_DATA_KEY);\r\n $item.css({\r\n display: \"\".concat(flexPropPrefix, \"flex\")\r\n }).css(MAXSIZE_MAP[direction], item.maxSize || \"none\").css(MINSIZE_MAP[direction], item.minSize || \"0\");\r\n setFlexProp($item.get(0), \"flexBasis\", item.baseSize || 0);\r\n setFlexProp($item.get(0), \"flexGrow\", item.ratio);\r\n setFlexProp($item.get(0), \"flexShrink\", isDefined(item.shrink) ? item.shrink : SHRINK);\r\n $item.children().each((_, itemContent) => {\r\n $(itemContent).css({\r\n width: \"auto\",\r\n height: \"auto\",\r\n display: \"\".concat(stylePropPrefix(\"flexDirection\"), \"flex\"),\r\n flexBasis: 0\r\n });\r\n setFlexProp(itemContent, \"flexGrow\", 1);\r\n setFlexProp(itemContent, \"flexDirection\", $(itemContent)[0].style.flexDirection || \"column\")\r\n })\r\n }))\r\n }\r\n}\r\nclass Box extends CollectionWidget {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n direction: \"row\",\r\n align: \"start\",\r\n crossAlign: \"stretch\",\r\n activeStateEnabled: false,\r\n focusStateEnabled: false,\r\n onItemStateChanged: void 0,\r\n _queue: void 0\r\n })\r\n }\r\n _itemClass() {\r\n return BOX_ITEM_CLASS\r\n }\r\n _itemDataKey() {\r\n return BOX_ITEM_DATA_KEY\r\n }\r\n _itemElements() {\r\n return this._itemContainer().children(this._itemSelector())\r\n }\r\n _init() {\r\n super._init();\r\n this.$element().addClass(BOX_FLEX_CLASS);\r\n this._initLayout();\r\n this._initBoxQueue()\r\n }\r\n _initLayout() {\r\n this._layout = new LayoutStrategy(this.$element(), this.option.bind(this))\r\n }\r\n _initBoxQueue() {\r\n this._queue = this.option(\"_queue\") || []\r\n }\r\n _queueIsNotEmpty() {\r\n return this.option(\"_queue\") ? false : !!this._queue.length\r\n }\r\n _pushItemToQueue($item, config) {\r\n this._queue.push({\r\n $item: $item,\r\n config: config\r\n })\r\n }\r\n _shiftItemFromQueue() {\r\n return this._queue.shift()\r\n }\r\n _initMarkup() {\r\n this.$element().addClass(BOX_CLASS);\r\n this._layout.renderBox();\r\n super._initMarkup();\r\n this._renderAlign();\r\n this._renderActions()\r\n }\r\n _renderActions() {\r\n this._onItemStateChanged = this._createActionByOption(\"onItemStateChanged\")\r\n }\r\n _renderAlign() {\r\n this._layout.renderAlign();\r\n this._layout.renderCrossAlign()\r\n }\r\n _renderItems(items) {\r\n super._renderItems(items);\r\n while (this._queueIsNotEmpty()) {\r\n var item = this._shiftItemFromQueue();\r\n this._createComponent(item.$item, Box, extend({\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n itemHoldTimeout: this.option(\"itemHoldTimeout\"),\r\n onItemHold: this.option(\"onItemHold\"),\r\n onItemClick: this.option(\"onItemClick\"),\r\n onItemContextMenu: this.option(\"onItemContextMenu\"),\r\n onItemRendered: this.option(\"onItemRendered\"),\r\n _queue: this._queue\r\n }, item.config))\r\n }\r\n this._layout.renderItems(this._itemElements())\r\n }\r\n _renderItemContent(args) {\r\n var $itemNode = args.itemData && args.itemData.node;\r\n if ($itemNode) {\r\n return this._renderItemContentByNode(args, $itemNode)\r\n }\r\n return super._renderItemContent(args)\r\n }\r\n _postprocessRenderItem(args) {\r\n var boxConfig = args.itemData.box;\r\n if (!boxConfig) {\r\n return\r\n }\r\n this._pushItemToQueue(args.itemContent, boxConfig)\r\n }\r\n _createItemByTemplate(itemTemplate, args) {\r\n if (args.itemData.box) {\r\n return itemTemplate.source ? itemTemplate.source() : $()\r\n }\r\n return super._createItemByTemplate(itemTemplate, args)\r\n }\r\n _itemOptionChanged(item, property, value, oldValue) {\r\n if (\"visible\" === property) {\r\n this._onItemStateChanged({\r\n name: property,\r\n state: value,\r\n oldState: false !== oldValue\r\n })\r\n }\r\n super._itemOptionChanged(item, property, value)\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"_queue\":\r\n case \"direction\":\r\n this._invalidate();\r\n break;\r\n case \"align\":\r\n this._layout.renderAlign();\r\n break;\r\n case \"crossAlign\":\r\n this._layout.renderCrossAlign();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _itemOptions() {\r\n var options = super._itemOptions();\r\n options.fireItemStateChangedAction = e => {\r\n this._onItemStateChanged(e)\r\n };\r\n return options\r\n }\r\n}\r\nBox.ItemClass = BoxItem;\r\nregisterComponent(\"dxBox\", Box);\r\nexport default Box;\r\n","/**\r\n * DevExtreme (esm/ui/box.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Box from \"../__internal/ui/m_box\";\r\nexport default Box;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/date_box/m_date_utils.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport dateSerialization from \"../../../core/utils/date_serialization\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n isDate\r\n} from \"../../../core/utils/type\";\r\nimport dateLocalization from \"../../../localization/date\";\r\nvar DATE_COMPONENTS = [\"year\", \"day\", \"month\", \"day\"];\r\nvar TIME_COMPONENTS = [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"];\r\nvar ONE_MINUTE = 6e4;\r\nvar ONE_DAY = 60 * ONE_MINUTE * 24;\r\nvar ONE_YEAR = 365 * ONE_DAY;\r\nvar getStringFormat = function(format) {\r\n var formatType = typeof format;\r\n if (\"string\" === formatType) {\r\n return \"format\"\r\n }\r\n if (\"object\" === formatType && void 0 !== format.type) {\r\n return format.type\r\n }\r\n return null\r\n};\r\nvar dateUtils = {\r\n SUPPORTED_FORMATS: [\"date\", \"time\", \"datetime\"],\r\n ONE_MINUTE: ONE_MINUTE,\r\n ONE_DAY: ONE_DAY,\r\n ONE_YEAR: ONE_YEAR,\r\n MIN_DATEVIEW_DEFAULT_DATE: new Date(1900, 0, 1),\r\n MAX_DATEVIEW_DEFAULT_DATE: function() {\r\n var newDate = new Date;\r\n return new Date(newDate.getFullYear() + 50, newDate.getMonth(), newDate.getDate(), 23, 59, 59)\r\n }(),\r\n FORMATS_INFO: {\r\n date: {\r\n getStandardPattern: () => \"yyyy-MM-dd\",\r\n components: DATE_COMPONENTS\r\n },\r\n time: {\r\n getStandardPattern: () => \"HH:mm\",\r\n components: TIME_COMPONENTS\r\n },\r\n datetime: {\r\n getStandardPattern() {\r\n var standardPattern;\r\n ! function() {\r\n var $input = $(\"<input>\").attr(\"type\", \"datetime\");\r\n $input.val(\"2000-01-01T01:01Z\");\r\n if ($input.val()) {\r\n standardPattern = \"yyyy-MM-ddTHH:mmZ\"\r\n }\r\n }();\r\n if (!standardPattern) {\r\n standardPattern = \"yyyy-MM-ddTHH:mm:ssZ\"\r\n }\r\n dateUtils.FORMATS_INFO.datetime.getStandardPattern = function() {\r\n return standardPattern\r\n };\r\n return standardPattern\r\n },\r\n components: [...DATE_COMPONENTS, ...TIME_COMPONENTS]\r\n },\r\n \"datetime-local\": {\r\n getStandardPattern: () => \"yyyy-MM-ddTHH:mm:ss\",\r\n components: [...DATE_COMPONENTS, \"hours\", \"minutes\", \"seconds\"]\r\n }\r\n },\r\n FORMATS_MAP: {\r\n date: \"shortdate\",\r\n time: \"shorttime\",\r\n datetime: \"shortdateshorttime\"\r\n },\r\n SUBMIT_FORMATS_MAP: {\r\n date: \"date\",\r\n time: \"time\",\r\n datetime: \"datetime-local\"\r\n },\r\n toStandardDateFormat(date, type) {\r\n var pattern = dateUtils.FORMATS_INFO[type].getStandardPattern();\r\n return dateSerialization.serializeDate(date, pattern)\r\n },\r\n fromStandardDateFormat(text) {\r\n var date = dateSerialization.dateParser(text);\r\n return isDate(date) ? date : void 0\r\n },\r\n getMaxMonthDay: (year, month) => new Date(year, month + 1, 0).getDate(),\r\n mergeDates(oldValue, newValue, format) {\r\n if (!newValue) {\r\n return newValue || null\r\n }\r\n if (!oldValue || isNaN(oldValue.getTime())) {\r\n var now = new Date(null);\r\n oldValue = new Date(now.getFullYear(), now.getMonth(), now.getDate())\r\n }\r\n var result = new Date(oldValue.valueOf());\r\n var formatInfo = dateUtils.FORMATS_INFO[format];\r\n each(formatInfo.components, (function() {\r\n var componentInfo = dateUtils.DATE_COMPONENTS_INFO[this];\r\n result[componentInfo.setter](newValue[componentInfo.getter]())\r\n }));\r\n return result\r\n },\r\n getLongestCaptionIndex(captionArray) {\r\n var longestIndex = 0;\r\n var longestCaptionLength = 0;\r\n var i;\r\n for (i = 0; i < captionArray.length; ++i) {\r\n if (captionArray[i].length > longestCaptionLength) {\r\n longestIndex = i;\r\n longestCaptionLength = captionArray[i].length\r\n }\r\n }\r\n return longestIndex\r\n },\r\n formatUsesMonthName: format => dateLocalization.formatUsesMonthName(format),\r\n formatUsesDayName: format => dateLocalization.formatUsesDayName(format),\r\n getLongestDate(format, monthNames, dayNames) {\r\n var stringFormat = getStringFormat(format);\r\n var month = 9;\r\n if (!stringFormat || dateUtils.formatUsesMonthName(stringFormat)) {\r\n month = dateUtils.getLongestCaptionIndex(monthNames)\r\n }\r\n var longestDate = new Date(1888, month, 21, 23, 59, 59, 999);\r\n if (!stringFormat || dateUtils.formatUsesDayName(stringFormat)) {\r\n var date = longestDate.getDate() - longestDate.getDay() + dateUtils.getLongestCaptionIndex(dayNames);\r\n longestDate.setDate(date)\r\n }\r\n return longestDate\r\n },\r\n normalizeTime(date) {\r\n date.setSeconds(0);\r\n date.setMilliseconds(0)\r\n }\r\n};\r\ndateUtils.DATE_COMPONENTS_INFO = {\r\n year: {\r\n getter: \"getFullYear\",\r\n setter: \"setFullYear\",\r\n formatter(value, date) {\r\n var formatDate = new Date(date.getTime());\r\n formatDate.setFullYear(value);\r\n return dateLocalization.format(formatDate, \"yyyy\")\r\n },\r\n startValue: void 0,\r\n endValue: void 0\r\n },\r\n day: {\r\n getter: \"getDate\",\r\n setter: \"setDate\",\r\n formatter(value, date) {\r\n var formatDate = new Date(date.getTime());\r\n formatDate.setDate(value);\r\n return dateLocalization.format(formatDate, \"d\")\r\n },\r\n startValue: 1,\r\n endValue: void 0\r\n },\r\n month: {\r\n getter: \"getMonth\",\r\n setter: \"setMonth\",\r\n formatter: value => dateLocalization.getMonthNames()[value],\r\n startValue: 0,\r\n endValue: 11\r\n },\r\n hours: {\r\n getter: \"getHours\",\r\n setter: \"setHours\",\r\n formatter: value => dateLocalization.format(new Date(0, 0, 0, value), \"hour\"),\r\n startValue: 0,\r\n endValue: 23\r\n },\r\n minutes: {\r\n getter: \"getMinutes\",\r\n setter: \"setMinutes\",\r\n formatter: value => dateLocalization.format(new Date(0, 0, 0, 0, value), \"minute\"),\r\n startValue: 0,\r\n endValue: 59\r\n },\r\n seconds: {\r\n getter: \"getSeconds\",\r\n setter: \"setSeconds\",\r\n formatter: value => dateLocalization.format(new Date(0, 0, 0, 0, 0, value), \"second\"),\r\n startValue: 0,\r\n endValue: 59\r\n },\r\n milliseconds: {\r\n getter: \"getMilliseconds\",\r\n setter: \"setMilliseconds\",\r\n formatter: value => dateLocalization.format(new Date(0, 0, 0, 0, 0, 0, value), \"millisecond\"),\r\n startValue: 0,\r\n endValue: 999\r\n }\r\n};\r\nexport default dateUtils;\r\n","/**\r\n * DevExtreme (esm/__internal/events/dblclick.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n closestCommonParent\r\n} from \"../../core/utils/dom\";\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 fireEvent\r\n} from \"../../events/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() {\r\n this._handlerCount = 0;\r\n this._forgetLastClick()\r\n },\r\n _forgetLastClick() {\r\n this._firstClickTarget = null;\r\n this._lastClickTimeStamp = -DBLCLICK_TIMEOUT\r\n },\r\n add() {\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 += 1\r\n },\r\n _clickHandler(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 clearTimeout(this._lastClickClearTimeout);\r\n this._lastClickClearTimeout = setTimeout(() => {\r\n this._forgetLastClick()\r\n }, 2 * DBLCLICK_TIMEOUT)\r\n }\r\n },\r\n remove() {\r\n this._handlerCount -= 1;\r\n if (this._handlerCount <= 0) {\r\n this._forgetLastClick();\r\n eventsEngine.off(domAdapter.getDocument(), NAMESPACED_CLICK_EVENT, void 0);\r\n clearTimeout(this._lastClickClearTimeout);\r\n this._handlerCount = 0\r\n }\r\n }\r\n});\r\nvar dblClick = new DblClick;\r\nexport {\r\n dblClick,\r\n DBLCLICK_EVENT_NAME as name\r\n};\r\n","/**\r\n * DevExtreme (esm/events/double_click.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n name,\r\n dblClick\r\n} from \"../__internal/events/dblclick\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nregisterEvent(name, dblClick);\r\nexport {\r\n name\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport TextEditorMask from \"../../__internal/ui/text_box/m_text_editor\";\r\nexport default TextEditorMask;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/number_box/m_number_box.spin.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport $ from \"../../../core/renderer\";\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 lock\r\n} from \"../../../events/core/emitter.feedback\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport holdEvent from \"../../../events/hold\";\r\nimport pointerEvents from \"../../../events/pointer\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nimport Widget from \"../../../ui/widget/ui.widget\";\r\nvar SPIN_CLASS = \"dx-numberbox-spin\";\r\nvar SPIN_BUTTON_CLASS = \"dx-numberbox-spin-button\";\r\nvar SPIN_HOLD_DELAY = 100;\r\nvar NUMBER_BOX = \"dxNumberBox\";\r\nvar POINTERUP_EVENT_NAME = addNamespace(pointerEvents.up, NUMBER_BOX);\r\nvar POINTERCANCEL_EVENT_NAME = addNamespace(pointerEvents.cancel, NUMBER_BOX);\r\nvar SpinButton = Widget.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n direction: \"up\",\r\n onChange: null,\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true\r\n })\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n var direction = \"\".concat(SPIN_CLASS, \"-\").concat(this.option(\"direction\"));\r\n this.$element().addClass(SPIN_BUTTON_CLASS).addClass(direction);\r\n this._spinIcon = $(\"<div>\").addClass(\"\".concat(direction, \"-icon\")).appendTo(this.$element())\r\n },\r\n _render() {\r\n this.callBase();\r\n var eventName = addNamespace(pointerEvents.down, this.NAME);\r\n var $element = this.$element();\r\n eventsEngine.off($element, eventName);\r\n eventsEngine.on($element, eventName, this._spinDownHandler.bind(this));\r\n this._spinChangeHandler = this._createActionByOption(\"onChange\")\r\n },\r\n _spinDownHandler(e) {\r\n e.preventDefault();\r\n this._clearTimer();\r\n eventsEngine.on(this.$element(), holdEvent.name, () => {\r\n this._feedBackDeferred = Deferred();\r\n lock(this._feedBackDeferred);\r\n this._spinChangeHandler({\r\n event: e\r\n });\r\n this._holdTimer = setInterval(this._spinChangeHandler, SPIN_HOLD_DELAY, {\r\n event: e\r\n })\r\n });\r\n var document = domAdapter.getDocument();\r\n eventsEngine.on(document, POINTERUP_EVENT_NAME, this._clearTimer.bind(this));\r\n eventsEngine.on(document, POINTERCANCEL_EVENT_NAME, this._clearTimer.bind(this));\r\n this._spinChangeHandler({\r\n event: e\r\n })\r\n },\r\n _dispose() {\r\n this._clearTimer();\r\n this.callBase()\r\n },\r\n _clearTimer() {\r\n eventsEngine.off(this.$element(), holdEvent.name);\r\n var document = domAdapter.getDocument();\r\n eventsEngine.off(document, POINTERUP_EVENT_NAME);\r\n eventsEngine.off(document, POINTERCANCEL_EVENT_NAME);\r\n if (this._feedBackDeferred) {\r\n this._feedBackDeferred.resolve()\r\n }\r\n if (this._holdTimer) {\r\n clearInterval(this._holdTimer)\r\n }\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"onChange\":\r\n case \"direction\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default SpinButton;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/number_box/m_number_box.spins.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport pointer from \"../../../events/pointer\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nimport TextEditorButton from \"../../ui/text_box/texteditor_button_collection/m_button\";\r\nimport SpinButton from \"./m_number_box.spin\";\r\nvar SPIN_CLASS = \"dx-numberbox-spin\";\r\nvar SPIN_CONTAINER_CLASS = \"dx-numberbox-spin-container\";\r\nvar SPIN_TOUCH_FRIENDLY_CLASS = \"dx-numberbox-spin-touch-friendly\";\r\nexport default class SpinButtons extends TextEditorButton {\r\n _attachEvents(instance, $spinContainer) {\r\n var {\r\n editor: editor\r\n } = this;\r\n var eventName = addNamespace(pointer.down, editor.NAME);\r\n var $spinContainerChildren = $spinContainer.children();\r\n var pointerDownAction = editor._createAction(e => editor._spinButtonsPointerDownHandler(e));\r\n eventsEngine.off($spinContainer, eventName);\r\n eventsEngine.on($spinContainer, eventName, e => pointerDownAction({\r\n event: e\r\n }));\r\n SpinButton.getInstance($spinContainerChildren.eq(0)).option(\"onChange\", e => editor._spinUpChangeHandler(e));\r\n SpinButton.getInstance($spinContainerChildren.eq(1)).option(\"onChange\", e => editor._spinDownChangeHandler(e))\r\n }\r\n _create() {\r\n var {\r\n editor: editor\r\n } = this;\r\n var $spinContainer = $(\"<div>\").addClass(SPIN_CONTAINER_CLASS);\r\n var $spinUp = $(\"<div>\").appendTo($spinContainer);\r\n var $spinDown = $(\"<div>\").appendTo($spinContainer);\r\n var options = this._getOptions();\r\n this._addToContainer($spinContainer);\r\n editor._createComponent($spinUp, SpinButton, extend({\r\n direction: \"up\"\r\n }, options));\r\n editor._createComponent($spinDown, SpinButton, extend({\r\n direction: \"down\"\r\n }, options));\r\n this._legacyRender(editor.$element(), this._isTouchFriendly(), options.visible);\r\n return {\r\n instance: $spinContainer,\r\n $element: $spinContainer\r\n }\r\n }\r\n _getOptions() {\r\n var {\r\n editor: editor\r\n } = this;\r\n var visible = this._isVisible();\r\n var disabled = editor.option(\"disabled\");\r\n return {\r\n visible: visible,\r\n disabled: disabled\r\n }\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return super._isVisible() && editor.option(\"showSpinButtons\")\r\n }\r\n _isTouchFriendly() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return editor.option(\"showSpinButtons\") && editor.option(\"useLargeSpinButtons\")\r\n }\r\n _legacyRender($editor, isTouchFriendly, isVisible) {\r\n $editor.toggleClass(SPIN_TOUCH_FRIENDLY_CLASS, isTouchFriendly);\r\n $editor.toggleClass(SPIN_CLASS, isVisible)\r\n }\r\n update() {\r\n var shouldUpdate = super.update();\r\n if (shouldUpdate) {\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 var isTouchFriendly = this._isTouchFriendly();\r\n var $spinButtons = instance.children();\r\n var spinUp = SpinButton.getInstance($spinButtons.eq(0));\r\n var spinDown = SpinButton.getInstance($spinButtons.eq(1));\r\n var options = this._getOptions();\r\n spinUp.option(options);\r\n spinDown.option(options);\r\n this._legacyRender($editor, isTouchFriendly, isVisible)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/number_box/m_number_box.base.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../../core/devices\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport $ from \"../../../core/renderer\";\r\nimport browser from \"../../../core/utils/browser\";\r\nimport {\r\n applyServerDecimalSeparator,\r\n ensureDefined\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 fitIntoRange,\r\n inRange\r\n} from \"../../../core/utils/math\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n addNamespace,\r\n getChar,\r\n isCommandKeyPressed,\r\n normalizeKeyName\r\n} from \"../../../events/utils/index\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport TextEditor from \"../../../ui/text_box/ui.text_editor\";\r\nimport SpinButtons from \"./m_number_box.spins\";\r\nvar math = Math;\r\nvar WIDGET_CLASS = \"dx-numberbox\";\r\nvar FIREFOX_CONTROL_KEYS = [\"tab\", \"del\", \"backspace\", \"leftArrow\", \"rightArrow\", \"home\", \"end\", \"enter\"];\r\nvar FORCE_VALUECHANGE_EVENT_NAMESPACE = \"NumberBoxForceValueChange\";\r\nvar NumberBoxBase = TextEditor.inherit({\r\n _supportedKeys() {\r\n return extend(this.callBase(), {\r\n upArrow(e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._spinUpChangeHandler(e)\r\n }\r\n },\r\n downArrow(e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._spinDownChangeHandler(e)\r\n }\r\n },\r\n enter() {}\r\n })\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n value: 0,\r\n min: void 0,\r\n max: void 0,\r\n step: 1,\r\n showSpinButtons: false,\r\n useLargeSpinButtons: true,\r\n mode: \"text\",\r\n invalidValueMessage: messageLocalization.format(\"dxNumberBox-invalidValueMessage\"),\r\n buttons: void 0\r\n })\r\n },\r\n _useTemplates: () => false,\r\n _getDefaultButtons() {\r\n return this.callBase().concat([{\r\n name: \"spins\",\r\n Ctor: SpinButtons\r\n }])\r\n },\r\n _isSupportInputMode() {\r\n var version = parseFloat(browser.version);\r\n return browser.chrome && version >= 66 || browser.safari && version >= 12\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device: () => devices.real().generic && !devices.isSimulator(),\r\n options: {\r\n useLargeSpinButtons: false\r\n }\r\n }, {\r\n device: function() {\r\n return \"desktop\" !== devices.real().deviceType && !this._isSupportInputMode()\r\n }.bind(this),\r\n options: {\r\n mode: \"number\"\r\n }\r\n }])\r\n },\r\n _initMarkup() {\r\n this._renderSubmitElement();\r\n this.$element().addClass(WIDGET_CLASS);\r\n this.callBase()\r\n },\r\n _getDefaultAttributes() {\r\n var attributes = this.callBase();\r\n attributes.inputmode = \"decimal\";\r\n return attributes\r\n },\r\n _renderContentImpl() {\r\n this.option(\"isValid\") && this._validateValue(this.option(\"value\"));\r\n this.setAria(\"role\", \"spinbutton\")\r\n },\r\n _renderSubmitElement() {\r\n this._$submitElement = $(\"<input>\").attr(\"type\", \"hidden\").appendTo(this.$element());\r\n this._setSubmitValue(this.option(\"value\"))\r\n },\r\n _setSubmitValue(value) {\r\n this._getSubmitElement().val(applyServerDecimalSeparator(value))\r\n },\r\n _getSubmitElement() {\r\n return this._$submitElement\r\n },\r\n _keyPressHandler(e) {\r\n this.callBase(e);\r\n var char = getChar(e);\r\n var isInputCharValid = /[\\d.,eE\\-+]/.test(char);\r\n if (!isInputCharValid) {\r\n var keyName = normalizeKeyName(e);\r\n if (isCommandKeyPressed(e) || keyName && FIREFOX_CONTROL_KEYS.includes(keyName)) {\r\n return\r\n }\r\n e.preventDefault();\r\n return false\r\n }\r\n this._keyPressed = true\r\n },\r\n _onMouseWheel(dxEvent) {\r\n dxEvent.delta > 0 ? this._spinValueChange(1, dxEvent) : this._spinValueChange(-1, dxEvent)\r\n },\r\n _renderValue() {\r\n var inputValue = this._input().val();\r\n var value = this.option(\"value\");\r\n if (!inputValue.length || Number(inputValue) !== value) {\r\n this._forceValueRender();\r\n this._toggleEmptinessEventHandler()\r\n }\r\n var valueText = isDefined(value) ? null : messageLocalization.format(\"dxNumberBox-noDataText\");\r\n this.setAria({\r\n valuenow: ensureDefined(value, \"\"),\r\n valuetext: valueText\r\n });\r\n this.option(\"text\", this._input().val());\r\n this._updateButtons();\r\n return Deferred().resolve()\r\n },\r\n _forceValueRender() {\r\n var value = this.option(\"value\");\r\n var number = Number(value);\r\n var formattedValue = isNaN(number) ? \"\" : this._applyDisplayValueFormatter(value);\r\n this._renderDisplayText(formattedValue)\r\n },\r\n _applyDisplayValueFormatter(value) {\r\n return this.option(\"displayValueFormatter\")(value)\r\n },\r\n _renderProps() {\r\n this._input().prop({\r\n min: this.option(\"min\"),\r\n max: this.option(\"max\"),\r\n step: this.option(\"step\")\r\n });\r\n this.setAria({\r\n valuemin: ensureDefined(this.option(\"min\"), \"\"),\r\n valuemax: ensureDefined(this.option(\"max\"), \"\")\r\n })\r\n },\r\n _spinButtonsPointerDownHandler() {\r\n var $input = this._input();\r\n if (!this.option(\"useLargeSpinButtons\") && domAdapter.getActiveElement() !== $input[0]) {\r\n eventsEngine.trigger($input, \"focus\")\r\n }\r\n },\r\n _spinUpChangeHandler(e) {\r\n if (!this.option(\"readOnly\")) {\r\n this._spinValueChange(1, e.event || e)\r\n }\r\n },\r\n _spinDownChangeHandler(e) {\r\n if (!this.option(\"readOnly\")) {\r\n this._spinValueChange(-1, e.event || e)\r\n }\r\n },\r\n _spinValueChange(sign, dxEvent) {\r\n var step = parseFloat(this.option(\"step\"));\r\n if (0 === step) {\r\n return\r\n }\r\n var value = parseFloat(this._normalizeInputValue()) || 0;\r\n value = this._correctRounding(value, step * sign);\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n if (isDefined(min)) {\r\n value = Math.max(min, value)\r\n }\r\n if (isDefined(max)) {\r\n value = Math.min(max, value)\r\n }\r\n this._saveValueChangeEvent(dxEvent);\r\n this.option(\"value\", value)\r\n },\r\n _correctRounding(value, step) {\r\n var regex = /[,.](.*)/;\r\n var isFloatValue = regex.test(value);\r\n var isFloatStep = regex.test(step);\r\n if (isFloatValue || isFloatStep) {\r\n var valueAccuracy = isFloatValue ? regex.exec(value)[0].length : 0;\r\n var stepAccuracy = isFloatStep ? regex.exec(step)[0].length : 0;\r\n var accuracy = math.max(valueAccuracy, stepAccuracy);\r\n value = this._round(value + step, accuracy);\r\n return value\r\n }\r\n return value + step\r\n },\r\n _round(value, precision) {\r\n precision = precision || 0;\r\n var multiplier = 10 ** precision;\r\n value *= multiplier;\r\n value = Math.round(value) / multiplier;\r\n return value\r\n },\r\n _renderValueChangeEvent() {\r\n this.callBase();\r\n var forceValueChangeEvent = addNamespace(\"focusout\", FORCE_VALUECHANGE_EVENT_NAMESPACE);\r\n eventsEngine.off(this.element(), forceValueChangeEvent);\r\n eventsEngine.on(this.element(), forceValueChangeEvent, this._forceRefreshInputValue.bind(this))\r\n },\r\n _forceRefreshInputValue() {\r\n if (\"number\" === this.option(\"mode\")) {\r\n return\r\n }\r\n var $input = this._input();\r\n var formattedValue = this._applyDisplayValueFormatter(this.option(\"value\"));\r\n $input.val(null);\r\n $input.val(formattedValue)\r\n },\r\n _valueChangeEventHandler(e) {\r\n var $input = this._input();\r\n var inputValue = this._normalizeText();\r\n var value = this._parseValue(inputValue);\r\n var valueHasDigits = \".\" !== inputValue && \"-\" !== inputValue;\r\n if (this._isValueValid() && !this._validateValue(value)) {\r\n $input.val(this._applyDisplayValueFormatter(value));\r\n return\r\n }\r\n if (valueHasDigits) {\r\n this.callBase(e, isNaN(value) ? null : value)\r\n }\r\n this._applyValueBoundaries(inputValue, value);\r\n this.validationRequest.fire({\r\n value: value,\r\n editor: this\r\n })\r\n },\r\n _applyValueBoundaries(inputValue, parsedValue) {\r\n var isValueIncomplete = this._isValueIncomplete(inputValue);\r\n var isValueCorrect = this._isValueInRange(inputValue);\r\n if (!isValueIncomplete && !isValueCorrect && null !== parsedValue) {\r\n if (Number(inputValue) !== parsedValue) {\r\n this._input().val(this._applyDisplayValueFormatter(parsedValue))\r\n }\r\n }\r\n },\r\n _replaceCommaWithPoint: value => value.replace(\",\", \".\"),\r\n _inputIsInvalid() {\r\n var isNumberMode = \"number\" === this.option(\"mode\");\r\n var validityState = this._input().get(0).validity;\r\n return isNumberMode && validityState && validityState.badInput\r\n },\r\n _renderDisplayText(text) {\r\n if (this._inputIsInvalid()) {\r\n return\r\n }\r\n this.callBase(text)\r\n },\r\n _isValueIncomplete: value => /(^-$)|(^-?\\d*\\.$)|(\\d+e-?$)/i.test(value),\r\n _isValueInRange(value) {\r\n return inRange(value, this.option(\"min\"), this.option(\"max\"))\r\n },\r\n _isNumber(value) {\r\n return null !== this._parseValue(value)\r\n },\r\n _validateValue(value) {\r\n var inputValue = this._normalizeText();\r\n var isValueValid = this._isValueValid();\r\n var isValid = true;\r\n var isNumber = this._isNumber(inputValue);\r\n if (isNaN(Number(value))) {\r\n isValid = false\r\n }\r\n if (!value && isValueValid) {\r\n isValid = true\r\n } else if (!isNumber && !isValueValid) {\r\n isValid = false\r\n }\r\n this.option({\r\n isValid: isValid,\r\n validationError: isValid ? null : {\r\n editorSpecific: true,\r\n message: this.option(\"invalidValueMessage\")\r\n }\r\n });\r\n return isValid\r\n },\r\n _normalizeInputValue() {\r\n return this._parseValue(this._normalizeText())\r\n },\r\n _normalizeText() {\r\n var value = this._input().val().trim();\r\n return this._replaceCommaWithPoint(value)\r\n },\r\n _parseValue(value) {\r\n var number = parseFloat(value);\r\n if (isNaN(number)) {\r\n return null\r\n }\r\n return fitIntoRange(number, this.option(\"min\"), this.option(\"max\"))\r\n },\r\n _clearValue() {\r\n if (this._inputIsInvalid()) {\r\n this._input().val(\"\");\r\n this._validateValue()\r\n }\r\n this.callBase()\r\n },\r\n clear() {\r\n if (null === this.option(\"value\")) {\r\n this.option(\"text\", \"\");\r\n if (this._input().length) {\r\n this._renderValue()\r\n }\r\n } else {\r\n this.option(\"value\", null)\r\n }\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"value\":\r\n this._validateValue(args.value);\r\n this._setSubmitValue(args.value);\r\n this.callBase(args);\r\n this._resumeValueChangeAction();\r\n break;\r\n case \"step\":\r\n this._renderProps();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n this._renderProps();\r\n this.option(\"value\", this._parseValue(this.option(\"value\")));\r\n break;\r\n case \"showSpinButtons\":\r\n case \"useLargeSpinButtons\":\r\n this._updateButtons([\"spins\"]);\r\n break;\r\n case \"invalidValueMessage\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default NumberBoxBase;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/number_box/m_utils.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n adjust\r\n} from \"../../../core/utils/math\";\r\nvar getRealSeparatorIndex = function(str) {\r\n var quoteBalance = 0;\r\n var separatorCount = 0;\r\n for (var i = 0; i < str.length; ++i) {\r\n if (\"'\" === str[i]) {\r\n quoteBalance++\r\n }\r\n if (\".\" === str[i]) {\r\n ++separatorCount;\r\n if (quoteBalance % 2 === 0) {\r\n return {\r\n occurrence: separatorCount,\r\n index: i\r\n }\r\n }\r\n }\r\n }\r\n return {\r\n occurrence: 1,\r\n index: -1\r\n }\r\n};\r\nvar getNthOccurrence = function(str, c, n) {\r\n var i = -1;\r\n while (n-- && i++ < str.length) {\r\n i = str.indexOf(c, i)\r\n }\r\n return i\r\n};\r\nvar splitByIndex = function(str, index) {\r\n if (-1 === index) {\r\n return [str]\r\n }\r\n return [str.slice(0, index), str.slice(index + 1)]\r\n};\r\nvar adjustPercentValue = function(rawValue, precision) {\r\n return rawValue && adjust(rawValue / 100, precision)\r\n};\r\nexport {\r\n adjustPercentValue,\r\n getNthOccurrence,\r\n getRealSeparatorIndex,\r\n splitByIndex\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/ui/number_box/m_number_box.caret.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n escapeRegExp\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n fitIntoRange\r\n} from \"../../../core/utils/math\";\r\nimport number from \"../../../localization/number\";\r\nimport {\r\n getNthOccurrence,\r\n getRealSeparatorIndex,\r\n splitByIndex\r\n} from \"./m_utils\";\r\nexport var getCaretBoundaries = function(text, format) {\r\n if (\"string\" === typeof format) {\r\n var signParts = format.split(\";\");\r\n var sign = number.getSign(text, format);\r\n signParts[1] = signParts[1] || \"-\".concat(signParts[0]);\r\n format = signParts[sign < 0 ? 1 : 0];\r\n format = (str = format, str.replace(/'([^']*)'/g, str => str.split(\"\").map(() => \" \").join(\"\").substr(2)));\r\n var prefixStubLength = /^[^#0.,]*/.exec(format)[0].length;\r\n var postfixStubLength = /[^#0.,]*$/.exec(format)[0].length;\r\n return {\r\n start: prefixStubLength,\r\n end: text.length - postfixStubLength\r\n }\r\n }\r\n var str;\r\n return {\r\n start: 0,\r\n end: text.length\r\n }\r\n};\r\nvar _getDigitCountBeforeIndex = function(index, text) {\r\n var decimalSeparator = number.getDecimalSeparator();\r\n var regExp = new RegExp(\"[^0-9\".concat(escapeRegExp(decimalSeparator), \"]\"), \"g\");\r\n var textBeforePosition = text.slice(0, index);\r\n return textBeforePosition.replace(regExp, \"\").length\r\n};\r\nvar _reverseText = function(text) {\r\n return text.split(\"\").reverse().join(\"\")\r\n};\r\nvar _getDigitPositionByIndex = function(digitIndex, text) {\r\n if (!digitIndex) {\r\n return -1\r\n }\r\n var regExp = /[0-9]/g;\r\n var counter = 1;\r\n var index = null;\r\n var result = regExp.exec(text);\r\n while (result) {\r\n index = result.index;\r\n if (counter >= digitIndex) {\r\n return index\r\n }\r\n counter++;\r\n result = regExp.exec(text)\r\n }\r\n return null === index ? text.length : index\r\n};\r\nvar _trimNonNumericCharsFromEnd = function(text) {\r\n return text.replace(/[^0-9e]+$/, \"\")\r\n};\r\nexport var getCaretWithOffset = function(caret, offset) {\r\n if (void 0 === caret.start) {\r\n caret = {\r\n start: caret,\r\n end: caret\r\n }\r\n }\r\n return {\r\n start: caret.start + offset,\r\n end: caret.end + offset\r\n }\r\n};\r\nexport var getCaretAfterFormat = function(text, formatted, caret, format) {\r\n caret = getCaretWithOffset(caret, 0);\r\n var point = number.getDecimalSeparator();\r\n var isSeparatorBasedText = isSeparatorBasedString(text);\r\n var realSeparatorOccurrenceIndex = getRealSeparatorIndex(format).occurrence;\r\n var pointPosition = isSeparatorBasedText ? 0 : getNthOccurrence(text, point, realSeparatorOccurrenceIndex);\r\n var newPointPosition = getNthOccurrence(formatted, point, realSeparatorOccurrenceIndex);\r\n var textParts = splitByIndex(text, pointPosition);\r\n var formattedParts = splitByIndex(formatted, newPointPosition);\r\n var isCaretOnFloat = -1 !== pointPosition && caret.start > pointPosition;\r\n if (isCaretOnFloat) {\r\n var relativeIndex = caret.start - pointPosition - 1;\r\n var digitsBefore = _getDigitCountBeforeIndex(relativeIndex, textParts[1]);\r\n var newPosition = formattedParts[1] ? newPointPosition + 1 + _getDigitPositionByIndex(digitsBefore, formattedParts[1]) + 1 : formatted.length;\r\n return getCaretInBoundaries(newPosition, formatted, format)\r\n }\r\n var formattedIntPart = _trimNonNumericCharsFromEnd(formattedParts[0]);\r\n var positionFromEnd = textParts[0].length - caret.start;\r\n var digitsFromEnd = _getDigitCountBeforeIndex(positionFromEnd, _reverseText(textParts[0]));\r\n var newPositionFromEnd = _getDigitPositionByIndex(digitsFromEnd, _reverseText(formattedIntPart));\r\n var newPositionFromBegin = formattedIntPart.length - (newPositionFromEnd + 1);\r\n return getCaretInBoundaries(newPositionFromBegin, formatted, format)\r\n};\r\n\r\nfunction isSeparatorBasedString(text) {\r\n return 1 === text.length && !!text.match(/^[,.][0-9]*$/g)\r\n}\r\nexport var isCaretInBoundaries = function(caret, text, format) {\r\n caret = getCaretWithOffset(caret, 0);\r\n var boundaries = getCaretInBoundaries(caret, text, format);\r\n return caret.start >= boundaries.start && caret.end <= boundaries.end\r\n};\r\nexport function getCaretInBoundaries(caret, text, format) {\r\n caret = getCaretWithOffset(caret, 0);\r\n var boundaries = getCaretBoundaries(text, format);\r\n var adjustedCaret = {\r\n start: fitIntoRange(caret.start, boundaries.start, boundaries.end),\r\n end: fitIntoRange(caret.end, boundaries.start, boundaries.end)\r\n };\r\n return adjustedCaret\r\n}\r\nexport var getCaretOffset = function(previousText, newText, format) {\r\n var previousBoundaries = getCaretBoundaries(previousText, format);\r\n var newBoundaries = getCaretBoundaries(newText, format);\r\n return newBoundaries.start - previousBoundaries.start\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/ui/number_box/m_number_box.mask.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../../core/devices\";\r\nimport {\r\n ensureDefined,\r\n escapeRegExp\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n fitIntoRange,\r\n inRange\r\n} from \"../../../core/utils/math\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isNumeric,\r\n isString\r\n} from \"../../../core/utils/type\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n name as dxDblClickEvent\r\n} from \"../../../events/double_click\";\r\nimport {\r\n addNamespace,\r\n getChar,\r\n isCommandKeyPressed,\r\n normalizeKeyName\r\n} from \"../../../events/utils/index\";\r\nimport {\r\n getFormat as getLDMLFormat\r\n} from \"../../../localization/ldml/number\";\r\nimport number from \"../../../localization/number\";\r\nimport NumberBoxBase from \"./m_number_box.base\";\r\nimport {\r\n getCaretAfterFormat,\r\n getCaretBoundaries,\r\n getCaretInBoundaries,\r\n getCaretOffset,\r\n getCaretWithOffset,\r\n isCaretInBoundaries\r\n} from \"./m_number_box.caret\";\r\nimport {\r\n adjustPercentValue,\r\n getNthOccurrence,\r\n getRealSeparatorIndex,\r\n splitByIndex\r\n} from \"./m_utils\";\r\nvar NUMBER_FORMATTER_NAMESPACE = \"dxNumberFormatter\";\r\nvar MOVE_FORWARD = 1;\r\nvar MOVE_BACKWARD = -1;\r\nvar MINUS = \"-\";\r\nvar MINUS_KEY = \"minus\";\r\nvar INPUT_EVENT = \"input\";\r\nvar NUMPAD_DOT_KEY_CODE = 110;\r\nvar CARET_TIMEOUT_DURATION = 0;\r\nvar NumberBoxMask = NumberBoxBase.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n useMaskBehavior: true,\r\n format: null\r\n })\r\n },\r\n _isDeleteKey: key => \"del\" === key,\r\n _supportedKeys() {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase()\r\n }\r\n return extend(this.callBase(), {\r\n minus: this._revertSign.bind(this),\r\n del: this._removeHandler.bind(this),\r\n backspace: this._removeHandler.bind(this),\r\n leftArrow: this._arrowHandler.bind(this, MOVE_BACKWARD),\r\n rightArrow: this._arrowHandler.bind(this, MOVE_FORWARD),\r\n home: this._moveCaretToBoundaryEventHandler.bind(this, MOVE_FORWARD),\r\n enter: this._updateFormattedValue.bind(this),\r\n end: this._moveCaretToBoundaryEventHandler.bind(this, MOVE_BACKWARD)\r\n })\r\n },\r\n _getTextSeparatorIndex(text) {\r\n var decimalSeparator = number.getDecimalSeparator();\r\n var realSeparatorOccurrenceIndex = getRealSeparatorIndex(this.option(\"format\")).occurrence;\r\n return getNthOccurrence(text, decimalSeparator, realSeparatorOccurrenceIndex)\r\n },\r\n _focusInHandler(e) {\r\n if (!this._preventNestedFocusEvent(e)) {\r\n this.clearCaretTimeout();\r\n this._caretTimeout = setTimeout(() => {\r\n this._caretTimeout = void 0;\r\n var caret = this._caret();\r\n if (caret.start === caret.end && this._useMaskBehavior()) {\r\n var text = this._getInputVal();\r\n var decimalSeparatorIndex = this._getTextSeparatorIndex(text);\r\n if (decimalSeparatorIndex >= 0) {\r\n this._caret({\r\n start: decimalSeparatorIndex,\r\n end: decimalSeparatorIndex\r\n })\r\n } else {\r\n this._moveCaretToBoundaryEventHandler(MOVE_BACKWARD, e)\r\n }\r\n }\r\n }, CARET_TIMEOUT_DURATION)\r\n }\r\n this.callBase(e)\r\n },\r\n _focusOutHandler(e) {\r\n var shouldHandleEvent = !this._preventNestedFocusEvent(e);\r\n if (shouldHandleEvent) {\r\n this._focusOutOccurs = true;\r\n if (this._useMaskBehavior()) {\r\n this._updateFormattedValue()\r\n }\r\n }\r\n this.callBase(e);\r\n if (shouldHandleEvent) {\r\n this._focusOutOccurs = false\r\n }\r\n },\r\n _hasValueBeenChanged(inputValue) {\r\n var format = this._getFormatPattern();\r\n var value = this.option(\"value\");\r\n var formatted = this._format(value, format) || \"\";\r\n return formatted !== inputValue\r\n },\r\n _updateFormattedValue() {\r\n var inputValue = this._getInputVal();\r\n if (this._hasValueBeenChanged(inputValue)) {\r\n this._updateParsedValue();\r\n this._adjustParsedValue();\r\n this._setTextByParsedValue();\r\n if (this._parsedValue !== this.option(\"value\")) {\r\n eventsEngine.trigger(this._input(), \"change\")\r\n }\r\n }\r\n },\r\n _arrowHandler(step, e) {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var text = this._getInputVal();\r\n var format = this._getFormatPattern();\r\n var nextCaret = getCaretWithOffset(this._caret(), step);\r\n if (!isCaretInBoundaries(nextCaret, text, format)) {\r\n nextCaret = step === MOVE_FORWARD ? nextCaret.end : nextCaret.start;\r\n e.preventDefault();\r\n this._caret(getCaretInBoundaries(nextCaret, text, format))\r\n }\r\n },\r\n _moveCaretToBoundary(direction) {\r\n var boundaries = getCaretBoundaries(this._getInputVal(), this._getFormatPattern());\r\n var newCaret = getCaretWithOffset(direction === MOVE_FORWARD ? boundaries.start : boundaries.end, 0);\r\n this._caret(newCaret)\r\n },\r\n _moveCaretToBoundaryEventHandler(direction, e) {\r\n if (!this._useMaskBehavior() || e && e.shiftKey) {\r\n return\r\n }\r\n this._moveCaretToBoundary(direction);\r\n e && e.preventDefault()\r\n },\r\n _shouldMoveCaret(text, caret) {\r\n var decimalSeparator = number.getDecimalSeparator();\r\n var isDecimalSeparatorNext = text.charAt(caret.end) === decimalSeparator;\r\n var moveToFloat = (this._lastKey === decimalSeparator || \".\" === this._lastKey || \",\" === this._lastKey) && isDecimalSeparatorNext;\r\n return moveToFloat\r\n },\r\n _getInputVal() {\r\n return number.convertDigits(this._input().val(), true)\r\n },\r\n _keyboardHandler(e) {\r\n this.clearCaretTimeout();\r\n this._lastKey = number.convertDigits(getChar(e), true);\r\n this._lastKeyName = normalizeKeyName(e);\r\n if (!this._shouldHandleKey(e.originalEvent)) {\r\n return this.callBase(e)\r\n }\r\n var normalizedText = this._getInputVal();\r\n var caret = this._caret();\r\n var enteredChar;\r\n if (this._lastKeyName === MINUS_KEY) {\r\n enteredChar = \"\"\r\n } else {\r\n enteredChar = e.which === NUMPAD_DOT_KEY_CODE ? number.getDecimalSeparator() : this._lastKey\r\n }\r\n var newValue = this._tryParse(normalizedText, caret, enteredChar);\r\n if (this._shouldMoveCaret(normalizedText, caret)) {\r\n this._moveCaret(1);\r\n e.originalEvent.preventDefault()\r\n }\r\n if (void 0 === newValue) {\r\n if (this._lastKeyName !== MINUS_KEY) {\r\n e.originalEvent.preventDefault()\r\n }\r\n } else {\r\n this._parsedValue = newValue\r\n }\r\n return this.callBase(e)\r\n },\r\n _keyPressHandler(e) {\r\n if (!this._useMaskBehavior()) {\r\n this.callBase(e)\r\n }\r\n },\r\n _removeHandler(e) {\r\n var caret = this._caret();\r\n var text = this._getInputVal();\r\n var {\r\n start: start\r\n } = caret;\r\n var {\r\n end: end\r\n } = caret;\r\n this._lastKey = getChar(e);\r\n this._lastKeyName = normalizeKeyName(e);\r\n var isDeleteKey = this._isDeleteKey(this._lastKeyName);\r\n var isBackspaceKey = !isDeleteKey;\r\n if (start === end) {\r\n var caretPosition = start;\r\n var canDelete = isBackspaceKey && caretPosition > 0 || isDeleteKey && caretPosition < text.length;\r\n if (canDelete) {\r\n isDeleteKey && end++;\r\n isBackspaceKey && start--\r\n } else {\r\n e.preventDefault();\r\n return\r\n }\r\n }\r\n var char = text.slice(start, end);\r\n if (this._isStub(char)) {\r\n this._moveCaret(isDeleteKey ? 1 : -1);\r\n if (this._parsedValue < 0 || 1 / this._parsedValue === -1 / 0) {\r\n this._revertSign(e);\r\n this._setTextByParsedValue();\r\n var shouldTriggerInputEvent = this.option(\"valueChangeEvent\").split(\" \").includes(\"input\");\r\n if (shouldTriggerInputEvent) {\r\n eventsEngine.trigger(this._input(), \"input\")\r\n }\r\n }\r\n e.preventDefault();\r\n return\r\n }\r\n var decimalSeparator = number.getDecimalSeparator();\r\n if (char === decimalSeparator) {\r\n var decimalSeparatorIndex = text.indexOf(decimalSeparator);\r\n if (this._isNonStubAfter(decimalSeparatorIndex + 1)) {\r\n this._moveCaret(isDeleteKey ? 1 : -1);\r\n e.preventDefault()\r\n }\r\n return\r\n }\r\n if (end - start < text.length) {\r\n var editedText = this._replaceSelectedText(text, {\r\n start: start,\r\n end: end\r\n }, \"\");\r\n var noDigits = editedText.search(/[0-9]/) < 0;\r\n if (noDigits && this._isValueInRange(0)) {\r\n this._parsedValue = this._parsedValue < 0 || 1 / this._parsedValue === -1 / 0 ? -0 : 0;\r\n return\r\n }\r\n }\r\n var valueAfterRemoving = this._tryParse(text, {\r\n start: start,\r\n end: end\r\n }, \"\");\r\n if (void 0 === valueAfterRemoving) {\r\n e.preventDefault()\r\n } else {\r\n this._parsedValue = valueAfterRemoving\r\n }\r\n },\r\n _isPercentFormat() {\r\n var format = this._getFormatPattern();\r\n var noEscapedFormat = format.replace(/'[^']+'/g, \"\");\r\n return -1 !== noEscapedFormat.indexOf(\"%\")\r\n },\r\n _parse(text, format) {\r\n var formatOption = this.option(\"format\");\r\n var isCustomParser = isFunction(formatOption.parser);\r\n var parser = isCustomParser ? formatOption.parser : number.parse;\r\n var integerPartStartIndex = 0;\r\n if (!isCustomParser) {\r\n var formatPointIndex = getRealSeparatorIndex(format).index;\r\n var textPointIndex = this._getTextSeparatorIndex(text);\r\n var formatIntegerPartLength = -1 !== formatPointIndex ? formatPointIndex : format.length;\r\n var textIntegerPartLength = -1 !== textPointIndex ? textPointIndex : text.length;\r\n if (textIntegerPartLength > formatIntegerPartLength && -1 === format.indexOf(\"#\")) {\r\n integerPartStartIndex = textIntegerPartLength - formatIntegerPartLength\r\n }\r\n }\r\n text = text.substr(integerPartStartIndex);\r\n return parser(text, format)\r\n },\r\n _format(value, format) {\r\n var formatOption = this.option(\"format\");\r\n var customFormatter = (null === formatOption || void 0 === formatOption ? void 0 : formatOption.formatter) || formatOption;\r\n var formatter = isFunction(customFormatter) ? customFormatter : number.format;\r\n var formattedValue = null === value ? \"\" : formatter(value, format);\r\n return formattedValue\r\n },\r\n _getFormatPattern() {\r\n if (!this._currentFormat) {\r\n this._updateFormat()\r\n }\r\n return this._currentFormat\r\n },\r\n _updateFormat() {\r\n var format = this.option(\"format\");\r\n var isCustomParser = isFunction(null === format || void 0 === format ? void 0 : format.parser);\r\n var isLDMLPattern = isString(format) && (format.includes(\"0\") || format.includes(\"#\"));\r\n var isExponentialFormat = \"exponential\" === format || \"exponential\" === (null === format || void 0 === format ? void 0 : format.type);\r\n var shouldUseFormatAsIs = isCustomParser || isLDMLPattern || isExponentialFormat;\r\n this._currentFormat = shouldUseFormatAsIs ? format : getLDMLFormat(value => {\r\n var text = this._format(value, format);\r\n return number.convertDigits(text, true)\r\n })\r\n },\r\n _getFormatForSign(text) {\r\n var format = this._getFormatPattern();\r\n if (isString(format)) {\r\n var signParts = format.split(\";\");\r\n var _sign = number.getSign(text, format);\r\n signParts[1] = signParts[1] || \"-\".concat(signParts[0]);\r\n return _sign < 0 ? signParts[1] : signParts[0]\r\n }\r\n var sign = number.getSign(text);\r\n return sign < 0 ? \"-\" : \"\"\r\n },\r\n _removeStubs(text, excludeComma) {\r\n var format = this._getFormatForSign(text);\r\n var thousandsSeparator = number.getThousandsSeparator();\r\n var stubs = this._getStubs(format);\r\n var result = text;\r\n if (stubs.length) {\r\n var prefixStubs = stubs[0];\r\n var postfixRegex = new RegExp(\"(\".concat(escapeRegExp(stubs[1] || \"\"), \")$\"), \"g\");\r\n var decoratorsRegex = new RegExp(\"[-\".concat(escapeRegExp(excludeComma ? \"\" : thousandsSeparator), \"]\"), \"g\");\r\n result = result.replace(prefixStubs, \"\").replace(postfixRegex, \"\").replace(decoratorsRegex, \"\")\r\n }\r\n return result\r\n },\r\n _getStubs(format) {\r\n var regExpResult = /[^']([#0.,]+)/g.exec(format);\r\n var pattern = regExpResult && regExpResult[0].trim();\r\n return format.split(pattern).map(stub => stub.replace(/'/g, \"\"))\r\n },\r\n _truncateToPrecision(value, maxPrecision) {\r\n if (isDefined(value)) {\r\n var strValue = value.toString();\r\n var decimalSeparatorIndex = strValue.indexOf(\".\");\r\n if (strValue && decimalSeparatorIndex > -1) {\r\n var parsedValue = parseFloat(strValue.substr(0, decimalSeparatorIndex + maxPrecision + 1));\r\n return isNaN(parsedValue) ? value : parsedValue\r\n }\r\n }\r\n return value\r\n },\r\n _tryParse(text, selection, char) {\r\n var isTextSelected = selection.start !== selection.end;\r\n var isWholeTextSelected = isTextSelected && 0 === selection.start && selection.end === text.length;\r\n var decimalSeparator = number.getDecimalSeparator();\r\n if (isWholeTextSelected && char === decimalSeparator) {\r\n return 0\r\n }\r\n var editedText = this._replaceSelectedText(text, selection, char);\r\n var format = this._getFormatPattern();\r\n var parsedValue = this._getParsedValue(editedText, format);\r\n var maxPrecision = !format.parser && this._getPrecisionLimits(editedText).max;\r\n var isValueChanged = parsedValue !== this._parsedValue;\r\n var isDecimalPointRestricted = char === decimalSeparator && 0 === maxPrecision;\r\n var isUselessCharRestricted = !isTextSelected && !isValueChanged && char !== MINUS && this._isStub(char);\r\n if (isDecimalPointRestricted || isUselessCharRestricted) {\r\n return\r\n }\r\n if (\"\" === this._removeStubs(editedText)) {\r\n parsedValue = Math.abs(0 * this._parsedValue)\r\n }\r\n if (isNaN(parsedValue)) {\r\n return\r\n }\r\n var value = null === parsedValue ? this._parsedValue : parsedValue;\r\n parsedValue = maxPrecision ? this._truncateToPrecision(value, maxPrecision) : parsedValue;\r\n return !format.parser && this._isPercentFormat() ? adjustPercentValue(parsedValue, maxPrecision) : parsedValue\r\n },\r\n _getParsedValue(text, format) {\r\n var sign = number.getSign(text, (null === format || void 0 === format ? void 0 : format.formatter) || format);\r\n var textWithoutStubs = this._removeStubs(text, true);\r\n var parsedValue = this._parse(textWithoutStubs, format);\r\n var parsedValueSign = parsedValue < 0 ? -1 : 1;\r\n var parsedValueWithSign = isNumeric(parsedValue) && sign !== parsedValueSign ? sign * parsedValue : parsedValue;\r\n return parsedValueWithSign\r\n },\r\n _isValueIncomplete(text) {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase(text)\r\n }\r\n var caret = this._caret();\r\n var point = number.getDecimalSeparator();\r\n var pointIndex = this._getTextSeparatorIndex(text);\r\n var isCaretOnFloat = pointIndex >= 0 && pointIndex < caret.start;\r\n var textParts = this._removeStubs(text, true).split(point);\r\n if (!isCaretOnFloat || 2 !== textParts.length) {\r\n return false\r\n }\r\n var floatLength = textParts[1].length;\r\n var format = this._getFormatPattern();\r\n var isCustomParser = !!format.parser;\r\n var precision = !isCustomParser && this._getPrecisionLimits(this._getFormatPattern(), text);\r\n var isPrecisionInRange = isCustomParser ? true : inRange(floatLength, precision.min, precision.max);\r\n var endsWithZero = \"0\" === textParts[1].charAt(floatLength - 1);\r\n return isPrecisionInRange && (endsWithZero || !floatLength)\r\n },\r\n _isValueInRange(value) {\r\n var min = ensureDefined(this.option(\"min\"), -1 / 0);\r\n var max = ensureDefined(this.option(\"max\"), 1 / 0);\r\n return inRange(value, min, max)\r\n },\r\n _setInputText(text) {\r\n var normalizedText = number.convertDigits(text, true);\r\n var newCaret = getCaretAfterFormat(this._getInputVal(), normalizedText, this._caret(), this._getFormatPattern());\r\n this._input().val(text);\r\n this._toggleEmptinessEventHandler();\r\n this._formattedValue = text;\r\n if (!this._focusOutOccurs) {\r\n this._caret(newCaret)\r\n }\r\n },\r\n _useMaskBehavior() {\r\n return !!this.option(\"format\") && this.option(\"useMaskBehavior\")\r\n },\r\n _renderInputType() {\r\n var isNumberType = \"number\" === this.option(\"mode\");\r\n var isDesktop = \"desktop\" === devices.real().deviceType;\r\n if (this._useMaskBehavior() && isNumberType) {\r\n this._setInputType(isDesktop || this._isSupportInputMode() ? \"text\" : \"tel\")\r\n } else {\r\n this.callBase()\r\n }\r\n },\r\n _isChar: str => isString(str) && 1 === str.length,\r\n _moveCaret(offset) {\r\n if (!offset) {\r\n return\r\n }\r\n var newCaret = getCaretWithOffset(this._caret(), offset);\r\n var adjustedCaret = getCaretInBoundaries(newCaret, this._getInputVal(), this._getFormatPattern());\r\n this._caret(adjustedCaret)\r\n },\r\n _shouldHandleKey(e) {\r\n var keyName = normalizeKeyName(e);\r\n var isSpecialChar = isCommandKeyPressed(e) || e.altKey || e.shiftKey || !this._isChar(keyName);\r\n var isMinusKey = keyName === MINUS_KEY;\r\n var useMaskBehavior = this._useMaskBehavior();\r\n return useMaskBehavior && !isSpecialChar && !isMinusKey\r\n },\r\n _renderInput() {\r\n this.callBase();\r\n this._renderFormatter()\r\n },\r\n _renderFormatter() {\r\n this._clearCache();\r\n this._detachFormatterEvents();\r\n if (this._useMaskBehavior()) {\r\n this._attachFormatterEvents()\r\n }\r\n },\r\n _detachFormatterEvents() {\r\n eventsEngine.off(this._input(), \".\".concat(NUMBER_FORMATTER_NAMESPACE))\r\n },\r\n _isInputFromPaste(e) {\r\n var inputType = e.originalEvent && e.originalEvent.inputType;\r\n if (isDefined(inputType)) {\r\n return \"insertFromPaste\" === inputType\r\n }\r\n return this._isValuePasted\r\n },\r\n _attachFormatterEvents() {\r\n var $input = this._input();\r\n eventsEngine.on($input, addNamespace(INPUT_EVENT, NUMBER_FORMATTER_NAMESPACE), e => {\r\n this._formatValue(e);\r\n this._isValuePasted = false\r\n });\r\n eventsEngine.on($input, addNamespace(\"dxclick\", NUMBER_FORMATTER_NAMESPACE), () => {\r\n if (!this._caretTimeout) {\r\n this._caretTimeout = setTimeout(() => {\r\n this._caretTimeout = void 0;\r\n this._caret(getCaretInBoundaries(this._caret(), this._getInputVal(), this._getFormatPattern()))\r\n }, CARET_TIMEOUT_DURATION)\r\n }\r\n });\r\n eventsEngine.on($input, dxDblClickEvent, () => {\r\n this.clearCaretTimeout()\r\n })\r\n },\r\n clearCaretTimeout() {\r\n clearTimeout(this._caretTimeout);\r\n this._caretTimeout = void 0\r\n },\r\n _forceRefreshInputValue() {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase()\r\n }\r\n },\r\n _isNonStubAfter(index) {\r\n var text = this._getInputVal().slice(index);\r\n return text && !this._isStub(text, true)\r\n },\r\n _isStub(str, isString) {\r\n var escapedDecimalSeparator = escapeRegExp(number.getDecimalSeparator());\r\n var regExpString = \"^[^0-9\".concat(escapedDecimalSeparator, \"]+$\");\r\n var stubRegExp = new RegExp(regExpString, \"g\");\r\n return stubRegExp.test(str) && (isString || this._isChar(str))\r\n },\r\n _parseValue(text) {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase(text)\r\n }\r\n return this._parsedValue\r\n },\r\n _getPrecisionLimits(text) {\r\n var currentFormat = this._getFormatForSign(text);\r\n var realSeparatorIndex = getRealSeparatorIndex(currentFormat).index;\r\n var floatPart = (splitByIndex(currentFormat, realSeparatorIndex)[1] || \"\").replace(/[^#0]/g, \"\");\r\n var minPrecision = floatPart.replace(/^(0*)#*/, \"$1\").length;\r\n var maxPrecision = floatPart.length;\r\n return {\r\n min: minPrecision,\r\n max: maxPrecision\r\n }\r\n },\r\n _revertSign(e) {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var caret = this._caret();\r\n if (caret.start !== caret.end) {\r\n if (normalizeKeyName(e) === MINUS_KEY) {\r\n this._applyRevertedSign(e, caret, true);\r\n return\r\n }\r\n this._caret(getCaretInBoundaries(0, this._getInputVal(), this._getFormatPattern()))\r\n }\r\n this._applyRevertedSign(e, caret)\r\n },\r\n _applyRevertedSign(e, caret, preserveSelectedText) {\r\n var newValue = -1 * ensureDefined(this._parsedValue, null);\r\n if (this._isValueInRange(newValue) || 0 === newValue) {\r\n this._parsedValue = newValue;\r\n if (preserveSelectedText) {\r\n var format = this._getFormatPattern();\r\n var previousText = this._getInputVal();\r\n this._setTextByParsedValue();\r\n e.preventDefault();\r\n var currentText = this._getInputVal();\r\n var offset = getCaretOffset(previousText, currentText, format);\r\n caret = getCaretWithOffset(caret, offset);\r\n var caretInBoundaries = getCaretInBoundaries(caret, currentText, format);\r\n this._caret(caretInBoundaries)\r\n }\r\n }\r\n },\r\n _removeMinusFromText(text, caret) {\r\n var isMinusPressed = this._lastKeyName === MINUS_KEY && text.charAt(caret.start - 1) === MINUS;\r\n return isMinusPressed ? this._replaceSelectedText(text, {\r\n start: caret.start - 1,\r\n end: caret.start\r\n }, \"\") : text\r\n },\r\n _setTextByParsedValue() {\r\n var format = this._getFormatPattern();\r\n var parsed = this._parseValue();\r\n var formatted = this._format(parsed, format) || \"\";\r\n this._setInputText(formatted)\r\n },\r\n _formatValue(e) {\r\n var normalizedText = this._getInputVal();\r\n var caret = this._caret();\r\n var textWithoutMinus = this._removeMinusFromText(normalizedText, caret);\r\n var wasMinusRemoved = textWithoutMinus !== normalizedText;\r\n normalizedText = textWithoutMinus;\r\n if (!this._isInputFromPaste(e) && this._isValueIncomplete(textWithoutMinus)) {\r\n this._formattedValue = normalizedText;\r\n if (wasMinusRemoved) {\r\n this._setTextByParsedValue()\r\n }\r\n return\r\n }\r\n var textWasChanged = number.convertDigits(this._formattedValue, true) !== normalizedText;\r\n if (textWasChanged) {\r\n var value = this._tryParse(normalizedText, caret, \"\");\r\n if (isDefined(value)) {\r\n this._parsedValue = value\r\n }\r\n }\r\n this._setTextByParsedValue()\r\n },\r\n _renderDisplayText() {\r\n if (this._useMaskBehavior()) {\r\n this._toggleEmptinessEventHandler()\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _renderValue() {\r\n if (this._useMaskBehavior()) {\r\n this._parsedValue = this.option(\"value\");\r\n this._setTextByParsedValue()\r\n }\r\n return this.callBase()\r\n },\r\n _updateParsedValue() {\r\n var inputValue = this._getInputVal();\r\n this._parsedValue = this._tryParse(inputValue, this._caret())\r\n },\r\n _adjustParsedValue() {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var clearedText = this._removeStubs(this._getInputVal());\r\n var parsedValue = clearedText ? this._parseValue() : null;\r\n if (!isNumeric(parsedValue)) {\r\n this._parsedValue = parsedValue;\r\n return\r\n }\r\n this._parsedValue = fitIntoRange(parsedValue, this.option(\"min\"), this.option(\"max\"))\r\n },\r\n _valueChangeEventHandler(e) {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase(e)\r\n }\r\n var caret = this._caret();\r\n this._saveValueChangeEvent(e);\r\n this._lastKey = null;\r\n this._lastKeyName = null;\r\n this._updateParsedValue();\r\n this._adjustParsedValue();\r\n this.option(\"value\", this._parsedValue);\r\n if (caret) {\r\n this._caret(caret)\r\n }\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"format\":\r\n case \"useMaskBehavior\":\r\n this._renderInputType();\r\n this._updateFormat();\r\n this._renderFormatter();\r\n this._renderValue();\r\n this._refreshValueChangeEvent();\r\n this._refreshEvents();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n this._adjustParsedValue();\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clearCache() {\r\n delete this._formattedValue;\r\n delete this._lastKey;\r\n delete this._lastKeyName;\r\n delete this._parsedValue;\r\n delete this._focusOutOccurs;\r\n clearTimeout(this._caretTimeout);\r\n delete this._caretTimeout\r\n },\r\n _clean() {\r\n this._clearCache();\r\n this.callBase()\r\n }\r\n});\r\nexport default NumberBoxMask;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/number_box/m_number_box.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport NumberBoxMask from \"./m_number_box.mask\";\r\nregisterComponent(\"dxNumberBox\", NumberBoxMask);\r\nexport default NumberBoxMask;\r\n","/**\r\n * DevExtreme (esm/ui/number_box.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport NumberBox from \"../__internal/ui/number_box/m_number_box\";\r\nexport default NumberBox;\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/editors/editor.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n 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 _init() {\r\n super._init();\r\n this._initialValue = this.option(\"value\")\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.option(\"isDirty\", this._initialValue !== value);\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 clear() {\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 reset() {\r\n var value = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : void 0;\r\n if (arguments.length) {\r\n this._initialValue = value\r\n }\r\n this.option(\"value\", this._initialValue);\r\n this.option(\"isDirty\", false);\r\n this.option(\"isValid\", true)\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/utils/dom.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\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/check_box.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport 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.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n 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.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _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.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _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.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _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\", \"isDirty\", \"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 isDirty: false,\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 isDirty() {\r\n return EditorProps.isDirty\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/ui/editors/check_box/utils.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n 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.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _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/utils/get_computed_style.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n 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/check_box.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _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\", \"isDirty\", \"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 isDirty() {\r\n return CheckBoxProps.isDirty\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.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport 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\", \"isDirty\", \"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.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Widget from \"../renovation/ui/editors/check_box/check_box.j\";\r\nexport default Widget;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/radio_group/m_radio_button.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport devices from \"../../../core/devices\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\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} from \"../../../events/utils/index\";\r\nimport Editor from \"../../../ui/editor/editor\";\r\nvar RADIO_BUTTON_CLASS = \"dx-radiobutton\";\r\nvar RADIO_BUTTON_ICON_CLASS = \"dx-radiobutton-icon\";\r\nvar RADIO_BUTTON_ICON_DOT_CLASS = \"dx-radiobutton-icon-dot\";\r\nvar RADIO_BUTTON_CHECKED_CLASS = \"dx-radiobutton-checked\";\r\nvar RADIO_BUTTON_ICON_CHECKED_CLASS = \"dx-radiobutton-icon-checked\";\r\nvar RadioButton = Editor.inherit({\r\n _supportedKeys() {\r\n return extend(this.callBase(), {\r\n space: function(e) {\r\n e.preventDefault();\r\n this._clickAction({\r\n event: e\r\n })\r\n }\r\n })\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true,\r\n value: false\r\n })\r\n },\r\n _canValueBeChangedByClick: () => true,\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device: () => \"desktop\" === devices.real().deviceType && !devices.isSimulator(),\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _init() {\r\n this.callBase();\r\n this.$element().addClass(RADIO_BUTTON_CLASS)\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this._renderIcon();\r\n this._renderCheckedState(this.option(\"value\"));\r\n this._renderClick();\r\n this.setAria(\"role\", \"radio\")\r\n },\r\n _renderIcon() {\r\n this._$icon = $(\"<div>\").addClass(RADIO_BUTTON_ICON_CLASS);\r\n $(\"<div>\").addClass(RADIO_BUTTON_ICON_DOT_CLASS).appendTo(this._$icon);\r\n this.$element().append(this._$icon)\r\n },\r\n _renderCheckedState(checked) {\r\n this.$element().toggleClass(RADIO_BUTTON_CHECKED_CLASS, checked).find(\".\".concat(RADIO_BUTTON_ICON_CLASS)).toggleClass(RADIO_BUTTON_ICON_CHECKED_CLASS, checked);\r\n this.setAria(\"checked\", checked)\r\n },\r\n _renderClick() {\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n this._clickAction = this._createAction(args => {\r\n this._clickHandler(args.event)\r\n });\r\n eventsEngine.off(this.$element(), eventName);\r\n eventsEngine.on(this.$element(), eventName, e => {\r\n this._clickAction({\r\n event: e\r\n })\r\n })\r\n },\r\n _clickHandler(e) {\r\n this._saveValueChangeEvent(e);\r\n this.option(\"value\", true)\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"value\":\r\n this._renderCheckedState(args.value);\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxRadioButton\", RadioButton);\r\nexport default RadioButton;\r\n","/**\r\n * DevExtreme (esm/ui/radio_group/radio_button.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport RadioButton from \"../../__internal/ui/radio_group/m_radio_button\";\r\nexport default RadioButton;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/list/m_list.edit.decorator.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../../core/class\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n getWidth\r\n} from \"../../../core/utils/size\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n end as swipeEventEnd,\r\n start as swipeEventStart,\r\n swipe as swipeEventSwipe\r\n} from \"../../../events/swipe\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nvar LIST_EDIT_DECORATOR = \"dxListEditDecorator\";\r\nvar SWIPE_START_EVENT_NAME = addNamespace(swipeEventStart, LIST_EDIT_DECORATOR);\r\nvar SWIPE_UPDATE_EVENT_NAME = addNamespace(swipeEventSwipe, LIST_EDIT_DECORATOR);\r\nvar SWIPE_END_EVENT_NAME = addNamespace(swipeEventEnd, LIST_EDIT_DECORATOR);\r\nvar EditDecorator = Class.inherit({\r\n ctor(list) {\r\n this._list = list;\r\n this._init()\r\n },\r\n _init: noop,\r\n _shouldHandleSwipe: false,\r\n _attachSwipeEvent(config) {\r\n var swipeConfig = {\r\n itemSizeFunc: function() {\r\n if (this._clearSwipeCache) {\r\n this._itemWidthCache = getWidth(this._list.$element());\r\n this._clearSwipeCache = false\r\n }\r\n return this._itemWidthCache\r\n }.bind(this)\r\n };\r\n eventsEngine.on(config.$itemElement, SWIPE_START_EVENT_NAME, swipeConfig, this._itemSwipeStartHandler.bind(this));\r\n eventsEngine.on(config.$itemElement, SWIPE_UPDATE_EVENT_NAME, this._itemSwipeUpdateHandler.bind(this));\r\n eventsEngine.on(config.$itemElement, SWIPE_END_EVENT_NAME, this._itemSwipeEndHandler.bind(this))\r\n },\r\n _itemSwipeStartHandler(e) {\r\n var $itemElement = $(e.currentTarget);\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n e.cancel = true;\r\n return\r\n }\r\n clearTimeout(this._list._inkRippleTimer);\r\n this._swipeStartHandler($itemElement, e)\r\n },\r\n _itemSwipeUpdateHandler(e) {\r\n var $itemElement = $(e.currentTarget);\r\n this._swipeUpdateHandler($itemElement, e)\r\n },\r\n _itemSwipeEndHandler(e) {\r\n var $itemElement = $(e.currentTarget);\r\n this._swipeEndHandler($itemElement, e);\r\n this._clearSwipeCache = true\r\n },\r\n beforeBag: noop,\r\n afterBag: noop,\r\n _commonOptions() {\r\n return {\r\n activeStateEnabled: this._list.option(\"activeStateEnabled\"),\r\n hoverStateEnabled: this._list.option(\"hoverStateEnabled\"),\r\n focusStateEnabled: this._list.option(\"focusStateEnabled\")\r\n }\r\n },\r\n modifyElement(config) {\r\n if (this._shouldHandleSwipe) {\r\n this._attachSwipeEvent(config);\r\n this._clearSwipeCache = true\r\n }\r\n },\r\n afterRender: noop,\r\n handleClick: noop,\r\n handleKeyboardEvents: noop,\r\n handleEnterPressing: noop,\r\n handleContextMenu: noop,\r\n _swipeStartHandler: noop,\r\n _swipeUpdateHandler: noop,\r\n _swipeEndHandler: noop,\r\n visibilityChange: noop,\r\n getExcludedSelectors: noop,\r\n dispose: noop\r\n});\r\nexport default EditDecorator;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/list/m_list.edit.decorator_registry.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nexport var registry = {};\r\nexport function register(option, type, decoratorClass) {\r\n var decoratorsRegistry = registry;\r\n var decoratorConfig = {};\r\n decoratorConfig[option] = decoratorsRegistry[option] ? decoratorsRegistry[option] : {};\r\n decoratorConfig[option][type] = decoratorClass;\r\n extend(decoratorsRegistry, decoratorConfig)\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/list/m_list.edit.decorator.selection.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\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} from \"../../../events/utils/index\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport CheckBox from \"../../../ui/check_box\";\r\nimport RadioButton from \"../../../ui/radio_group/radio_button\";\r\nimport errors from \"../../../ui/widget/ui.errors\";\r\nimport EditDecorator from \"./m_list.edit.decorator\";\r\nimport {\r\n register as registerDecorator\r\n} from \"./m_list.edit.decorator_registry\";\r\nvar SELECT_DECORATOR_ENABLED_CLASS = \"dx-list-select-decorator-enabled\";\r\nvar SELECT_DECORATOR_SELECT_ALL_CLASS = \"dx-list-select-all\";\r\nvar SELECT_DECORATOR_SELECT_ALL_CHECKBOX_CLASS = \"dx-list-select-all-checkbox\";\r\nvar SELECT_DECORATOR_SELECT_ALL_LABEL_CLASS = \"dx-list-select-all-label\";\r\nvar SELECT_CHECKBOX_CONTAINER_CLASS = \"dx-list-select-checkbox-container\";\r\nvar SELECT_CHECKBOX_CLASS = \"dx-list-select-checkbox\";\r\nvar SELECT_RADIO_BUTTON_CONTAINER_CLASS = \"dx-list-select-radiobutton-container\";\r\nvar SELECT_RADIO_BUTTON_CLASS = \"dx-list-select-radiobutton\";\r\nvar FOCUSED_STATE_CLASS = \"dx-state-focused\";\r\nvar CLICK_EVENT_NAME = addNamespace(clickEventName, \"dxListEditDecorator\");\r\nregisterDecorator(\"selection\", \"default\", EditDecorator.inherit({\r\n _init() {\r\n this.callBase.apply(this, arguments);\r\n var selectionMode = this._list.option(\"selectionMode\");\r\n this._singleStrategy = \"single\" === selectionMode;\r\n this._containerClass = this._singleStrategy ? SELECT_RADIO_BUTTON_CONTAINER_CLASS : SELECT_CHECKBOX_CONTAINER_CLASS;\r\n this._controlClass = this._singleStrategy ? SELECT_RADIO_BUTTON_CLASS : SELECT_CHECKBOX_CLASS;\r\n this._controlWidget = this._singleStrategy ? RadioButton : CheckBox;\r\n this._list.$element().addClass(SELECT_DECORATOR_ENABLED_CLASS)\r\n },\r\n beforeBag(config) {\r\n var {\r\n $itemElement: $itemElement\r\n } = config;\r\n var $container = config.$container.addClass(this._containerClass);\r\n var $control = $(\"<div>\").addClass(this._controlClass).appendTo($container);\r\n new this._controlWidget($control, extend(this._commonOptions(), {\r\n value: this._isSelected($itemElement),\r\n elementAttr: {\r\n \"aria-label\": messageLocalization.format(\"CheckState\")\r\n },\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false,\r\n onValueChanged: function(e) {\r\n e.event && this._list._saveSelectionChangeEvent(e.event);\r\n this._processCheckedState($itemElement, e.value);\r\n e.event && e.event.stopPropagation()\r\n }.bind(this)\r\n }))\r\n },\r\n modifyElement(config) {\r\n this.callBase.apply(this, arguments);\r\n var {\r\n $itemElement: $itemElement\r\n } = config;\r\n var control = this._controlWidget.getInstance($itemElement.find(\".\".concat(this._controlClass)));\r\n eventsEngine.on($itemElement, \"stateChanged\", (e, state) => {\r\n control.option(\"value\", state)\r\n })\r\n },\r\n _updateSelectAllState() {\r\n if (!this._$selectAll) {\r\n return\r\n }\r\n this._selectAllCheckBox.option(\"value\", this._list.isSelectAll())\r\n },\r\n afterRender() {\r\n if (\"all\" !== this._list.option(\"selectionMode\")) {\r\n return\r\n }\r\n if (!this._$selectAll) {\r\n this._renderSelectAll()\r\n } else {\r\n this._updateSelectAllState()\r\n }\r\n },\r\n handleKeyboardEvents(currentFocusedIndex, moveFocusUp) {\r\n var moveFocusDown = !moveFocusUp;\r\n var list = this._list;\r\n var $selectAll = this._$selectAll;\r\n var lastItemIndex = list._getLastItemIndex();\r\n var isFocusOutOfList = moveFocusUp && 0 === currentFocusedIndex || moveFocusDown && currentFocusedIndex === lastItemIndex;\r\n var hasSelectAllItem = !!$selectAll;\r\n if (hasSelectAllItem && isFocusOutOfList) {\r\n list.option(\"focusedElement\", $selectAll);\r\n list.scrollToItem(list.option(\"focusedElement\"));\r\n return true\r\n }\r\n return false\r\n },\r\n handleEnterPressing(e) {\r\n if (this._$selectAll && this._$selectAll.hasClass(FOCUSED_STATE_CLASS)) {\r\n e.target = this._$selectAll.get(0);\r\n this._list._saveSelectionChangeEvent(e);\r\n this._selectAllCheckBox.option(\"value\", !this._selectAllCheckBox.option(\"value\"));\r\n return true\r\n }\r\n },\r\n _renderSelectAll() {\r\n var $selectAll = this._$selectAll = $(\"<div>\").addClass(SELECT_DECORATOR_SELECT_ALL_CLASS);\r\n var list = this._list;\r\n var downArrowHandler = list._supportedKeys().downArrow.bind(list);\r\n this._selectAllCheckBox = list._createComponent($(\"<div>\").addClass(SELECT_DECORATOR_SELECT_ALL_CHECKBOX_CLASS).appendTo($selectAll), CheckBox, {\r\n elementAttr: {\r\n \"aria-label\": \"Select All\"\r\n },\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false\r\n });\r\n this._selectAllCheckBox.registerKeyHandler(\"downArrow\", downArrowHandler);\r\n $(\"<div>\").addClass(SELECT_DECORATOR_SELECT_ALL_LABEL_CLASS).text(this._list.option(\"selectAllText\")).appendTo($selectAll);\r\n this._list.itemsContainer().prepend($selectAll);\r\n this._updateSelectAllState();\r\n this._attachSelectAllHandler()\r\n },\r\n _attachSelectAllHandler() {\r\n this._selectAllCheckBox.option(\"onValueChanged\", this._selectAllHandler.bind(this));\r\n eventsEngine.off(this._$selectAll, CLICK_EVENT_NAME);\r\n eventsEngine.on(this._$selectAll, CLICK_EVENT_NAME, this._selectAllClickHandler.bind(this))\r\n },\r\n _selectAllHandler(e) {\r\n e.event && e.event.stopPropagation();\r\n var isSelectedAll = this._selectAllCheckBox.option(\"value\");\r\n e.event && this._list._saveSelectionChangeEvent(e.event);\r\n if (true === isSelectedAll) {\r\n this._selectAllItems()\r\n } else if (false === isSelectedAll) {\r\n this._unselectAllItems()\r\n }\r\n this._list._createActionByOption(\"onSelectAllValueChanged\")({\r\n value: isSelectedAll\r\n })\r\n },\r\n _checkSelectAllCapability() {\r\n var list = this._list;\r\n var dataController = list._dataController;\r\n if (\"allPages\" === list.option(\"selectAllMode\") && list.option(\"grouped\") && !dataController.group()) {\r\n errors.log(\"W1010\");\r\n return false\r\n }\r\n return true\r\n },\r\n _selectAllItems() {\r\n if (!this._checkSelectAllCapability()) {\r\n return\r\n }\r\n this._list._selection.selectAll(\"page\" === this._list.option(\"selectAllMode\"))\r\n },\r\n _unselectAllItems() {\r\n if (!this._checkSelectAllCapability()) {\r\n return\r\n }\r\n this._list._selection.deselectAll(\"page\" === this._list.option(\"selectAllMode\"))\r\n },\r\n _selectAllClickHandler(e) {\r\n this._list._saveSelectionChangeEvent(e);\r\n this._selectAllCheckBox.option(\"value\", !this._selectAllCheckBox.option(\"value\"))\r\n },\r\n _isSelected($itemElement) {\r\n return this._list.isItemSelected($itemElement)\r\n },\r\n _processCheckedState($itemElement, checked) {\r\n if (checked) {\r\n this._list.selectItem($itemElement)\r\n } else {\r\n this._list.unselectItem($itemElement)\r\n }\r\n },\r\n dispose() {\r\n this._disposeSelectAll();\r\n this._list.$element().removeClass(SELECT_DECORATOR_ENABLED_CLASS);\r\n this.callBase.apply(this, arguments)\r\n },\r\n _disposeSelectAll() {\r\n if (this._$selectAll) {\r\n this._$selectAll.remove();\r\n this._$selectAll = null\r\n }\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (esm/ui/widget/ui.search_box_mixin.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n 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 = $(\"<div>\").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/core/utils/stubs.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\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/renovation/ui/scroll_view/utils/get_element_style.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n 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/renovation/utils/type_conversion.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function toNumber(attribute) {\r\n return attribute ? Number(attribute.replace(\"px\", \"\")) : 0\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/collection/m_collection_widget.live_update.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n findChanges\r\n} from \"../../../core/utils/array_compare\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n when\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n indexByKey,\r\n insert,\r\n update\r\n} from \"../../../data/array_utils\";\r\nimport {\r\n keysEqual\r\n} from \"../../../data/utils\";\r\nimport CollectionWidget from \"./m_collection_widget.edit\";\r\nvar PRIVATE_KEY_FIELD = \"__dx_key__\";\r\nexport default CollectionWidget.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n repaintChangesOnly: false\r\n })\r\n },\r\n ctor() {\r\n var _a;\r\n this.callBase.apply(this, arguments);\r\n this._customizeStoreLoadOptions = e => {\r\n var dataController = this._dataController;\r\n if (dataController.getDataSource() && !this._dataController.isLoaded()) {\r\n this._correctionIndex = 0\r\n }\r\n if (this._correctionIndex && e.storeLoadOptions) {\r\n e.storeLoadOptions.skip += this._correctionIndex\r\n }\r\n };\r\n null === (_a = this._dataController) || void 0 === _a ? void 0 : _a.on(\"customizeStoreLoadOptions\", this._customizeStoreLoadOptions)\r\n },\r\n reload() {\r\n this._correctionIndex = 0\r\n },\r\n _init() {\r\n this.callBase();\r\n this._refreshItemsCache();\r\n this._correctionIndex = 0\r\n },\r\n _findItemElementByKey(key) {\r\n var result = $();\r\n var keyExpr = this.key();\r\n this.itemElements().each((_, item) => {\r\n var $item = $(item);\r\n var itemData = this._getItemData($item);\r\n if (keyExpr ? keysEqual(keyExpr, this.keyOf(itemData), key) : this._isItemEquals(itemData, key)) {\r\n result = $item;\r\n return false\r\n }\r\n });\r\n return result\r\n },\r\n _dataSourceChangedHandler(newItems, e) {\r\n if (null === e || void 0 === e ? void 0 : e.changes) {\r\n this._modifyByChanges(e.changes)\r\n } else {\r\n this.callBase(newItems, e);\r\n this._refreshItemsCache()\r\n }\r\n },\r\n _isItemEquals(item1, item2) {\r\n if (item1 && item1[PRIVATE_KEY_FIELD]) {\r\n item1 = item1.data\r\n }\r\n try {\r\n return JSON.stringify(item1) === JSON.stringify(item2)\r\n } catch (e) {\r\n return item1 === item2\r\n }\r\n },\r\n _isItemStrictEquals(item1, item2) {\r\n return this._isItemEquals(item1, item2)\r\n },\r\n _shouldAddNewGroup(changes, items) {\r\n var result = false;\r\n if (this.option(\"grouped\")) {\r\n if (!changes.length) {\r\n result = true\r\n }\r\n each(changes, (i, change) => {\r\n if (\"insert\" === change.type) {\r\n result = true;\r\n each(items, (_, item) => {\r\n if (void 0 !== change.data.key && change.data.key === item.key) {\r\n result = false;\r\n return false\r\n }\r\n })\r\n }\r\n })\r\n }\r\n return result\r\n },\r\n _partialRefresh() {\r\n if (this.option(\"repaintChangesOnly\")) {\r\n var result = findChanges(this._itemsCache, this._editStrategy.itemsGetter(), data => {\r\n if (data && void 0 !== data[PRIVATE_KEY_FIELD]) {\r\n return data[PRIVATE_KEY_FIELD]\r\n }\r\n return this.keyOf(data)\r\n }, this._isItemStrictEquals.bind(this));\r\n if (result && this._itemsCache.length && !this._shouldAddNewGroup(result, this._itemsCache)) {\r\n this._modifyByChanges(result, true);\r\n this._renderEmptyMessage();\r\n return true\r\n }\r\n this._refreshItemsCache()\r\n }\r\n return false\r\n },\r\n _refreshItemsCache() {\r\n if (this.option(\"repaintChangesOnly\")) {\r\n var items = this._editStrategy.itemsGetter();\r\n try {\r\n this._itemsCache = extend(true, [], items);\r\n if (!this.key()) {\r\n this._itemsCache = this._itemsCache.map((itemCache, index) => ({\r\n [PRIVATE_KEY_FIELD]: items[index],\r\n data: itemCache\r\n }))\r\n }\r\n } catch (e) {\r\n this._itemsCache = extend([], items)\r\n }\r\n }\r\n },\r\n _dispose() {\r\n this._dataController.off(\"customizeStoreLoadOptions\", this._customizeStoreLoadOptions);\r\n this.callBase()\r\n },\r\n _updateByChange(keyInfo, items, change, isPartialRefresh) {\r\n if (isPartialRefresh) {\r\n this._renderItem(change.index, change.data, null, this._findItemElementByKey(change.key))\r\n } else {\r\n var changedItem = items[indexByKey(keyInfo, items, change.key)];\r\n if (changedItem) {\r\n update(keyInfo, items, change.key, change.data).done(() => {\r\n this._renderItem(items.indexOf(changedItem), changedItem, null, this._findItemElementByKey(change.key))\r\n })\r\n }\r\n }\r\n },\r\n _insertByChange(keyInfo, items, change, isPartialRefresh) {\r\n when(isPartialRefresh || insert(keyInfo, items, change.data, change.index)).done(() => {\r\n var _a;\r\n this._beforeItemElementInserted(change);\r\n this._renderItem(null !== (_a = change.index) && void 0 !== _a ? _a : items.length, change.data);\r\n this._afterItemElementInserted();\r\n this._correctionIndex++\r\n })\r\n },\r\n _updateSelectionAfterRemoveByChange(removeIndex) {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n if (selectedIndex > removeIndex) {\r\n this.option(\"selectedIndex\", selectedIndex - 1)\r\n } else if (selectedIndex === removeIndex && 1 === this.option(\"selectedItems\").length) {\r\n this.option(\"selectedItems\", [])\r\n } else {\r\n this._normalizeSelectedItems()\r\n }\r\n },\r\n _beforeItemElementInserted(change) {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n if (change.index <= selectedIndex) {\r\n this.option(\"selectedIndex\", selectedIndex + 1)\r\n }\r\n },\r\n _afterItemElementInserted: noop,\r\n _removeByChange(keyInfo, items, change, isPartialRefresh) {\r\n var index = isPartialRefresh ? change.index : indexByKey(keyInfo, items, change.key);\r\n var removedItem = isPartialRefresh ? change.oldItem : items[index];\r\n if (removedItem) {\r\n var $removedItemElement = this._findItemElementByKey(change.key);\r\n var deletedActionArgs = this._extendActionArgs($removedItemElement);\r\n this._waitDeletingPrepare($removedItemElement).done(() => {\r\n if (isPartialRefresh) {\r\n this._updateIndicesAfterIndex(index - 1);\r\n this._afterItemElementDeleted($removedItemElement, deletedActionArgs);\r\n this._updateSelectionAfterRemoveByChange(index)\r\n } else {\r\n this._deleteItemElementByIndex(index);\r\n this._afterItemElementDeleted($removedItemElement, deletedActionArgs)\r\n }\r\n });\r\n this._correctionIndex--\r\n }\r\n },\r\n _modifyByChanges(changes, isPartialRefresh) {\r\n var items = this._editStrategy.itemsGetter();\r\n var keyInfo = {\r\n key: this.key.bind(this),\r\n keyOf: this.keyOf.bind(this)\r\n };\r\n var dataController = this._dataController;\r\n var paginate = dataController.paginate();\r\n var group = dataController.group();\r\n if (paginate || group) {\r\n changes = changes.filter(item => \"insert\" !== item.type || void 0 !== item.index)\r\n }\r\n changes.forEach(change => this[\"_\".concat(change.type, \"ByChange\")](keyInfo, items, change, isPartialRefresh));\r\n this._renderedItemsCount = items.length;\r\n this._refreshItemsCache();\r\n this._fireContentReadyAction()\r\n },\r\n _appendItemToContainer($container, $itemFrame, index) {\r\n var nextSiblingElement = $container.children(this._itemSelector()).get(index);\r\n domAdapter.insertElement($container.get(0), $itemFrame.get(0), nextSiblingElement)\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"items\":\r\n var isItemsUpdated = this._partialRefresh(args.value);\r\n if (!isItemsUpdated) {\r\n this.callBase(args)\r\n }\r\n break;\r\n case \"dataSource\":\r\n if (!this.option(\"repaintChangesOnly\") || !args.value) {\r\n this.option(\"items\", [])\r\n }\r\n this.callBase(args);\r\n break;\r\n case \"repaintChangesOnly\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.live_update.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport CollectionWidget from \"../../__internal/ui/collection/m_collection_widget.live_update\";\r\nexport default CollectionWidget;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/m_load_panel.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n noop\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 messageLocalization from \"../../localization/message\";\r\nimport LoadIndicator from \"../../ui/load_indicator\";\r\nimport Overlay from \"../../ui/overlay/ui.overlay\";\r\nimport {\r\n isFluent,\r\n isMaterial,\r\n isMaterialBased\r\n} from \"../../ui/themes\";\r\nvar LOADPANEL_CLASS = \"dx-loadpanel\";\r\nvar LOADPANEL_WRAPPER_CLASS = \"dx-loadpanel-wrapper\";\r\nvar LOADPANEL_INDICATOR_CLASS = \"dx-loadpanel-indicator\";\r\nvar LOADPANEL_MESSAGE_CLASS = \"dx-loadpanel-message\";\r\nvar LOADPANEL_CONTENT_CLASS = \"dx-loadpanel-content\";\r\nvar LOADPANEL_CONTENT_WRAPPER_CLASS = \"dx-loadpanel-content-wrapper\";\r\nvar LOADPANEL_PANE_HIDDEN_CLASS = \"dx-loadpanel-pane-hidden\";\r\nvar LoadPanel = Overlay.inherit({\r\n _supportedKeys() {\r\n return extend(this.callBase(), {\r\n escape: noop\r\n })\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n message: messageLocalization.format(\"Loading\"),\r\n width: 222,\r\n height: 90,\r\n animation: null,\r\n showIndicator: true,\r\n indicatorSrc: \"\",\r\n showPane: true,\r\n delay: 0,\r\n templatesRenderAsynchronously: false,\r\n hideTopOverlayHandler: null,\r\n focusStateEnabled: false,\r\n propagateOutsideClick: true,\r\n preventScrollEvents: false\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n shadingColor: \"transparent\"\r\n }\r\n }, {\r\n device: () => isMaterial(),\r\n options: {\r\n message: \"\",\r\n width: 60,\r\n height: 60,\r\n maxHeight: 60,\r\n maxWidth: 60\r\n }\r\n }, {\r\n device: () => isFluent(),\r\n options: {\r\n width: \"auto\",\r\n height: \"auto\"\r\n }\r\n }])\r\n },\r\n _init() {\r\n this.callBase.apply(this, arguments)\r\n },\r\n _render() {\r\n this.callBase();\r\n this.$element().addClass(LOADPANEL_CLASS);\r\n this.$wrapper().addClass(LOADPANEL_WRAPPER_CLASS);\r\n this._setWrapperAria()\r\n },\r\n _setWrapperAria() {\r\n var {\r\n message: message\r\n } = this.option();\r\n var defaultLabel = isMaterialBased() ? message : null;\r\n var label = message ? defaultLabel : messageLocalization.format(\"Loading\");\r\n var aria = {\r\n role: \"alert\",\r\n label: label\r\n };\r\n this.setAria(aria, this.$wrapper())\r\n },\r\n _renderContentImpl() {\r\n this.callBase();\r\n this.$content().addClass(LOADPANEL_CONTENT_CLASS);\r\n this._$loadPanelContentWrapper = $(\"<div>\").addClass(LOADPANEL_CONTENT_WRAPPER_CLASS);\r\n this._$loadPanelContentWrapper.appendTo(this.$content());\r\n this._togglePaneVisible();\r\n this._cleanPreviousContent();\r\n this._renderLoadIndicator();\r\n this._renderMessage()\r\n },\r\n _show() {\r\n var delay = this.option(\"delay\");\r\n if (!delay) {\r\n return this.callBase()\r\n }\r\n var deferred = Deferred();\r\n var callBase = this.callBase.bind(this);\r\n this._clearShowTimeout();\r\n this._showTimeout = setTimeout(() => {\r\n callBase().done(() => {\r\n deferred.resolve()\r\n })\r\n }, delay);\r\n return deferred.promise()\r\n },\r\n _hide() {\r\n this._clearShowTimeout();\r\n return this.callBase()\r\n },\r\n _clearShowTimeout() {\r\n clearTimeout(this._showTimeout)\r\n },\r\n _renderMessage() {\r\n if (!this._$loadPanelContentWrapper) {\r\n return\r\n }\r\n var message = this.option(\"message\");\r\n if (!message) {\r\n return\r\n }\r\n var $message = $(\"<div>\").addClass(LOADPANEL_MESSAGE_CLASS).text(message);\r\n this._$loadPanelContentWrapper.append($message)\r\n },\r\n _renderLoadIndicator() {\r\n if (!this._$loadPanelContentWrapper || !this.option(\"showIndicator\")) {\r\n return\r\n }\r\n if (!this._$indicator) {\r\n this._$indicator = $(\"<div>\").addClass(LOADPANEL_INDICATOR_CLASS).appendTo(this._$loadPanelContentWrapper)\r\n }\r\n this._createComponent(this._$indicator, LoadIndicator, {\r\n indicatorSrc: this.option(\"indicatorSrc\")\r\n })\r\n },\r\n _cleanPreviousContent() {\r\n this.$content().find(\".\".concat(LOADPANEL_MESSAGE_CLASS)).remove();\r\n this.$content().find(\".\".concat(LOADPANEL_INDICATOR_CLASS)).remove();\r\n delete this._$indicator\r\n },\r\n _togglePaneVisible() {\r\n this.$content().toggleClass(LOADPANEL_PANE_HIDDEN_CLASS, !this.option(\"showPane\"))\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"delay\":\r\n break;\r\n case \"message\":\r\n case \"showIndicator\":\r\n this._cleanPreviousContent();\r\n this._renderLoadIndicator();\r\n this._renderMessage();\r\n this._setWrapperAria();\r\n break;\r\n case \"showPane\":\r\n this._togglePaneVisible();\r\n break;\r\n case \"indicatorSrc\":\r\n this._renderLoadIndicator();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _dispose() {\r\n this._clearShowTimeout();\r\n this.callBase()\r\n }\r\n});\r\nregisterComponent(\"dxLoadPanel\", LoadPanel);\r\nexport default LoadPanel;\r\n","/**\r\n * DevExtreme (esm/ui/load_panel.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport LoadIndicator from \"../__internal/ui/m_load_panel\";\r\nexport default LoadIndicator;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/scroll_view/m_scrollbar.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n move\r\n} from \"../../../animation/translator\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n deferRenderer\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport readyCallback from \"../../../core/utils/ready_callbacks\";\r\nimport {\r\n isPlainObject\r\n} from \"../../../core/utils/type\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport pointerEvents from \"../../../events/pointer\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nimport Widget from \"../../../ui/widget/ui.widget\";\r\nvar SCROLLBAR = \"dxScrollbar\";\r\nvar SCROLLABLE_SCROLLBAR_CLASS = \"dx-scrollable-scrollbar\";\r\nvar SCROLLABLE_SCROLLBAR_ACTIVE_CLASS = \"\".concat(SCROLLABLE_SCROLLBAR_CLASS, \"-active\");\r\nvar SCROLLABLE_SCROLL_CLASS = \"dx-scrollable-scroll\";\r\nvar SCROLLABLE_SCROLL_CONTENT_CLASS = \"dx-scrollable-scroll-content\";\r\nvar HOVER_ENABLED_STATE = \"dx-scrollbar-hoverable\";\r\nvar HORIZONTAL = \"horizontal\";\r\nvar THUMB_MIN_SIZE = 15;\r\nvar SCROLLBAR_VISIBLE = {\r\n onScroll: \"onScroll\",\r\n onHover: \"onHover\",\r\n always: \"always\",\r\n never: \"never\"\r\n};\r\nvar activeScrollbar = null;\r\nvar Scrollbar = Widget.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n direction: null,\r\n visible: false,\r\n activeStateEnabled: false,\r\n visibilityMode: SCROLLBAR_VISIBLE.onScroll,\r\n containerSize: 0,\r\n contentSize: 0,\r\n expandable: true,\r\n scaleRatio: 1\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._isHovered = false\r\n },\r\n _initMarkup() {\r\n this._renderThumb();\r\n this.callBase()\r\n },\r\n _render() {\r\n this.callBase();\r\n this._renderDirection();\r\n this._update();\r\n this._attachPointerDownHandler();\r\n this.option(\"hoverStateEnabled\", this._isHoverMode());\r\n this.$element().toggleClass(HOVER_ENABLED_STATE, this.option(\"hoverStateEnabled\"))\r\n },\r\n _renderThumb() {\r\n this._$thumb = $(\"<div>\").addClass(SCROLLABLE_SCROLL_CLASS);\r\n $(\"<div>\").addClass(SCROLLABLE_SCROLL_CONTENT_CLASS).appendTo(this._$thumb);\r\n this.$element().addClass(SCROLLABLE_SCROLLBAR_CLASS).append(this._$thumb)\r\n },\r\n isThumb($element) {\r\n return !!this.$element().find($element).length\r\n },\r\n _isHoverMode() {\r\n var visibilityMode = this.option(\"visibilityMode\");\r\n return (visibilityMode === SCROLLBAR_VISIBLE.onHover || visibilityMode === SCROLLBAR_VISIBLE.always) && this.option(\"expandable\")\r\n },\r\n _renderDirection() {\r\n var direction = this.option(\"direction\");\r\n this.$element().addClass(\"dx-scrollbar-\".concat(direction));\r\n this._dimension = direction === HORIZONTAL ? \"width\" : \"height\";\r\n this._prop = direction === HORIZONTAL ? \"left\" : \"top\"\r\n },\r\n _attachPointerDownHandler() {\r\n eventsEngine.on(this._$thumb, addNamespace(pointerEvents.down, SCROLLBAR), this.feedbackOn.bind(this))\r\n },\r\n feedbackOn(e) {\r\n null === e || void 0 === e ? void 0 : e.preventDefault();\r\n this.$element().addClass(SCROLLABLE_SCROLLBAR_ACTIVE_CLASS);\r\n activeScrollbar = this\r\n },\r\n feedbackOff() {\r\n this.$element().removeClass(SCROLLABLE_SCROLLBAR_ACTIVE_CLASS);\r\n activeScrollbar = null\r\n },\r\n cursorEnter() {\r\n this._isHovered = true;\r\n if (this._needScrollbar()) {\r\n this.option(\"visible\", true)\r\n }\r\n },\r\n cursorLeave() {\r\n this._isHovered = false;\r\n this.option(\"visible\", false)\r\n },\r\n _renderDimensions() {\r\n this._$thumb.css({\r\n width: this.option(\"width\"),\r\n height: this.option(\"height\")\r\n })\r\n },\r\n _toggleVisibility(visible) {\r\n if (this.option(\"visibilityMode\") === SCROLLBAR_VISIBLE.onScroll) {\r\n this._$thumb.css(\"opacity\")\r\n }\r\n visible = this._adjustVisibility(visible);\r\n this.option().visible = visible;\r\n this._$thumb.toggleClass(\"dx-state-invisible\", !visible)\r\n },\r\n _adjustVisibility(visible) {\r\n if (this._baseContainerToContentRatio && !this._needScrollbar()) {\r\n return false\r\n }\r\n switch (this.option(\"visibilityMode\")) {\r\n case SCROLLBAR_VISIBLE.onScroll:\r\n break;\r\n case SCROLLBAR_VISIBLE.onHover:\r\n visible = visible || !!this._isHovered;\r\n break;\r\n case SCROLLBAR_VISIBLE.never:\r\n visible = false;\r\n break;\r\n case SCROLLBAR_VISIBLE.always:\r\n visible = true\r\n }\r\n return visible\r\n },\r\n moveTo(location) {\r\n if (this._isHidden()) {\r\n return\r\n }\r\n if (isPlainObject(location)) {\r\n location = location[this._prop] || 0\r\n }\r\n var scrollBarLocation = {};\r\n scrollBarLocation[this._prop] = this._calculateScrollBarPosition(location);\r\n move(this._$thumb, scrollBarLocation)\r\n },\r\n _calculateScrollBarPosition(location) {\r\n return -location * this._thumbRatio\r\n },\r\n _update() {\r\n var containerSize = Math.round(this.option(\"containerSize\"));\r\n var contentSize = Math.round(this.option(\"contentSize\"));\r\n var baseContainerSize = Math.round(this.option(\"baseContainerSize\"));\r\n var baseContentSize = Math.round(this.option(\"baseContentSize\"));\r\n if (isNaN(baseContainerSize)) {\r\n baseContainerSize = containerSize;\r\n baseContentSize = contentSize\r\n }\r\n this._baseContainerToContentRatio = baseContentSize ? baseContainerSize / baseContentSize : baseContainerSize;\r\n this._realContainerToContentRatio = contentSize ? containerSize / contentSize : containerSize;\r\n var thumbSize = Math.round(Math.max(Math.round(containerSize * this._realContainerToContentRatio), THUMB_MIN_SIZE));\r\n this._thumbRatio = (containerSize - thumbSize) / (this.option(\"scaleRatio\") * (contentSize - containerSize));\r\n this.option(this._dimension, thumbSize / this.option(\"scaleRatio\"));\r\n this.$element().css(\"display\", this._needScrollbar() ? \"\" : \"none\")\r\n },\r\n _isHidden() {\r\n return this.option(\"visibilityMode\") === SCROLLBAR_VISIBLE.never\r\n },\r\n _needScrollbar() {\r\n return !this._isHidden() && this._baseContainerToContentRatio < 1\r\n },\r\n containerToContentRatio() {\r\n return this._realContainerToContentRatio\r\n },\r\n _normalizeSize(size) {\r\n return isPlainObject(size) ? size[this._dimension] || 0 : size\r\n },\r\n _clean() {\r\n this.callBase();\r\n if (this === activeScrollbar) {\r\n activeScrollbar = null\r\n }\r\n eventsEngine.off(this._$thumb, \".\".concat(SCROLLBAR))\r\n },\r\n _optionChanged(args) {\r\n if (this._isHidden()) {\r\n return\r\n }\r\n switch (args.name) {\r\n case \"containerSize\":\r\n case \"contentSize\":\r\n this.option()[args.name] = this._normalizeSize(args.value);\r\n this._update();\r\n break;\r\n case \"baseContentSize\":\r\n case \"baseContainerSize\":\r\n this._update();\r\n break;\r\n case \"visibilityMode\":\r\n case \"direction\":\r\n this._invalidate();\r\n break;\r\n case \"scaleRatio\":\r\n this._update();\r\n break;\r\n default:\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n update: deferRenderer((function() {\r\n this._adjustVisibility() && this.option(\"visible\", true)\r\n }))\r\n});\r\nreadyCallback.add(() => {\r\n eventsEngine.subscribeGlobal(domAdapter.getDocument(), addNamespace(pointerEvents.up, SCROLLBAR), () => {\r\n if (activeScrollbar) {\r\n activeScrollbar.feedbackOff()\r\n }\r\n })\r\n});\r\nexport default Scrollbar;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/scroll_view/m_scrollable.native.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../../core/class\";\r\nimport devices from \"../../../core/devices\";\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 {\r\n getHeight,\r\n getWidth\r\n} from \"../../../core/utils/size\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n isDxMouseWheelEvent\r\n} from \"../../../events/utils/index\";\r\nimport Scrollbar from \"./m_scrollbar\";\r\nvar SCROLLABLE_NATIVE = \"dxNativeScrollable\";\r\nvar SCROLLABLE_NATIVE_CLASS = \"dx-scrollable-native\";\r\nvar SCROLLABLE_SCROLLBAR_SIMULATED = \"dx-scrollable-scrollbar-simulated\";\r\nvar SCROLLABLE_SCROLLBARS_HIDDEN = \"dx-scrollable-scrollbars-hidden\";\r\nvar VERTICAL = \"vertical\";\r\nvar HORIZONTAL = \"horizontal\";\r\nvar HIDE_SCROLLBAR_TIMEOUT = 500;\r\nvar NativeStrategy = Class.inherit({\r\n ctor(scrollable) {\r\n this._init(scrollable)\r\n },\r\n _init(scrollable) {\r\n this._component = scrollable;\r\n this._$element = scrollable.$element();\r\n this._$container = $(scrollable.container());\r\n this._$content = scrollable.$content();\r\n this._direction = scrollable.option(\"direction\");\r\n this._useSimulatedScrollbar = scrollable.option(\"useSimulatedScrollbar\");\r\n this.option = scrollable.option.bind(scrollable);\r\n this._createActionByOption = scrollable._createActionByOption.bind(scrollable);\r\n this._isLocked = scrollable._isLocked.bind(scrollable);\r\n this._isDirection = scrollable._isDirection.bind(scrollable);\r\n this._allowedDirection = scrollable._allowedDirection.bind(scrollable);\r\n this._getMaxOffset = scrollable._getMaxOffset.bind(scrollable);\r\n this._isRtlNativeStrategy = scrollable._isRtlNativeStrategy.bind(scrollable)\r\n },\r\n render() {\r\n var device = devices.real();\r\n var deviceType = device.platform;\r\n this._$element.addClass(SCROLLABLE_NATIVE_CLASS).addClass(\"\".concat(SCROLLABLE_NATIVE_CLASS, \"-\").concat(deviceType)).toggleClass(SCROLLABLE_SCROLLBARS_HIDDEN, !this._isScrollbarVisible());\r\n if (this._isScrollbarVisible() && this._useSimulatedScrollbar) {\r\n this._renderScrollbars()\r\n }\r\n },\r\n updateRtlPosition(isFirstRender) {\r\n if (isFirstRender && this.option(\"rtlEnabled\")) {\r\n if (this._isScrollbarVisible() && this._useSimulatedScrollbar) {\r\n this._moveScrollbars()\r\n }\r\n }\r\n },\r\n _renderScrollbars() {\r\n this._scrollbars = {};\r\n this._hideScrollbarTimeout = 0;\r\n this._$element.addClass(SCROLLABLE_SCROLLBAR_SIMULATED);\r\n this._renderScrollbar(VERTICAL);\r\n this._renderScrollbar(HORIZONTAL)\r\n },\r\n _renderScrollbar(direction) {\r\n if (!this._isDirection(direction)) {\r\n return\r\n }\r\n this._scrollbars[direction] = new Scrollbar($(\"<div>\").appendTo(this._$element), {\r\n direction: direction,\r\n expandable: this._component.option(\"scrollByThumb\")\r\n })\r\n },\r\n handleInit: noop,\r\n handleStart: noop,\r\n handleMove(e) {\r\n if (this._isLocked()) {\r\n e.cancel = true;\r\n return\r\n }\r\n if (this._allowedDirection()) {\r\n e.originalEvent.isScrollingEvent = true\r\n }\r\n },\r\n handleEnd: noop,\r\n handleCancel: noop,\r\n handleStop: noop,\r\n _eachScrollbar(callback) {\r\n callback = callback.bind(this);\r\n each(this._scrollbars || {}, (direction, scrollbar) => {\r\n callback(scrollbar, direction)\r\n })\r\n },\r\n createActions() {\r\n this._scrollAction = this._createActionByOption(\"onScroll\");\r\n this._updateAction = this._createActionByOption(\"onUpdated\")\r\n },\r\n _createActionArgs() {\r\n var {\r\n left: left,\r\n top: top\r\n } = this.location();\r\n return {\r\n event: this._eventForUserAction,\r\n scrollOffset: this._getScrollOffset(),\r\n reachedLeft: this._isRtlNativeStrategy() ? this._isReachedRight(-left) : this._isReachedLeft(left),\r\n reachedRight: this._isRtlNativeStrategy() ? this._isReachedLeft(-Math.abs(left)) : this._isReachedRight(left),\r\n reachedTop: this._isDirection(VERTICAL) ? Math.round(top) >= 0 : void 0,\r\n reachedBottom: this._isDirection(VERTICAL) ? Math.round(Math.abs(top) - this._getMaxOffset().top) >= 0 : void 0\r\n }\r\n },\r\n _getScrollOffset() {\r\n var {\r\n top: top,\r\n left: left\r\n } = this.location();\r\n return {\r\n top: -top,\r\n left: this._normalizeOffsetLeft(-left)\r\n }\r\n },\r\n _normalizeOffsetLeft(scrollLeft) {\r\n if (this._isRtlNativeStrategy()) {\r\n return this._getMaxOffset().left + scrollLeft\r\n }\r\n return scrollLeft\r\n },\r\n _isReachedLeft(left) {\r\n return this._isDirection(HORIZONTAL) ? Math.round(left) >= 0 : void 0\r\n },\r\n _isReachedRight(left) {\r\n return this._isDirection(HORIZONTAL) ? Math.round(Math.abs(left) - this._getMaxOffset().left) >= 0 : void 0\r\n },\r\n _isScrollbarVisible() {\r\n var {\r\n showScrollbar: showScrollbar\r\n } = this.option();\r\n return \"never\" !== showScrollbar && false !== showScrollbar\r\n },\r\n handleScroll(e) {\r\n this._eventForUserAction = e;\r\n this._moveScrollbars();\r\n this._scrollAction(this._createActionArgs())\r\n },\r\n _moveScrollbars() {\r\n var {\r\n top: top,\r\n left: left\r\n } = this._getScrollOffset();\r\n this._eachScrollbar(scrollbar => {\r\n scrollbar.moveTo({\r\n top: -top,\r\n left: -left\r\n });\r\n scrollbar.option(\"visible\", true)\r\n });\r\n this._hideScrollbars()\r\n },\r\n _hideScrollbars() {\r\n clearTimeout(this._hideScrollbarTimeout);\r\n this._hideScrollbarTimeout = setTimeout(() => {\r\n this._eachScrollbar(scrollbar => {\r\n scrollbar.option(\"visible\", false)\r\n })\r\n }, HIDE_SCROLLBAR_TIMEOUT)\r\n },\r\n location() {\r\n return {\r\n left: -this._$container.scrollLeft(),\r\n top: -this._$container.scrollTop()\r\n }\r\n },\r\n disabledChanged: noop,\r\n update() {\r\n this._update();\r\n this._updateAction(this._createActionArgs())\r\n },\r\n _update() {\r\n this._updateDimensions();\r\n this._updateScrollbars()\r\n },\r\n _updateDimensions() {\r\n this._containerSize = {\r\n height: getHeight(this._$container),\r\n width: getWidth(this._$container)\r\n };\r\n this._componentContentSize = {\r\n height: getHeight(this._component.$content()),\r\n width: getWidth(this._component.$content())\r\n };\r\n this._contentSize = {\r\n height: getHeight(this._$content),\r\n width: getWidth(this._$content)\r\n }\r\n },\r\n _updateScrollbars() {\r\n this._eachScrollbar((function(scrollbar, direction) {\r\n var dimension = direction === VERTICAL ? \"height\" : \"width\";\r\n scrollbar.option({\r\n containerSize: this._containerSize[dimension],\r\n contentSize: this._componentContentSize[dimension]\r\n });\r\n scrollbar.update()\r\n }))\r\n },\r\n _allowedDirections() {\r\n return {\r\n vertical: this._isDirection(VERTICAL) && this._contentSize.height > this._containerSize.height,\r\n horizontal: this._isDirection(HORIZONTAL) && this._contentSize.width > this._containerSize.width\r\n }\r\n },\r\n dispose() {\r\n var {\r\n className: className\r\n } = this._$element.get(0);\r\n var scrollableNativeRegexp = new RegExp(\"\".concat(SCROLLABLE_NATIVE_CLASS, \"\\\\S*\"), \"g\");\r\n if (scrollableNativeRegexp.test(className)) {\r\n this._$element.removeClass(className.match(scrollableNativeRegexp).join(\" \"))\r\n }\r\n eventsEngine.off(this._$element, \".\".concat(SCROLLABLE_NATIVE));\r\n eventsEngine.off(this._$container, \".\".concat(SCROLLABLE_NATIVE));\r\n this._removeScrollbars();\r\n clearTimeout(this._hideScrollbarTimeout)\r\n },\r\n _removeScrollbars() {\r\n this._eachScrollbar(scrollbar => {\r\n scrollbar.$element().remove()\r\n })\r\n },\r\n scrollBy(distance) {\r\n var location = this.location();\r\n this._$container.scrollTop(Math.round(-location.top - distance.top));\r\n this._$container.scrollLeft(Math.round(-location.left - distance.left))\r\n },\r\n validate(e) {\r\n if (this.option(\"disabled\")) {\r\n return false\r\n }\r\n if (isDxMouseWheelEvent(e) && this._isScrolledInMaxDirection(e)) {\r\n return false\r\n }\r\n return !!this._allowedDirection()\r\n },\r\n _isScrolledInMaxDirection(e) {\r\n var container = this._$container.get(0);\r\n var result;\r\n if (e.delta > 0) {\r\n result = e.shiftKey ? !container.scrollLeft : !container.scrollTop\r\n } else if (e.shiftKey) {\r\n result = container.scrollLeft >= this._getMaxOffset().left\r\n } else {\r\n result = container.scrollTop >= this._getMaxOffset().top\r\n }\r\n return result\r\n },\r\n getDirection() {\r\n return this._allowedDirection()\r\n }\r\n});\r\nexport default NativeStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/scroll_view/m_scroll_view.native.pull_down.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n move\r\n} from \"../../../animation/translator\";\r\nimport $ from \"../../../core/renderer\";\r\nimport Callbacks from \"../../../core/utils/callbacks\";\r\nimport {\r\n Deferred\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport LoadIndicator from \"../../../ui/load_indicator\";\r\nimport NativeStrategy from \"./m_scrollable.native\";\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(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() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n render() {\r\n this.callBase();\r\n this._renderPullDown();\r\n this._releaseState()\r\n },\r\n _renderPullDown() {\r\n var $image = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_IMAGE_CLASS);\r\n var $loadContainer = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"<div>\")).$element();\r\n var $text = this._$pullDownText = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_TEXT_CLASS);\r\n this._$pullingDownText = $(\"<div>\").text(this.option(\"pullingDownText\")).appendTo($text);\r\n this._$pulledDownText = $(\"<div>\").text(this.option(\"pulledDownText\")).appendTo($text);\r\n this._$refreshingText = $(\"<div>\").text(this.option(\"refreshingText\")).appendTo($text);\r\n this._$pullDown.empty().append($image).append($loadContainer.append($loadIndicator)).append($text)\r\n },\r\n _releaseState() {\r\n this._state = STATE_RELEASED;\r\n this._refreshPullDownText()\r\n },\r\n _refreshPullDownText() {\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, (_, 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() {\r\n this.callBase();\r\n this._setTopPocketOffset()\r\n },\r\n _updateDimensions() {\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() {\r\n var allowedDirections = this.callBase();\r\n allowedDirections.vertical = allowedDirections.vertical || this._pullDownEnabled;\r\n return allowedDirections\r\n },\r\n _setTopPocketOffset() {\r\n this._$topPocket.css({\r\n top: -this._topPocketSize\r\n })\r\n },\r\n handleEnd() {\r\n this.callBase();\r\n this._complete()\r\n },\r\n handleStop() {\r\n this.callBase();\r\n this._complete()\r\n },\r\n _complete() {\r\n if (this._state === STATE_READY) {\r\n this._setPullDownOffset(this._topPocketSize);\r\n clearTimeout(this._pullDownRefreshTimeout);\r\n this._pullDownRefreshTimeout = setTimeout(() => {\r\n this._pullDownRefreshing()\r\n }, 400)\r\n }\r\n },\r\n _setPullDownOffset(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(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() {\r\n return this._pullDownEnabled && this._location >= this._topPocketSize\r\n },\r\n _isReachBottom() {\r\n return this._reachBottomEnabled && Math.round(this._bottomBoundary + Math.floor(this._location)) <= 1\r\n },\r\n _reachBottom() {\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() {\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() {\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() {\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(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(enabled) {\r\n this._reachBottomEnabled = enabled\r\n },\r\n pendingRelease() {\r\n this._state = STATE_READY\r\n },\r\n release() {\r\n var deferred = 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(() => {\r\n this._setPullDownOffset(0);\r\n this._stateReleased();\r\n this.releaseCallbacks.fire();\r\n this._updateAction();\r\n deferred.resolve()\r\n }, PULLDOWN_RELEASE_TIME);\r\n return deferred.promise()\r\n },\r\n dispose() {\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/__internal/ui/scroll_view/m_scroll_view.native.swipe_down.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n move\r\n} from \"../../../animation/translator\";\r\nimport $ from \"../../../core/renderer\";\r\nimport Callbacks from \"../../../core/utils/callbacks\";\r\nimport {\r\n Deferred\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n getOuterHeight\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n eventData\r\n} from \"../../../events/utils/index\";\r\nimport LoadIndicator from \"../../../ui/load_indicator\";\r\nimport NativeStrategy from \"./m_scrollable.native\";\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(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() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n render() {\r\n this.callBase();\r\n this._renderPullDown();\r\n this._releaseState()\r\n },\r\n _renderPullDown() {\r\n var $loadContainer = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"<div>\")).$element();\r\n this._$icon = $(\"<div>\").addClass(PULLDOWN_ICON_CLASS);\r\n this._$pullDown.empty().append(this._$icon).append($loadContainer.append($loadIndicator))\r\n },\r\n _releaseState() {\r\n this._state = STATE_RELEASED;\r\n this._releasePullDown();\r\n this._updateDimensions()\r\n },\r\n _releasePullDown() {\r\n this._$pullDown.css({\r\n opacity: 0\r\n })\r\n },\r\n _updateDimensions() {\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() {\r\n var allowedDirections = this.callBase();\r\n allowedDirections.vertical = allowedDirections.vertical || this._pullDownEnabled;\r\n return allowedDirections\r\n },\r\n handleInit(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(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() {\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(\".concat(angle, \"deg)\")\r\n })\r\n },\r\n _isPullDown() {\r\n return this._pullDownEnabled && this._state === STATE_PULLED && this._deltaY >= this._getPullDownHeight() - this._getPullDownStartPosition()\r\n },\r\n _getPullDownHeight() {\r\n return Math.round(.05 * getOuterHeight(this._$element))\r\n },\r\n _getPullDownStartPosition() {\r\n return -Math.round(1.5 * getOuterHeight(this._$pullDown))\r\n },\r\n handleEnd() {\r\n if (this._isPullDown()) {\r\n this._pullDownRefreshing()\r\n }\r\n this._complete()\r\n },\r\n handleStop() {\r\n this._complete()\r\n },\r\n _complete() {\r\n if (this._state === STATE_TOUCHED || this._state === STATE_PULLED) {\r\n this._releaseState()\r\n }\r\n },\r\n handleScroll(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() {\r\n return this._reachBottomEnabled && Math.round(this._bottomBoundary + Math.floor(this._location)) <= 1\r\n },\r\n _reachBottom() {\r\n this.reachBottomCallbacks.fire()\r\n },\r\n _stateReleased() {\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() {\r\n this._state = STATE_REFRESHING;\r\n this._pullDownRefreshHandler()\r\n },\r\n _pullDownRefreshHandler() {\r\n this._refreshPullDown();\r\n this.pullDownCallbacks.fire()\r\n },\r\n _refreshPullDown() {\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(enabled) {\r\n this._$topPocket.toggle(enabled);\r\n this._pullDownEnabled = enabled\r\n },\r\n reachBottomEnable(enabled) {\r\n this._reachBottomEnabled = enabled\r\n },\r\n pendingRelease() {\r\n this._state = STATE_READY\r\n },\r\n release() {\r\n var deferred = Deferred();\r\n this._updateDimensions();\r\n clearTimeout(this._releaseTimeout);\r\n this._releaseTimeout = setTimeout(() => {\r\n this._stateReleased();\r\n this.releaseCallbacks.fire();\r\n this._updateAction();\r\n deferred.resolve()\r\n }, 800);\r\n return deferred.promise()\r\n },\r\n dispose() {\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/__internal/ui/scroll_view/m_animator.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n cancelAnimationFrame,\r\n requestAnimationFrame\r\n} from \"../../../animation/frame\";\r\nimport Class from \"../../../core/class\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nvar {\r\n abstract: abstract\r\n} = Class;\r\nvar Animator = Class.inherit({\r\n ctor() {\r\n this._finished = true;\r\n this._stopped = false;\r\n this._proxiedStepCore = this._stepCore.bind(this)\r\n },\r\n start() {\r\n this._stopped = false;\r\n this._finished = false;\r\n this._stepCore()\r\n },\r\n stop() {\r\n this._stopped = true;\r\n cancelAnimationFrame(this._stepAnimationFrame)\r\n },\r\n _stepCore() {\r\n if (this._isStopped()) {\r\n this._stop();\r\n return\r\n }\r\n if (this._isFinished()) {\r\n this._finished = true;\r\n this._complete();\r\n return\r\n }\r\n this._step();\r\n this._stepAnimationFrame = requestAnimationFrame(this._proxiedStepCore)\r\n },\r\n _step: abstract,\r\n _isFinished: noop,\r\n _stop: noop,\r\n _complete: noop,\r\n _isStopped() {\r\n return this._stopped\r\n },\r\n inProgress() {\r\n return !(this._stopped || this._finished)\r\n }\r\n});\r\nexport default Animator;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/scroll_view/m_scrollable.simulated.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n locate,\r\n move,\r\n resetPosition\r\n} from \"../../../animation/translator\";\r\nimport Class from \"../../../core/class\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n deferRender,\r\n deferRenderer,\r\n deferUpdate,\r\n deferUpdater,\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 {\r\n titleize\r\n} from \"../../../core/utils/inflector\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../core/utils/position\";\r\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n isDefined\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 addNamespace as addEventNamespace,\r\n isCommandKeyPressed,\r\n isDxMouseWheelEvent,\r\n normalizeKeyName\r\n} from \"../../../events/utils/index\";\r\nimport Animator from \"./m_animator\";\r\nimport Scrollbar from \"./m_scrollbar\";\r\nvar SCROLLABLE_SIMULATED = \"dxSimulatedScrollable\";\r\nvar SCROLLABLE_STRATEGY = \"dxScrollableStrategy\";\r\nvar SCROLLABLE_SIMULATED_CURSOR = \"\".concat(SCROLLABLE_SIMULATED, \"Cursor\");\r\nvar SCROLLABLE_SIMULATED_KEYBOARD = \"\".concat(SCROLLABLE_SIMULATED, \"Keyboard\");\r\nvar SCROLLABLE_SIMULATED_CLASS = \"dx-scrollable-simulated\";\r\nvar SCROLLABLE_SCROLLBARS_ALWAYSVISIBLE = \"dx-scrollable-scrollbars-alwaysvisible\";\r\nvar SCROLLABLE_SCROLLBAR_CLASS = \"dx-scrollable-scrollbar\";\r\nvar VERTICAL = \"vertical\";\r\nvar HORIZONTAL = \"horizontal\";\r\nvar ACCELERATION = .92;\r\nvar OUT_BOUNDS_ACCELERATION = .5;\r\nvar MIN_VELOCITY_LIMIT = 1;\r\nvar FRAME_DURATION = Math.round(1e3 / 60);\r\nvar SCROLL_LINE_HEIGHT = 40;\r\nvar VALIDATE_WHEEL_TIMEOUT = 500;\r\nvar BOUNCE_MIN_VELOCITY_LIMIT = MIN_VELOCITY_LIMIT / 5;\r\nvar BOUNCE_DURATION = 400;\r\nvar BOUNCE_FRAMES = BOUNCE_DURATION / FRAME_DURATION;\r\nvar BOUNCE_ACCELERATION_SUM = (1 - ACCELERATION ** BOUNCE_FRAMES) / (1 - ACCELERATION);\r\nvar KEY_CODES = {\r\n PAGE_UP: \"pageUp\",\r\n PAGE_DOWN: \"pageDown\",\r\n END: \"end\",\r\n HOME: \"home\",\r\n LEFT: \"leftArrow\",\r\n UP: \"upArrow\",\r\n RIGHT: \"rightArrow\",\r\n DOWN: \"downArrow\",\r\n TAB: \"tab\"\r\n};\r\nvar InertiaAnimator = Animator.inherit({\r\n ctor(scroller) {\r\n this.callBase();\r\n this.scroller = scroller\r\n },\r\n VELOCITY_LIMIT: MIN_VELOCITY_LIMIT,\r\n _isFinished() {\r\n return Math.abs(this.scroller._velocity) <= this.VELOCITY_LIMIT\r\n },\r\n _step() {\r\n this.scroller._scrollStep(this.scroller._velocity);\r\n this.scroller._velocity *= this._acceleration()\r\n },\r\n _acceleration() {\r\n return this.scroller._inBounds() ? ACCELERATION : OUT_BOUNDS_ACCELERATION\r\n },\r\n _complete() {\r\n this.scroller._scrollComplete()\r\n }\r\n});\r\nvar BounceAnimator = InertiaAnimator.inherit({\r\n VELOCITY_LIMIT: BOUNCE_MIN_VELOCITY_LIMIT,\r\n _isFinished() {\r\n return this.scroller._crossBoundOnNextStep() || this.callBase()\r\n },\r\n _acceleration: () => ACCELERATION,\r\n _complete() {\r\n this.scroller._move(this.scroller._bounceLocation);\r\n this.callBase()\r\n }\r\n});\r\nexport var Scroller = Class.inherit({\r\n ctor(options) {\r\n this._initOptions(options);\r\n this._initAnimators();\r\n this._initScrollbar()\r\n },\r\n _initOptions(options) {\r\n this._location = 0;\r\n this._topReached = false;\r\n this._bottomReached = false;\r\n this._axis = options.direction === HORIZONTAL ? \"x\" : \"y\";\r\n this._prop = options.direction === HORIZONTAL ? \"left\" : \"top\";\r\n this._dimension = options.direction === HORIZONTAL ? \"width\" : \"height\";\r\n this._scrollProp = options.direction === HORIZONTAL ? \"scrollLeft\" : \"scrollTop\";\r\n each(options, (optionName, optionValue) => {\r\n this[\"_\".concat(optionName)] = optionValue\r\n })\r\n },\r\n _initAnimators() {\r\n this._inertiaAnimator = new InertiaAnimator(this);\r\n this._bounceAnimator = new BounceAnimator(this)\r\n },\r\n _initScrollbar() {\r\n this._scrollbar = new Scrollbar($(\"<div>\").appendTo(this._$container), {\r\n direction: this._direction,\r\n visible: this._scrollByThumb,\r\n visibilityMode: this._visibilityModeNormalize(this._scrollbarVisible),\r\n expandable: this._scrollByThumb\r\n });\r\n this._$scrollbar = this._scrollbar.$element()\r\n },\r\n _visibilityModeNormalize: mode => true === mode ? \"onScroll\" : false === mode ? \"never\" : mode,\r\n _scrollStep(delta) {\r\n var prevLocation = this._location;\r\n this._location += delta;\r\n this._suppressBounce();\r\n this._move();\r\n if (Math.abs(prevLocation - this._location) < 1) {\r\n return\r\n }\r\n eventsEngine.triggerHandler(this._$container, {\r\n type: \"scroll\"\r\n })\r\n },\r\n _suppressBounce() {\r\n if (this._bounceEnabled || this._inBounds(this._location)) {\r\n return\r\n }\r\n this._velocity = 0;\r\n this._location = this._boundLocation()\r\n },\r\n _boundLocation(location) {\r\n location = void 0 !== location ? location : this._location;\r\n return Math.max(Math.min(location, this._maxOffset), this._minOffset)\r\n },\r\n _move(location) {\r\n this._location = void 0 !== location ? location * this._getScaleRatio() : this._location;\r\n this._moveContent();\r\n this._moveScrollbar()\r\n },\r\n _moveContent() {\r\n var location = this._location;\r\n this._$container[this._scrollProp](-location / this._getScaleRatio());\r\n this._moveContentByTranslator(location)\r\n },\r\n _getScaleRatio() {\r\n if (hasWindow() && !this._scaleRatio) {\r\n var element = this._$element.get(0);\r\n var realDimension = this._getRealDimension(element, this._dimension);\r\n var baseDimension = this._getBaseDimension(element, this._dimension);\r\n this._scaleRatio = Math.round(realDimension / baseDimension * 100) / 100\r\n }\r\n return this._scaleRatio || 1\r\n },\r\n _getRealDimension: (element, dimension) => Math.round(getBoundingRect(element)[dimension]),\r\n _getBaseDimension(element, dimension) {\r\n var dimensionName = \"offset\".concat(titleize(dimension));\r\n return element[dimensionName]\r\n },\r\n _moveContentByTranslator(location) {\r\n var translateOffset;\r\n var minOffset = -this._maxScrollPropValue;\r\n if (location > 0) {\r\n translateOffset = location\r\n }\r\n if (location <= minOffset) {\r\n translateOffset = location - minOffset\r\n }\r\n if (this._translateOffset === translateOffset) {\r\n return\r\n }\r\n var targetLocation = {};\r\n targetLocation[this._prop] = translateOffset;\r\n this._translateOffset = translateOffset;\r\n if (!translateOffset) {\r\n resetPosition(this._$content);\r\n return\r\n }\r\n move(this._$content, targetLocation)\r\n },\r\n _moveScrollbar() {\r\n this._scrollbar.moveTo(this._location)\r\n },\r\n _scrollComplete() {\r\n if (this._inBounds()) {\r\n this._hideScrollbar();\r\n if (this._completeDeferred) {\r\n this._completeDeferred.resolve()\r\n }\r\n }\r\n this._scrollToBounds()\r\n },\r\n _scrollToBounds() {\r\n if (this._inBounds()) {\r\n return\r\n }\r\n this._bounceAction();\r\n this._setupBounce();\r\n this._bounceAnimator.start()\r\n },\r\n _setupBounce() {\r\n var boundLocation = this._bounceLocation = this._boundLocation();\r\n var bounceDistance = boundLocation - this._location;\r\n this._velocity = bounceDistance / BOUNCE_ACCELERATION_SUM\r\n },\r\n _inBounds(location) {\r\n location = void 0 !== location ? location : this._location;\r\n return this._boundLocation(location) === location\r\n },\r\n _crossBoundOnNextStep() {\r\n var location = this._location;\r\n var nextLocation = location + this._velocity;\r\n return location < this._minOffset && nextLocation >= this._minOffset || location > this._maxOffset && nextLocation <= this._maxOffset\r\n },\r\n _initHandler(e) {\r\n this._stopScrolling();\r\n this._prepareThumbScrolling(e)\r\n },\r\n _stopScrolling: deferRenderer((function() {\r\n this._hideScrollbar();\r\n this._inertiaAnimator.stop();\r\n this._bounceAnimator.stop()\r\n })),\r\n _prepareThumbScrolling(e) {\r\n if (isDxMouseWheelEvent(e.originalEvent)) {\r\n return\r\n }\r\n var $target = $(e.originalEvent.target);\r\n var scrollbarClicked = this._isScrollbar($target);\r\n if (scrollbarClicked) {\r\n this._moveToMouseLocation(e)\r\n }\r\n this._thumbScrolling = scrollbarClicked || this._isThumb($target);\r\n this._crossThumbScrolling = !this._thumbScrolling && this._isAnyThumbScrolling($target);\r\n if (this._thumbScrolling) {\r\n this._scrollbar.feedbackOn()\r\n }\r\n },\r\n _isThumbScrollingHandler($target) {\r\n return this._isThumb($target)\r\n },\r\n _moveToMouseLocation(e) {\r\n var mouseLocation = e[\"page\".concat(this._axis.toUpperCase())] - this._$element.offset()[this._prop];\r\n var location = this._location + mouseLocation / this._containerToContentRatio() - getHeight(this._$container) / 2;\r\n this._scrollStep(-Math.round(location))\r\n },\r\n _startHandler() {\r\n this._showScrollbar()\r\n },\r\n _moveHandler(delta) {\r\n if (this._crossThumbScrolling) {\r\n return\r\n }\r\n if (this._thumbScrolling) {\r\n delta[this._axis] = -Math.round(delta[this._axis] / this._containerToContentRatio())\r\n }\r\n this._scrollBy(delta)\r\n },\r\n _scrollBy(delta) {\r\n delta = delta[this._axis];\r\n if (!this._inBounds()) {\r\n delta *= OUT_BOUNDS_ACCELERATION\r\n }\r\n this._scrollStep(delta)\r\n },\r\n _scrollByHandler(delta) {\r\n this._scrollBy(delta);\r\n this._scrollComplete()\r\n },\r\n _containerToContentRatio() {\r\n return this._scrollbar.containerToContentRatio()\r\n },\r\n _endHandler(velocity) {\r\n this._completeDeferred = Deferred();\r\n this._velocity = velocity[this._axis];\r\n this._inertiaHandler();\r\n this._resetThumbScrolling();\r\n return this._completeDeferred.promise()\r\n },\r\n _inertiaHandler() {\r\n this._suppressInertia();\r\n this._inertiaAnimator.start()\r\n },\r\n _suppressInertia() {\r\n if (!this._inertiaEnabled || this._thumbScrolling) {\r\n this._velocity = 0\r\n }\r\n },\r\n _resetThumbScrolling() {\r\n this._thumbScrolling = false;\r\n this._crossThumbScrolling = false\r\n },\r\n _stopHandler() {\r\n if (this._thumbScrolling) {\r\n this._scrollComplete()\r\n }\r\n this._resetThumbScrolling();\r\n this._scrollToBounds()\r\n },\r\n _disposeHandler() {\r\n this._stopScrolling();\r\n this._$scrollbar.remove()\r\n },\r\n _updateHandler() {\r\n this._update();\r\n this._moveToBounds()\r\n },\r\n _update() {\r\n this._stopScrolling();\r\n return deferUpdate(() => {\r\n this._resetScaleRatio();\r\n this._updateLocation();\r\n this._updateBounds();\r\n this._updateScrollbar();\r\n deferRender(() => {\r\n this._moveScrollbar();\r\n this._scrollbar.update()\r\n })\r\n })\r\n },\r\n _resetScaleRatio() {\r\n this._scaleRatio = null\r\n },\r\n _updateLocation() {\r\n this._location = (locate(this._$content)[this._prop] - this._$container[this._scrollProp]()) * this._getScaleRatio()\r\n },\r\n _updateBounds() {\r\n this._maxOffset = this._getMaxOffset();\r\n this._minOffset = this._getMinOffset()\r\n },\r\n _getMaxOffset: () => 0,\r\n _getMinOffset() {\r\n this._maxScrollPropValue = Math.max(this._contentSize() - this._containerSize(), 0);\r\n return -this._maxScrollPropValue\r\n },\r\n _updateScrollbar: deferUpdater((function() {\r\n var containerSize = this._containerSize();\r\n var contentSize = this._contentSize();\r\n var baseContainerSize = this._getBaseDimension(this._$container.get(0), this._dimension);\r\n var baseContentSize = this._getBaseDimension(this._$content.get(0), this._dimension);\r\n deferRender(() => {\r\n this._scrollbar.option({\r\n containerSize: containerSize,\r\n contentSize: contentSize,\r\n baseContainerSize: baseContainerSize,\r\n baseContentSize: baseContentSize,\r\n scaleRatio: this._getScaleRatio()\r\n })\r\n })\r\n })),\r\n _moveToBounds: deferRenderer(deferUpdater(deferRenderer((function() {\r\n var location = this._boundLocation();\r\n var locationChanged = location !== this._location;\r\n this._location = location;\r\n this._move();\r\n if (locationChanged) {\r\n this._scrollAction()\r\n }\r\n })))),\r\n _createActionsHandler(actions) {\r\n this._scrollAction = actions.scroll;\r\n this._bounceAction = actions.bounce\r\n },\r\n _showScrollbar() {\r\n this._scrollbar.option(\"visible\", true)\r\n },\r\n _hideScrollbar() {\r\n this._scrollbar.option(\"visible\", false)\r\n },\r\n _containerSize() {\r\n return this._getRealDimension(this._$container.get(0), this._dimension)\r\n },\r\n _contentSize() {\r\n var isOverflowHidden = \"hidden\" === this._$content.css(\"overflow\".concat(this._axis.toUpperCase()));\r\n var contentSize = this._getRealDimension(this._$content.get(0), this._dimension);\r\n if (!isOverflowHidden) {\r\n var containerScrollSize = this._$content[0][\"scroll\".concat(titleize(this._dimension))] * this._getScaleRatio();\r\n contentSize = Math.max(containerScrollSize, contentSize)\r\n }\r\n return contentSize\r\n },\r\n _validateEvent(e) {\r\n var $target = $(e.originalEvent.target);\r\n return this._isThumb($target) || this._isScrollbar($target)\r\n },\r\n _isThumb($element) {\r\n return this._scrollByThumb && this._scrollbar.isThumb($element)\r\n },\r\n _isScrollbar($element) {\r\n return this._scrollByThumb && $element && $element.is(this._$scrollbar)\r\n },\r\n _reachedMin() {\r\n return Math.round(this._location - this._minOffset) <= 0\r\n },\r\n _reachedMax() {\r\n return Math.round(this._location - this._maxOffset) >= 0\r\n },\r\n _cursorEnterHandler() {\r\n this._resetScaleRatio();\r\n this._updateScrollbar();\r\n this._scrollbar.cursorEnter()\r\n },\r\n _cursorLeaveHandler() {\r\n this._scrollbar.cursorLeave()\r\n },\r\n dispose: noop\r\n});\r\nvar hoveredScrollable;\r\nvar activeScrollable;\r\nexport var SimulatedStrategy = Class.inherit({\r\n ctor(scrollable) {\r\n this._init(scrollable)\r\n },\r\n _init(scrollable) {\r\n this._component = scrollable;\r\n this._$element = scrollable.$element();\r\n this._$container = $(scrollable.container());\r\n this._$wrapper = scrollable._$wrapper;\r\n this._$content = scrollable.$content();\r\n this.option = scrollable.option.bind(scrollable);\r\n this._createActionByOption = scrollable._createActionByOption.bind(scrollable);\r\n this._isLocked = scrollable._isLocked.bind(scrollable);\r\n this._isDirection = scrollable._isDirection.bind(scrollable);\r\n this._allowedDirection = scrollable._allowedDirection.bind(scrollable);\r\n this._getMaxOffset = scrollable._getMaxOffset.bind(scrollable)\r\n },\r\n render() {\r\n this._$element.addClass(SCROLLABLE_SIMULATED_CLASS);\r\n this._createScrollers();\r\n if (this.option(\"useKeyboard\")) {\r\n this._$container.prop(\"tabIndex\", 0)\r\n }\r\n this._attachKeyboardHandler();\r\n this._attachCursorHandlers()\r\n },\r\n _createScrollers() {\r\n this._scrollers = {};\r\n if (this._isDirection(HORIZONTAL)) {\r\n this._createScroller(HORIZONTAL)\r\n }\r\n if (this._isDirection(VERTICAL)) {\r\n this._createScroller(VERTICAL)\r\n }\r\n this._$element.toggleClass(SCROLLABLE_SCROLLBARS_ALWAYSVISIBLE, \"always\" === this.option(\"showScrollbar\"))\r\n },\r\n _createScroller(direction) {\r\n this._scrollers[direction] = new Scroller(this._scrollerOptions(direction))\r\n },\r\n _scrollerOptions(direction) {\r\n return {\r\n direction: direction,\r\n $content: this._$content,\r\n $container: this._$container,\r\n $wrapper: this._$wrapper,\r\n $element: this._$element,\r\n scrollByThumb: this.option(\"scrollByThumb\"),\r\n scrollbarVisible: this.option(\"showScrollbar\"),\r\n bounceEnabled: this.option(\"bounceEnabled\"),\r\n inertiaEnabled: this.option(\"inertiaEnabled\"),\r\n isAnyThumbScrolling: this._isAnyThumbScrolling.bind(this)\r\n }\r\n },\r\n _applyScaleRatio(targetLocation) {\r\n for (var direction in this._scrollers) {\r\n var prop = this._getPropByDirection(direction);\r\n if (isDefined(targetLocation[prop])) {\r\n var scroller = this._scrollers[direction];\r\n targetLocation[prop] *= scroller._getScaleRatio()\r\n }\r\n }\r\n return targetLocation\r\n },\r\n _isAnyThumbScrolling($target) {\r\n var result = false;\r\n this._eventHandler(\"isThumbScrolling\", $target).done((isThumbScrollingVertical, isThumbScrollingHorizontal) => {\r\n result = isThumbScrollingVertical || isThumbScrollingHorizontal\r\n });\r\n return result\r\n },\r\n handleInit(e) {\r\n this._suppressDirections(e);\r\n this._eventForUserAction = e;\r\n this._eventHandler(\"init\", e)\r\n },\r\n _suppressDirections(e) {\r\n if (isDxMouseWheelEvent(e.originalEvent)) {\r\n this._prepareDirections(true);\r\n return\r\n }\r\n this._prepareDirections();\r\n this._eachScroller((function(scroller, direction) {\r\n var $target = $(e.originalEvent.target);\r\n var isValid = scroller._validateEvent(e) || this.option(\"scrollByContent\") && this._isContent($target);\r\n this._validDirections[direction] = isValid\r\n }))\r\n },\r\n _isContent($element) {\r\n return !!$element.closest(this._$element).length\r\n },\r\n _prepareDirections(value) {\r\n value = value || false;\r\n this._validDirections = {};\r\n this._validDirections[HORIZONTAL] = value;\r\n this._validDirections[VERTICAL] = value\r\n },\r\n _eachScroller(callback) {\r\n callback = callback.bind(this);\r\n each(this._scrollers, (direction, scroller) => {\r\n callback(scroller, direction)\r\n })\r\n },\r\n handleStart(e) {\r\n this._eventForUserAction = e;\r\n this._eventHandler(\"start\").done(this._startAction)\r\n },\r\n _saveActive() {\r\n activeScrollable = this\r\n },\r\n _resetActive() {\r\n if (activeScrollable === this) {\r\n activeScrollable = null\r\n }\r\n },\r\n handleMove(e) {\r\n if (this._isLocked()) {\r\n e.cancel = true;\r\n this._resetActive();\r\n return\r\n }\r\n this._saveActive();\r\n e.preventDefault && e.preventDefault();\r\n this._adjustDistance(e, e.delta);\r\n this._eventForUserAction = e;\r\n this._eventHandler(\"move\", e.delta)\r\n },\r\n _adjustDistance(e, distance) {\r\n distance.x *= this._validDirections[HORIZONTAL];\r\n distance.y *= this._validDirections[VERTICAL];\r\n var devicePixelRatio = this._tryGetDevicePixelRatio();\r\n if (devicePixelRatio && isDxMouseWheelEvent(e.originalEvent)) {\r\n distance.x = Math.round(distance.x / devicePixelRatio * 100) / 100;\r\n distance.y = Math.round(distance.y / devicePixelRatio * 100) / 100\r\n }\r\n },\r\n _tryGetDevicePixelRatio() {\r\n if (hasWindow()) {\r\n return getWindow().devicePixelRatio\r\n }\r\n },\r\n handleEnd(e) {\r\n this._resetActive();\r\n this._refreshCursorState(e.originalEvent && e.originalEvent.target);\r\n this._adjustDistance(e, e.velocity);\r\n this._eventForUserAction = e;\r\n return this._eventHandler(\"end\", e.velocity).done(this._endAction)\r\n },\r\n handleCancel(e) {\r\n this._resetActive();\r\n this._eventForUserAction = e;\r\n return this._eventHandler(\"end\", {\r\n x: 0,\r\n y: 0\r\n })\r\n },\r\n handleStop() {\r\n this._resetActive();\r\n this._eventHandler(\"stop\")\r\n },\r\n handleScroll() {\r\n this._updateRtlConfig();\r\n this._scrollAction()\r\n },\r\n _attachKeyboardHandler() {\r\n eventsEngine.off(this._$element, \".\".concat(SCROLLABLE_SIMULATED_KEYBOARD));\r\n if (!this.option(\"disabled\") && this.option(\"useKeyboard\")) {\r\n eventsEngine.on(this._$element, addEventNamespace(\"keydown\", SCROLLABLE_SIMULATED_KEYBOARD), this._keyDownHandler.bind(this))\r\n }\r\n },\r\n _keyDownHandler(e) {\r\n clearTimeout(this._updateHandlerTimeout);\r\n this._updateHandlerTimeout = setTimeout(() => {\r\n if (normalizeKeyName(e) === KEY_CODES.TAB) {\r\n this._eachScroller(scroller => {\r\n scroller._updateHandler()\r\n })\r\n }\r\n });\r\n if (!this._$container.is(domAdapter.getActiveElement(this._$container.get(0)))) {\r\n return\r\n }\r\n var handled = true;\r\n switch (normalizeKeyName(e)) {\r\n case KEY_CODES.DOWN:\r\n this._scrollByLine({\r\n y: 1\r\n });\r\n break;\r\n case KEY_CODES.UP:\r\n this._scrollByLine({\r\n y: -1\r\n });\r\n break;\r\n case KEY_CODES.RIGHT:\r\n this._scrollByLine({\r\n x: 1\r\n });\r\n break;\r\n case KEY_CODES.LEFT:\r\n this._scrollByLine({\r\n x: -1\r\n });\r\n break;\r\n case KEY_CODES.PAGE_DOWN:\r\n this._scrollByPage(1);\r\n break;\r\n case KEY_CODES.PAGE_UP:\r\n this._scrollByPage(-1);\r\n break;\r\n case KEY_CODES.HOME:\r\n this._scrollToHome();\r\n break;\r\n case KEY_CODES.END:\r\n this._scrollToEnd();\r\n break;\r\n default:\r\n handled = false\r\n }\r\n if (handled) {\r\n e.stopPropagation();\r\n e.preventDefault()\r\n }\r\n },\r\n _scrollByLine(lines) {\r\n var devicePixelRatio = this._tryGetDevicePixelRatio();\r\n var scrollOffset = SCROLL_LINE_HEIGHT;\r\n if (devicePixelRatio) {\r\n scrollOffset = Math.abs(scrollOffset / devicePixelRatio * 100) / 100\r\n }\r\n this.scrollBy({\r\n top: (lines.y || 0) * -scrollOffset,\r\n left: (lines.x || 0) * -scrollOffset\r\n })\r\n },\r\n _scrollByPage(page) {\r\n var prop = this._wheelProp();\r\n var dimension = this._dimensionByProp(prop);\r\n var distance = {};\r\n var getter = \"width\" === dimension ? getWidth : getHeight;\r\n distance[prop] = page * -getter(this._$container);\r\n this.scrollBy(distance)\r\n },\r\n _dimensionByProp: prop => \"left\" === prop ? \"width\" : \"height\",\r\n _getPropByDirection: direction => direction === HORIZONTAL ? \"left\" : \"top\",\r\n _scrollToHome() {\r\n var prop = this._wheelProp();\r\n var distance = {};\r\n distance[prop] = 0;\r\n this._component.scrollTo(distance)\r\n },\r\n _scrollToEnd() {\r\n var prop = this._wheelProp();\r\n var dimension = this._dimensionByProp(prop);\r\n var distance = {};\r\n var getter = \"width\" === dimension ? getWidth : getHeight;\r\n distance[prop] = getter(this._$content) - getter(this._$container);\r\n this._component.scrollTo(distance)\r\n },\r\n createActions() {\r\n this._startAction = this._createActionHandler(\"onStart\");\r\n this._endAction = this._createActionHandler(\"onEnd\");\r\n this._updateAction = this._createActionHandler(\"onUpdated\");\r\n this._createScrollerActions()\r\n },\r\n _createScrollerActions() {\r\n this._scrollAction = this._createActionHandler(\"onScroll\");\r\n this._bounceAction = this._createActionHandler(\"onBounce\");\r\n this._eventHandler(\"createActions\", {\r\n scroll: this._scrollAction,\r\n bounce: this._bounceAction\r\n })\r\n },\r\n _createActionHandler(optionName) {\r\n var actionHandler = this._createActionByOption(optionName);\r\n return () => {\r\n actionHandler(extend(this._createActionArgs(), arguments))\r\n }\r\n },\r\n _createActionArgs() {\r\n var {\r\n horizontal: scrollerX,\r\n vertical: scrollerY\r\n } = this._scrollers;\r\n var offset = this._getScrollOffset();\r\n this._scrollOffset = {\r\n top: scrollerY && offset.top,\r\n left: scrollerX && offset.left\r\n };\r\n return {\r\n event: this._eventForUserAction,\r\n scrollOffset: this._scrollOffset,\r\n reachedLeft: scrollerX && scrollerX._reachedMax(),\r\n reachedRight: scrollerX && scrollerX._reachedMin(),\r\n reachedTop: scrollerY && scrollerY._reachedMax(),\r\n reachedBottom: scrollerY && scrollerY._reachedMin()\r\n }\r\n },\r\n _getScrollOffset() {\r\n return {\r\n top: -this.location().top,\r\n left: -this.location().left\r\n }\r\n },\r\n _eventHandler(eventName) {\r\n var args = [].slice.call(arguments).slice(1);\r\n var deferreds = map(this._scrollers, scroller => scroller[\"_\".concat(eventName, \"Handler\")].apply(scroller, args));\r\n return when.apply($, deferreds).promise()\r\n },\r\n location() {\r\n var location = locate(this._$content);\r\n location.top -= this._$container.scrollTop();\r\n location.left -= this._$container.scrollLeft();\r\n return location\r\n },\r\n disabledChanged() {\r\n this._attachCursorHandlers()\r\n },\r\n _attachCursorHandlers() {\r\n eventsEngine.off(this._$element, \".\".concat(SCROLLABLE_SIMULATED_CURSOR));\r\n if (!this.option(\"disabled\") && this._isHoverMode()) {\r\n eventsEngine.on(this._$element, addEventNamespace(\"mouseenter\", SCROLLABLE_SIMULATED_CURSOR), this._cursorEnterHandler.bind(this));\r\n eventsEngine.on(this._$element, addEventNamespace(\"mouseleave\", SCROLLABLE_SIMULATED_CURSOR), this._cursorLeaveHandler.bind(this))\r\n }\r\n },\r\n _isHoverMode() {\r\n return \"onHover\" === this.option(\"showScrollbar\")\r\n },\r\n _cursorEnterHandler(e) {\r\n e = e || {};\r\n e.originalEvent = e.originalEvent || {};\r\n if (activeScrollable || e.originalEvent._hoverHandled) {\r\n return\r\n }\r\n if (hoveredScrollable) {\r\n hoveredScrollable._cursorLeaveHandler()\r\n }\r\n hoveredScrollable = this;\r\n this._eventHandler(\"cursorEnter\");\r\n e.originalEvent._hoverHandled = true\r\n },\r\n _cursorLeaveHandler(e) {\r\n if (hoveredScrollable !== this || activeScrollable === hoveredScrollable) {\r\n return\r\n }\r\n this._eventHandler(\"cursorLeave\");\r\n hoveredScrollable = null;\r\n this._refreshCursorState(e && e.relatedTarget)\r\n },\r\n _refreshCursorState(target) {\r\n if (!this._isHoverMode() && (!target || activeScrollable)) {\r\n return\r\n }\r\n var $target = $(target);\r\n var $scrollable = $target.closest(\".\".concat(SCROLLABLE_SIMULATED_CLASS, \":not(.dx-state-disabled)\"));\r\n var targetScrollable = $scrollable.length && $scrollable.data(SCROLLABLE_STRATEGY);\r\n if (hoveredScrollable && hoveredScrollable !== targetScrollable) {\r\n hoveredScrollable._cursorLeaveHandler()\r\n }\r\n if (targetScrollable) {\r\n targetScrollable._cursorEnterHandler()\r\n }\r\n },\r\n update() {\r\n var result = this._eventHandler(\"update\").done(this._updateAction);\r\n return when(result, deferUpdate(() => {\r\n var allowedDirections = this._allowedDirections();\r\n deferRender(() => {\r\n var touchDirection = allowedDirections.vertical ? \"pan-x\" : \"\";\r\n touchDirection = allowedDirections.horizontal ? \"pan-y\" : touchDirection;\r\n touchDirection = allowedDirections.vertical && allowedDirections.horizontal ? \"none\" : touchDirection;\r\n this._$container.css(\"touchAction\", touchDirection)\r\n });\r\n return when().promise()\r\n }))\r\n },\r\n _allowedDirections() {\r\n var bounceEnabled = this.option(\"bounceEnabled\");\r\n var verticalScroller = this._scrollers[VERTICAL];\r\n var horizontalScroller = this._scrollers[HORIZONTAL];\r\n return {\r\n vertical: verticalScroller && (verticalScroller._minOffset < 0 || bounceEnabled),\r\n horizontal: horizontalScroller && (horizontalScroller._minOffset < 0 || bounceEnabled)\r\n }\r\n },\r\n _updateBounds() {\r\n this._scrollers[HORIZONTAL] && this._scrollers[HORIZONTAL]._updateBounds()\r\n },\r\n _isHorizontalAndRtlEnabled() {\r\n return this.option(\"rtlEnabled\") && this.option(\"direction\") !== VERTICAL\r\n },\r\n updateRtlPosition(needInitializeRtlConfig) {\r\n if (needInitializeRtlConfig) {\r\n this._rtlConfig = {\r\n scrollRight: 0,\r\n clientWidth: this._$container.get(0).clientWidth,\r\n windowPixelRatio: this._getWindowDevicePixelRatio()\r\n }\r\n }\r\n this._updateBounds();\r\n if (this._isHorizontalAndRtlEnabled()) {\r\n var scrollLeft = this._getMaxOffset().left - this._rtlConfig.scrollRight;\r\n if (scrollLeft <= 0) {\r\n scrollLeft = 0;\r\n this._rtlConfig.scrollRight = this._getMaxOffset().left\r\n }\r\n if (this._getScrollOffset().left !== scrollLeft) {\r\n this._rtlConfig.skipUpdating = true;\r\n this._component.scrollTo({\r\n left: scrollLeft\r\n });\r\n this._rtlConfig.skipUpdating = false\r\n }\r\n }\r\n },\r\n _updateRtlConfig() {\r\n if (this._isHorizontalAndRtlEnabled() && !this._rtlConfig.skipUpdating) {\r\n var {\r\n clientWidth: clientWidth,\r\n scrollLeft: scrollLeft\r\n } = this._$container.get(0);\r\n var windowPixelRatio = this._getWindowDevicePixelRatio();\r\n if (this._rtlConfig.windowPixelRatio === windowPixelRatio && this._rtlConfig.clientWidth === clientWidth) {\r\n this._rtlConfig.scrollRight = this._getMaxOffset().left - scrollLeft\r\n }\r\n this._rtlConfig.clientWidth = clientWidth;\r\n this._rtlConfig.windowPixelRatio = windowPixelRatio\r\n }\r\n },\r\n _getWindowDevicePixelRatio: () => hasWindow() ? getWindow().devicePixelRatio : 1,\r\n scrollBy(distance) {\r\n var verticalScroller = this._scrollers[VERTICAL];\r\n var horizontalScroller = this._scrollers[HORIZONTAL];\r\n if (verticalScroller) {\r\n distance.top = verticalScroller._boundLocation(distance.top + verticalScroller._location) - verticalScroller._location\r\n }\r\n if (horizontalScroller) {\r\n distance.left = horizontalScroller._boundLocation(distance.left + horizontalScroller._location) - horizontalScroller._location\r\n }\r\n this._prepareDirections(true);\r\n this._startAction();\r\n this._eventHandler(\"scrollBy\", {\r\n x: distance.left,\r\n y: distance.top\r\n });\r\n this._endAction();\r\n this._updateRtlConfig()\r\n },\r\n validate(e) {\r\n if (isDxMouseWheelEvent(e) && isCommandKeyPressed(e)) {\r\n return false\r\n }\r\n if (this.option(\"disabled\")) {\r\n return false\r\n }\r\n if (this.option(\"bounceEnabled\")) {\r\n return true\r\n }\r\n return isDxMouseWheelEvent(e) ? this._validateWheel(e) : this._validateMove(e)\r\n },\r\n _validateWheel(e) {\r\n var scroller = this._scrollers[this._wheelDirection(e)];\r\n var reachedMin = scroller._reachedMin();\r\n var reachedMax = scroller._reachedMax();\r\n var contentGreaterThanContainer = !reachedMin || !reachedMax;\r\n var locatedNotAtBound = !reachedMin && !reachedMax;\r\n var scrollFromMin = reachedMin && e.delta > 0;\r\n var scrollFromMax = reachedMax && e.delta < 0;\r\n var validated = contentGreaterThanContainer && (locatedNotAtBound || scrollFromMin || scrollFromMax);\r\n validated = validated || void 0 !== this._validateWheelTimer;\r\n if (validated) {\r\n clearTimeout(this._validateWheelTimer);\r\n this._validateWheelTimer = setTimeout(() => {\r\n this._validateWheelTimer = void 0\r\n }, VALIDATE_WHEEL_TIMEOUT)\r\n }\r\n return validated\r\n },\r\n _validateMove(e) {\r\n if (!this.option(\"scrollByContent\") && !$(e.target).closest(\".\".concat(SCROLLABLE_SCROLLBAR_CLASS)).length) {\r\n return false\r\n }\r\n return this._allowedDirection()\r\n },\r\n getDirection(e) {\r\n return isDxMouseWheelEvent(e) ? this._wheelDirection(e) : this._allowedDirection()\r\n },\r\n _wheelProp() {\r\n return this._wheelDirection() === HORIZONTAL ? \"left\" : \"top\"\r\n },\r\n _wheelDirection(e) {\r\n switch (this.option(\"direction\")) {\r\n case HORIZONTAL:\r\n return HORIZONTAL;\r\n case VERTICAL:\r\n return VERTICAL;\r\n default:\r\n return e && e.shiftKey ? HORIZONTAL : VERTICAL\r\n }\r\n },\r\n dispose() {\r\n this._resetActive();\r\n if (hoveredScrollable === this) {\r\n hoveredScrollable = null\r\n }\r\n this._eventHandler(\"dispose\");\r\n this._detachEventHandlers();\r\n this._$element.removeClass(SCROLLABLE_SIMULATED_CLASS);\r\n this._eventForUserAction = null;\r\n clearTimeout(this._validateWheelTimer);\r\n clearTimeout(this._updateHandlerTimeout)\r\n },\r\n _detachEventHandlers() {\r\n eventsEngine.off(this._$element, \".\".concat(SCROLLABLE_SIMULATED_CURSOR));\r\n eventsEngine.off(this._$container, \".\".concat(SCROLLABLE_SIMULATED_KEYBOARD))\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/ui/scroll_view/m_scroll_view.simulated.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport Callbacks from \"../../../core/utils/callbacks\";\r\nimport {\r\n executeAsync\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 getHeight\r\n} from \"../../../core/utils/size\";\r\nimport LoadIndicator from \"../../../ui/load_indicator\";\r\nimport {\r\n Scroller,\r\n SimulatedStrategy\r\n} from \"./m_scrollable.simulated\";\r\nvar math = Math;\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() {\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() {\r\n this._state = STATE_RELEASED;\r\n this._refreshPullDownText()\r\n },\r\n _refreshPullDownText() {\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, (_, 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() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n _updateBounds() {\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() {\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() {\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() {\r\n this._scrollbar.moveTo(this._topPocketSize + this._location)\r\n },\r\n _isPullDown() {\r\n return this._pullDownEnabled && this._location >= 0\r\n },\r\n _isReachBottom() {\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() {\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() {\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() {\r\n return -this._topPocketSize\r\n },\r\n _getMinOffset() {\r\n return math.min(this.callBase(), -this._topPocketSize)\r\n },\r\n _reachBottomLoading() {\r\n this.reachBottomCallbacks.fire()\r\n },\r\n _pullDownReady() {\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() {\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() {\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() {\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() {\r\n this._stateReleased();\r\n this._scrollComplete()\r\n },\r\n _reachBottomEnablingHandler(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(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() {\r\n this._location -= getHeight(this._$topPocket) || -this._topPocketSize;\r\n this._maxOffset = 0;\r\n this._move()\r\n },\r\n _pendingReleaseHandler() {\r\n this._state = STATE_READY\r\n },\r\n dispose() {\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(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() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n render() {\r\n this._renderPullDown();\r\n this.callBase()\r\n },\r\n _renderPullDown() {\r\n var $image = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_IMAGE_CLASS);\r\n var $loadContainer = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"<div>\")).$element();\r\n var $text = this._$pullDownText = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_TEXT_CLASS);\r\n this._$pullingDownText = $(\"<div>\").text(this.option(\"pullingDownText\")).appendTo($text);\r\n this._$pulledDownText = $(\"<div>\").text(this.option(\"pulledDownText\")).appendTo($text);\r\n this._$refreshingText = $(\"<div>\").text(this.option(\"refreshingText\")).appendTo($text);\r\n this._$pullDown.empty().append($image).append($loadContainer.append($loadIndicator)).append($text)\r\n },\r\n pullDownEnable(enabled) {\r\n this._eventHandler(\"pullDownEnabling\", enabled)\r\n },\r\n reachBottomEnable(enabled) {\r\n this._eventHandler(\"reachBottomEnabling\", enabled)\r\n },\r\n _createScroller(direction) {\r\n var that = this;\r\n var scroller = that._scrollers[direction] = new ScrollViewScroller(that._scrollerOptions(direction));\r\n scroller.pullDownCallbacks.add(() => {\r\n that.pullDownCallbacks.fire()\r\n });\r\n scroller.releaseCallbacks.add(() => {\r\n that.releaseCallbacks.fire()\r\n });\r\n scroller.reachBottomCallbacks.add(() => {\r\n that.reachBottomCallbacks.fire()\r\n })\r\n },\r\n _scrollerOptions(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() {\r\n this._eventHandler(\"pendingRelease\")\r\n },\r\n release() {\r\n return this._eventHandler(\"release\").done(this._updateAction)\r\n },\r\n location() {\r\n var location = this.callBase();\r\n location.top += getHeight(this._$topPocket);\r\n return location\r\n },\r\n dispose() {\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/renovation/ui/scroll_view/common/consts.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var SCROLL_LINE_HEIGHT = 40;\r\nexport var DIRECTION_VERTICAL = \"vertical\";\r\nexport var DIRECTION_HORIZONTAL = \"horizontal\";\r\nexport var DIRECTION_BOTH = \"both\";\r\nexport var SCROLLABLE_SIMULATED_CLASS = \"dx-scrollable-simulated\";\r\nexport var SCROLLABLE_CONTENT_CLASS = \"dx-scrollable-content\";\r\nexport var SCROLLABLE_WRAPPER_CLASS = \"dx-scrollable-wrapper\";\r\nexport var SCROLLABLE_CONTAINER_CLASS = \"dx-scrollable-container\";\r\nexport var SCROLLABLE_DISABLED_CLASS = \"dx-scrollable-disabled\";\r\nexport var SCROLLABLE_SCROLLBAR_SIMULATED = \"dx-scrollable-scrollbar-simulated\";\r\nexport var SCROLLABLE_SCROLLBARS_HIDDEN = \"dx-scrollable-scrollbars-hidden\";\r\nexport var SCROLLABLE_SCROLLBARS_ALWAYSVISIBLE = \"dx-scrollable-scrollbars-alwaysvisible\";\r\nexport var SCROLLABLE_SCROLLBAR_CLASS = \"dx-scrollable-scrollbar\";\r\nexport var SCROLLABLE_SCROLLBAR_ACTIVE_CLASS = \"dx-scrollable-scrollbar-active\";\r\nexport var SCROLLABLE_SCROLL_CLASS = \"dx-scrollable-scroll\";\r\nexport var SCROLLABLE_SCROLL_CONTENT_CLASS = \"dx-scrollable-scroll-content\";\r\nexport var HOVER_ENABLED_STATE = \"dx-scrollbar-hoverable\";\r\nexport var SCROLLVIEW_CONTENT_CLASS = \"dx-scrollview-content\";\r\nexport var SCROLLVIEW_TOP_POCKET_CLASS = \"dx-scrollview-top-pocket\";\r\nexport var SCROLLVIEW_PULLDOWN = \"dx-scrollview-pull-down\";\r\nexport var SCROLLVIEW_PULLDOWN_LOADING_CLASS = \"dx-scrollview-pull-down-loading\";\r\nexport var SCROLLVIEW_PULLDOWN_READY_CLASS = \"dx-scrollview-pull-down-ready\";\r\nexport var SCROLLVIEW_PULLDOWN_IMAGE_CLASS = \"dx-scrollview-pull-down-image\";\r\nexport var SCROLLVIEW_PULLDOWN_INDICATOR_CLASS = \"dx-scrollview-pull-down-indicator\";\r\nexport var SCROLLVIEW_PULLDOWN_TEXT_CLASS = \"dx-scrollview-pull-down-text\";\r\nexport var SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS = \"dx-scrollview-pull-down-text-visible\";\r\nexport var PULLDOWN_ICON_CLASS = \"dx-icon-pulldown\";\r\nexport var SCROLLVIEW_BOTTOM_POCKET_CLASS = \"dx-scrollview-bottom-pocket\";\r\nexport var SCROLLVIEW_REACHBOTTOM_CLASS = \"dx-scrollview-scrollbottom\";\r\nexport var SCROLLVIEW_REACHBOTTOM_INDICATOR_CLASS = \"dx-scrollview-scrollbottom-indicator\";\r\nexport var SCROLLVIEW_REACHBOTTOM_TEXT_CLASS = \"dx-scrollview-scrollbottom-text\";\r\nexport var TopPocketState = {\r\n STATE_RELEASED: 0,\r\n STATE_READY: 1,\r\n STATE_REFRESHING: 2,\r\n STATE_LOADING: 3,\r\n STATE_TOUCHED: 4,\r\n STATE_PULLED: 5\r\n};\r\nexport var ShowScrollbarMode = {\r\n HOVER: \"onHover\",\r\n ALWAYS: \"always\",\r\n NEVER: \"never\",\r\n SCROLL: \"onScroll\"\r\n};\r\nexport var KEY_CODES = {\r\n PAGE_UP: \"pageUp\",\r\n PAGE_DOWN: \"pageDown\",\r\n END: \"end\",\r\n HOME: \"home\",\r\n LEFT: \"leftArrow\",\r\n UP: \"upArrow\",\r\n RIGHT: \"rightArrow\",\r\n DOWN: \"downArrow\"\r\n};\r\nexport var VALIDATE_WHEEL_TIMEOUT = 500;\r\nexport var HIDE_SCROLLBAR_TIMEOUT = 500;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/scroll_view/m_scrollable.device.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../../core/devices\";\r\nimport {\r\n nativeScrolling,\r\n touch\r\n} from \"../../../core/utils/support\";\r\nexport var deviceDependentOptions = function() {\r\n return [{\r\n device: () => !nativeScrolling,\r\n options: {\r\n useNative: false\r\n }\r\n }, {\r\n device: device => !devices.isSimulator() && \"desktop\" === devices.real().deviceType && \"generic\" === device.platform,\r\n options: {\r\n bounceEnabled: false,\r\n scrollByThumb: true,\r\n scrollByContent: touch,\r\n showScrollbar: \"onHover\"\r\n }\r\n }]\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/ui/scroll_view/m_scrollable.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport devices from \"../../../core/devices\";\r\nimport DOMComponent from \"../../../core/dom_component\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport $ from \"../../../core/renderer\";\r\nimport browser from \"../../../core/utils/browser\";\r\nimport {\r\n ensureDefined,\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n when\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getOuterWidth,\r\n getWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n nativeScrolling\r\n} from \"../../../core/utils/support\";\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport scrollEvents from \"../../../events/gesture/emitter.gesture.scroll\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nimport {\r\n getElementLocationInternal\r\n} from \"../../../renovation/ui/scroll_view/utils/get_element_location_internal\";\r\nimport {\r\n deviceDependentOptions\r\n} from \"./m_scrollable.device\";\r\nimport NativeStrategy from \"./m_scrollable.native\";\r\nimport {\r\n SimulatedStrategy\r\n} from \"./m_scrollable.simulated\";\r\nvar SCROLLABLE = \"dxScrollable\";\r\nvar SCROLLABLE_STRATEGY = \"dxScrollableStrategy\";\r\nvar SCROLLABLE_CLASS = \"dx-scrollable\";\r\nvar SCROLLABLE_DISABLED_CLASS = \"dx-scrollable-disabled\";\r\nvar SCROLLABLE_CONTAINER_CLASS = \"dx-scrollable-container\";\r\nvar SCROLLABLE_WRAPPER_CLASS = \"dx-scrollable-wrapper\";\r\nvar SCROLLABLE_CONTENT_CLASS = \"dx-scrollable-content\";\r\nvar VERTICAL = \"vertical\";\r\nvar HORIZONTAL = \"horizontal\";\r\nvar BOTH = \"both\";\r\nvar Scrollable = DOMComponent.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n disabled: false,\r\n onScroll: null,\r\n direction: VERTICAL,\r\n showScrollbar: \"onScroll\",\r\n useNative: true,\r\n bounceEnabled: true,\r\n scrollByContent: true,\r\n scrollByThumb: false,\r\n onUpdated: null,\r\n onStart: null,\r\n onEnd: null,\r\n onBounce: null,\r\n useSimulatedScrollbar: false,\r\n useKeyboard: true,\r\n inertiaEnabled: true,\r\n updateManually: false,\r\n _onVisibilityChanged: noop\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat(deviceDependentOptions(), [{\r\n device: () => nativeScrolling && \"android\" === devices.real().platform && !browser.mozilla,\r\n options: {\r\n useSimulatedScrollbar: true\r\n }\r\n }])\r\n },\r\n _initOptions(options) {\r\n this.callBase(options);\r\n if (!(\"useSimulatedScrollbar\" in options)) {\r\n this._setUseSimulatedScrollbar()\r\n }\r\n },\r\n _setUseSimulatedScrollbar() {\r\n if (!this.initialOption(\"useSimulatedScrollbar\")) {\r\n this.option(\"useSimulatedScrollbar\", !this.option(\"useNative\"))\r\n }\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initScrollableMarkup();\r\n this._locked = false\r\n },\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this.update();\r\n this._updateRtlPosition();\r\n this._savedScrollOffset && this.scrollTo(this._savedScrollOffset);\r\n delete this._savedScrollOffset;\r\n this.option(\"_onVisibilityChanged\")(this)\r\n } else {\r\n this._savedScrollOffset = this.scrollOffset()\r\n }\r\n },\r\n _initScrollableMarkup() {\r\n var $element = this.$element().addClass(SCROLLABLE_CLASS);\r\n var $container = this._$container = $(\"<div>\").addClass(SCROLLABLE_CONTAINER_CLASS);\r\n var $wrapper = this._$wrapper = $(\"<div>\").addClass(SCROLLABLE_WRAPPER_CLASS);\r\n var $content = this._$content = $(\"<div>\").addClass(SCROLLABLE_CONTENT_CLASS);\r\n $content.append($element.contents()).appendTo($container);\r\n $container.appendTo($wrapper);\r\n $wrapper.appendTo($element)\r\n },\r\n _dimensionChanged() {\r\n this.update();\r\n this._updateRtlPosition()\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this._renderDirection()\r\n },\r\n _render() {\r\n this._renderStrategy();\r\n this._attachEventHandlers();\r\n this._renderDisabledState();\r\n this._createActions();\r\n this.update();\r\n this.callBase();\r\n this._updateRtlPosition(true)\r\n },\r\n _updateRtlPosition(needInitializeRtlConfig) {\r\n this._strategy.updateRtlPosition(needInitializeRtlConfig)\r\n },\r\n _getMaxOffset() {\r\n var {\r\n scrollWidth: scrollWidth,\r\n clientWidth: clientWidth,\r\n scrollHeight: scrollHeight,\r\n clientHeight: clientHeight\r\n } = $(this.container()).get(0);\r\n return {\r\n left: scrollWidth - clientWidth,\r\n top: scrollHeight - clientHeight\r\n }\r\n },\r\n _attachEventHandlers() {\r\n var strategy = this._strategy;\r\n var initEventData = {\r\n getDirection: strategy.getDirection.bind(strategy),\r\n validate: this._validate.bind(this),\r\n isNative: this.option(\"useNative\"),\r\n scrollTarget: this._$container\r\n };\r\n eventsEngine.off(this._$wrapper, \".\".concat(SCROLLABLE));\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.init, SCROLLABLE), initEventData, this._initHandler.bind(this));\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.start, SCROLLABLE), strategy.handleStart.bind(strategy));\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.move, SCROLLABLE), strategy.handleMove.bind(strategy));\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.end, SCROLLABLE), strategy.handleEnd.bind(strategy));\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.cancel, SCROLLABLE), strategy.handleCancel.bind(strategy));\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.stop, SCROLLABLE), strategy.handleStop.bind(strategy));\r\n eventsEngine.off(this._$container, \".\".concat(SCROLLABLE));\r\n eventsEngine.on(this._$container, addNamespace(\"scroll\", SCROLLABLE), strategy.handleScroll.bind(strategy))\r\n },\r\n _validate(e) {\r\n if (this._isLocked()) {\r\n return false\r\n }\r\n this._updateIfNeed();\r\n return this._moveIsAllowed(e)\r\n },\r\n _moveIsAllowed(e) {\r\n return this._strategy.validate(e)\r\n },\r\n handleMove(e) {\r\n this._strategy.handleMove(e)\r\n },\r\n _prepareDirections(value) {\r\n this._strategy._prepareDirections(value)\r\n },\r\n _initHandler() {\r\n var strategy = this._strategy;\r\n strategy.handleInit.apply(strategy, arguments)\r\n },\r\n _renderDisabledState() {\r\n this.$element().toggleClass(SCROLLABLE_DISABLED_CLASS, this.option(\"disabled\"));\r\n if (this.option(\"disabled\")) {\r\n this._lock()\r\n } else {\r\n this._unlock()\r\n }\r\n },\r\n _renderDirection() {\r\n this.$element().removeClass(\"dx-scrollable-\".concat(HORIZONTAL)).removeClass(\"dx-scrollable-\".concat(VERTICAL)).removeClass(\"dx-scrollable-\".concat(BOTH)).addClass(\"dx-scrollable-\".concat(this.option(\"direction\")))\r\n },\r\n _renderStrategy() {\r\n this._createStrategy();\r\n this._strategy.render();\r\n this.$element().data(SCROLLABLE_STRATEGY, this._strategy)\r\n },\r\n _createStrategy() {\r\n this._strategy = this.option(\"useNative\") ? new NativeStrategy(this) : new SimulatedStrategy(this)\r\n },\r\n _createActions() {\r\n this._strategy && this._strategy.createActions()\r\n },\r\n _clean() {\r\n this._strategy && this._strategy.dispose()\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"onStart\":\r\n case \"onEnd\":\r\n case \"onUpdated\":\r\n case \"onScroll\":\r\n case \"onBounce\":\r\n this._createActions();\r\n break;\r\n case \"direction\":\r\n this._resetInactiveDirection();\r\n this._invalidate();\r\n break;\r\n case \"useNative\":\r\n this._setUseSimulatedScrollbar();\r\n this._invalidate();\r\n break;\r\n case \"inertiaEnabled\":\r\n case \"scrollByThumb\":\r\n case \"bounceEnabled\":\r\n case \"useKeyboard\":\r\n case \"showScrollbar\":\r\n case \"useSimulatedScrollbar\":\r\n this._invalidate();\r\n break;\r\n case \"disabled\":\r\n this._renderDisabledState();\r\n this._strategy && this._strategy.disabledChanged();\r\n break;\r\n case \"updateManually\":\r\n case \"scrollByContent\":\r\n case \"_onVisibilityChanged\":\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._updateRtlPosition();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _resetInactiveDirection() {\r\n var inactiveProp = this._getInactiveProp();\r\n if (!inactiveProp || !hasWindow()) {\r\n return\r\n }\r\n var scrollOffset = this.scrollOffset();\r\n scrollOffset[inactiveProp] = 0;\r\n this.scrollTo(scrollOffset)\r\n },\r\n _getInactiveProp() {\r\n var direction = this.option(\"direction\");\r\n if (direction === VERTICAL) {\r\n return \"left\"\r\n }\r\n if (direction === HORIZONTAL) {\r\n return \"top\"\r\n }\r\n },\r\n _location() {\r\n return this._strategy.location()\r\n },\r\n _normalizeLocation(location) {\r\n if (isPlainObject(location)) {\r\n var left = ensureDefined(location.left, location.x);\r\n var top = ensureDefined(location.top, location.y);\r\n return {\r\n left: isDefined(left) ? -left : void 0,\r\n top: isDefined(top) ? -top : void 0\r\n }\r\n }\r\n var direction = this.option(\"direction\");\r\n return {\r\n left: direction !== VERTICAL ? -location : void 0,\r\n top: direction !== HORIZONTAL ? -location : void 0\r\n }\r\n },\r\n _isLocked() {\r\n return this._locked\r\n },\r\n _lock() {\r\n this._locked = true\r\n },\r\n _unlock() {\r\n if (!this.option(\"disabled\")) {\r\n this._locked = false\r\n }\r\n },\r\n _isDirection(direction) {\r\n var current = this.option(\"direction\");\r\n if (direction === VERTICAL) {\r\n return current !== HORIZONTAL\r\n }\r\n if (direction === HORIZONTAL) {\r\n return current !== VERTICAL\r\n }\r\n return current === direction\r\n },\r\n _updateAllowedDirection() {\r\n var allowedDirections = this._strategy._allowedDirections();\r\n if (this._isDirection(BOTH) && allowedDirections.vertical && allowedDirections.horizontal) {\r\n this._allowedDirectionValue = BOTH\r\n } else if (this._isDirection(HORIZONTAL) && allowedDirections.horizontal) {\r\n this._allowedDirectionValue = HORIZONTAL\r\n } else if (this._isDirection(VERTICAL) && allowedDirections.vertical) {\r\n this._allowedDirectionValue = VERTICAL\r\n } else {\r\n this._allowedDirectionValue = null\r\n }\r\n },\r\n _allowedDirection() {\r\n return this._allowedDirectionValue\r\n },\r\n $content() {\r\n return this._$content\r\n },\r\n content() {\r\n return getPublicElement(this._$content)\r\n },\r\n container() {\r\n return getPublicElement(this._$container)\r\n },\r\n scrollOffset() {\r\n return this._strategy._getScrollOffset()\r\n },\r\n _isRtlNativeStrategy() {\r\n var {\r\n useNative: useNative,\r\n rtlEnabled: rtlEnabled\r\n } = this.option();\r\n return useNative && rtlEnabled\r\n },\r\n scrollTop() {\r\n return this.scrollOffset().top\r\n },\r\n scrollLeft() {\r\n return this.scrollOffset().left\r\n },\r\n clientHeight() {\r\n return getHeight(this._$container)\r\n },\r\n scrollHeight() {\r\n return getOuterHeight(this.$content())\r\n },\r\n clientWidth() {\r\n return getWidth(this._$container)\r\n },\r\n scrollWidth() {\r\n return getOuterWidth(this.$content())\r\n },\r\n update() {\r\n if (!this._strategy) {\r\n return\r\n }\r\n return when(this._strategy.update()).done(() => {\r\n this._updateAllowedDirection()\r\n })\r\n },\r\n scrollBy(distance) {\r\n distance = this._normalizeLocation(distance);\r\n if (!distance.top && !distance.left) {\r\n return\r\n }\r\n this._updateIfNeed();\r\n this._strategy.scrollBy(distance)\r\n },\r\n scrollTo(targetLocation) {\r\n targetLocation = this._normalizeLocation(targetLocation);\r\n this._updateIfNeed();\r\n var location = this._location();\r\n if (!this.option(\"useNative\")) {\r\n targetLocation = this._strategy._applyScaleRatio(targetLocation);\r\n location = this._strategy._applyScaleRatio(location)\r\n }\r\n if (this._isRtlNativeStrategy()) {\r\n location.left -= this._getMaxOffset().left\r\n }\r\n var distance = this._normalizeLocation({\r\n left: location.left - ensureDefined(targetLocation.left, location.left),\r\n top: location.top - ensureDefined(targetLocation.top, location.top)\r\n });\r\n if (!distance.top && !distance.left) {\r\n return\r\n }\r\n this._strategy.scrollBy(distance)\r\n },\r\n scrollToElement(element, offset) {\r\n var $element = $(element);\r\n var elementInsideContent = this.$content().find(element).length;\r\n var elementIsInsideContent = $element.parents(\".\".concat(SCROLLABLE_CLASS)).length - $element.parents(\".\".concat(SCROLLABLE_CONTENT_CLASS)).length === 0;\r\n if (!elementInsideContent || !elementIsInsideContent) {\r\n return\r\n }\r\n var scrollPosition = {\r\n top: 0,\r\n left: 0\r\n };\r\n var direction = this.option(\"direction\");\r\n if (direction !== VERTICAL) {\r\n scrollPosition.left = this.getScrollElementPosition($element, HORIZONTAL, offset)\r\n }\r\n if (direction !== HORIZONTAL) {\r\n scrollPosition.top = this.getScrollElementPosition($element, VERTICAL, offset)\r\n }\r\n this.scrollTo(scrollPosition)\r\n },\r\n getScrollElementPosition($element, direction, offset) {\r\n var scrollOffset = this.scrollOffset();\r\n return getElementLocationInternal($element.get(0), direction, $(this.container()).get(0), scrollOffset, offset)\r\n },\r\n _updateIfNeed() {\r\n if (!this.option(\"updateManually\")) {\r\n this.update()\r\n }\r\n },\r\n _useTemplates: () => false,\r\n isRenovated: () => !!Scrollable.IS_RENOVATED_WIDGET\r\n});\r\nregisterComponent(SCROLLABLE, Scrollable);\r\nexport default Scrollable;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/get_element_location_internal.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n titleize\r\n} from \"../../../../core/utils/inflector\";\r\nimport {\r\n getRelativeOffset\r\n} from \"./get_relative_offset\";\r\nimport {\r\n DIRECTION_VERTICAL,\r\n SCROLLABLE_CONTENT_CLASS\r\n} from \"../common/consts\";\r\nexport function getElementLocationInternal(targetElement, direction, containerElement, scrollOffset, offset) {\r\n var additionalOffset = _extends({\r\n top: 0,\r\n left: 0,\r\n right: 0,\r\n bottom: 0\r\n }, offset);\r\n var isVertical = direction === DIRECTION_VERTICAL;\r\n var prop = isVertical ? \"top\" : \"left\";\r\n var inverseProp = isVertical ? \"bottom\" : \"right\";\r\n var dimension = isVertical ? \"height\" : \"width\";\r\n var containerOffsetSize = containerElement[\"offset\".concat(titleize(dimension))];\r\n var containerClientSize = containerElement[\"client\".concat(titleize(dimension))];\r\n var containerSize = containerElement.getBoundingClientRect()[dimension];\r\n var elementSize = targetElement.getBoundingClientRect()[dimension];\r\n var scale = 1;\r\n if (Math.abs(containerSize - containerOffsetSize) > 1) {\r\n scale = containerSize / containerOffsetSize\r\n }\r\n var relativeElementOffset = getRelativeOffset(SCROLLABLE_CONTENT_CLASS, targetElement)[prop] / scale;\r\n var containerScrollOffset = scrollOffset[prop];\r\n var relativeStartOffset = containerScrollOffset - relativeElementOffset + additionalOffset[prop];\r\n var relativeEndOffset = containerScrollOffset - relativeElementOffset - elementSize / scale + containerClientSize - additionalOffset[inverseProp];\r\n if (relativeStartOffset <= 0 && relativeEndOffset >= 0) {\r\n return containerScrollOffset\r\n }\r\n return containerScrollOffset - (Math.abs(relativeStartOffset) > Math.abs(relativeEndOffset) ? relativeEndOffset : relativeStartOffset)\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/get_relative_offset.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function getRelativeOffset(targetElementClass, sourceElement) {\r\n var offset = {\r\n left: 0,\r\n top: 0\r\n };\r\n var element = sourceElement;\r\n while (null !== (_element = element) && void 0 !== _element && _element.offsetParent && !element.classList.contains(targetElementClass)) {\r\n var _element;\r\n var parentElement = element.offsetParent;\r\n var elementRect = element.getBoundingClientRect();\r\n var parentElementRect = parentElement.getBoundingClientRect();\r\n offset.left += elementRect.left - parentElementRect.left;\r\n offset.top += elementRect.top - parentElementRect.top;\r\n element = element.offsetParent\r\n }\r\n return offset\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/scroll_view/m_scroll_view.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport 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 noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport LoadIndicator from \"../../../ui/load_indicator\";\r\nimport LoadPanel from \"../../../ui/load_panel\";\r\nimport {\r\n isMaterialBased\r\n} from \"../../../ui/themes\";\r\nimport PullDownStrategy from \"./m_scroll_view.native.pull_down\";\r\nimport SwipeDownStrategy from \"./m_scroll_view.native.swipe_down\";\r\nimport SimulatedStrategy from \"./m_scroll_view.simulated\";\r\nimport Scrollable from \"./m_scrollable\";\r\nvar SCROLLVIEW_CLASS = \"dx-scrollview\";\r\nvar SCROLLVIEW_CONTENT_CLASS = \"\".concat(SCROLLVIEW_CLASS, \"-content\");\r\nvar SCROLLVIEW_TOP_POCKET_CLASS = \"\".concat(SCROLLVIEW_CLASS, \"-top-pocket\");\r\nvar SCROLLVIEW_BOTTOM_POCKET_CLASS = \"\".concat(SCROLLVIEW_CLASS, \"-bottom-pocket\");\r\nvar SCROLLVIEW_PULLDOWN_CLASS = \"\".concat(SCROLLVIEW_CLASS, \"-pull-down\");\r\nvar SCROLLVIEW_REACHBOTTOM_CLASS = \"\".concat(SCROLLVIEW_CLASS, \"-scrollbottom\");\r\nvar SCROLLVIEW_REACHBOTTOM_INDICATOR_CLASS = \"\".concat(SCROLLVIEW_REACHBOTTOM_CLASS, \"-indicator\");\r\nvar SCROLLVIEW_REACHBOTTOM_TEXT_CLASS = \"\".concat(SCROLLVIEW_REACHBOTTOM_CLASS, \"-text\");\r\nvar SCROLLVIEW_LOADPANEL = \"\".concat(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(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() {\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() {\r\n return this.callBase().concat([{\r\n device() {\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: () => isMaterialBased(),\r\n options: {\r\n pullingDownText: \"\",\r\n pulledDownText: \"\",\r\n refreshingText: \"\",\r\n reachBottomText: \"\"\r\n }\r\n }])\r\n },\r\n _init() {\r\n this.callBase();\r\n this._loadingIndicatorEnabled = true\r\n },\r\n _initScrollableMarkup() {\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() {\r\n var $content = $(\"<div>\").addClass(SCROLLVIEW_CONTENT_CLASS);\r\n this._$content.wrapInner($content)\r\n },\r\n _initTopPocket() {\r\n var $topPocket = this._$topPocket = $(\"<div>\").addClass(SCROLLVIEW_TOP_POCKET_CLASS);\r\n var $pullDown = this._$pullDown = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_CLASS);\r\n $topPocket.append($pullDown);\r\n this._$content.prepend($topPocket)\r\n },\r\n _initBottomPocket() {\r\n var $bottomPocket = this._$bottomPocket = $(\"<div>\").addClass(SCROLLVIEW_BOTTOM_POCKET_CLASS);\r\n var $reachBottom = this._$reachBottom = $(\"<div>\").addClass(SCROLLVIEW_REACHBOTTOM_CLASS);\r\n var $loadContainer = $(\"<div>\").addClass(SCROLLVIEW_REACHBOTTOM_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"<div>\")).$element();\r\n var $text = this._$reachBottomText = $(\"<div>\").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() {\r\n var $loadPanelElement = $(\"<div>\").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() {\r\n this._$reachBottomText.text(this.option(\"reachBottomText\"))\r\n },\r\n _createStrategy() {\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() {\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() {\r\n this._pullDownEnable(this.hasActionSubscription(\"onPullDown\"));\r\n this._reachBottomEnable(this.hasActionSubscription(\"onReachBottom\"))\r\n },\r\n on(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(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(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() {\r\n this._loadingIndicator(false);\r\n this._pullDownLoading()\r\n },\r\n _loadingIndicator(value) {\r\n if (arguments.length < 1) {\r\n return this._loadingIndicatorEnabled\r\n }\r\n this._loadingIndicatorEnabled = value\r\n },\r\n _pullDownLoading() {\r\n this.startLoading();\r\n this._pullDownAction()\r\n },\r\n _reachBottomHandler() {\r\n this._loadingIndicator(false);\r\n this._reachBottomLoading()\r\n },\r\n _reachBottomLoading() {\r\n this.startLoading();\r\n this._reachBottomAction()\r\n },\r\n _releaseHandler() {\r\n this.finishLoading();\r\n this._loadingIndicator(true)\r\n },\r\n _optionChanged(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() {\r\n return getPublicElement(this._$content.children().eq(1))\r\n },\r\n release(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(showOrHide) {\r\n this._reachBottomEnable(showOrHide)\r\n },\r\n refresh() {\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() {\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() {\r\n this._loadPanel.hide();\r\n this._unlock()\r\n },\r\n _dispose() {\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.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ScrollView from \"../__internal/ui/scroll_view/m_scroll_view\";\r\nexport default ScrollView;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/shared/m_grouped_data_converter_mixin.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n 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() {\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/__internal/ui/list/m_item.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport CollectionWidgetItem from \"../../ui/collection/m_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() {\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(badge) {\r\n this._$element.children(\".\".concat(LIST_ITEM_BADGE_CONTAINER_CLASS)).remove();\r\n if (!badge) {\r\n return\r\n }\r\n var $badge = $(\"<div>\").addClass(LIST_ITEM_BADGE_CONTAINER_CLASS).append($(\"<div>\").addClass(LIST_ITEM_BADGE_CLASS).addClass(BADGE_CLASS).text(badge));\r\n var $chevron = this._$element.children(\".\".concat(LIST_ITEM_CHEVRON_CONTAINER_CLASS)).first();\r\n $chevron.length > 0 ? $badge.insertBefore($chevron) : $badge.appendTo(this._$element)\r\n },\r\n _renderShowChevron(showChevron) {\r\n this._$element.children(\".\".concat(LIST_ITEM_CHEVRON_CONTAINER_CLASS)).remove();\r\n if (!showChevron) {\r\n return\r\n }\r\n var $chevronContainer = $(\"<div>\").addClass(LIST_ITEM_CHEVRON_CONTAINER_CLASS);\r\n var $chevron = $(\"<div>\").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/__internal/ui/list/m_list.base.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport fx from \"../../../animation/fx\";\r\nimport devices from \"../../../core/devices\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport Guid from \"../../../core/guid\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../../core/templates/bindable_template\";\r\nimport {\r\n ensureDefined,\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n compileGetter\r\n} from \"../../../core/utils/data\";\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 getImageContainer\r\n} from \"../../../core/utils/icon\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n setHeight\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n nativeScrolling\r\n} from \"../../../core/utils/support\";\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../events/click\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n end as swipeEventEnd\r\n} from \"../../../events/swipe\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport {\r\n getElementMargin\r\n} from \"../../../renovation/ui/scroll_view/utils/get_element_style\";\r\nimport Button from \"../../../ui/button\";\r\nimport CollectionWidget from \"../../../ui/collection/ui.collection_widget.live_update\";\r\nimport ScrollView from \"../../../ui/scroll_view\";\r\nimport {\r\n current,\r\n isMaterial,\r\n isMaterialBased\r\n} from \"../../../ui/themes\";\r\nimport {\r\n render\r\n} from \"../../../ui/widget/utils.ink_ripple\";\r\nimport {\r\n deviceDependentOptions\r\n} from \"../../ui/scroll_view/m_scrollable.device\";\r\nimport DataConverterMixin from \"../../ui/shared/m_grouped_data_converter_mixin\";\r\nimport ListItem from \"./m_item\";\r\nvar LIST_CLASS = \"dx-list\";\r\nvar LIST_ITEMS_CLASS = \"dx-list-items\";\r\nvar LIST_ITEM_CLASS = \"dx-list-item\";\r\nvar LIST_ITEM_SELECTOR = \".\".concat(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() {\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() {\r\n moveFocusPerPage(\"prev\");\r\n return false\r\n },\r\n pageDown() {\r\n moveFocusPerPage(\"next\");\r\n return false\r\n }\r\n })\r\n },\r\n _getDefaultOptions() {\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: data => data ? data.showChevron : void 0,\r\n badgeExpr: data => data ? data.badge : void 0\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n var themeName = current();\r\n return this.callBase().concat(deviceDependentOptions(), [{\r\n device: () => !nativeScrolling,\r\n options: {\r\n useNativeScrolling: false\r\n }\r\n }, {\r\n device: device => !nativeScrolling && !devices.isSimulator() && \"desktop\" === devices.real().deviceType && \"generic\" === device.platform,\r\n options: {\r\n showScrollbar: \"onHover\",\r\n pageLoadMode: \"nextButton\"\r\n }\r\n }, {\r\n device: () => \"desktop\" === devices.real().deviceType && !devices.isSimulator(),\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: () => isMaterial(themeName),\r\n options: {\r\n useInkRipple: true\r\n }\r\n }, {\r\n device: () => isMaterialBased(themeName),\r\n options: {\r\n pullingDownText: \"\",\r\n pulledDownText: \"\",\r\n refreshingText: \"\",\r\n pageLoadingText: \"\"\r\n }\r\n }])\r\n },\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._updateLoadingState(true)\r\n }\r\n },\r\n _itemClass: () => LIST_ITEM_CLASS,\r\n _itemDataKey: () => LIST_ITEM_DATA_KEY,\r\n _itemContainer() {\r\n return this._$container\r\n },\r\n _getItemsContainer() {\r\n return this._$listContainer\r\n },\r\n _cleanItemContainer() {\r\n this.callBase();\r\n var listContainer = this._getItemsContainer();\r\n $(listContainer).empty();\r\n listContainer.appendTo(this._$container)\r\n },\r\n _saveSelectionChangeEvent(e) {\r\n this._selectionChangeEventInstance = e\r\n },\r\n _getSelectionChangeEvent() {\r\n return this._selectionChangeEventInstance\r\n },\r\n _refreshItemElements() {\r\n if (!this.option(\"grouped\")) {\r\n this._itemElementsCache = this._getItemsContainer().children(this._itemSelector())\r\n } else {\r\n this._itemElementsCache = this._getItemsContainer().children(\".\".concat(LIST_GROUP_CLASS)).children(\".\".concat(LIST_GROUP_BODY_CLASS)).children(this._itemSelector())\r\n }\r\n },\r\n _modifyByChanges() {\r\n this.callBase.apply(this, arguments);\r\n this._refreshItemElements();\r\n this._updateLoadingState(true)\r\n },\r\n reorderItem(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(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() {\r\n return this._itemElementsCache\r\n },\r\n _itemSelectHandler(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: () => true,\r\n _init() {\r\n this.callBase();\r\n this._dataController.resetDataSourcePageIndex();\r\n this._$container = this.$element();\r\n this._$listContainer = $(\"<div>\").addClass(LIST_ITEMS_CLASS);\r\n this._initScrollView();\r\n this._feedbackShowTimeout = LIST_FEEDBACK_SHOW_TIMEOUT;\r\n this._createGroupRenderAction()\r\n },\r\n _scrollBottomMode() {\r\n return \"scrollBottom\" === this.option(\"pageLoadMode\")\r\n },\r\n _nextButtonMode() {\r\n return \"nextButton\" === this.option(\"pageLoadMode\")\r\n },\r\n _dataSourceOptions() {\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() {\r\n return this.option(\"grouped\")\r\n },\r\n _getGroupContainerByIndex(groupIndex) {\r\n return this._getItemsContainer().find(\".\".concat(LIST_GROUP_CLASS)).eq(groupIndex).find(\".\".concat(LIST_GROUP_BODY_CLASS))\r\n },\r\n _dataSourceFromUrlLoadMode: () => \"raw\",\r\n _initScrollView() {\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 this._$listContainer.appendTo(this._$container);\r\n this._toggleWrapItemText(this.option(\"wrapItemText\"));\r\n this._createScrollViewActions()\r\n },\r\n _toggleWrapItemText(value) {\r\n this._$listContainer.toggleClass(WRAP_ITEM_TEXT_CLASS, value)\r\n },\r\n _createScrollViewActions() {\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(e) {\r\n this._scrollAction && this._scrollAction(e)\r\n },\r\n _initTemplates() {\r\n this._templateManager.addDefaultTemplates({\r\n group: new BindableTemplate(($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(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 = $(\"<div>\").addClass(LIST_ITEM_ICON_CONTAINER_CLASS);\r\n $iconContainer.append($icon);\r\n $container.prepend($iconContainer)\r\n }\r\n },\r\n _getBindableFields: () => [\"text\", \"html\", \"icon\"],\r\n _updateLoadingState(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() {\r\n return this._nextButtonMode() && this._dataController.isLoaded()\r\n },\r\n _isDataSourceFirstLoadCompleted(newValue) {\r\n if (isDefined(newValue)) {\r\n this._isFirstLoadCompleted = newValue\r\n }\r\n return this._isFirstLoadCompleted\r\n },\r\n _dataSourceLoadingChangedHandler(isLoading) {\r\n if (this._loadIndicationSuppressed()) {\r\n return\r\n }\r\n if (isLoading && this.option(\"indicateLoading\")) {\r\n this._showLoadingIndicatorTimer = setTimeout(() => {\r\n var _a;\r\n var isEmpty = !this._itemElements().length;\r\n var shouldIndicateLoading = !isEmpty || this._isDataSourceFirstLoadCompleted();\r\n if (shouldIndicateLoading) {\r\n null === (_a = this._scrollView) || void 0 === _a ? void 0 : _a.startLoading()\r\n }\r\n })\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() {\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() {\r\n this._prepareContent();\r\n this._fireContentReadyAction()\r\n },\r\n _hideLoadingIfLoadIndicationOff() {\r\n if (!this.option(\"indicateLoading\")) {\r\n this._dataSourceLoadingChangedHandler(false)\r\n }\r\n },\r\n _loadIndicationSuppressed(value) {\r\n if (!arguments.length) {\r\n return this._isLoadIndicationSuppressed\r\n }\r\n this._isLoadIndicationSuppressed = value\r\n },\r\n _scrollViewIsFull() {\r\n var scrollView = this._scrollView;\r\n return !scrollView || getHeight(scrollView.content()) > getHeight(scrollView.container())\r\n },\r\n _pullDownHandler(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(shouldLoadNextPage) {\r\n var _a, _b;\r\n var isBottomReached = getHeight(this._scrollView.content()) - getHeight(this._scrollView.container()) < (null !== (_b = null === (_a = this._scrollView.scrollOffset()) || void 0 === _a ? void 0 : _a.top) && void 0 !== _b ? _b : 0);\r\n return shouldLoadNextPage && (!this._scrollViewIsFull() || isBottomReached)\r\n },\r\n _infiniteDataLoading() {\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(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(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() {\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n var selector = \".\".concat(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, e => {\r\n this._createAction(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(\".\".concat(LIST_ITEM_CLASS)).eq(0)))\r\n }\r\n }, {\r\n validatingTargetName: \"element\"\r\n })({\r\n event: e\r\n })\r\n })\r\n }\r\n },\r\n _collapseGroupHandler($group, toggle) {\r\n var deferred = Deferred();\r\n if ($group.hasClass(LIST_GROUP_COLLAPSED_CLASS) === toggle) {\r\n return deferred.resolve()\r\n }\r\n var $groupBody = $group.children(\".\".concat(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() {\r\n this._forgetNextPageLoading();\r\n if (this._initialized) {\r\n this._renderEmptyMessage();\r\n this._updateLoadingState()\r\n }\r\n },\r\n _initMarkup() {\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.setAria({\r\n role: \"group\"\r\n }, this._focusTarget());\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 ? void 0 : 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, this._$listContainer)\r\n },\r\n _focusTarget() {\r\n return this._itemContainer()\r\n },\r\n _renderInkRipple() {\r\n this._inkRipple = render()\r\n },\r\n _toggleActiveState($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(() => {\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(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($itemElement) {\r\n var endEventName = addNamespace(swipeEventEnd, this.NAME);\r\n eventsEngine.on($itemElement, endEventName, this._itemSwipeEndHandler.bind(this))\r\n },\r\n _itemSwipeEndHandler(e) {\r\n this._itemDXEventHandler(e, \"onItemSwipe\", {\r\n direction: e.offset < 0 ? \"left\" : \"right\"\r\n })\r\n },\r\n _nextButtonHandler(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(index, group) {\r\n var $groupElement = $(\"<div>\").addClass(LIST_GROUP_CLASS).appendTo(this._getItemsContainer());\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 = $(\"<div>\").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 $(\"<div>\").addClass(LIST_GROUP_HEADER_INDICATOR_CLASS).prependTo($groupHeaderElement);\r\n this._renderingGroupIndex = index;\r\n var $groupBody = $(\"<div>\").addClass(LIST_GROUP_BODY_CLASS).appendTo($groupElement);\r\n each(groupItemsGetter(group) || [], (itemIndex, item) => {\r\n this._renderItem({\r\n group: index,\r\n item: itemIndex\r\n }, item, $groupBody)\r\n });\r\n this._groupRenderAction({\r\n groupElement: getPublicElement($groupElement),\r\n groupIndex: index,\r\n groupData: group\r\n })\r\n },\r\n downInkRippleHandler(e) {\r\n this._toggleActiveState($(e.currentTarget), true, e)\r\n },\r\n upInkRippleHandler(e) {\r\n this._toggleActiveState($(e.currentTarget), false)\r\n },\r\n attachGroupHeaderInkRippleEvents() {\r\n var selector = \".\".concat(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() {\r\n this._groupRenderAction = this._createActionByOption(\"onGroupRendered\")\r\n },\r\n _clean() {\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() {\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(value) {\r\n this.callBase(value);\r\n this._scrollView.option(\"disabled\", value || !this.option(\"scrollingEnabled\"))\r\n },\r\n _toggleNextButton(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() {\r\n if (!this._$nextButton) {\r\n this._$nextButton = this._createNextButton()\r\n }\r\n return this._$nextButton\r\n },\r\n _createNextButton() {\r\n var $result = $(\"<div>\").addClass(LIST_NEXT_BUTTON_CLASS);\r\n var $button = $(\"<div>\").appendTo($result);\r\n this._createComponent($button, Button, {\r\n text: this.option(\"nextButtonText\"),\r\n onClick: this._nextButtonHandler.bind(this),\r\n type: isMaterialBased() ? \"default\" : void 0,\r\n integrationOptions: {}\r\n });\r\n return $result\r\n },\r\n _moveFocus() {\r\n this.callBase.apply(this, arguments);\r\n this.scrollToItem(this.option(\"focusedElement\"))\r\n },\r\n _refresh() {\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(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._toggleWrapItemText(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($itemElement) {\r\n if (!this.option(\"grouped\")) {\r\n return this.callBase($itemElement)\r\n }\r\n var $group = $itemElement.closest(\".\".concat(LIST_GROUP_CLASS));\r\n var $item = $group.find(\".\".concat(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(groupIndex) {\r\n var deferred = Deferred();\r\n var $group = this._getItemsContainer().find(\".\".concat(LIST_GROUP_CLASS)).eq(groupIndex);\r\n this._collapseGroupHandler($group, false).done(() => {\r\n deferred.resolveWith(this)\r\n });\r\n return deferred.promise()\r\n },\r\n collapseGroup(groupIndex) {\r\n var deferred = Deferred();\r\n var $group = this._getItemsContainer().find(\".\".concat(LIST_GROUP_CLASS)).eq(groupIndex);\r\n this._collapseGroupHandler($group, true).done(() => {\r\n deferred.resolveWith(this)\r\n });\r\n return deferred\r\n },\r\n updateDimensions() {\r\n var that = this;\r\n var deferred = Deferred();\r\n if (that._scrollView) {\r\n that._scrollView.update().done(() => {\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() {\r\n this.callBase();\r\n this.scrollTo(0);\r\n this._pullDownHandler()\r\n },\r\n repaint() {\r\n this.scrollTo(0);\r\n this.callBase()\r\n },\r\n scrollTop() {\r\n return this._scrollView.scrollOffset().top\r\n },\r\n clientHeight() {\r\n return this._scrollView.clientHeight()\r\n },\r\n scrollHeight() {\r\n return this._scrollView.scrollHeight()\r\n },\r\n scrollBy(distance) {\r\n this._scrollView.scrollBy(distance)\r\n },\r\n scrollTo(location) {\r\n this._scrollView.scrollTo(location)\r\n },\r\n scrollToItem(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() {\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/__internal/ui/list/m_list.edit.provider.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../../core/class\";\r\nimport $ 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 each\r\n} from \"../../../core/utils/iterator\";\r\nimport errors from \"../../../ui/widget/ui.errors\";\r\nimport {\r\n registry\r\n} from \"./m_list.edit.decorator_registry\";\r\nvar editOptionsRegistry = [];\r\nvar registerOption = function(enabledFunc, decoratorTypeFunc, decoratorSubTypeFunc) {\r\n editOptionsRegistry.push({\r\n enabled: enabledFunc,\r\n decoratorType: decoratorTypeFunc,\r\n decoratorSubType: decoratorSubTypeFunc\r\n })\r\n};\r\nregisterOption((function() {\r\n return this.option(\"menuItems\").length\r\n}), () => \"menu\", (function() {\r\n return this.option(\"menuMode\")\r\n}));\r\nregisterOption((function() {\r\n return !this.option(\"menuItems\").length && this.option(\"allowItemDeleting\")\r\n}), (function() {\r\n var mode = this.option(\"itemDeleteMode\");\r\n return \"toggle\" === mode || \"slideButton\" === mode || \"swipe\" === mode || \"static\" === mode ? \"delete\" : \"menu\"\r\n}), (function() {\r\n var mode = this.option(\"itemDeleteMode\");\r\n if (\"slideItem\" === mode) {\r\n mode = \"slide\"\r\n }\r\n return mode\r\n}));\r\nregisterOption((function() {\r\n return \"none\" !== this.option(\"selectionMode\") && this.option(\"showSelectionControls\")\r\n}), () => \"selection\", () => \"default\");\r\nregisterOption((function() {\r\n return this.option(\"itemDragging.allowReordering\") || this.option(\"itemDragging.allowDropInsideItem\") || this.option(\"itemDragging.group\")\r\n}), () => \"reorder\", () => \"default\");\r\nvar LIST_ITEM_BEFORE_BAG_CLASS = \"dx-list-item-before-bag\";\r\nvar LIST_ITEM_AFTER_BAG_CLASS = \"dx-list-item-after-bag\";\r\nvar DECORATOR_BEFORE_BAG_CREATE_METHOD = \"beforeBag\";\r\nvar DECORATOR_AFTER_BAG_CREATE_METHOD = \"afterBag\";\r\nvar DECORATOR_MODIFY_ELEMENT_METHOD = \"modifyElement\";\r\nvar DECORATOR_AFTER_RENDER_METHOD = \"afterRender\";\r\nvar DECORATOR_GET_EXCLUDED_SELECTORS_METHOD = \"getExcludedSelectors\";\r\nvar EditProvider = Class.inherit({\r\n ctor(list) {\r\n this._list = list;\r\n this._fetchRequiredDecorators()\r\n },\r\n dispose() {\r\n if (this._decorators && this._decorators.length) {\r\n each(this._decorators, (_, decorator) => {\r\n decorator.dispose()\r\n })\r\n }\r\n },\r\n _fetchRequiredDecorators() {\r\n this._decorators = [];\r\n each(editOptionsRegistry, (_, option) => {\r\n var optionEnabled = option.enabled.call(this._list);\r\n if (optionEnabled) {\r\n var decoratorType = option.decoratorType.call(this._list);\r\n var decoratorSubType = option.decoratorSubType.call(this._list);\r\n var decorator = this._createDecorator(decoratorType, decoratorSubType);\r\n this._decorators.push(decorator)\r\n }\r\n })\r\n },\r\n _createDecorator(type, subType) {\r\n var decoratorClass = this._findDecorator(type, subType);\r\n return new decoratorClass(this._list)\r\n },\r\n _findDecorator(type, subType) {\r\n var _a;\r\n var foundDecorator = null === (_a = registry[type]) || void 0 === _a ? void 0 : _a[subType];\r\n if (!foundDecorator) {\r\n throw errors.Error(\"E1012\", type, subType)\r\n }\r\n return foundDecorator\r\n },\r\n modifyItemElement(args) {\r\n var $itemElement = $(args.itemElement);\r\n var config = {\r\n $itemElement: $itemElement\r\n };\r\n this._prependBeforeBags($itemElement, config);\r\n this._appendAfterBags($itemElement, config);\r\n this._applyDecorators(DECORATOR_MODIFY_ELEMENT_METHOD, config)\r\n },\r\n afterItemsRendered() {\r\n this._applyDecorators(DECORATOR_AFTER_RENDER_METHOD)\r\n },\r\n _prependBeforeBags($itemElement, config) {\r\n var $beforeBags = this._collectDecoratorsMarkup(DECORATOR_BEFORE_BAG_CREATE_METHOD, config, LIST_ITEM_BEFORE_BAG_CLASS);\r\n $itemElement.prepend($beforeBags)\r\n },\r\n _appendAfterBags($itemElement, config) {\r\n var $afterBags = this._collectDecoratorsMarkup(DECORATOR_AFTER_BAG_CREATE_METHOD, config, LIST_ITEM_AFTER_BAG_CLASS);\r\n $itemElement.append($afterBags)\r\n },\r\n _collectDecoratorsMarkup(method, config, containerClass) {\r\n var $collector = $(\"<div>\");\r\n each(this._decorators, (function() {\r\n var $container = $(\"<div>\").addClass(containerClass);\r\n this[method](extend({\r\n $container: $container\r\n }, config));\r\n if ($container.children().length) {\r\n $collector.append($container)\r\n }\r\n }));\r\n return $collector.children()\r\n },\r\n _applyDecorators(method, config) {\r\n each(this._decorators, (function() {\r\n this[method](config)\r\n }))\r\n },\r\n _handlerExists(name) {\r\n if (!this._decorators) {\r\n return false\r\n }\r\n var decorators = this._decorators;\r\n var {\r\n length: length\r\n } = decorators;\r\n for (var i = 0; i < length; i++) {\r\n if (decorators[i][name] !== noop) {\r\n return true\r\n }\r\n }\r\n return false\r\n },\r\n _eventHandler(name, $itemElement, e) {\r\n if (!this._decorators) {\r\n return false\r\n }\r\n var response = false;\r\n var decorators = this._decorators;\r\n var {\r\n length: length\r\n } = decorators;\r\n for (var i = 0; i < length; i++) {\r\n response = decorators[i][name]($itemElement, e);\r\n if (response) {\r\n break\r\n }\r\n }\r\n return response\r\n },\r\n handleClick($itemElement, e) {\r\n return this._eventHandler(\"handleClick\", $itemElement, e)\r\n },\r\n handleKeyboardEvents(currentFocusedIndex, moveFocusUp) {\r\n return this._eventHandler(\"handleKeyboardEvents\", currentFocusedIndex, moveFocusUp)\r\n },\r\n handleEnterPressing(e) {\r\n return this._eventHandler(\"handleEnterPressing\", e)\r\n },\r\n contextMenuHandlerExists() {\r\n return this._handlerExists(\"handleContextMenu\")\r\n },\r\n handleContextMenu($itemElement, e) {\r\n return this._eventHandler(\"handleContextMenu\", $itemElement, e)\r\n },\r\n getExcludedItemSelectors() {\r\n var excludedSelectors = [];\r\n this._applyDecorators(DECORATOR_GET_EXCLUDED_SELECTORS_METHOD, excludedSelectors);\r\n return excludedSelectors.join(\",\")\r\n }\r\n});\r\nexport default EditProvider;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/list/m_list.edit.strategy.grouped.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n isNumeric\r\n} from \"../../../core/utils/type\";\r\nimport query from \"../../../data/query\";\r\nimport storeHelper from \"../../../data/store_helper\";\r\nimport EditStrategy from \"../../ui/collection/m_collection_widget.edit.strategy.plain\";\r\nvar LIST_ITEM_CLASS = \"dx-list-item\";\r\nvar LIST_GROUP_CLASS = \"dx-list-group\";\r\nvar SELECTION_SHIFT = 20;\r\nvar SELECTION_MASK = (1 << SELECTION_SHIFT) - 1;\r\nvar combineIndex = function(indices) {\r\n return (indices.group << SELECTION_SHIFT) + indices.item\r\n};\r\nvar splitIndex = function(combinedIndex) {\r\n return {\r\n group: combinedIndex >> SELECTION_SHIFT,\r\n item: combinedIndex & SELECTION_MASK\r\n }\r\n};\r\nvar GroupedEditStrategy = EditStrategy.inherit({\r\n _groupElements() {\r\n return this._collectionWidget._itemContainer().find(\".\".concat(LIST_GROUP_CLASS))\r\n },\r\n _groupItemElements: $group => $group.find(\".\".concat(LIST_ITEM_CLASS)),\r\n getIndexByItemData(itemData) {\r\n var groups = this._collectionWidget.option(\"items\");\r\n var index = false;\r\n if (!itemData) {\r\n return false\r\n }\r\n if (itemData.items && itemData.items.length) {\r\n itemData = itemData.items[0]\r\n }\r\n each(groups, (groupIndex, group) => {\r\n if (!group.items) {\r\n return false\r\n }\r\n each(group.items, (itemIndex, item) => {\r\n if (item !== itemData) {\r\n return true\r\n }\r\n index = {\r\n group: groupIndex,\r\n item: itemIndex\r\n };\r\n return false\r\n });\r\n if (index) {\r\n return false\r\n }\r\n });\r\n return index\r\n },\r\n getItemDataByIndex(index) {\r\n var items = this._collectionWidget.option(\"items\");\r\n if (isNumeric(index)) {\r\n return this.itemsGetter()[index]\r\n }\r\n return index && items[index.group] && items[index.group].items[index.item] || null\r\n },\r\n itemsGetter() {\r\n var resultItems = [];\r\n var items = this._collectionWidget.option(\"items\");\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i] && items[i].items) {\r\n resultItems = resultItems.concat(items[i].items)\r\n } else {\r\n resultItems.push(items[i])\r\n }\r\n }\r\n return resultItems\r\n },\r\n deleteItemAtIndex(index) {\r\n var indices = splitIndex(index);\r\n var itemGroup = this._collectionWidget.option(\"items\")[indices.group].items;\r\n itemGroup.splice(indices.item, 1)\r\n },\r\n getKeysByItems(items) {\r\n var plainItems = [];\r\n var i;\r\n for (i = 0; i < items.length; i++) {\r\n if (items[i] && items[i].items) {\r\n plainItems = plainItems.concat(items[i].items)\r\n } else {\r\n plainItems.push(items[i])\r\n }\r\n }\r\n var result = [];\r\n for (i = 0; i < plainItems.length; i++) {\r\n result.push(this._collectionWidget.keyOf(plainItems[i]))\r\n }\r\n return result\r\n },\r\n getIndexByKey(key, items) {\r\n var groups = items || this._collectionWidget.option(\"items\");\r\n var index = -1;\r\n var that = this;\r\n each(groups, (groupIndex, group) => {\r\n if (!group.items) {\r\n return\r\n }\r\n each(group.items, (itemIndex, item) => {\r\n var itemKey = that._collectionWidget.keyOf(item);\r\n if (that._equalKeys(itemKey, key)) {\r\n index = {\r\n group: groupIndex,\r\n item: itemIndex\r\n };\r\n return false\r\n }\r\n });\r\n if (-1 !== index) {\r\n return false\r\n }\r\n });\r\n return index\r\n },\r\n _getGroups(items) {\r\n var dataController = this._collectionWidget._dataController;\r\n var group = dataController.group();\r\n if (group) {\r\n return storeHelper.queryByOptions(query(items), {\r\n group: group\r\n }).toArray()\r\n }\r\n return this._collectionWidget.option(\"items\")\r\n },\r\n getItemsByKeys(keys, items) {\r\n var result = [];\r\n var groups = this._getGroups(items);\r\n var groupItemByKeyMap = {};\r\n var getItemMeta = key => {\r\n var index = this.getIndexByKey(key, groups);\r\n var group = index && groups[index.group];\r\n if (!group) {\r\n return\r\n }\r\n return {\r\n groupKey: group.key,\r\n item: group.items[index.item]\r\n }\r\n };\r\n each(keys, (_, key) => {\r\n var itemMeta = getItemMeta(key);\r\n if (!itemMeta) {\r\n return\r\n }\r\n var {\r\n groupKey: groupKey\r\n } = itemMeta;\r\n var {\r\n item: item\r\n } = itemMeta;\r\n var selectedGroup = groupItemByKeyMap[groupKey];\r\n if (!selectedGroup) {\r\n selectedGroup = {\r\n key: groupKey,\r\n items: []\r\n };\r\n groupItemByKeyMap[groupKey] = selectedGroup;\r\n result.push(selectedGroup)\r\n }\r\n selectedGroup.items.push(item)\r\n });\r\n return result\r\n },\r\n moveItemAtIndexToIndex(movingIndex, destinationIndex) {\r\n var items = this._collectionWidget.option(\"items\");\r\n var movingIndices = splitIndex(movingIndex);\r\n var destinationIndices = splitIndex(destinationIndex);\r\n var movingItemGroup = items[movingIndices.group].items;\r\n var destinationItemGroup = items[destinationIndices.group].items;\r\n var movedItemData = movingItemGroup[movingIndices.item];\r\n movingItemGroup.splice(movingIndices.item, 1);\r\n destinationItemGroup.splice(destinationIndices.item, 0, movedItemData)\r\n },\r\n _isItemIndex: index => index && isNumeric(index.group) && isNumeric(index.item),\r\n _getNormalizedItemIndex(itemElement) {\r\n var $item = $(itemElement);\r\n var $group = $item.closest(\".\".concat(LIST_GROUP_CLASS));\r\n if (!$group.length) {\r\n return -1\r\n }\r\n return combineIndex({\r\n group: this._groupElements().index($group),\r\n item: this._groupItemElements($group).index($item)\r\n })\r\n },\r\n _normalizeItemIndex: index => combineIndex(index),\r\n _denormalizeItemIndex: index => splitIndex(index),\r\n _getItemByNormalizedIndex(index) {\r\n var indices = splitIndex(index);\r\n var $group = this._groupElements().eq(indices.group);\r\n return this._groupItemElements($group).eq(indices.item)\r\n },\r\n _itemsFromSameParent: (firstIndex, secondIndex) => splitIndex(firstIndex).group === splitIndex(secondIndex).group\r\n});\r\nexport default GroupedEditStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/list/m_list.edit.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n isTouchEvent\r\n} from \"../../../events/utils/index\";\r\nimport localizationMessage from \"../../../localization/message\";\r\nimport {\r\n ListBase\r\n} from \"./m_list.base\";\r\nimport EditProvider from \"./m_list.edit.provider\";\r\nimport GroupedEditStrategy from \"./m_list.edit.strategy.grouped\";\r\nvar LIST_ITEM_SELECTED_CLASS = \"dx-list-item-selected\";\r\nvar LIST_ITEM_RESPONSE_WAIT_CLASS = \"dx-list-item-response-wait\";\r\nvar ListEdit = ListBase.inherit({\r\n _supportedKeys() {\r\n var that = this;\r\n var parent = this.callBase();\r\n var moveFocusedItem = (e, moveUp) => {\r\n var editStrategy = this._editStrategy;\r\n var focusedElement = this.option(\"focusedElement\");\r\n var focusedItemIndex = editStrategy.getNormalizedIndex(focusedElement);\r\n var isLastIndexFocused = focusedItemIndex === this._getLastItemIndex();\r\n if (isLastIndexFocused && this._dataController.isLoading()) {\r\n return\r\n }\r\n if (e.shiftKey && that.option(\"itemDragging.allowReordering\")) {\r\n var nextItemIndex = focusedItemIndex + (moveUp ? -1 : 1);\r\n var $nextItem = editStrategy.getItemElement(nextItemIndex);\r\n this.reorderItem(focusedElement, $nextItem);\r\n this.scrollToItem(focusedElement);\r\n e.preventDefault()\r\n } else {\r\n var editProvider = this._editProvider;\r\n var isInternalMoving = editProvider.handleKeyboardEvents(focusedItemIndex, moveUp);\r\n if (!isInternalMoving) {\r\n moveUp ? parent.upArrow(e) : parent.downArrow(e)\r\n }\r\n }\r\n };\r\n return extend({}, parent, {\r\n del: e => {\r\n if (that.option(\"allowItemDeleting\")) {\r\n e.preventDefault();\r\n that.deleteItem(that.option(\"focusedElement\"))\r\n }\r\n },\r\n upArrow: e => moveFocusedItem(e, true),\r\n downArrow: e => moveFocusedItem(e),\r\n enter: function(e) {\r\n if (!this._editProvider.handleEnterPressing(e)) {\r\n parent.enter.apply(this, arguments)\r\n }\r\n },\r\n space: function(e) {\r\n if (!this._editProvider.handleEnterPressing(e)) {\r\n parent.space.apply(this, arguments)\r\n }\r\n }\r\n })\r\n },\r\n _updateSelection() {\r\n this._editProvider.afterItemsRendered();\r\n this.callBase()\r\n },\r\n _getLastItemIndex() {\r\n return this._itemElements().length - 1\r\n },\r\n _refreshItemElements() {\r\n this.callBase();\r\n var excludedSelectors = this._editProvider.getExcludedItemSelectors();\r\n if (excludedSelectors.length) {\r\n this._itemElementsCache = this._itemElementsCache.not(excludedSelectors)\r\n }\r\n },\r\n _isItemStrictEquals(item1, item2) {\r\n var privateKey = item1 && item1.__dx_key__;\r\n if (privateKey && !this.key() && this._selection.isItemSelected(privateKey)) {\r\n return false\r\n }\r\n return this.callBase(item1, item2)\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n showSelectionControls: false,\r\n selectionMode: \"none\",\r\n selectAllMode: \"page\",\r\n onSelectAllValueChanged: null,\r\n selectAllText: localizationMessage.format(\"dxList-selectAll\"),\r\n menuItems: [],\r\n menuMode: \"context\",\r\n allowItemDeleting: false,\r\n itemDeleteMode: \"static\",\r\n itemDragging: {}\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device: _device => \"ios\" === _device.platform,\r\n options: {\r\n menuMode: \"slide\",\r\n itemDeleteMode: \"slideItem\"\r\n }\r\n }, {\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n itemDeleteMode: \"swipe\"\r\n }\r\n }])\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initEditProvider()\r\n },\r\n _initDataSource() {\r\n this.callBase();\r\n if (!this._isPageSelectAll()) {\r\n this._dataSource && this._dataSource.requireTotalCount(true)\r\n }\r\n },\r\n _isPageSelectAll() {\r\n return \"page\" === this.option(\"selectAllMode\")\r\n },\r\n _initEditProvider() {\r\n this._editProvider = new EditProvider(this)\r\n },\r\n _disposeEditProvider() {\r\n if (this._editProvider) {\r\n this._editProvider.dispose()\r\n }\r\n },\r\n _refreshEditProvider() {\r\n this._disposeEditProvider();\r\n this._initEditProvider()\r\n },\r\n _initEditStrategy() {\r\n if (this.option(\"grouped\")) {\r\n this._editStrategy = new GroupedEditStrategy(this)\r\n } else {\r\n this.callBase()\r\n }\r\n },\r\n _initMarkup() {\r\n this._refreshEditProvider();\r\n this.callBase()\r\n },\r\n _renderItems() {\r\n this.callBase(...arguments);\r\n this._editProvider.afterItemsRendered()\r\n },\r\n _selectedItemClass: () => LIST_ITEM_SELECTED_CLASS,\r\n _itemResponseWaitClass: () => LIST_ITEM_RESPONSE_WAIT_CLASS,\r\n _itemClickHandler(e) {\r\n var $itemElement = $(e.currentTarget);\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n return\r\n }\r\n var handledByEditProvider = this._editProvider.handleClick($itemElement, e);\r\n if (handledByEditProvider) {\r\n return\r\n }\r\n this._saveSelectionChangeEvent(e);\r\n this.callBase(...arguments)\r\n },\r\n _shouldFireContextMenuEvent() {\r\n return this.callBase(...arguments) || this._editProvider.contextMenuHandlerExists()\r\n },\r\n _itemHoldHandler(e) {\r\n var $itemElement = $(e.currentTarget);\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n return\r\n }\r\n var handledByEditProvider = isTouchEvent(e) && this._editProvider.handleContextMenu($itemElement, e);\r\n if (handledByEditProvider) {\r\n e.handledByEditProvider = true;\r\n return\r\n }\r\n this.callBase(...arguments)\r\n },\r\n _getItemContainer(changeData) {\r\n var _a;\r\n if (this.option(\"grouped\")) {\r\n var groupIndex = null === (_a = this._editStrategy.getIndexByItemData(changeData)) || void 0 === _a ? void 0 : _a.group;\r\n return this._getGroupContainerByIndex(groupIndex)\r\n }\r\n return this.callBase(changeData)\r\n },\r\n _itemContextMenuHandler(e) {\r\n var $itemElement = $(e.currentTarget);\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n return\r\n }\r\n var handledByEditProvider = !e.handledByEditProvider && this._editProvider.handleContextMenu($itemElement, e);\r\n if (handledByEditProvider) {\r\n e.preventDefault();\r\n return\r\n }\r\n this.callBase(...arguments)\r\n },\r\n _postprocessRenderItem(args) {\r\n this.callBase(...arguments);\r\n this._editProvider.modifyItemElement(args)\r\n },\r\n _clean() {\r\n this._disposeEditProvider();\r\n this.callBase()\r\n },\r\n focusListItem(index) {\r\n var $item = this._editStrategy.getItemElement(index);\r\n this.option(\"focusedElement\", $item);\r\n this.focus();\r\n this.scrollToItem(this.option(\"focusedElement\"))\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"selectAllMode\":\r\n this._initDataSource();\r\n this._dataController.pageIndex(0);\r\n this._dataController.load();\r\n break;\r\n case \"grouped\":\r\n this._clearSelectedItems();\r\n delete this._renderingGroupIndex;\r\n this._initEditStrategy();\r\n this.callBase(args);\r\n break;\r\n case \"showSelectionControls\":\r\n case \"menuItems\":\r\n case \"menuMode\":\r\n case \"allowItemDeleting\":\r\n case \"itemDeleteMode\":\r\n case \"itemDragging\":\r\n case \"selectAllText\":\r\n this._invalidate();\r\n break;\r\n case \"onSelectAllValueChanged\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n selectAll() {\r\n return this._selection.selectAll(this._isPageSelectAll())\r\n },\r\n unselectAll() {\r\n return this._selection.deselectAll(this._isPageSelectAll())\r\n },\r\n isSelectAll() {\r\n return this._selection.getSelectAllState(this._isPageSelectAll())\r\n },\r\n getFlatIndexByItemElement(itemElement) {\r\n return this._itemElements().index(itemElement)\r\n },\r\n getItemElementByFlatIndex(flatIndex) {\r\n var $itemElements = this._itemElements();\r\n if (flatIndex < 0 || flatIndex >= $itemElements.length) {\r\n return $()\r\n }\r\n return $itemElements.eq(flatIndex)\r\n },\r\n getItemByIndex(index) {\r\n return this._editStrategy.getItemDataByIndex(index)\r\n },\r\n deleteItem(itemElement) {\r\n var editStrategy = this._editStrategy;\r\n var deletingElementIndex = editStrategy.getNormalizedIndex(itemElement);\r\n var focusedElement = this.option(\"focusedElement\");\r\n var focusStateEnabled = this.option(\"focusStateEnabled\");\r\n var focusedItemIndex = focusedElement ? editStrategy.getNormalizedIndex(focusedElement) : deletingElementIndex;\r\n var isLastIndexFocused = focusedItemIndex === this._getLastItemIndex();\r\n var nextFocusedItem = isLastIndexFocused || deletingElementIndex < focusedItemIndex ? focusedItemIndex - 1 : focusedItemIndex;\r\n var promise = this.callBase(itemElement);\r\n return promise.done((function() {\r\n if (focusStateEnabled) {\r\n this.focusListItem(nextFocusedItem)\r\n }\r\n }))\r\n }\r\n});\r\nexport default ListEdit;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/list/m_list.edit.search.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport searchBoxMixin from \"../../../ui/widget/ui.search_box_mixin\";\r\nimport ListEdit from \"./m_list.edit\";\r\nvar ListSearch = ListEdit.inherit(searchBoxMixin).inherit({\r\n _addWidgetPrefix: className => \"dx-list-\".concat(className),\r\n _getCombinedFilter() {\r\n var dataController = this._dataController;\r\n var storeLoadOptions = {\r\n filter: dataController.filter()\r\n };\r\n dataController.addSearchFilter(storeLoadOptions);\r\n var {\r\n filter: filter\r\n } = storeLoadOptions;\r\n return filter\r\n },\r\n _initDataSource() {\r\n var value = this.option(\"searchValue\");\r\n var expr = this.option(\"searchExpr\");\r\n var mode = this.option(\"searchMode\");\r\n this.callBase();\r\n var dataController = this._dataController;\r\n value && value.length && dataController.searchValue(value);\r\n mode.length && dataController.searchOperation(searchBoxMixin.getOperationBySearchMode(mode));\r\n expr && dataController.searchExpr(expr)\r\n }\r\n});\r\nexport default ListSearch;\r\n","/**\r\n * DevExtreme (esm/ui/list_light.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ListEdit from \"../__internal/ui/list/m_list.edit.search\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nregisterComponent(\"dxList\", ListEdit);\r\nexport default ListEdit;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/drop_down_editor/m_drop_down_list.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport devices from \"../../../core/devices\";\r\nimport Guid from \"../../../core/guid\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n ChildDefaultTemplate\r\n} from \"../../../core/templates/child_default_template\";\r\nimport {\r\n ensureDefined,\r\n grep,\r\n noop\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 getOuterHeight\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n isDefined,\r\n isObject,\r\n isWindow\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n getWindow\r\n} from \"../../../core/utils/window\";\r\nimport dataQuery from \"../../../data/query\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport DataExpressionMixin from \"../../../ui/editor/ui.data_expression\";\r\nimport List from \"../../../ui/list_light\";\r\nimport errors from \"../../../ui/widget/ui.errors\";\r\nimport DataConverterMixin from \"../../ui/shared/m_grouped_data_converter_mixin\";\r\nimport DropDownEditor from \"./m_drop_down_editor\";\r\nvar window = getWindow();\r\nvar LIST_ITEM_SELECTOR = \".dx-list-item\";\r\nvar LIST_ITEM_DATA_KEY = \"dxListItemData\";\r\nvar DROPDOWNLIST_POPUP_WRAPPER_CLASS = \"dx-dropdownlist-popup-wrapper\";\r\nvar SEARCH_EVENT = \"input\";\r\nvar SEARCH_MODES = [\"startswith\", \"contains\", \"endwith\", \"notcontains\"];\r\nvar useCompositionEvents = \"android\" !== devices.real().platform;\r\nvar DropDownList = DropDownEditor.inherit({\r\n _supportedKeys() {\r\n var parent = this.callBase();\r\n return extend({}, parent, {\r\n tab(e) {\r\n if (this._allowSelectItemByTab()) {\r\n this._saveValueChangeEvent(e);\r\n var $focusedItem = $(this._list.option(\"focusedElement\"));\r\n $focusedItem.length && this._setSelectedElement($focusedItem)\r\n }\r\n parent.tab.apply(this, arguments)\r\n },\r\n space: noop,\r\n home: noop,\r\n end: noop\r\n })\r\n },\r\n _allowSelectItemByTab() {\r\n return this.option(\"opened\") && \"instantly\" === this.option(\"applyValueMode\")\r\n },\r\n _setSelectedElement($element) {\r\n var value = this._valueGetter(this._list._getItemData($element));\r\n this._setValue(value)\r\n },\r\n _setValue(value) {\r\n this.option(\"value\", value)\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), extend(DataExpressionMixin._dataExpressionDefaultOptions(), {\r\n displayValue: void 0,\r\n searchEnabled: false,\r\n searchMode: \"contains\",\r\n searchTimeout: 500,\r\n minSearchLength: 0,\r\n searchExpr: null,\r\n valueChangeEvent: \"input change keyup\",\r\n selectedItem: null,\r\n noDataText: messageLocalization.format(\"dxCollectionWidget-noDataText\"),\r\n encodeNoDataText: false,\r\n onSelectionChanged: null,\r\n onItemClick: noop,\r\n showDataBeforeSearch: false,\r\n grouped: false,\r\n groupTemplate: \"group\",\r\n popupPosition: {\r\n my: \"left top\",\r\n at: \"left bottom\",\r\n offset: {\r\n h: 0,\r\n v: 0\r\n },\r\n collision: \"flip\"\r\n },\r\n wrapItemText: false,\r\n useItemTextAsTitle: false\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 popupPosition: {\r\n offset: {\r\n v: -1\r\n }\r\n }\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n buttonsLocation: \"bottom center\"\r\n }\r\n }])\r\n },\r\n _setOptionsByReference() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n value: true,\r\n selectedItem: true,\r\n displayValue: true\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initDataExpressions();\r\n this._initActions();\r\n this._setListDataSource();\r\n this._validateSearchMode();\r\n this._clearSelectedItem();\r\n this._initItems()\r\n },\r\n _setListFocusedElementOptionChange() {\r\n this._list._updateParentActiveDescendant = this._updateActiveDescendant.bind(this)\r\n },\r\n _initItems() {\r\n var {\r\n items: items\r\n } = this.option();\r\n if (items && !items.length && this._dataSource) {\r\n this.option().items = this._dataSource.items()\r\n }\r\n },\r\n _initActions() {\r\n this._initContentReadyAction();\r\n this._initSelectionChangedAction();\r\n this._initItemClickAction()\r\n },\r\n _initContentReadyAction() {\r\n this._contentReadyAction = this._createActionByOption(\"onContentReady\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initSelectionChangedAction() {\r\n this._selectionChangedAction = this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initItemClickAction() {\r\n this._itemClickAction = this._createActionByOption(\"onItemClick\")\r\n },\r\n _initTemplates() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n item: new ChildDefaultTemplate(\"item\")\r\n })\r\n },\r\n _isEditable() {\r\n return this.callBase() || this.option(\"searchEnabled\")\r\n },\r\n _saveFocusOnWidget() {\r\n if (this._list && this._list.initialOption(\"focusStateEnabled\")) {\r\n this._focusInput()\r\n }\r\n },\r\n _fitIntoRange(value, start, end) {\r\n if (value > end) {\r\n return start\r\n }\r\n if (value < start) {\r\n return end\r\n }\r\n return value\r\n },\r\n _items() {\r\n var items = this._getPlainItems(!this._list && this._dataSource.items());\r\n var availableItems = new dataQuery(items).filter(\"disabled\", \"<>\", true).toArray();\r\n return availableItems\r\n },\r\n _calcNextItem(step) {\r\n var items = this._items();\r\n var nextIndex = this._fitIntoRange(this._getSelectedIndex() + step, 0, items.length - 1);\r\n return items[nextIndex]\r\n },\r\n _getSelectedIndex() {\r\n var items = this._items();\r\n var selectedItem = this.option(\"selectedItem\");\r\n var result = -1;\r\n each(items, (index, item) => {\r\n if (this._isValueEquals(item, selectedItem)) {\r\n result = index;\r\n return false\r\n }\r\n });\r\n return result\r\n },\r\n _createPopup() {\r\n this.callBase();\r\n this._updateCustomBoundaryContainer();\r\n this._popup.$wrapper().addClass(this._popupWrapperClass());\r\n var $popupContent = this._popup.$content();\r\n eventsEngine.off($popupContent, \"mouseup\");\r\n eventsEngine.on($popupContent, \"mouseup\", this._saveFocusOnWidget.bind(this))\r\n },\r\n _updateCustomBoundaryContainer() {\r\n var customContainer = this.option(\"dropDownOptions.container\");\r\n var $container = customContainer && $(customContainer);\r\n if ($container && $container.length && !isWindow($container.get(0))) {\r\n var $containerWithParents = [].slice.call($container.parents());\r\n $containerWithParents.unshift($container.get(0));\r\n each($containerWithParents, (i, parent) => {\r\n if (parent === $(\"body\").get(0)) {\r\n return false\r\n }\r\n if (\"hidden\" === window.getComputedStyle(parent).overflowY) {\r\n this._$customBoundaryContainer = $(parent);\r\n return false\r\n }\r\n })\r\n }\r\n },\r\n _popupWrapperClass: () => DROPDOWNLIST_POPUP_WRAPPER_CLASS,\r\n _renderInputValue() {\r\n var value = this._getCurrentValue();\r\n this._rejectValueLoading();\r\n return this._loadInputValue(value, this._setSelectedItem.bind(this)).always(this.callBase.bind(this, value))\r\n },\r\n _loadInputValue(value, callback) {\r\n return this._loadItem(value).always(callback)\r\n },\r\n _getItemFromPlain(value, cache) {\r\n var plainItems;\r\n var selectedItem;\r\n if (cache && \"object\" !== typeof value) {\r\n if (!cache.itemByValue) {\r\n cache.itemByValue = {};\r\n plainItems = this._getPlainItems();\r\n plainItems.forEach((function(item) {\r\n cache.itemByValue[this._valueGetter(item)] = item\r\n }), this)\r\n }\r\n selectedItem = cache.itemByValue[value]\r\n }\r\n if (!selectedItem) {\r\n plainItems = this._getPlainItems();\r\n selectedItem = grep(plainItems, item => this._isValueEquals(this._valueGetter(item), value))[0]\r\n }\r\n return selectedItem\r\n },\r\n _loadItem(value, cache) {\r\n var selectedItem = this._getItemFromPlain(value, cache);\r\n return void 0 !== selectedItem ? Deferred().resolve(selectedItem).promise() : this._loadValue(value)\r\n },\r\n _getPlainItems(items) {\r\n var plainItems = [];\r\n items = items || this.option(\"items\") || this._dataSource.items() || [];\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i] && items[i].items) {\r\n plainItems = plainItems.concat(items[i].items)\r\n } else {\r\n plainItems.push(items[i])\r\n }\r\n }\r\n return plainItems\r\n },\r\n _updateActiveDescendant($target) {\r\n var _a;\r\n var opened = this.option(\"opened\");\r\n var listFocusedItemId = null === (_a = this._list) || void 0 === _a ? void 0 : _a.getFocusedItemId();\r\n var isElementOnDom = $(\"#\".concat(listFocusedItemId)).length > 0;\r\n var activedescendant = opened && isElementOnDom && listFocusedItemId;\r\n this.setAria({\r\n activedescendant: activedescendant || null\r\n }, $target)\r\n },\r\n _setSelectedItem(item) {\r\n var displayValue = this._displayValue(item);\r\n this.option(\"selectedItem\", ensureDefined(item, null));\r\n this.option(\"displayValue\", displayValue)\r\n },\r\n _displayValue(item) {\r\n return this._displayGetter(item)\r\n },\r\n _refreshSelected() {\r\n var cache = {};\r\n this._listItemElements().each((_, itemElement) => {\r\n var $itemElement = $(itemElement);\r\n var itemValue = this._valueGetter($itemElement.data(LIST_ITEM_DATA_KEY));\r\n var isItemSelected = this._isSelectedValue(itemValue, cache);\r\n if (isItemSelected) {\r\n this._list.selectItem($itemElement)\r\n } else {\r\n this._list.unselectItem($itemElement)\r\n }\r\n })\r\n },\r\n _popupShownHandler() {\r\n this.callBase();\r\n this._setFocusPolicy()\r\n },\r\n _setFocusPolicy() {\r\n if (!this.option(\"focusStateEnabled\") || !this._list) {\r\n return\r\n }\r\n this._list.option(\"focusedElement\", null)\r\n },\r\n _isSelectedValue(value) {\r\n return this._isValueEquals(value, this.option(\"value\"))\r\n },\r\n _validateSearchMode() {\r\n var searchMode = this.option(\"searchMode\");\r\n var normalizedSearchMode = searchMode.toLowerCase();\r\n if (!SEARCH_MODES.includes(normalizedSearchMode)) {\r\n throw errors.Error(\"E1019\", searchMode)\r\n }\r\n },\r\n _clearSelectedItem() {\r\n this.option(\"selectedItem\", null)\r\n },\r\n _processDataSourceChanging() {\r\n this._initDataController();\r\n this._setListOption(\"_dataController\", this._dataController);\r\n this._setListDataSource();\r\n this._renderInputValue().fail(() => {\r\n if (this._isCustomValueAllowed()) {\r\n return\r\n }\r\n this._clearSelectedItem()\r\n })\r\n },\r\n _isCustomValueAllowed() {\r\n return this.option(\"displayCustomValue\")\r\n },\r\n clear() {\r\n this.callBase();\r\n this._clearFilter();\r\n this._clearSelectedItem()\r\n },\r\n _listItemElements() {\r\n return this._$list ? this._$list.find(LIST_ITEM_SELECTOR) : $()\r\n },\r\n _popupConfig() {\r\n return extend(this.callBase(), {\r\n templatesRenderAsynchronously: false,\r\n autoResizeEnabled: false,\r\n maxHeight: this._getMaxHeight.bind(this)\r\n })\r\n },\r\n _renderPopupContent() {\r\n this.callBase();\r\n this._renderList()\r\n },\r\n _getKeyboardListeners() {\r\n var canListHaveFocus = this._canListHaveFocus();\r\n return this.callBase().concat([!canListHaveFocus && this._list])\r\n },\r\n _renderList() {\r\n this._listId = \"dx-\".concat((new Guid)._value);\r\n var $list = $(\"<div>\").attr(\"id\", this._listId).appendTo(this._popup.$content());\r\n this._$list = $list;\r\n this._list = this._createComponent($list, List, this._listConfig());\r\n this._refreshList();\r\n this._renderPreventBlurOnListClick();\r\n this._setListFocusedElementOptionChange()\r\n },\r\n _renderPreventBlurOnListClick() {\r\n var eventName = addNamespace(\"mousedown\", \"dxDropDownList\");\r\n eventsEngine.off(this._$list, eventName);\r\n eventsEngine.on(this._$list, eventName, e => e.preventDefault())\r\n },\r\n _getControlsAria() {\r\n return this._list && this._listId\r\n },\r\n _renderOpenedState() {\r\n this.callBase();\r\n this._list && this._updateActiveDescendant();\r\n this.setAria(\"owns\", this._popup && this._popupContentId)\r\n },\r\n _getAriaHasPopup: () => \"listbox\",\r\n _refreshList() {\r\n if (this._list && this._shouldRefreshDataSource()) {\r\n this._setListDataSource()\r\n }\r\n },\r\n _shouldRefreshDataSource() {\r\n var dataSourceProvided = !!this._list.option(\"dataSource\");\r\n return dataSourceProvided !== this._needPassDataSourceToList()\r\n },\r\n _isDesktopDevice: () => \"desktop\" === devices.real().deviceType,\r\n _listConfig() {\r\n var options = {\r\n selectionMode: \"single\",\r\n _templates: this.option(\"_templates\"),\r\n templateProvider: this.option(\"templateProvider\"),\r\n noDataText: this.option(\"noDataText\"),\r\n encodeNoDataText: this.option(\"encodeNoDataText\"),\r\n grouped: this.option(\"grouped\"),\r\n wrapItemText: this.option(\"wrapItemText\"),\r\n useItemTextAsTitle: this.option(\"useItemTextAsTitle\"),\r\n onContentReady: this._listContentReadyHandler.bind(this),\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n indicateLoading: false,\r\n keyExpr: this._getCollectionKeyExpr(),\r\n displayExpr: this._displayGetterExpr(),\r\n groupTemplate: this.option(\"groupTemplate\"),\r\n onItemClick: this._listItemClickAction.bind(this),\r\n dataSource: this._getDataSource(),\r\n _dataController: this._dataController,\r\n hoverStateEnabled: this._isDesktopDevice() ? this.option(\"hoverStateEnabled\") : false,\r\n focusStateEnabled: this._isDesktopDevice() ? this.option(\"focusStateEnabled\") : false\r\n };\r\n if (!this._canListHaveFocus()) {\r\n options.tabIndex = null\r\n }\r\n return options\r\n },\r\n _canListHaveFocus: () => false,\r\n _getDataSource() {\r\n return this._needPassDataSourceToList() ? this._dataSource : null\r\n },\r\n _dataSourceOptions: () => ({\r\n paginate: false\r\n }),\r\n _getGroupedOption() {\r\n return this.option(\"grouped\")\r\n },\r\n _dataSourceFromUrlLoadMode: () => \"raw\",\r\n _listContentReadyHandler() {\r\n this._list = this._list || this._$list.dxList(\"instance\");\r\n if (!this.option(\"deferRendering\")) {\r\n this._refreshSelected()\r\n }\r\n this._updatePopupWidth();\r\n this._updateListDimensions();\r\n this._contentReadyAction()\r\n },\r\n _setListOption(optionName, value) {\r\n this._setWidgetOption(\"_list\", arguments)\r\n },\r\n _listItemClickAction(e) {\r\n this._listItemClickHandler(e);\r\n this._itemClickAction(e)\r\n },\r\n _listItemClickHandler: noop,\r\n _setListDataSource() {\r\n if (!this._list) {\r\n return\r\n }\r\n this._setListOption(\"dataSource\", this._getDataSource());\r\n if (!this._needPassDataSourceToList()) {\r\n this._setListOption(\"items\", [])\r\n }\r\n },\r\n _needPassDataSourceToList() {\r\n return this.option(\"showDataBeforeSearch\") || this._isMinSearchLengthExceeded()\r\n },\r\n _isMinSearchLengthExceeded() {\r\n return this._searchValue().toString().length >= this.option(\"minSearchLength\")\r\n },\r\n _needClearFilter() {\r\n return this._canKeepDataSource() ? false : this._needPassDataSourceToList()\r\n },\r\n _canKeepDataSource() {\r\n var isMinSearchLengthExceeded = this._isMinSearchLengthExceeded();\r\n return this._dataController.isLoaded() && this.option(\"showDataBeforeSearch\") && this.option(\"minSearchLength\") && !isMinSearchLengthExceeded && !this._isLastMinSearchLengthExceeded\r\n },\r\n _searchValue() {\r\n return this._input().val() || \"\"\r\n },\r\n _getSearchEvent() {\r\n return addNamespace(SEARCH_EVENT, \"\".concat(this.NAME, \"Search\"))\r\n },\r\n _getCompositionStartEvent() {\r\n return addNamespace(\"compositionstart\", \"\".concat(this.NAME, \"CompositionStart\"))\r\n },\r\n _getCompositionEndEvent() {\r\n return addNamespace(\"compositionend\", \"\".concat(this.NAME, \"CompositionEnd\"))\r\n },\r\n _getSetFocusPolicyEvent() {\r\n return addNamespace(\"input\", \"\".concat(this.NAME, \"FocusPolicy\"))\r\n },\r\n _renderEvents() {\r\n this.callBase();\r\n eventsEngine.on(this._input(), this._getSetFocusPolicyEvent(), () => {\r\n this._setFocusPolicy()\r\n });\r\n if (this._shouldRenderSearchEvent()) {\r\n eventsEngine.on(this._input(), this._getSearchEvent(), e => {\r\n this._searchHandler(e)\r\n });\r\n if (useCompositionEvents) {\r\n eventsEngine.on(this._input(), this._getCompositionStartEvent(), () => {\r\n this._isTextCompositionInProgress(true)\r\n });\r\n eventsEngine.on(this._input(), this._getCompositionEndEvent(), e => {\r\n this._isTextCompositionInProgress(void 0);\r\n this._searchHandler(e, this._searchValue())\r\n })\r\n }\r\n }\r\n },\r\n _shouldRenderSearchEvent() {\r\n return this.option(\"searchEnabled\")\r\n },\r\n _refreshEvents() {\r\n eventsEngine.off(this._input(), this._getSearchEvent());\r\n eventsEngine.off(this._input(), this._getSetFocusPolicyEvent());\r\n if (useCompositionEvents) {\r\n eventsEngine.off(this._input(), this._getCompositionStartEvent());\r\n eventsEngine.off(this._input(), this._getCompositionEndEvent())\r\n }\r\n this.callBase()\r\n },\r\n _isTextCompositionInProgress(value) {\r\n if (arguments.length) {\r\n this._isTextComposition = value\r\n } else {\r\n return this._isTextComposition\r\n }\r\n },\r\n _searchHandler(e, searchValue) {\r\n if (this._isTextCompositionInProgress()) {\r\n return\r\n }\r\n if (!this._isMinSearchLengthExceeded()) {\r\n this._searchCanceled();\r\n return\r\n }\r\n var searchTimeout = this.option(\"searchTimeout\");\r\n if (searchTimeout) {\r\n this._clearSearchTimer();\r\n this._searchTimer = setTimeout(() => {\r\n this._searchDataSource(searchValue)\r\n }, searchTimeout)\r\n } else {\r\n this._searchDataSource(searchValue)\r\n }\r\n },\r\n _searchCanceled() {\r\n this._clearSearchTimer();\r\n if (this._needClearFilter()) {\r\n this._filterDataSource(null)\r\n }\r\n this._refreshList()\r\n },\r\n _searchDataSource() {\r\n var searchValue = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._searchValue();\r\n this._filterDataSource(searchValue)\r\n },\r\n _filterDataSource(searchValue) {\r\n this._clearSearchTimer();\r\n var dataController = this._dataController;\r\n dataController.searchExpr(this.option(\"searchExpr\") || this._displayGetterExpr());\r\n dataController.searchOperation(this.option(\"searchMode\"));\r\n dataController.searchValue(searchValue);\r\n dataController.load().done(this._dataSourceFiltered.bind(this, searchValue))\r\n },\r\n _clearFilter() {\r\n var dataController = this._dataController;\r\n dataController.searchValue() && dataController.searchValue(null)\r\n },\r\n _dataSourceFiltered() {\r\n this._isLastMinSearchLengthExceeded = this._isMinSearchLengthExceeded();\r\n this._refreshList();\r\n this._refreshPopupVisibility()\r\n },\r\n _shouldOpenPopup() {\r\n return this._hasItemsToShow()\r\n },\r\n _refreshPopupVisibility() {\r\n if (this.option(\"readOnly\") || !this._searchValue()) {\r\n return\r\n }\r\n var shouldOpenPopup = this._shouldOpenPopup();\r\n if (shouldOpenPopup && !this._isFocused()) {\r\n return\r\n }\r\n this.option(\"opened\", shouldOpenPopup);\r\n if (shouldOpenPopup) {\r\n this._updatePopupWidth();\r\n this._updateListDimensions()\r\n }\r\n },\r\n _dataSourceChangedHandler(newItems) {\r\n if (0 === this._dataController.pageIndex()) {\r\n this.option().items = newItems\r\n } else {\r\n this.option().items = this.option().items.concat(newItems)\r\n }\r\n },\r\n _hasItemsToShow() {\r\n var dataController = this._dataController;\r\n var resultItems = dataController.items() || [];\r\n var resultAmount = resultItems.length;\r\n var isMinSearchLengthExceeded = this._needPassDataSourceToList();\r\n return !!(isMinSearchLengthExceeded && resultAmount)\r\n },\r\n _clearSearchTimer() {\r\n clearTimeout(this._searchTimer);\r\n delete this._searchTimer\r\n },\r\n _popupShowingHandler() {\r\n this._updatePopupWidth();\r\n this._updateListDimensions()\r\n },\r\n _dimensionChanged() {\r\n this.callBase();\r\n this._updateListDimensions()\r\n },\r\n _needPopupRepaint() {\r\n var dataController = this._dataController;\r\n var currentPageIndex = dataController.pageIndex();\r\n var needRepaint = isDefined(this._pageIndex) && currentPageIndex <= this._pageIndex || dataController.isLastPage() && !this._list._scrollViewIsFull();\r\n this._pageIndex = currentPageIndex;\r\n return needRepaint\r\n },\r\n _updateListDimensions() {\r\n if (!this._popup) {\r\n return\r\n }\r\n if (this._needPopupRepaint()) {\r\n this._popup.repaint()\r\n }\r\n this._list && this._list.updateDimensions()\r\n },\r\n _getMaxHeight() {\r\n var $element = this.$element();\r\n var $customBoundaryContainer = this._$customBoundaryContainer;\r\n var offsetTop = $element.offset().top - ($customBoundaryContainer ? $customBoundaryContainer.offset().top : 0);\r\n var windowHeight = getOuterHeight(window);\r\n var containerHeight = $customBoundaryContainer ? Math.min(getOuterHeight($customBoundaryContainer), windowHeight) : windowHeight;\r\n var maxHeight = Math.max(offsetTop, containerHeight - offsetTop - getOuterHeight($element));\r\n return Math.min(.5 * containerHeight, maxHeight)\r\n },\r\n _clean() {\r\n if (this._list) {\r\n delete this._list\r\n }\r\n delete this._isLastMinSearchLengthExceeded;\r\n this.callBase()\r\n },\r\n _dispose() {\r\n this._clearSearchTimer();\r\n this.callBase()\r\n },\r\n _setCollectionWidgetOption() {\r\n this._setListOption.apply(this, arguments)\r\n },\r\n _setSubmitValue() {\r\n var value = this.option(\"value\");\r\n var submitValue = this._shouldUseDisplayValue(value) ? this._displayGetter(value) : value;\r\n this._getSubmitElement().val(submitValue)\r\n },\r\n _shouldUseDisplayValue(value) {\r\n return \"this\" === this.option(\"valueExpr\") && isObject(value)\r\n },\r\n _optionChanged(args) {\r\n this._dataExpressionOptionChanged(args);\r\n switch (args.name) {\r\n case \"hoverStateEnabled\":\r\n case \"focusStateEnabled\":\r\n this._isDesktopDevice() && this._setListOption(args.name, args.value);\r\n this.callBase(args);\r\n break;\r\n case \"items\":\r\n if (!this.option(\"dataSource\")) {\r\n this._processDataSourceChanging()\r\n }\r\n break;\r\n case \"dataSource\":\r\n this._processDataSourceChanging();\r\n break;\r\n case \"valueExpr\":\r\n this._renderValue();\r\n this._setListOption(\"keyExpr\", this._getCollectionKeyExpr());\r\n break;\r\n case \"displayExpr\":\r\n this._renderValue();\r\n this._setListOption(\"displayExpr\", this._displayGetterExpr());\r\n break;\r\n case \"searchMode\":\r\n this._validateSearchMode();\r\n break;\r\n case \"minSearchLength\":\r\n this._refreshList();\r\n break;\r\n case \"searchEnabled\":\r\n case \"showDataBeforeSearch\":\r\n case \"searchExpr\":\r\n this._invalidate();\r\n break;\r\n case \"onContentReady\":\r\n this._initContentReadyAction();\r\n break;\r\n case \"onSelectionChanged\":\r\n this._initSelectionChangedAction();\r\n break;\r\n case \"onItemClick\":\r\n this._initItemClickAction();\r\n break;\r\n case \"grouped\":\r\n case \"groupTemplate\":\r\n case \"wrapItemText\":\r\n case \"noDataText\":\r\n case \"encodeNoDataText\":\r\n case \"useItemTextAsTitle\":\r\n this._setListOption(args.name);\r\n break;\r\n case \"displayValue\":\r\n this.option(\"text\", args.value);\r\n break;\r\n case \"itemTemplate\":\r\n case \"searchTimeout\":\r\n break;\r\n case \"selectedItem\":\r\n if (args.previousValue !== args.value) {\r\n this._selectionChangedAction({\r\n selectedItem: args.value\r\n })\r\n }\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n}).include(DataExpressionMixin, DataConverterMixin);\r\nregisterComponent(\"dxDropDownList\", DropDownList);\r\nexport default DropDownList;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/m_select_box.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport \"../ui/list/modules/m_selection\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport errors from \"../../core/errors\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n ensureDefined,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n Deferred,\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 isDefined,\r\n isPromise\r\n} from \"../../core/utils/type\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport DropDownList from \"../../ui/drop_down_editor/ui.drop_down_list\";\r\nvar DISABLED_STATE_SELECTOR = \".dx-state-disabled\";\r\nvar SELECTBOX_CLASS = \"dx-selectbox\";\r\nvar SELECTBOX_POPUP_CLASS = \"dx-selectbox-popup\";\r\nvar SELECTBOX_CONTAINER_CLASS = \"dx-selectbox-container\";\r\nvar SELECTBOX_POPUP_WRAPPER_CLASS = \"dx-selectbox-popup-wrapper\";\r\nvar SelectBox = DropDownList.inherit({\r\n _supportedKeys() {\r\n var that = this;\r\n var parent = this.callBase();\r\n var clearSelectBox = function(e) {\r\n var isEditable = this._isEditable();\r\n if (!isEditable) {\r\n if (this.option(\"showClearButton\")) {\r\n e.preventDefault();\r\n this.clear()\r\n }\r\n } else if (this._valueSubstituted()) {\r\n this._preventFiltering = true\r\n }\r\n this._savedTextRemoveEvent = e;\r\n this._preventSubstitution = true\r\n };\r\n var searchIfNeeded = function() {\r\n if (that.option(\"searchEnabled\") && that._valueSubstituted()) {\r\n that._searchHandler()\r\n }\r\n };\r\n return extend({}, parent, {\r\n tab() {\r\n var {\r\n opened: opened\r\n } = this.option();\r\n var popupHasFocusableElements = opened && !!this._popup.getFocusableElements().length;\r\n if (!popupHasFocusableElements) {\r\n this._resetCaretPosition(true)\r\n }\r\n parent.tab && parent.tab.apply(this, arguments);\r\n if (!popupHasFocusableElements) {\r\n this._cancelSearchIfNeed()\r\n }\r\n },\r\n upArrow(e) {\r\n if (parent.upArrow.apply(this, arguments)) {\r\n if (!this.option(\"opened\")) {\r\n this._setNextValue(e)\r\n }\r\n return true\r\n }\r\n return\r\n },\r\n downArrow(e) {\r\n if (parent.downArrow.apply(this, arguments)) {\r\n if (!this.option(\"opened\")) {\r\n this._setNextValue(e)\r\n }\r\n return true\r\n }\r\n return\r\n },\r\n leftArrow() {\r\n var _a;\r\n searchIfNeeded();\r\n null === (_a = parent.leftArrow) || void 0 === _a ? void 0 : _a.apply(this, arguments)\r\n },\r\n rightArrow() {\r\n searchIfNeeded();\r\n parent.rightArrow && parent.rightArrow.apply(this, arguments)\r\n },\r\n home() {\r\n searchIfNeeded();\r\n parent.home && parent.home.apply(this, arguments)\r\n },\r\n end() {\r\n searchIfNeeded();\r\n parent.end && parent.end.apply(this, arguments)\r\n },\r\n escape() {\r\n var result = parent.escape && parent.escape.apply(this, arguments);\r\n this._cancelEditing();\r\n return null !== result && void 0 !== result ? result : true\r\n },\r\n enter(e) {\r\n var isOpened = this.option(\"opened\");\r\n var inputText = this._input().val().trim();\r\n var isCustomText = inputText && this._list && !this._list.option(\"focusedElement\");\r\n if (!inputText && isDefined(this.option(\"value\")) && this.option(\"allowClearing\")) {\r\n this._saveValueChangeEvent(e);\r\n this.option({\r\n selectedItem: null,\r\n value: null\r\n });\r\n this.close()\r\n } else {\r\n if (this.option(\"acceptCustomValue\")) {\r\n e.preventDefault();\r\n if (isCustomText) {\r\n if (isOpened) {\r\n this._toggleOpenState()\r\n }\r\n this._valueChangeEventHandler(e)\r\n }\r\n return isOpened\r\n }\r\n if (parent.enter && parent.enter.apply(this, arguments)) {\r\n return isOpened\r\n }\r\n }\r\n },\r\n space(e) {\r\n var isOpened = this.option(\"opened\");\r\n var isSearchEnabled = this.option(\"searchEnabled\");\r\n var acceptCustomValue = this.option(\"acceptCustomValue\");\r\n if (!isOpened || isSearchEnabled || acceptCustomValue) {\r\n return\r\n }\r\n e.preventDefault();\r\n this._valueChangeEventHandler(e);\r\n return true\r\n },\r\n backspace: clearSelectBox,\r\n del: clearSelectBox\r\n })\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n placeholder: messageLocalization.format(\"Select\"),\r\n fieldTemplate: null,\r\n customItemCreateEvent: \"change\",\r\n valueChangeEvent: \"change\",\r\n acceptCustomValue: false,\r\n onCustomItemCreating(e) {\r\n if (!isDefined(e.customItem)) {\r\n e.customItem = e.text\r\n }\r\n },\r\n showSelectionControls: false,\r\n allowClearing: true,\r\n tooltipEnabled: false,\r\n openOnFieldClick: true,\r\n showDropDownButton: true,\r\n displayCustomValue: false,\r\n useHiddenSubmitElement: true\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initCustomItemCreatingAction()\r\n },\r\n _initMarkup() {\r\n this.$element().addClass(SELECTBOX_CLASS);\r\n this._renderTooltip();\r\n this.callBase();\r\n this._$container.addClass(SELECTBOX_CONTAINER_CLASS)\r\n },\r\n _createPopup() {\r\n this.callBase();\r\n this._popup.$element().addClass(SELECTBOX_POPUP_CLASS);\r\n this._popup.$overlayContent().attr(\"tabindex\", -1)\r\n },\r\n _popupWrapperClass() {\r\n return \"\".concat(this.callBase(), \" \").concat(SELECTBOX_POPUP_WRAPPER_CLASS)\r\n },\r\n _setDeprecatedOptions() {\r\n this.callBase();\r\n extend(this._deprecatedOptions, {\r\n valueChangeEvent: {\r\n since: \"22.2\",\r\n alias: \"customItemCreateEvent\"\r\n }\r\n })\r\n },\r\n _cancelEditing() {\r\n if (!this.option(\"searchEnabled\") && this._list) {\r\n this._focusListElement(null);\r\n this._updateField(this.option(\"selectedItem\"))\r\n }\r\n },\r\n _renderOpenedState() {\r\n this.callBase();\r\n if (this.option(\"opened\")) {\r\n this._scrollToSelectedItem();\r\n this._focusSelectedElement()\r\n }\r\n },\r\n _focusSelectedElement() {\r\n var _a;\r\n var searchValue = this._searchValue();\r\n if (!searchValue) {\r\n this._focusListElement(null);\r\n return\r\n }\r\n var {\r\n items: items,\r\n selectedItem: selectedItem\r\n } = this.option();\r\n var $listItems = this._list._itemElements();\r\n var index = null !== (_a = null === items || void 0 === items ? void 0 : items.indexOf(selectedItem)) && void 0 !== _a ? _a : -1;\r\n var focusedElement = -1 !== index && !this._isCustomItemSelected() ? $listItems.eq(index) : null;\r\n this._focusListElement(focusedElement)\r\n },\r\n _renderFocusedElement() {\r\n if (!this._list) {\r\n return\r\n }\r\n var searchValue = this._searchValue();\r\n if (!searchValue || this.option(\"acceptCustomValue\")) {\r\n this._focusListElement(null);\r\n return\r\n }\r\n var $listItems = this._list._itemElements();\r\n var focusedElement = $listItems.not(DISABLED_STATE_SELECTOR).eq(0);\r\n this._focusListElement(focusedElement)\r\n },\r\n _focusListElement(element) {\r\n this._preventInputValueRender = true;\r\n this._list.option(\"focusedElement\", getPublicElement(element));\r\n delete this._preventInputValueRender\r\n },\r\n _scrollToSelectedItem() {\r\n this._list && this._list.scrollToItem(this._list.option(\"selectedItem\"))\r\n },\r\n _listContentReadyHandler() {\r\n this.callBase();\r\n var isPaginate = this._dataController.paginate();\r\n if (isPaginate && this._needPopupRepaint()) {\r\n return\r\n }\r\n this._scrollToSelectedItem()\r\n },\r\n _renderValue() {\r\n this._renderInputValue();\r\n this._setSubmitValue();\r\n return Deferred().resolve()\r\n },\r\n _renderInputValue() {\r\n return this.callBase().always(() => {\r\n this._renderInputValueAsync()\r\n })\r\n },\r\n _renderInputValueAsync() {\r\n this._renderTooltip();\r\n this._renderInputValueImpl().always(() => {\r\n this._refreshSelected()\r\n })\r\n },\r\n _renderInputValueImpl() {\r\n this._renderField();\r\n return Deferred().resolve()\r\n },\r\n _setNextItem(step) {\r\n var item = this._calcNextItem(step);\r\n var value = this._valueGetter(item);\r\n this._setValue(value)\r\n },\r\n _setNextValue(e) {\r\n var dataSourceIsLoaded = this._dataController.isLoaded() ? Deferred().resolve() : this._dataController.load();\r\n dataSourceIsLoaded.done(() => {\r\n var selectedIndex = this._getSelectedIndex();\r\n var hasPages = this._dataController.pageSize();\r\n var isLastPage = this._dataController.isLastPage();\r\n var isLastItem = selectedIndex === this._items().length - 1;\r\n this._saveValueChangeEvent(e);\r\n var step = \"downArrow\" === normalizeKeyName(e) ? 1 : -1;\r\n if (hasPages && !isLastPage && isLastItem && step > 0) {\r\n if (!this._popup) {\r\n this._createPopup()\r\n }\r\n if (!this._dataController.isLoading()) {\r\n this._list._loadNextPage().done(this._setNextItem.bind(this, step))\r\n }\r\n } else {\r\n this._setNextItem(step)\r\n }\r\n })\r\n },\r\n _setSelectedItem(item) {\r\n var isUnknownItem = !this._isCustomValueAllowed() && void 0 === item;\r\n this.callBase(isUnknownItem ? null : item);\r\n if (!isUnknownItem && (!this._isEditable() || this._isCustomItemSelected())) {\r\n this._setListOption(\"selectedItem\", this.option(\"selectedItem\"))\r\n }\r\n },\r\n _isCustomValueAllowed() {\r\n return this.option(\"acceptCustomValue\") || this.callBase()\r\n },\r\n _displayValue(item) {\r\n item = !isDefined(item) && this._isCustomValueAllowed() ? this.option(\"value\") : item;\r\n return this.callBase(item)\r\n },\r\n _listConfig() {\r\n var result = extend(this.callBase(), {\r\n pageLoadMode: \"scrollBottom\",\r\n onSelectionChanged: this._getSelectionChangeHandler(),\r\n selectedItem: this.option(\"selectedItem\"),\r\n onFocusedItemChanged: this._listFocusedItemChangeHandler.bind(this)\r\n });\r\n if (this.option(\"showSelectionControls\")) {\r\n extend(result, {\r\n showSelectionControls: true,\r\n selectByClick: true\r\n })\r\n }\r\n return result\r\n },\r\n _listFocusedItemChangeHandler(e) {\r\n if (this._preventInputValueRender) {\r\n return\r\n }\r\n var list = e.component;\r\n var focusedElement = $(list.option(\"focusedElement\"));\r\n var focusedItem = list._getItemData(focusedElement);\r\n this._updateField(focusedItem)\r\n },\r\n _updateField(item) {\r\n var fieldTemplate = this._getTemplateByOption(\"fieldTemplate\");\r\n if (!(fieldTemplate && this.option(\"fieldTemplate\"))) {\r\n var text = this._displayGetter(item);\r\n this.option(\"text\", text);\r\n this._renderDisplayText(text);\r\n return\r\n }\r\n this._renderField()\r\n },\r\n _getSelectionChangeHandler() {\r\n return this.option(\"showSelectionControls\") ? this._selectionChangeHandler.bind(this) : noop\r\n },\r\n _selectionChangeHandler(e) {\r\n each(e.addedItems || [], (_, addedItem) => {\r\n this._setValue(this._valueGetter(addedItem))\r\n })\r\n },\r\n _getActualSearchValue() {\r\n return this._dataController.searchValue()\r\n },\r\n _toggleOpenState(isVisible) {\r\n if (this.option(\"disabled\")) {\r\n return\r\n }\r\n isVisible = arguments.length ? isVisible : !this.option(\"opened\");\r\n if (!isVisible && !this._shouldClearFilter()) {\r\n this._restoreInputText(true)\r\n }\r\n if (this._wasSearch() && isVisible) {\r\n this._wasSearch(false);\r\n var showDataImmediately = this.option(\"showDataBeforeSearch\") || this._isMinSearchLengthExceeded();\r\n if (showDataImmediately && this._dataController.getDataSource()) {\r\n if (this._searchTimer) {\r\n return\r\n }\r\n var searchValue = this._getActualSearchValue();\r\n searchValue && this._wasSearch(true);\r\n this._filterDataSource(searchValue || null)\r\n } else {\r\n this._setListOption(\"items\", [])\r\n }\r\n }\r\n if (isVisible) {\r\n this._scrollToSelectedItem()\r\n }\r\n this.callBase(isVisible)\r\n },\r\n _renderTooltip() {\r\n if (this.option(\"tooltipEnabled\")) {\r\n this.$element().attr(\"title\", this.option(\"displayValue\"))\r\n }\r\n },\r\n _renderDimensions() {\r\n this.callBase();\r\n this._updatePopupWidth();\r\n this._updateListDimensions()\r\n },\r\n _isValueEqualInputText() {\r\n var initialSelectedItem = this.option(\"selectedItem\");\r\n if (null === initialSelectedItem) {\r\n return false\r\n }\r\n var value = this._displayGetter(initialSelectedItem);\r\n var displayValue = value ? String(value) : \"\";\r\n var inputText = this._searchValue();\r\n return displayValue === inputText\r\n },\r\n _popupHidingHandler() {\r\n if (this._isValueEqualInputText()) {\r\n this._cancelEditing()\r\n }\r\n this.callBase()\r\n },\r\n _popupHiddenHandler() {\r\n this.callBase();\r\n if (this._shouldCancelSearch()) {\r\n this._wasSearch(false);\r\n this._searchCanceled();\r\n this._shouldCancelSearch(false)\r\n }\r\n },\r\n _restoreInputText(saveEditingValue) {\r\n if (this.option(\"readOnly\")) {\r\n return\r\n }\r\n this._loadItemDeferred && this._loadItemDeferred.always(() => {\r\n var {\r\n acceptCustomValue: acceptCustomValue,\r\n text: text,\r\n selectedItem: initialSelectedItem\r\n } = this.option();\r\n if (acceptCustomValue) {\r\n if (!saveEditingValue && !this._isValueChanging) {\r\n this._updateField(null !== initialSelectedItem && void 0 !== initialSelectedItem ? initialSelectedItem : this._createCustomItem(text));\r\n this._clearFilter()\r\n }\r\n return\r\n }\r\n if (this.option(\"searchEnabled\")) {\r\n if (!this._searchValue() && this.option(\"allowClearing\")) {\r\n this._clearTextValue();\r\n return\r\n }\r\n }\r\n if (this._isValueEqualInputText()) {\r\n return\r\n }\r\n this._renderInputValue().always(selectedItem => {\r\n var newSelectedItem = ensureDefined(selectedItem, initialSelectedItem);\r\n this._setSelectedItem(newSelectedItem);\r\n this._updateField(newSelectedItem);\r\n this._clearFilter()\r\n })\r\n })\r\n },\r\n _valueChangeEventIncludesBlur() {\r\n var valueChangeEvent = this.option(this._getValueChangeEventOptionName());\r\n return valueChangeEvent.includes(\"blur\")\r\n },\r\n _isPreventedFocusOutEvent(e) {\r\n return this._preventNestedFocusEvent(e) || this._valueChangeEventIncludesBlur()\r\n },\r\n _focusOutHandler(e) {\r\n if (!this._isPreventedFocusOutEvent(e)) {\r\n var isOverlayTarget = this._isOverlayNestedTarget(e.relatedTarget);\r\n if (!isOverlayTarget) {\r\n this._restoreInputText();\r\n this._clearSearchTimer()\r\n }\r\n this._cancelSearchIfNeed(e)\r\n }\r\n e.target = this._input().get(0);\r\n this.callBase(e)\r\n },\r\n _cancelSearchIfNeed(e) {\r\n var _a;\r\n var {\r\n searchEnabled: searchEnabled\r\n } = this.option();\r\n var isOverlayTarget = this._isOverlayNestedTarget(null === e || void 0 === e ? void 0 : e.relatedTarget);\r\n var shouldCancelSearch = this._wasSearch() && searchEnabled && !isOverlayTarget;\r\n if (shouldCancelSearch) {\r\n var isPopupVisible = null === (_a = this._popup) || void 0 === _a ? void 0 : _a._hideAnimationProcessing;\r\n this._clearSearchTimer();\r\n if (isPopupVisible) {\r\n this._shouldCancelSearch(true)\r\n } else {\r\n this._wasSearch(false);\r\n this._searchCanceled()\r\n }\r\n }\r\n },\r\n _shouldCancelSearch(value) {\r\n if (!arguments.length) {\r\n return this._shouldCancelSearchValue\r\n }\r\n this._shouldCancelSearchValue = value\r\n },\r\n _isOverlayNestedTarget: target => !!$(target).closest(\".\".concat(SELECTBOX_POPUP_WRAPPER_CLASS)).length,\r\n _clearTextValue() {\r\n var selectedItem = this.option(\"selectedItem\");\r\n var selectedItemText = this._displayGetter(selectedItem);\r\n var shouldRestoreValue = selectedItem && \"\" !== selectedItemText;\r\n if (shouldRestoreValue) {\r\n if (this._savedTextRemoveEvent) {\r\n this._saveValueChangeEvent(this._savedTextRemoveEvent)\r\n }\r\n this.option(\"value\", null)\r\n }\r\n delete this._savedTextRemoveEvent\r\n },\r\n _shouldOpenPopup() {\r\n return this._needPassDataSourceToList() && this._wasSearch()\r\n },\r\n _isFocused() {\r\n var activeElement = domAdapter.getActiveElement(this.element());\r\n return this.callBase() && $(activeElement).closest(this._input()).length > 0\r\n },\r\n _getValueChangeEventOptionName: () => \"customItemCreateEvent\",\r\n _renderValueChangeEvent() {\r\n if (this._isEditable()) {\r\n this.callBase()\r\n }\r\n },\r\n _fieldRenderData() {\r\n var $listFocused = this._list && this.option(\"opened\") && $(this._list.option(\"focusedElement\"));\r\n if ($listFocused && $listFocused.length) {\r\n return this._list._getItemData($listFocused)\r\n }\r\n return this.option(\"selectedItem\")\r\n },\r\n _isSelectedValue(value) {\r\n return this._isValueEquals(value, this.option(\"value\"))\r\n },\r\n _shouldCloseOnItemClick() {\r\n return !(this.option(\"showSelectionControls\") && \"single\" !== this.option(\"selectionMode\"))\r\n },\r\n _listItemClickHandler(e) {\r\n var previousValue = this._getCurrentValue();\r\n this._focusListElement($(e.itemElement));\r\n this._saveValueChangeEvent(e.event);\r\n this._completeSelection(this._valueGetter(e.itemData));\r\n if (this._shouldCloseOnItemClick()) {\r\n this.option(\"opened\", false)\r\n }\r\n if (this.option(\"searchEnabled\") && previousValue === this._valueGetter(e.itemData)) {\r\n this._updateField(e.itemData)\r\n }\r\n if (this._shouldClearFilter()) {\r\n this._cancelSearchIfNeed()\r\n }\r\n },\r\n _shouldClearFilter() {\r\n return this._wasSearch()\r\n },\r\n _completeSelection(value) {\r\n this._setValue(value)\r\n },\r\n _loadItem(value, cache) {\r\n var that = this;\r\n var deferred = Deferred();\r\n this.callBase(value, cache).done(item => {\r\n deferred.resolve(item)\r\n }).fail(args => {\r\n if (null === args || void 0 === args ? void 0 : args.shouldSkipCallback) {\r\n return\r\n }\r\n var selectedItem = that.option(\"selectedItem\");\r\n if (that.option(\"acceptCustomValue\") && value === that._valueGetter(selectedItem)) {\r\n deferred.resolve(selectedItem)\r\n } else {\r\n deferred.reject()\r\n }\r\n });\r\n return deferred.promise()\r\n },\r\n _loadInputValue(value, callback) {\r\n this._loadItemDeferred = this._loadItem(value).always(callback);\r\n return this._loadItemDeferred\r\n },\r\n _isCustomItemSelected() {\r\n var selectedItem = this.option(\"selectedItem\");\r\n var searchValue = this._searchValue();\r\n var selectedItemText = this._displayGetter(selectedItem);\r\n return !selectedItemText || searchValue !== selectedItemText.toString()\r\n },\r\n _valueChangeEventHandler(e) {\r\n if (this.option(\"acceptCustomValue\") && this._isCustomItemSelected() && !this._isValueChanging) {\r\n this._isValueChanging = true;\r\n this._customItemAddedHandler(e)\r\n }\r\n },\r\n _initCustomItemCreatingAction() {\r\n this._customItemCreatingAction = this._createActionByOption(\"onCustomItemCreating\")\r\n },\r\n _createCustomItem(text) {\r\n var params = {\r\n text: text\r\n };\r\n var actionResult = this._customItemCreatingAction(params);\r\n var item = ensureDefined(actionResult, params.customItem);\r\n if (isDefined(actionResult)) {\r\n errors.log(\"W0015\", \"onCustomItemCreating\", \"customItem\")\r\n }\r\n return item\r\n },\r\n _customItemAddedHandler(e) {\r\n var searchValue = this._searchValue();\r\n var item = this._createCustomItem(searchValue);\r\n this._saveValueChangeEvent(e);\r\n if (void 0 === item) {\r\n this._renderValue();\r\n throw errors.Error(\"E0121\")\r\n }\r\n if (isPromise(item)) {\r\n fromPromise(item).done(this._setCustomItem.bind(this)).fail(this._setCustomItem.bind(this, null))\r\n } else {\r\n this._setCustomItem(item)\r\n }\r\n },\r\n _setCustomItem(item) {\r\n if (this._disposed) {\r\n return\r\n }\r\n item = item || null;\r\n this.option(\"selectedItem\", item);\r\n this._cancelSearchIfNeed();\r\n this._setValue(this._valueGetter(item));\r\n this._renderDisplayText(this._displayGetter(item));\r\n this._isValueChanging = false\r\n },\r\n _clearValueHandler(e) {\r\n this._preventFiltering = true;\r\n this.callBase(e);\r\n this._searchCanceled();\r\n return false\r\n },\r\n _wasSearch(value) {\r\n if (!arguments.length) {\r\n return !!this._wasSearchValue\r\n }\r\n this._wasSearchValue = value;\r\n return\r\n },\r\n _searchHandler() {\r\n if (this._preventFiltering) {\r\n delete this._preventFiltering;\r\n return\r\n }\r\n if (this._needPassDataSourceToList()) {\r\n this._wasSearch(true)\r\n }\r\n this.callBase(arguments)\r\n },\r\n _dataSourceFiltered(searchValue) {\r\n this.callBase();\r\n if (null !== searchValue) {\r\n this._renderInputSubstitution();\r\n this._renderFocusedElement()\r\n }\r\n },\r\n _valueSubstituted() {\r\n var input = this._input().get(0);\r\n var currentSearchLength = this._searchValue().length;\r\n var isAllSelected = 0 === input.selectionStart && input.selectionEnd === currentSearchLength;\r\n var inputHasSelection = input.selectionStart !== input.selectionEnd;\r\n var isLastSymbolSelected = currentSearchLength === input.selectionEnd;\r\n return this._wasSearch() && inputHasSelection && !isAllSelected && isLastSymbolSelected && this._shouldSubstitutionBeRendered()\r\n },\r\n _shouldSubstitutionBeRendered() {\r\n return !this._preventSubstitution && this.option(\"searchEnabled\") && !this.option(\"acceptCustomValue\") && \"startswith\" === this.option(\"searchMode\")\r\n },\r\n _renderInputSubstitution() {\r\n if (!this._shouldSubstitutionBeRendered()) {\r\n delete this._preventSubstitution;\r\n return\r\n }\r\n var item = this._list && this._getPlainItems(this._list.option(\"items\"))[0];\r\n if (!item) {\r\n return\r\n }\r\n var $input = this._input();\r\n var valueLength = $input.val().length;\r\n if (0 === valueLength) {\r\n return\r\n }\r\n var inputElement = $input.get(0);\r\n var displayValue = this._displayGetter(item).toString();\r\n inputElement.value = displayValue;\r\n this._caret({\r\n start: valueLength,\r\n end: displayValue.length\r\n })\r\n },\r\n _dispose() {\r\n this._renderInputValueAsync = noop;\r\n delete this._loadItemDeferred;\r\n this.callBase()\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"customItemCreateEvent\":\r\n this._refreshValueChangeEvent();\r\n this._refreshFocusEvent();\r\n this._refreshEvents();\r\n break;\r\n case \"onCustomItemCreating\":\r\n this._initCustomItemCreatingAction();\r\n break;\r\n case \"tooltipEnabled\":\r\n this._renderTooltip();\r\n break;\r\n case \"displayCustomValue\":\r\n case \"acceptCustomValue\":\r\n case \"showSelectionControls\":\r\n this._invalidate();\r\n break;\r\n case \"allowClearing\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxSelectBox\", SelectBox);\r\nexport default SelectBox;\r\n","/**\r\n * DevExtreme (esm/ui/select_box.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport SelectBox from \"../__internal/ui/m_select_box\";\r\nexport default SelectBox;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/date_box/m_time_view.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport dateLocalization from \"../../../localization/date\";\r\nimport Box from \"../../../ui/box\";\r\nimport Editor from \"../../../ui/editor/editor\";\r\nimport NumberBox from \"../../../ui/number_box\";\r\nimport SelectBox from \"../../../ui/select_box\";\r\nimport dateUtils from \"./m_date_utils\";\r\nvar TIMEVIEW_CLASS = \"dx-timeview\";\r\nvar TIMEVIEW_CLOCK_CLASS = \"dx-timeview-clock\";\r\nvar TIMEVIEW_FIELD_CLASS = \"dx-timeview-field\";\r\nvar TIMEVIEW_HOURARROW_CLASS = \"dx-timeview-hourarrow\";\r\nvar TIMEVIEW_TIME_SEPARATOR_CLASS = \"dx-timeview-time-separator\";\r\nvar TIMEVIEW_FORMAT12_CLASS = \"dx-timeview-format12\";\r\nvar TIMEVIEW_FORMAT12_AM = -1;\r\nvar TIMEVIEW_FORMAT12_PM = 1;\r\nvar TIMEVIEW_MINUTEARROW_CLASS = \"dx-timeview-minutearrow\";\r\nvar rotateArrow = function($arrow, angle, offset) {\r\n cssRotate($arrow, angle, offset)\r\n};\r\nvar cssRotate = function($arrow, angle, offset) {\r\n $arrow.css(\"transform\", \"rotate(\".concat(angle, \"deg)\") + \" translate(0,\".concat(offset, \"px)\"))\r\n};\r\nvar TimeView = Editor.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n value: new Date(Date.now()),\r\n use24HourFormat: true,\r\n _showClock: true,\r\n _arrowOffset: 5,\r\n stylingMode: void 0\r\n })\r\n },\r\n _getValue() {\r\n return this.option(\"value\") || new Date\r\n },\r\n _init() {\r\n this.callBase();\r\n this.$element().addClass(TIMEVIEW_CLASS)\r\n },\r\n _render() {\r\n this.callBase();\r\n this._renderBox();\r\n this._updateTime()\r\n },\r\n _renderBox() {\r\n var $box = $(\"<div>\").appendTo(this.$element());\r\n var items = [];\r\n if (this.option(\"_showClock\")) {\r\n items.push({\r\n ratio: 1,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: this._renderClock.bind(this)\r\n })\r\n }\r\n items.push({\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: this._renderField.bind(this)\r\n });\r\n this._createComponent($box, Box, {\r\n height: \"100%\",\r\n width: \"100%\",\r\n direction: \"col\",\r\n items: items\r\n })\r\n },\r\n _renderClock(_, __, container) {\r\n this._$hourArrow = $(\"<div>\").addClass(TIMEVIEW_HOURARROW_CLASS);\r\n this._$minuteArrow = $(\"<div>\").addClass(TIMEVIEW_MINUTEARROW_CLASS);\r\n var $container = $(container);\r\n $container.addClass(TIMEVIEW_CLOCK_CLASS).append(this._$hourArrow).append(this._$minuteArrow);\r\n this.setAria(\"role\", \"presentation\", $container)\r\n },\r\n _updateClock() {\r\n var time = this._getValue();\r\n var hourArrowAngle = time.getHours() / 12 * 360 + time.getMinutes() / 60 * 30;\r\n var minuteArrowAngle = time.getMinutes() / 60 * 360;\r\n rotateArrow(this._$hourArrow, hourArrowAngle, this.option(\"_arrowOffset\"));\r\n rotateArrow(this._$minuteArrow, minuteArrowAngle, this.option(\"_arrowOffset\"))\r\n },\r\n _getBoxItems(is12HourFormat) {\r\n var items = [{\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: () => this._hourBox.$element()\r\n }, {\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: $(\"<div>\").addClass(TIMEVIEW_TIME_SEPARATOR_CLASS).text(dateLocalization.getTimeSeparator())\r\n }, {\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: () => this._minuteBox.$element()\r\n }];\r\n if (is12HourFormat) {\r\n items.push({\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: () => this._format12.$element()\r\n })\r\n }\r\n return items\r\n },\r\n _renderField() {\r\n var is12HourFormat = !this.option(\"use24HourFormat\");\r\n this._createHourBox(is12HourFormat);\r\n this._createMinuteBox();\r\n if (is12HourFormat) {\r\n this._createFormat12Box()\r\n }\r\n return this._createComponent($(\"<div>\").addClass(TIMEVIEW_FIELD_CLASS), Box, {\r\n direction: \"row\",\r\n align: \"center\",\r\n crossAlign: \"center\",\r\n items: this._getBoxItems(is12HourFormat)\r\n }).$element()\r\n },\r\n _createHourBox(is12HourFormat) {\r\n var editor = this._hourBox = this._createComponent($(\"<div>\"), NumberBox, extend({\r\n min: -1,\r\n max: is12HourFormat ? 13 : 24,\r\n value: this._getValue().getHours(),\r\n onValueChanged: this._onHourBoxValueChanged.bind(this),\r\n onKeyboardHandled: opts => this._keyboardHandler(opts)\r\n }, this._getNumberBoxConfig()));\r\n editor.setAria(\"label\", \"hours\")\r\n },\r\n _isPM() {\r\n return !this.option(\"use24HourFormat\") && 1 === this._format12.option(\"value\")\r\n },\r\n _onHourBoxValueChanged(_ref) {\r\n var {\r\n value: value,\r\n component: component\r\n } = _ref;\r\n var currentValue = this._getValue();\r\n var newValue = new Date(currentValue);\r\n var newHours = this._convertMaxHourToMin(value);\r\n component.option(\"value\", newHours);\r\n if (this._isPM()) {\r\n newHours += 12\r\n }\r\n newValue.setHours(newHours);\r\n dateUtils.normalizeTime(newValue);\r\n this.option(\"value\", newValue)\r\n },\r\n _convertMaxHourToMin(hours) {\r\n var maxHoursValue = this.option(\"use24HourFormat\") ? 24 : 12;\r\n return (maxHoursValue + hours) % maxHoursValue\r\n },\r\n _createMinuteBox() {\r\n var editor = this._minuteBox = this._createComponent($(\"<div>\"), NumberBox, extend({\r\n min: -1,\r\n max: 60,\r\n value: this._getValue().getMinutes(),\r\n onKeyboardHandled: opts => this._keyboardHandler(opts),\r\n onValueChanged: _ref2 => {\r\n var {\r\n value: value,\r\n component: component\r\n } = _ref2;\r\n var newMinutes = (60 + value) % 60;\r\n component.option(\"value\", newMinutes);\r\n var time = new Date(this._getValue());\r\n time.setMinutes(newMinutes);\r\n dateUtils.normalizeTime(time);\r\n this.option(\"value\", time)\r\n }\r\n }, this._getNumberBoxConfig()));\r\n editor.setAria(\"label\", \"minutes\")\r\n },\r\n _createFormat12Box() {\r\n var periodNames = dateLocalization.getPeriodNames();\r\n var editor = this._format12 = this._createComponent($(\"<div>\").addClass(TIMEVIEW_FORMAT12_CLASS), SelectBox, {\r\n items: [{\r\n value: TIMEVIEW_FORMAT12_AM,\r\n text: periodNames[0]\r\n }, {\r\n value: TIMEVIEW_FORMAT12_PM,\r\n text: periodNames[1]\r\n }],\r\n valueExpr: \"value\",\r\n displayExpr: \"text\",\r\n onKeyboardHandled: opts => this._keyboardHandler(opts),\r\n onValueChanged: _ref3 => {\r\n var {\r\n value: value\r\n } = _ref3;\r\n var hours = this._getValue().getHours();\r\n var time = new Date(this._getValue());\r\n var newHours = (hours + 12 * value) % 24;\r\n time.setHours(newHours);\r\n this.option(\"value\", time)\r\n },\r\n value: this._getValue().getHours() >= 12 ? TIMEVIEW_FORMAT12_PM : TIMEVIEW_FORMAT12_AM,\r\n stylingMode: this.option(\"stylingMode\")\r\n });\r\n editor.setAria(\"label\", \"type\")\r\n },\r\n _refreshFormat12() {\r\n if (this.option(\"use24HourFormat\")) {\r\n return\r\n }\r\n var value = this._getValue();\r\n var hours = value.getHours();\r\n var isPM = hours >= 12;\r\n var newValue = isPM ? TIMEVIEW_FORMAT12_PM : TIMEVIEW_FORMAT12_AM;\r\n this._silentEditorValueUpdate(this._format12, newValue)\r\n },\r\n _silentEditorValueUpdate(editor, value) {\r\n if (editor) {\r\n editor._suppressValueChangeAction();\r\n editor.option(\"value\", value);\r\n editor._resumeValueChangeAction()\r\n }\r\n },\r\n _getNumberBoxConfig() {\r\n return {\r\n showSpinButtons: true,\r\n displayValueFormatter: value => (value < 10 ? \"0\" : \"\") + value,\r\n stylingMode: this.option(\"stylingMode\")\r\n }\r\n },\r\n _normalizeHours(hours) {\r\n return this.option(\"use24HourFormat\") ? hours : hours % 12 || 12\r\n },\r\n _updateField() {\r\n var hours = this._normalizeHours(this._getValue().getHours());\r\n this._silentEditorValueUpdate(this._hourBox, hours);\r\n this._silentEditorValueUpdate(this._minuteBox, this._getValue().getMinutes());\r\n this._refreshFormat12()\r\n },\r\n _updateTime() {\r\n if (this.option(\"_showClock\")) {\r\n this._updateClock()\r\n }\r\n this._updateField()\r\n },\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._updateTime()\r\n }\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"value\":\r\n this._updateTime();\r\n this.callBase(args);\r\n break;\r\n case \"_arrowOffset\":\r\n break;\r\n case \"use24HourFormat\":\r\n case \"_showClock\":\r\n case \"stylingMode\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxTimeView\", TimeView);\r\nexport default TimeView;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/date_box/m_date_box.strategy.calendar_with_time.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n getWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n getWindow\r\n} from \"../../../core/utils/window\";\r\nimport dateLocalization from \"../../../localization/date\";\r\nimport Box from \"../../../ui/box\";\r\nimport CalendarStrategy from \"./m_date_box.strategy.calendar\";\r\nimport uiDateUtils from \"./m_date_utils\";\r\nimport TimeView from \"./m_time_view\";\r\nvar window = getWindow();\r\nvar SHRINK_VIEW_SCREEN_WIDTH = 573;\r\nvar DATEBOX_ADAPTIVITY_MODE_CLASS = \"dx-datebox-adaptivity-mode\";\r\nvar DATEBOX_TIMEVIEW_SIDE_CLASS = \"dx-datebox-datetime-time-side\";\r\nvar CalendarWithTimeStrategy = CalendarStrategy.inherit({\r\n NAME: \"CalendarWithTime\",\r\n getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n applyValueMode: \"useButtons\",\r\n buttonsLocation: \"bottom after\",\r\n \"dropDownOptions.showTitle\": false\r\n })\r\n },\r\n _closeDropDownByEnter() {\r\n return dateUtils.sameDate(this._getContouredValue(), this.widgetOption(\"value\"))\r\n },\r\n getDisplayFormat: displayFormat => displayFormat || \"shortdateshorttime\",\r\n _is24HourFormat() {\r\n return dateLocalization.is24HourFormat(this.getDisplayFormat(this.dateBox.option(\"displayFormat\")))\r\n },\r\n _getContouredValue() {\r\n var viewDate = this.callBase();\r\n return this._updateDateTime(viewDate)\r\n },\r\n _renderWidget() {\r\n this.callBase();\r\n this._timeView = this.dateBox._createComponent($(\"<div>\"), TimeView, {\r\n value: this.dateBoxValue(),\r\n _showClock: !this._isShrinkView(),\r\n use24HourFormat: this._is24HourFormat(),\r\n onValueChanged: this._valueChangedHandler.bind(this),\r\n stylingMode: this.dateBox.option(\"stylingMode\")\r\n })\r\n },\r\n renderOpenedState() {\r\n this.callBase();\r\n var popup = this._getPopup();\r\n if (popup) {\r\n popup.$wrapper().toggleClass(DATEBOX_ADAPTIVITY_MODE_CLASS, this._isSmallScreen())\r\n }\r\n clearTimeout(this._repaintTimer);\r\n this._repaintTimer = setTimeout(() => {\r\n this._getPopup() && this._getPopup().repaint()\r\n }, 0)\r\n },\r\n isAdaptivityChanged() {\r\n var isAdaptiveMode = this._isShrinkView();\r\n var currentAdaptiveMode = this._currentAdaptiveMode;\r\n if (isAdaptiveMode !== currentAdaptiveMode) {\r\n this._currentAdaptiveMode = isAdaptiveMode;\r\n return void 0 !== currentAdaptiveMode\r\n }\r\n return this.callBase()\r\n },\r\n _updateValue(preventDefaultValue) {\r\n var date = this.dateBoxValue();\r\n if (!date && !preventDefaultValue) {\r\n date = new Date;\r\n uiDateUtils.normalizeTime(date)\r\n }\r\n this.callBase();\r\n if (this._timeView) {\r\n date && this._timeView.option(\"value\", date);\r\n this._timeView.option(\"use24HourFormat\", this._is24HourFormat())\r\n }\r\n },\r\n _isSmallScreen: () => getWidth(window) <= SHRINK_VIEW_SCREEN_WIDTH,\r\n _isShrinkView() {\r\n return !this.dateBox.option(\"showAnalogClock\") || this.dateBox.option(\"adaptivityEnabled\") && this._isSmallScreen()\r\n },\r\n _getBoxItems() {\r\n var items = [{\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n name: \"calendar\"\r\n }];\r\n if (!this._isShrinkView()) {\r\n items.push({\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n name: \"time\"\r\n })\r\n }\r\n return items\r\n },\r\n renderPopupContent() {\r\n this.callBase();\r\n this._currentAdaptiveMode = this._isShrinkView();\r\n var $popupContent = this._getPopup().$content();\r\n this._box = this.dateBox._createComponent($(\"<div>\").appendTo($popupContent), Box, {\r\n direction: \"row\",\r\n crossAlign: \"stretch\",\r\n items: this._getBoxItems(),\r\n itemTemplate: function(data, i, element) {\r\n var $container = $(\"<div>\");\r\n switch (data.name) {\r\n case \"calendar\":\r\n $container.append(this._widget.$element());\r\n if (this._isShrinkView()) {\r\n this._timeView.$element().addClass(DATEBOX_TIMEVIEW_SIDE_CLASS);\r\n $container.append(this._timeView.$element())\r\n }\r\n break;\r\n case \"time\":\r\n $container.append(this._timeView.$element());\r\n $(element).addClass(DATEBOX_TIMEVIEW_SIDE_CLASS)\r\n }\r\n return $container\r\n }.bind(this)\r\n })\r\n },\r\n popupConfig(popupConfig) {\r\n var calendarPopupConfig = this.callBase(popupConfig);\r\n return extend(calendarPopupConfig, {\r\n width: \"auto\"\r\n })\r\n },\r\n _preventFocusOnPopup(e) {\r\n if (!$(e.target).hasClass(\"dx-texteditor-input\")) {\r\n this.callBase.apply(this, arguments);\r\n if (!this.dateBox._hasFocusClass()) {\r\n this.dateBox.focus()\r\n }\r\n }\r\n },\r\n _updateDateTime(date) {\r\n var time = this._timeView.option(\"value\");\r\n date.setHours(time.getHours(), time.getMinutes(), time.getSeconds(), time.getMilliseconds());\r\n return date\r\n },\r\n getValue() {\r\n var _a;\r\n var date = null !== (_a = this._widget.option(\"value\")) && void 0 !== _a ? _a : this._widget.getContouredDate();\r\n date = date ? new Date(date) : new Date;\r\n return this._updateDateTime(date)\r\n },\r\n dispose() {\r\n clearTimeout(this._removeMinWidthTimer);\r\n clearTimeout(this._repaintTimer);\r\n this.callBase()\r\n }\r\n});\r\nexport default CalendarWithTimeStrategy;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/scroll_direction.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n DIRECTION_VERTICAL,\r\n DIRECTION_HORIZONTAL,\r\n DIRECTION_BOTH\r\n} from \"../common/consts\";\r\nexport class ScrollDirection {\r\n constructor(direction) {\r\n this.DIRECTION_HORIZONTAL = \"horizontal\";\r\n this.DIRECTION_VERTICAL = \"vertical\";\r\n this.DIRECTION_BOTH = \"both\";\r\n this.direction = null !== direction && void 0 !== direction ? direction : DIRECTION_VERTICAL\r\n }\r\n get isHorizontal() {\r\n return this.direction === DIRECTION_HORIZONTAL || this.direction === DIRECTION_BOTH\r\n }\r\n get isVertical() {\r\n return this.direction === DIRECTION_VERTICAL || this.direction === DIRECTION_BOTH\r\n }\r\n get isBoth() {\r\n return this.direction === DIRECTION_BOTH\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/date_box/m_date_view_roller.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport fx from \"../../../animation/fx\";\r\nimport {\r\n resetPosition\r\n} from \"../../../animation/translator\";\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport devices from \"../../../core/devices\";\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 name as clickEventName\r\n} from \"../../../events/click\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nimport {\r\n convertToLocation\r\n} from \"../../../renovation/ui/scroll_view/utils/convert_location\";\r\nimport Scrollable from \"../scroll_view/m_scrollable\";\r\nvar DATEVIEW_ROLLER_CLASS = \"dx-dateviewroller\";\r\nvar DATEVIEW_ROLLER_ACTIVE_CLASS = \"dx-state-active\";\r\nvar DATEVIEW_ROLLER_CURRENT_CLASS = \"dx-dateviewroller-current\";\r\nvar DATEVIEW_ROLLER_ITEM_CLASS = \"dx-dateview-item\";\r\nvar DATEVIEW_ROLLER_ITEM_SELECTED_CLASS = \"dx-dateview-item-selected\";\r\nvar DATEVIEW_ROLLER_ITEM_SELECTED_FRAME_CLASS = \"dx-dateview-item-selected-frame\";\r\nvar DATEVIEW_ROLLER_ITEM_SELECTED_BORDER_CLASS = \"dx-dateview-item-selected-border\";\r\nclass DateViewRoller extends Scrollable {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n showScrollbar: \"never\",\r\n useNative: false,\r\n selectedIndex: 0,\r\n bounceEnabled: false,\r\n items: [],\r\n showOnClick: false,\r\n onClick: null,\r\n onSelectedIndexChanged: null,\r\n scrollByContent: true\r\n })\r\n }\r\n _init() {\r\n super._init();\r\n this.option(\"onVisibilityChange\", this._visibilityChangedHandler.bind(this));\r\n this.option(\"onEnd\", this._endActionHandler.bind(this))\r\n }\r\n _render() {\r\n super._render();\r\n this._renderSelectedItemFrame();\r\n this.$element().addClass(DATEVIEW_ROLLER_CLASS);\r\n this._renderContainerClick();\r\n this._renderItems();\r\n this._renderSelectedValue();\r\n this._renderItemsClick();\r\n this._renderWheelEvent();\r\n this._renderSelectedIndexChanged()\r\n }\r\n _renderSelectedIndexChanged() {\r\n this._selectedIndexChanged = this._createActionByOption(\"onSelectedIndexChanged\")\r\n }\r\n _renderWheelEvent() {\r\n eventsEngine.on($(this.container()), \"dxmousewheel\", e => {\r\n this._isWheelScrolled = true\r\n })\r\n }\r\n _renderContainerClick() {\r\n if (!this.option(\"showOnClick\")) {\r\n return\r\n }\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n var clickAction = this._createActionByOption(\"onClick\");\r\n eventsEngine.off($(this.container()), eventName);\r\n eventsEngine.on($(this.container()), eventName, e => {\r\n clickAction({\r\n event: e\r\n })\r\n })\r\n }\r\n _renderItems() {\r\n var items = this.option(\"items\") || [];\r\n var $items = $();\r\n $(this.content()).empty();\r\n items.forEach(item => {\r\n $items = $items.add($(\"<div>\").addClass(DATEVIEW_ROLLER_ITEM_CLASS).append(item))\r\n });\r\n $(this.content()).append($items);\r\n this._$items = $items;\r\n this.update()\r\n }\r\n _renderSelectedItemFrame() {\r\n $(\"<div>\").addClass(DATEVIEW_ROLLER_ITEM_SELECTED_FRAME_CLASS).append($(\"<div>\").addClass(DATEVIEW_ROLLER_ITEM_SELECTED_BORDER_CLASS)).appendTo($(this.container()))\r\n }\r\n _renderSelectedValue(selectedIndex) {\r\n var index = this._fitIndex(null !== selectedIndex && void 0 !== selectedIndex ? selectedIndex : this.option(\"selectedIndex\"));\r\n this._moveTo({\r\n top: this._getItemPosition(index)\r\n });\r\n this._renderActiveStateItem()\r\n }\r\n _fitIndex(index) {\r\n var items = this.option(\"items\") || [];\r\n var itemCount = items.length;\r\n if (index >= itemCount) {\r\n return itemCount - 1\r\n }\r\n if (index < 0) {\r\n return 0\r\n }\r\n return index\r\n }\r\n _getItemPosition(index) {\r\n return Math.round(this._itemHeight() * index)\r\n }\r\n _renderItemsClick() {\r\n var itemSelector = this._getItemSelector();\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n eventsEngine.off(this.$element(), eventName, itemSelector);\r\n eventsEngine.on(this.$element(), eventName, itemSelector, this._itemClickHandler.bind(this))\r\n }\r\n _getItemSelector() {\r\n return \".\".concat(DATEVIEW_ROLLER_ITEM_CLASS)\r\n }\r\n _itemClickHandler(e) {\r\n this.option(\"selectedIndex\", this._itemElementIndex(e.currentTarget))\r\n }\r\n _itemElementIndex(itemElement) {\r\n return this._itemElements().index(itemElement)\r\n }\r\n _itemElements() {\r\n return this.$element().find(this._getItemSelector())\r\n }\r\n _renderActiveStateItem() {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n each(this._$items, (function(index) {\r\n $(this).toggleClass(DATEVIEW_ROLLER_ITEM_SELECTED_CLASS, selectedIndex === index)\r\n }))\r\n }\r\n _shouldScrollToNeighborItem() {\r\n return \"desktop\" === devices.real().deviceType && this._isWheelScrolled\r\n }\r\n _moveTo(targetLocation) {\r\n var {\r\n top: top,\r\n left: left\r\n } = convertToLocation(targetLocation);\r\n var location = this.scrollOffset();\r\n var delta = {\r\n x: location.left - left,\r\n y: location.top - top\r\n };\r\n if (this._isVisible() && (delta.x || delta.y)) {\r\n this._prepareDirections(true);\r\n if (this._animation && !this._shouldScrollToNeighborItem()) {\r\n var that = this;\r\n fx.stop($(this.content()));\r\n fx.animate($(this.content()), {\r\n duration: 200,\r\n type: \"slide\",\r\n to: {\r\n top: Math.floor(delta.y)\r\n },\r\n complete() {\r\n resetPosition($(that.content()));\r\n that.handleMove({\r\n delta: delta\r\n })\r\n }\r\n });\r\n delete this._animation\r\n } else {\r\n this.handleMove({\r\n delta: delta\r\n })\r\n }\r\n }\r\n }\r\n _validate(e) {\r\n return this._moveIsAllowed(e)\r\n }\r\n _fitSelectedIndexInRange(index) {\r\n var itemsCount = this.option(\"items\").length;\r\n return Math.max(Math.min(index, itemsCount - 1), 0)\r\n }\r\n _isInNullNeighborhood(x) {\r\n return -.1 <= x && x <= .1\r\n }\r\n _getSelectedIndexAfterScroll(currentSelectedIndex) {\r\n var locationTop = this.scrollOffset().top;\r\n var currentSelectedIndexPosition = currentSelectedIndex * this._itemHeight();\r\n var dy = locationTop - currentSelectedIndexPosition;\r\n if (this._isInNullNeighborhood(dy)) {\r\n return currentSelectedIndex\r\n }\r\n var direction = dy > 0 ? 1 : -1;\r\n var newSelectedIndex = this._fitSelectedIndexInRange(currentSelectedIndex + direction);\r\n return newSelectedIndex\r\n }\r\n _getNewSelectedIndex(currentSelectedIndex) {\r\n if (this._shouldScrollToNeighborItem()) {\r\n return this._getSelectedIndexAfterScroll(currentSelectedIndex)\r\n }\r\n this._animation = true;\r\n var ratio = this.scrollOffset().top / this._itemHeight();\r\n return Math.round(ratio)\r\n }\r\n _endActionHandler() {\r\n var currentSelectedIndex = this.option(\"selectedIndex\");\r\n var newSelectedIndex = this._getNewSelectedIndex(currentSelectedIndex);\r\n if (newSelectedIndex === currentSelectedIndex) {\r\n this._renderSelectedValue(newSelectedIndex)\r\n } else {\r\n this.option(\"selectedIndex\", newSelectedIndex)\r\n }\r\n this._isWheelScrolled = false\r\n }\r\n _itemHeight() {\r\n var $item = this._$items.first();\r\n return getHeight($item)\r\n }\r\n _toggleActive(state) {\r\n this.$element().toggleClass(DATEVIEW_ROLLER_ACTIVE_CLASS, state)\r\n }\r\n _isVisible() {\r\n return $(this.container()).is(\":visible\")\r\n }\r\n _fireSelectedIndexChanged(value, previousValue) {\r\n this._selectedIndexChanged({\r\n value: value,\r\n previousValue: previousValue,\r\n event: void 0\r\n })\r\n }\r\n _visibilityChanged(visible) {\r\n super._visibilityChanged(visible);\r\n this._visibilityChangedHandler(visible)\r\n }\r\n _visibilityChangedHandler(visible) {\r\n if (visible) {\r\n this._visibilityTimer = setTimeout(() => {\r\n this._renderSelectedValue(this.option(\"selectedIndex\"))\r\n })\r\n }\r\n this.toggleActiveState(false)\r\n }\r\n toggleActiveState(state) {\r\n this.$element().toggleClass(DATEVIEW_ROLLER_CURRENT_CLASS, state)\r\n }\r\n _refreshSelectedIndex() {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var fitIndex = this._fitIndex(selectedIndex);\r\n if (fitIndex === selectedIndex) {\r\n this._renderActiveStateItem()\r\n } else {\r\n this.option(\"selectedIndex\", fitIndex)\r\n }\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"selectedIndex\":\r\n this._fireSelectedIndexChanged(args.value, args.previousValue);\r\n this._renderSelectedValue(args.value);\r\n break;\r\n case \"items\":\r\n this._renderItems();\r\n this._refreshSelectedIndex();\r\n break;\r\n case \"onClick\":\r\n case \"showOnClick\":\r\n this._renderContainerClick();\r\n break;\r\n case \"onSelectedIndexChanged\":\r\n this._renderSelectedIndexChanged();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _dispose() {\r\n clearTimeout(this._visibilityTimer);\r\n super._dispose()\r\n }\r\n}\r\nregisterComponent(\"dxDateViewRoller\", DateViewRoller);\r\nexport default DateViewRoller;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/convert_location.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n ensureDefined\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n ScrollDirection\r\n} from \"./scroll_direction\";\r\nexport function convertToLocation(location, direction) {\r\n if (isPlainObject(location)) {\r\n var left = ensureDefined(location.left, location.x);\r\n var top = ensureDefined(location.top, location.y);\r\n return {\r\n left: isDefined(left) ? left : void 0,\r\n top: isDefined(top) ? top : void 0\r\n }\r\n }\r\n var {\r\n isHorizontal: isHorizontal,\r\n isVertical: isVertical\r\n } = new ScrollDirection(direction);\r\n return {\r\n left: isHorizontal && isDefined(location) ? location : void 0,\r\n top: isVertical && isDefined(location) ? location : void 0\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/date_box/m_date_view.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport $ from \"../../../core/renderer\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport dateLocalization from \"../../../localization/date\";\r\nimport Editor from \"../../../ui/editor/editor\";\r\nimport uiDateUtils from \"./m_date_utils\";\r\nimport DateViewRoller from \"./m_date_view_roller\";\r\nvar DATEVIEW_CLASS = \"dx-dateview\";\r\nvar DATEVIEW_COMPACT_CLASS = \"dx-dateview-compact\";\r\nvar DATEVIEW_WRAPPER_CLASS = \"dx-dateview-wrapper\";\r\nvar DATEVIEW_ROLLER_CONTAINER_CLASS = \"dx-dateview-rollers\";\r\nvar DATEVIEW_ROLLER_CLASS = \"dx-dateviewroller\";\r\nvar TYPE = {\r\n date: \"date\",\r\n datetime: \"datetime\",\r\n time: \"time\"\r\n};\r\nvar ROLLER_TYPE = {\r\n year: \"year\",\r\n month: \"month\",\r\n day: \"day\",\r\n hours: \"hours\"\r\n};\r\nvar DateView = Editor.inherit({\r\n _valueOption() {\r\n var value = this.option(\"value\");\r\n var date = new Date(value);\r\n return !value || isNaN(date) ? this._getDefaultDate() : date\r\n },\r\n _getDefaultDate() {\r\n var date = new Date;\r\n if (this.option(\"type\") === TYPE.date) {\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate())\r\n }\r\n return date\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n minDate: uiDateUtils.MIN_DATEVIEW_DEFAULT_DATE,\r\n maxDate: uiDateUtils.MAX_DATEVIEW_DEFAULT_DATE,\r\n type: TYPE.date,\r\n value: new Date,\r\n applyCompactClass: false\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device: device => \"desktop\" !== device.deviceType,\r\n options: {\r\n applyCompactClass: true\r\n }\r\n }])\r\n },\r\n _render() {\r\n this.callBase();\r\n this.$element().addClass(DATEVIEW_CLASS);\r\n this._toggleFormatClasses(this.option(\"type\"));\r\n this._toggleCompactClass()\r\n },\r\n _toggleFormatClasses(currentFormat, previousFormat) {\r\n this.$element().addClass(\"\".concat(DATEVIEW_CLASS, \"-\").concat(currentFormat));\r\n previousFormat && this.$element().removeClass(\"\".concat(DATEVIEW_CLASS, \"-\").concat(previousFormat))\r\n },\r\n _toggleCompactClass() {\r\n this.$element().toggleClass(DATEVIEW_COMPACT_CLASS, this.option(\"applyCompactClass\"))\r\n },\r\n _wrapper() {\r\n return this._$wrapper\r\n },\r\n _renderContentImpl() {\r\n this._$wrapper = $(\"<div>\").addClass(DATEVIEW_WRAPPER_CLASS);\r\n this._renderRollers();\r\n this._$wrapper.appendTo(this.$element())\r\n },\r\n _renderRollers() {\r\n if (!this._$rollersContainer) {\r\n this._$rollersContainer = $(\"<div>\").addClass(DATEVIEW_ROLLER_CONTAINER_CLASS)\r\n }\r\n this._$rollersContainer.empty();\r\n this._createRollerConfigs();\r\n this._rollers = {};\r\n var that = this;\r\n each(that._rollerConfigs, name => {\r\n var $roller = $(\"<div>\").appendTo(that._$rollersContainer).addClass(\"\".concat(DATEVIEW_ROLLER_CLASS, \"-\").concat(that._rollerConfigs[name].type));\r\n that._rollers[that._rollerConfigs[name].type] = that._createComponent($roller, DateViewRoller, {\r\n items: that._rollerConfigs[name].displayItems,\r\n selectedIndex: that._rollerConfigs[name].selectedIndex,\r\n showScrollbar: \"never\",\r\n scrollByContent: true,\r\n onStart(e) {\r\n var roller = e.component;\r\n roller._toggleActive(true);\r\n that._setActiveRoller(that._rollerConfigs[name], roller.option(\"selectedIndex\"))\r\n },\r\n onEnd(e) {\r\n var roller = e.component;\r\n roller._toggleActive(false)\r\n },\r\n onClick(e) {\r\n var roller = e.component;\r\n roller._toggleActive(true);\r\n that._setActiveRoller(that._rollerConfigs[name], roller.option(\"selectedIndex\"));\r\n that._setRollerState(that._rollerConfigs[name], roller.option(\"selectedIndex\"));\r\n roller._toggleActive(false)\r\n },\r\n onSelectedIndexChanged(e) {\r\n var roller = e.component;\r\n that._setRollerState(that._rollerConfigs[name], roller.option(\"selectedIndex\"))\r\n }\r\n })\r\n });\r\n that._$rollersContainer.appendTo(that._wrapper())\r\n },\r\n _createRollerConfigs(type) {\r\n var that = this;\r\n type = type || that.option(\"type\");\r\n that._rollerConfigs = {};\r\n dateLocalization.getFormatParts(uiDateUtils.FORMATS_MAP[type]).forEach(partName => {\r\n that._createRollerConfig(partName)\r\n })\r\n },\r\n _createRollerConfig(componentName) {\r\n var componentInfo = uiDateUtils.DATE_COMPONENTS_INFO[componentName];\r\n var valueRange = this._calculateRollerConfigValueRange(componentName);\r\n var {\r\n startValue: startValue\r\n } = valueRange;\r\n var {\r\n endValue: endValue\r\n } = valueRange;\r\n var {\r\n formatter: formatter\r\n } = componentInfo;\r\n var curDate = this._getCurrentDate();\r\n var config = {\r\n type: componentName,\r\n setValue: componentInfo.setter,\r\n valueItems: [],\r\n displayItems: [],\r\n getIndex: value => value[componentInfo.getter]() - startValue\r\n };\r\n for (var i = startValue; i <= endValue; i++) {\r\n config.valueItems.push(i);\r\n config.displayItems.push(formatter(i, curDate))\r\n }\r\n config.selectedIndex = config.getIndex(curDate);\r\n this._rollerConfigs[componentName] = config\r\n },\r\n _setActiveRoller(currentRoller) {\r\n var activeRoller = currentRoller && this._rollers[currentRoller.type];\r\n each(this._rollers, (function() {\r\n this.toggleActiveState(this === activeRoller)\r\n }))\r\n },\r\n _updateRollersPosition() {\r\n var that = this;\r\n each(this._rollers, (function(type) {\r\n var correctIndex = that._rollerConfigs[type].getIndex(that._getCurrentDate());\r\n this.option(\"selectedIndex\", correctIndex)\r\n }))\r\n },\r\n _setRollerState(roller, selectedIndex) {\r\n if (selectedIndex !== roller.selectedIndex) {\r\n var rollerValue = roller.valueItems[selectedIndex];\r\n var {\r\n setValue: setValue\r\n } = roller;\r\n var currentValue = new Date(this._getCurrentDate());\r\n var currentDate = currentValue.getDate();\r\n var minDate = this.option(\"minDate\");\r\n var maxDate = this.option(\"maxDate\");\r\n if (roller.type === ROLLER_TYPE.month) {\r\n currentDate = Math.min(currentDate, uiDateUtils.getMaxMonthDay(currentValue.getFullYear(), rollerValue))\r\n } else if (roller.type === ROLLER_TYPE.year) {\r\n currentDate = Math.min(currentDate, uiDateUtils.getMaxMonthDay(rollerValue, currentValue.getMonth()))\r\n }\r\n currentValue.setDate(currentDate);\r\n currentValue[setValue](rollerValue);\r\n var normalizedDate = dateUtils.normalizeDate(currentValue, minDate, maxDate);\r\n currentValue = uiDateUtils.mergeDates(normalizedDate, currentValue, \"time\");\r\n currentValue = dateUtils.normalizeDate(currentValue, minDate, maxDate);\r\n this.option(\"value\", currentValue);\r\n roller.selectedIndex = selectedIndex\r\n }\r\n if (roller.type === ROLLER_TYPE.year) {\r\n this._refreshRollers()\r\n }\r\n if (roller.type === ROLLER_TYPE.month) {\r\n this._refreshRoller(ROLLER_TYPE.day);\r\n this._refreshRoller(ROLLER_TYPE.hours)\r\n }\r\n },\r\n _refreshRoller(rollerType) {\r\n var roller = this._rollers[rollerType];\r\n if (roller) {\r\n this._createRollerConfig(rollerType);\r\n var rollerConfig = this._rollerConfigs[rollerType];\r\n if (rollerType === ROLLER_TYPE.day || rollerConfig.displayItems.toString() !== roller.option(\"items\").toString()) {\r\n roller.option({\r\n items: rollerConfig.displayItems,\r\n selectedIndex: rollerConfig.selectedIndex\r\n })\r\n }\r\n }\r\n },\r\n _getCurrentDate() {\r\n var curDate = this._valueOption();\r\n var minDate = this.option(\"minDate\");\r\n var maxDate = this.option(\"maxDate\");\r\n return dateUtils.normalizeDate(curDate, minDate, maxDate)\r\n },\r\n _calculateRollerConfigValueRange(componentName) {\r\n var curDate = this._getCurrentDate();\r\n var minDate = this.option(\"minDate\");\r\n var maxDate = this.option(\"maxDate\");\r\n var minYear = dateUtils.sameYear(curDate, minDate);\r\n var minMonth = minYear && curDate.getMonth() === minDate.getMonth();\r\n var maxYear = dateUtils.sameYear(curDate, maxDate);\r\n var maxMonth = maxYear && curDate.getMonth() === maxDate.getMonth();\r\n var minHour = minMonth && curDate.getDate() === minDate.getDate();\r\n var maxHour = maxMonth && curDate.getDate() === maxDate.getDate();\r\n var componentInfo = uiDateUtils.DATE_COMPONENTS_INFO[componentName];\r\n var {\r\n startValue: startValue\r\n } = componentInfo;\r\n var {\r\n endValue: endValue\r\n } = componentInfo;\r\n if (componentName === ROLLER_TYPE.year) {\r\n startValue = minDate.getFullYear();\r\n endValue = maxDate.getFullYear()\r\n }\r\n if (componentName === ROLLER_TYPE.month) {\r\n if (minYear) {\r\n startValue = minDate.getMonth()\r\n }\r\n if (maxYear) {\r\n endValue = maxDate.getMonth()\r\n }\r\n }\r\n if (componentName === ROLLER_TYPE.day) {\r\n endValue = uiDateUtils.getMaxMonthDay(curDate.getFullYear(), curDate.getMonth());\r\n if (minYear && minMonth) {\r\n startValue = minDate.getDate()\r\n }\r\n if (maxYear && maxMonth) {\r\n endValue = maxDate.getDate()\r\n }\r\n }\r\n if (componentName === ROLLER_TYPE.hours) {\r\n startValue = minHour ? minDate.getHours() : startValue;\r\n endValue = maxHour ? maxDate.getHours() : endValue\r\n }\r\n return {\r\n startValue: startValue,\r\n endValue: endValue\r\n }\r\n },\r\n _refreshRollers() {\r\n this._refreshRoller(ROLLER_TYPE.month);\r\n this._refreshRoller(ROLLER_TYPE.day);\r\n this._refreshRoller(ROLLER_TYPE.hours)\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"minDate\":\r\n case \"maxDate\":\r\n case \"type\":\r\n this._renderRollers();\r\n this._toggleFormatClasses(args.value, args.previousValue);\r\n break;\r\n case \"visible\":\r\n this.callBase(args);\r\n if (args.value) {\r\n this._renderRollers()\r\n }\r\n break;\r\n case \"value\":\r\n this.option(\"value\", this._valueOption());\r\n this._refreshRollers();\r\n this._updateRollersPosition();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clean() {\r\n this.callBase();\r\n delete this._$rollersContainer\r\n }\r\n});\r\nregisterComponent(\"dxDateView\", DateView);\r\nexport default DateView;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/date_box/m_date_box.strategy.date_view.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n inputType\r\n} from \"../../../core/utils/support\";\r\nimport {\r\n getWindow\r\n} from \"../../../core/utils/window\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport DateBoxStrategy from \"./m_date_box.strategy\";\r\nimport dateUtils from \"./m_date_utils\";\r\nimport DateView from \"./m_date_view\";\r\nvar window = getWindow();\r\nvar DateViewStrategy = DateBoxStrategy.inherit({\r\n NAME: \"DateView\",\r\n getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n openOnFieldClick: true,\r\n applyButtonText: messageLocalization.format(\"OK\"),\r\n \"dropDownOptions.showTitle\": true\r\n })\r\n },\r\n getDisplayFormat(displayFormat) {\r\n return displayFormat || dateUtils.FORMATS_MAP[this.dateBox.option(\"type\")]\r\n },\r\n popupConfig(config) {\r\n return {\r\n toolbarItems: this.dateBox._popupToolbarItemsConfig(),\r\n onInitialized: config.onInitialized,\r\n defaultOptionsRules: [{\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n width: 333,\r\n height: 331\r\n }\r\n }, {\r\n device(device) {\r\n var {\r\n platform: platform\r\n } = device;\r\n return \"generic\" === platform || \"ios\" === platform\r\n },\r\n options: {\r\n width: \"auto\",\r\n height: \"auto\"\r\n }\r\n }, {\r\n device(device) {\r\n var {\r\n platform: platform\r\n } = device;\r\n var {\r\n phone: phone\r\n } = device;\r\n return \"generic\" === platform && phone\r\n },\r\n options: {\r\n width: 333,\r\n maxWidth: \"100%\",\r\n maxHeight: \"100%\",\r\n height: \"auto\",\r\n position: {\r\n collision: \"flipfit flip\"\r\n }\r\n }\r\n }, {\r\n device: {\r\n platform: \"ios\",\r\n phone: true\r\n },\r\n options: {\r\n width: \"100%\",\r\n position: {\r\n my: \"bottom\",\r\n at: \"bottom\",\r\n of: window\r\n }\r\n }\r\n }]\r\n }\r\n },\r\n _renderWidget() {\r\n if (inputType(this.dateBox.option(\"mode\")) && this.dateBox._isNativeType() || this.dateBox.option(\"readOnly\")) {\r\n if (this._widget) {\r\n this._widget.$element().remove();\r\n this._widget = null\r\n }\r\n return\r\n }\r\n var popup = this._getPopup();\r\n if (this._widget) {\r\n this._widget.option(this._getWidgetOptions())\r\n } else {\r\n var element = $(\"<div>\").appendTo(popup.$content());\r\n this._widget = this._createWidget(element)\r\n }\r\n this._widget.$element().appendTo(this._getWidgetContainer())\r\n },\r\n _getWidgetName: () => DateView,\r\n renderOpenedState() {\r\n this.callBase();\r\n if (this._widget) {\r\n this._widget.option(\"value\", this._widget._getCurrentDate())\r\n }\r\n },\r\n _getWidgetOptions() {\r\n return {\r\n value: this.dateBoxValue() || new Date,\r\n type: this.dateBox.option(\"type\"),\r\n minDate: this.dateBox.dateOption(\"min\") || new Date(1900, 0, 1),\r\n maxDate: this.dateBox.dateOption(\"max\") || new Date(Date.now() + 50 * dateUtils.ONE_YEAR),\r\n onDisposing: function() {\r\n this._widget = null\r\n }.bind(this)\r\n }\r\n }\r\n});\r\nexport default DateViewStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/date_box/m_date_box.strategy.list.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport \"../../ui/list/modules/m_selection\";\r\nimport {\r\n ensureDefined,\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport dateSerialization from \"../../../core/utils/date_serialization\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n getHeight,\r\n getOuterHeight\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n isDate\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n getWindow\r\n} from \"../../../core/utils/window\";\r\nimport dateLocalization from \"../../../localization/date\";\r\nimport List from \"../../../ui/list_light\";\r\nimport {\r\n getSizeValue\r\n} from \"../../ui/drop_down_editor/m_utils\";\r\nimport DateBoxStrategy from \"./m_date_box.strategy\";\r\nimport dateUtils from \"./m_date_utils\";\r\nvar window = getWindow();\r\nvar DATE_FORMAT = \"date\";\r\nvar BOUNDARY_VALUES = {\r\n min: new Date(0, 0, 0, 0, 0),\r\n max: new Date(0, 0, 0, 23, 59)\r\n};\r\nvar ListStrategy = DateBoxStrategy.inherit({\r\n NAME: \"List\",\r\n supportedKeys: () => ({\r\n space: noop,\r\n home: noop,\r\n end: noop\r\n }),\r\n getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n applyValueMode: \"instantly\"\r\n })\r\n },\r\n getDisplayFormat: displayFormat => displayFormat || \"shorttime\",\r\n popupConfig: popupConfig => popupConfig,\r\n getValue() {\r\n var selectedIndex = this._widget.option(\"selectedIndex\");\r\n if (-1 === selectedIndex) {\r\n return this.dateBox.option(\"value\")\r\n }\r\n var itemData = this._widgetItems[selectedIndex];\r\n return this._getDateByItemData(itemData)\r\n },\r\n useCurrentDateByDefault: () => true,\r\n getDefaultDate: () => new Date(null),\r\n popupShowingHandler() {\r\n this.dateBox._dimensionChanged()\r\n },\r\n _renderWidget() {\r\n this.callBase();\r\n this._refreshItems()\r\n },\r\n _getWidgetName: () => List,\r\n _getWidgetOptions() {\r\n return {\r\n itemTemplate: this._timeListItemTemplate.bind(this),\r\n onItemClick: this._listItemClickHandler.bind(this),\r\n tabIndex: -1,\r\n onFocusedItemChanged: this._refreshActiveDescendant.bind(this),\r\n selectionMode: \"single\"\r\n }\r\n },\r\n _refreshActiveDescendant(e) {\r\n this.dateBox.setAria(\"activedescendant\", \"\");\r\n this.dateBox.setAria(\"activedescendant\", e.actionValue)\r\n },\r\n _refreshItems() {\r\n this._widgetItems = this._getTimeListItems();\r\n this._widget.option(\"items\", this._widgetItems)\r\n },\r\n renderOpenedState() {\r\n if (!this._widget) {\r\n return\r\n }\r\n this._widget.option(\"focusedElement\", null);\r\n this._setSelectedItemsByValue();\r\n if (this._widget.option(\"templatesRenderAsynchronously\")) {\r\n this._asyncScrollTimeout = setTimeout(this._scrollToSelectedItem.bind(this))\r\n } else {\r\n this._scrollToSelectedItem()\r\n }\r\n },\r\n dispose() {\r\n this.callBase();\r\n clearTimeout(this._asyncScrollTimeout)\r\n },\r\n _updateValue() {\r\n if (!this._widget) {\r\n return\r\n }\r\n this._refreshItems();\r\n this._setSelectedItemsByValue();\r\n this._scrollToSelectedItem()\r\n },\r\n _setSelectedItemsByValue() {\r\n var value = this.dateBoxValue();\r\n var dateIndex = this._getDateIndex(value);\r\n if (-1 === dateIndex) {\r\n this._widget.option(\"selectedItems\", [])\r\n } else {\r\n this._widget.option(\"selectedIndex\", dateIndex)\r\n }\r\n },\r\n _scrollToSelectedItem() {\r\n this._widget.scrollToItem(this._widget.option(\"selectedIndex\"))\r\n },\r\n _getDateIndex(date) {\r\n var result = -1;\r\n for (var i = 0, n = this._widgetItems.length; i < n; i++) {\r\n if (this._areDatesEqual(date, this._widgetItems[i])) {\r\n result = i;\r\n break\r\n }\r\n }\r\n return result\r\n },\r\n _areDatesEqual: (first, second) => isDate(first) && isDate(second) && first.getHours() === second.getHours() && first.getMinutes() === second.getMinutes(),\r\n _getTimeListItems() {\r\n var min = this.dateBox.dateOption(\"min\") || this._getBoundaryDate(\"min\");\r\n var max = this.dateBox.dateOption(\"max\") || this._getBoundaryDate(\"max\");\r\n var value = this.dateBox.dateOption(\"value\") || null;\r\n var delta = max - min;\r\n var minutes = min.getMinutes() % this.dateBox.option(\"interval\");\r\n if (delta < 0) {\r\n return []\r\n }\r\n if (delta > dateUtils.ONE_DAY) {\r\n delta = dateUtils.ONE_DAY\r\n }\r\n if (value - min < dateUtils.ONE_DAY) {\r\n return this._getRangeItems(min, new Date(min), delta)\r\n }\r\n min = this._getBoundaryDate(\"min\");\r\n min.setMinutes(minutes);\r\n if (value && Math.abs(value - max) < dateUtils.ONE_DAY) {\r\n delta = (60 * max.getHours() + Math.abs(max.getMinutes() - minutes)) * dateUtils.ONE_MINUTE\r\n }\r\n return this._getRangeItems(min, new Date(min), delta)\r\n },\r\n _getRangeItems(startValue, currentValue, rangeDuration) {\r\n var rangeItems = [];\r\n var interval = this.dateBox.option(\"interval\");\r\n while (currentValue - startValue <= rangeDuration) {\r\n rangeItems.push(new Date(currentValue));\r\n currentValue.setMinutes(currentValue.getMinutes() + interval)\r\n }\r\n return rangeItems\r\n },\r\n _getBoundaryDate(boundary) {\r\n var boundaryValue = BOUNDARY_VALUES[boundary];\r\n var currentValue = new Date(ensureDefined(this.dateBox.dateOption(\"value\"), 0));\r\n return new Date(currentValue.getFullYear(), currentValue.getMonth(), currentValue.getDate(), boundaryValue.getHours(), boundaryValue.getMinutes())\r\n },\r\n _timeListItemTemplate(itemData) {\r\n var displayFormat = this.dateBox.option(\"displayFormat\");\r\n return dateLocalization.format(itemData, this.getDisplayFormat(displayFormat))\r\n },\r\n _listItemClickHandler(e) {\r\n if (\"useButtons\" === this.dateBox.option(\"applyValueMode\")) {\r\n return\r\n }\r\n var date = this._getDateByItemData(e.itemData);\r\n this.dateBox.option(\"opened\", false);\r\n this.dateBoxValue(date, e.event)\r\n },\r\n _getDateByItemData(itemData) {\r\n var date = this.dateBox.option(\"value\");\r\n var hours = itemData.getHours();\r\n var minutes = itemData.getMinutes();\r\n var seconds = itemData.getSeconds();\r\n var year = itemData.getFullYear();\r\n var month = itemData.getMonth();\r\n var day = itemData.getDate();\r\n if (date) {\r\n if (this.dateBox.option(\"dateSerializationFormat\")) {\r\n date = dateSerialization.deserializeDate(date)\r\n } else {\r\n date = new Date(date)\r\n }\r\n date.setHours(hours);\r\n date.setMinutes(minutes);\r\n date.setSeconds(seconds);\r\n date.setFullYear(year);\r\n date.setMonth(month);\r\n date.setDate(day)\r\n } else {\r\n date = new Date(year, month, day, hours, minutes, 0, 0)\r\n }\r\n return date\r\n },\r\n getKeyboardListener() {\r\n return this._widget\r\n },\r\n _updatePopupHeight() {\r\n var dropDownOptionsHeight = getSizeValue(this.dateBox.option(\"dropDownOptions.height\"));\r\n if (void 0 === dropDownOptionsHeight || \"auto\" === dropDownOptionsHeight) {\r\n this.dateBox._setPopupOption(\"height\", \"auto\");\r\n var popupHeight = getOuterHeight(this._widget.$element());\r\n var maxHeight = .45 * getHeight(window);\r\n this.dateBox._setPopupOption(\"height\", Math.min(popupHeight, maxHeight))\r\n }\r\n this.dateBox._timeList && this.dateBox._timeList.updateDimensions()\r\n },\r\n getParsedText(text, format) {\r\n var value = this.callBase(text, format);\r\n if (value) {\r\n value = dateUtils.mergeDates(value, new Date(null), DATE_FORMAT)\r\n }\r\n return value\r\n }\r\n});\r\nexport default ListStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/date_box/m_date_box.strategy.native.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../../core/devices\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport dateSerialization from \"../../../core/utils/date_serialization\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n inputType\r\n} from \"../../../core/utils/support\";\r\nimport DateBoxStrategy from \"./m_date_box.strategy\";\r\nimport dateUtils from \"./m_date_utils\";\r\nvar NativeStrategy = DateBoxStrategy.inherit({\r\n NAME: \"Native\",\r\n popupConfig: popupConfig => extend({}, popupConfig, {\r\n width: \"auto\"\r\n }),\r\n getParsedText(text) {\r\n if (!text) {\r\n return null\r\n }\r\n if (\"datetime\" === this.dateBox.option(\"type\")) {\r\n return new Date(text.replace(/-/g, \"/\").replace(\"T\", \" \").split(\".\")[0])\r\n }\r\n return dateUtils.fromStandardDateFormat(text)\r\n },\r\n renderPopupContent: noop,\r\n _getWidgetName: noop,\r\n _getWidgetOptions: noop,\r\n _getDateBoxType() {\r\n var type = this.dateBox.option(\"type\");\r\n if (!dateUtils.SUPPORTED_FORMATS.includes(type)) {\r\n type = \"date\"\r\n } else if (\"datetime\" === type && !inputType(type)) {\r\n type = \"datetime-local\"\r\n }\r\n return type\r\n },\r\n customizeButtons() {\r\n var dropDownButton = this.dateBox.getButton(\"dropDown\");\r\n if (devices.real().android && dropDownButton) {\r\n dropDownButton.on(\"click\", () => {\r\n this.dateBox._input().get(0).click()\r\n })\r\n }\r\n },\r\n getDefaultOptions() {\r\n return {\r\n mode: this._getDateBoxType()\r\n }\r\n },\r\n getDisplayFormat(displayFormat) {\r\n var type = this._getDateBoxType();\r\n return displayFormat || dateUtils.FORMATS_MAP[type]\r\n },\r\n renderInputMinMax($input) {\r\n $input.attr({\r\n min: dateSerialization.serializeDate(this.dateBox.dateOption(\"min\"), \"yyyy-MM-dd\"),\r\n max: dateSerialization.serializeDate(this.dateBox.dateOption(\"max\"), \"yyyy-MM-dd\")\r\n })\r\n }\r\n});\r\nexport default NativeStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/date_box/m_date_box.base.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport config from \"../../../core/config\";\r\nimport devices from \"../../../core/devices\";\r\nimport browser from \"../../../core/utils/browser\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport dateSerialization from \"../../../core/utils/date_serialization\";\r\nimport {\r\n createTextElementHiddenCopy\r\n} from \"../../../core/utils/dom\";\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 inputType\r\n} from \"../../../core/utils/support\";\r\nimport {\r\n isDate as isDateType,\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 dateLocalization from \"../../../localization/date\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport DropDownEditor from \"../../ui/drop_down_editor/m_drop_down_editor\";\r\nimport Calendar from \"./m_date_box.strategy.calendar\";\r\nimport CalendarWithTime from \"./m_date_box.strategy.calendar_with_time\";\r\nimport DateView from \"./m_date_box.strategy.date_view\";\r\nimport List from \"./m_date_box.strategy.list\";\r\nimport Native from \"./m_date_box.strategy.native\";\r\nimport uiDateUtils from \"./m_date_utils\";\r\nvar window = getWindow();\r\nvar DATEBOX_CLASS = \"dx-datebox\";\r\nvar DX_AUTO_WIDTH_CLASS = \"dx-auto-width\";\r\nvar DX_INVALID_BADGE_CLASS = \"dx-show-invalid-badge\";\r\nvar DX_CLEAR_BUTTON_CLASS = \"dx-clear-button-area\";\r\nvar DATEBOX_WRAPPER_CLASS = \"dx-datebox-wrapper\";\r\nvar DROPDOWNEDITOR_OVERLAY_CLASS = \"dx-dropdowneditor-overlay\";\r\nvar PICKER_TYPE = {\r\n calendar: \"calendar\",\r\n rollers: \"rollers\",\r\n list: \"list\",\r\n native: \"native\"\r\n};\r\nvar TYPE = {\r\n date: \"date\",\r\n datetime: \"datetime\",\r\n time: \"time\"\r\n};\r\nvar STRATEGY_NAME = {\r\n calendar: \"Calendar\",\r\n dateView: \"DateView\",\r\n native: \"Native\",\r\n calendarWithTime: \"CalendarWithTime\",\r\n list: \"List\"\r\n};\r\nvar STRATEGY_CLASSES = {\r\n Calendar: Calendar,\r\n DateView: DateView,\r\n Native: Native,\r\n CalendarWithTime: CalendarWithTime,\r\n List: List\r\n};\r\nvar DateBox = DropDownEditor.inherit({\r\n _supportedKeys() {\r\n return extend(this.callBase(), this._strategy.supportedKeys())\r\n },\r\n _renderButtonContainers() {\r\n this.callBase.apply(this, arguments);\r\n this._strategy.customizeButtons()\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n type: \"date\",\r\n showAnalogClock: true,\r\n value: null,\r\n dateSerializationFormat: void 0,\r\n min: void 0,\r\n max: void 0,\r\n displayFormat: null,\r\n interval: 30,\r\n disabledDates: null,\r\n pickerType: PICKER_TYPE.calendar,\r\n invalidDateMessage: messageLocalization.format(\"dxDateBox-validation-datetime\"),\r\n dateOutOfRangeMessage: messageLocalization.format(\"validation-range\"),\r\n applyButtonText: messageLocalization.format(\"OK\"),\r\n adaptivityEnabled: false,\r\n calendarOptions: {},\r\n useHiddenSubmitElement: true,\r\n _showValidationIcon: true\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 \"dropDownOptions.showTitle\": true\r\n }\r\n }, {\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n buttonsLocation: \"bottom after\"\r\n }\r\n }, {\r\n device() {\r\n var realDevice = devices.real();\r\n var {\r\n platform: platform\r\n } = realDevice;\r\n return \"ios\" === platform || \"android\" === platform\r\n },\r\n options: {\r\n pickerType: PICKER_TYPE.native\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\",\r\n deviceType: \"desktop\"\r\n },\r\n options: {\r\n buttonsLocation: \"bottom after\"\r\n }\r\n }])\r\n },\r\n _initOptions(options) {\r\n this._userOptions = extend({}, options);\r\n this.callBase(options);\r\n this._updatePickerOptions()\r\n },\r\n _updatePickerOptions() {\r\n var pickerType = this.option(\"pickerType\");\r\n var type = this.option(\"type\");\r\n if (pickerType === PICKER_TYPE.list && (type === TYPE.datetime || type === TYPE.date)) {\r\n pickerType = PICKER_TYPE.calendar\r\n }\r\n if (type === TYPE.time && pickerType === PICKER_TYPE.calendar) {\r\n pickerType = PICKER_TYPE.list\r\n }\r\n this._pickerType = pickerType;\r\n this._setShowDropDownButtonOption()\r\n },\r\n _setShowDropDownButtonOption() {\r\n var {\r\n platform: platform\r\n } = devices.real();\r\n var isMozillaOnAndroid = \"android\" === platform && browser.mozilla;\r\n var isNativePickerType = this._isNativeType();\r\n var showDropDownButton = \"generic\" !== platform || !isNativePickerType;\r\n if (isNativePickerType && isMozillaOnAndroid) {\r\n showDropDownButton = false\r\n }\r\n this.option({\r\n showDropDownButton: showDropDownButton\r\n })\r\n },\r\n _init() {\r\n this._initStrategy();\r\n this.option(extend({}, this._strategy.getDefaultOptions(), this._userOptions));\r\n delete this._userOptions;\r\n this.callBase()\r\n },\r\n _toLowerCaseFirstLetter: string => string.charAt(0).toLowerCase() + string.substr(1),\r\n _initStrategy() {\r\n var strategyName = this._getStrategyName(this._getFormatType());\r\n var strategy = STRATEGY_CLASSES[strategyName];\r\n if (!(this._strategy && this._strategy.NAME === strategyName)) {\r\n this._strategy = new strategy(this)\r\n }\r\n },\r\n _getFormatType() {\r\n var currentType = this.option(\"type\");\r\n var isTime = /h|m|s/g.test(currentType);\r\n var isDate = /d|M|Y/g.test(currentType);\r\n var type = \"\";\r\n if (isDate) {\r\n type += TYPE.date\r\n }\r\n if (isTime) {\r\n type += TYPE.time\r\n }\r\n return type\r\n },\r\n _getStrategyName(type) {\r\n var pickerType = this._pickerType;\r\n if (pickerType === PICKER_TYPE.rollers) {\r\n return STRATEGY_NAME.dateView\r\n }\r\n if (pickerType === PICKER_TYPE.native) {\r\n return STRATEGY_NAME.native\r\n }\r\n if (type === TYPE.date) {\r\n return STRATEGY_NAME.calendar\r\n }\r\n if (type === TYPE.datetime) {\r\n return STRATEGY_NAME.calendarWithTime\r\n }\r\n return STRATEGY_NAME.list\r\n },\r\n _initMarkup() {\r\n this.$element().addClass(DATEBOX_CLASS);\r\n this.callBase();\r\n this._refreshFormatClass();\r\n this._refreshPickerTypeClass();\r\n this._strategy.renderInputMinMax(this._input())\r\n },\r\n _render() {\r\n this.callBase();\r\n this._formatValidationIcon()\r\n },\r\n _renderDimensions() {\r\n this.callBase();\r\n this.$element().toggleClass(DX_AUTO_WIDTH_CLASS, !this.option(\"width\"));\r\n this._updatePopupWidth();\r\n this._updatePopupHeight()\r\n },\r\n _dimensionChanged() {\r\n this.callBase();\r\n this._updatePopupHeight()\r\n },\r\n _updatePopupHeight() {\r\n var _a, _b;\r\n if (this._popup) {\r\n null === (_b = (_a = this._strategy)._updatePopupHeight) || void 0 === _b ? void 0 : _b.call(_a)\r\n }\r\n },\r\n _refreshFormatClass() {\r\n var $element = this.$element();\r\n each(TYPE, (_, item) => {\r\n $element.removeClass(\"\".concat(DATEBOX_CLASS, \"-\").concat(item))\r\n });\r\n $element.addClass(\"\".concat(DATEBOX_CLASS, \"-\").concat(this.option(\"type\")))\r\n },\r\n _refreshPickerTypeClass() {\r\n var $element = this.$element();\r\n each(PICKER_TYPE, (_, item) => {\r\n $element.removeClass(\"\".concat(DATEBOX_CLASS, \"-\").concat(item))\r\n });\r\n $element.addClass(\"\".concat(DATEBOX_CLASS, \"-\").concat(this._pickerType))\r\n },\r\n _formatValidationIcon() {\r\n if (!hasWindow()) {\r\n return\r\n }\r\n var inputElement = this._input().get(0);\r\n var isRtlEnabled = this.option(\"rtlEnabled\");\r\n var clearButtonWidth = this._getClearButtonWidth();\r\n var longestElementDimensions = this._getLongestElementDimensions();\r\n var curWidth = parseFloat(window.getComputedStyle(inputElement).width) - clearButtonWidth;\r\n var shouldHideValidationIcon = longestElementDimensions.width > curWidth;\r\n var {\r\n style: style\r\n } = inputElement;\r\n this.$element().toggleClass(DX_INVALID_BADGE_CLASS, !shouldHideValidationIcon && this.option(\"_showValidationIcon\"));\r\n if (shouldHideValidationIcon) {\r\n if (void 0 === this._storedPadding) {\r\n this._storedPadding = isRtlEnabled ? longestElementDimensions.leftPadding : longestElementDimensions.rightPadding\r\n }\r\n isRtlEnabled ? style.paddingLeft = 0 : style.paddingRight = 0\r\n } else {\r\n isRtlEnabled ? style.paddingLeft = \"\".concat(this._storedPadding, \"px\") : style.paddingRight = \"\".concat(this._storedPadding, \"px\")\r\n }\r\n },\r\n _getClearButtonWidth() {\r\n var clearButtonWidth = 0;\r\n if (this._isClearButtonVisible() && \"\" === this._input().val()) {\r\n var clearButtonElement = this.$element().find(\".\".concat(DX_CLEAR_BUTTON_CLASS)).get(0);\r\n clearButtonWidth = parseFloat(window.getComputedStyle(clearButtonElement).width)\r\n }\r\n return clearButtonWidth\r\n },\r\n _getLongestElementDimensions() {\r\n var format = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n var longestValue = dateLocalization.format(uiDateUtils.getLongestDate(format, dateLocalization.getMonthNames(), dateLocalization.getDayNames()), format);\r\n var $input = this._input();\r\n var inputElement = $input.get(0);\r\n var $longestValueElement = createTextElementHiddenCopy($input, longestValue);\r\n var isPaddingStored = void 0 !== this._storedPadding;\r\n var storedPadding = !isPaddingStored ? 0 : this._storedPadding;\r\n $longestValueElement.appendTo(this.$element());\r\n var elementWidth = parseFloat(window.getComputedStyle($longestValueElement.get(0)).width);\r\n var rightPadding = parseFloat(window.getComputedStyle(inputElement).paddingRight);\r\n var leftPadding = parseFloat(window.getComputedStyle(inputElement).paddingLeft);\r\n var necessaryWidth = elementWidth + leftPadding + rightPadding + storedPadding;\r\n $longestValueElement.remove();\r\n return {\r\n width: necessaryWidth,\r\n leftPadding: leftPadding,\r\n rightPadding: rightPadding\r\n }\r\n },\r\n _getKeyboardListeners() {\r\n return this.callBase().concat([this._strategy && this._strategy.getKeyboardListener()])\r\n },\r\n _renderPopup() {\r\n this.callBase();\r\n this._popup.$wrapper().addClass(DATEBOX_WRAPPER_CLASS);\r\n this._renderPopupWrapper()\r\n },\r\n _getPopupToolbarItems() {\r\n var _a, _b, _c;\r\n var defaultItems = this.callBase();\r\n return null !== (_c = null === (_b = (_a = this._strategy)._getPopupToolbarItems) || void 0 === _b ? void 0 : _b.call(_a, defaultItems)) && void 0 !== _c ? _c : defaultItems\r\n },\r\n _popupConfig() {\r\n var popupConfig = this.callBase();\r\n return extend(this._strategy.popupConfig(popupConfig), {\r\n title: this._getPopupTitle(),\r\n dragEnabled: false\r\n })\r\n },\r\n _renderPopupWrapper() {\r\n if (!this._popup) {\r\n return\r\n }\r\n var $element = this.$element();\r\n var classPostfixes = extend({}, TYPE, PICKER_TYPE);\r\n each(classPostfixes, (_, item) => {\r\n $element.removeClass(\"\".concat(DATEBOX_WRAPPER_CLASS, \"-\").concat(item))\r\n });\r\n this._popup.$wrapper().addClass(\"\".concat(DATEBOX_WRAPPER_CLASS, \"-\").concat(this.option(\"type\"))).addClass(\"\".concat(DATEBOX_WRAPPER_CLASS, \"-\").concat(this._pickerType)).addClass(DROPDOWNEDITOR_OVERLAY_CLASS)\r\n },\r\n _renderPopupContent() {\r\n this.callBase();\r\n this._strategy.renderPopupContent()\r\n },\r\n _popupShowingHandler() {\r\n this.callBase();\r\n this._strategy.popupShowingHandler()\r\n },\r\n _popupShownHandler() {\r\n this.callBase();\r\n this._strategy.renderOpenedState()\r\n },\r\n _popupHiddenHandler() {\r\n this.callBase();\r\n this._strategy.renderOpenedState();\r\n this._strategy.popupHiddenHandler()\r\n },\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._formatValidationIcon()\r\n }\r\n },\r\n _clearValueHandler(e) {\r\n this.option(\"text\", \"\");\r\n this.callBase(e)\r\n },\r\n _readOnlyPropValue() {\r\n if (this._pickerType === PICKER_TYPE.rollers) {\r\n return true\r\n }\r\n var {\r\n platform: platform\r\n } = devices.real();\r\n var isCustomValueDisabled = this._isNativeType() && (\"ios\" === platform || \"android\" === platform);\r\n if (isCustomValueDisabled) {\r\n return this.option(\"readOnly\")\r\n }\r\n return this.callBase()\r\n },\r\n _isClearButtonVisible() {\r\n return this.callBase() && !this._isNativeType()\r\n },\r\n _renderValue() {\r\n var value = this.dateOption(\"value\");\r\n this.option(\"text\", this._getDisplayedText(value));\r\n this._strategy.renderValue();\r\n return this.callBase()\r\n },\r\n _setSubmitValue() {\r\n var value = this.dateOption(\"value\");\r\n var dateSerializationFormat = this.option(\"dateSerializationFormat\");\r\n var submitFormat = uiDateUtils.SUBMIT_FORMATS_MAP[this.option(\"type\")];\r\n var submitValue = dateSerializationFormat ? dateSerialization.serializeDate(value, dateSerializationFormat) : uiDateUtils.toStandardDateFormat(value, submitFormat);\r\n this._getSubmitElement().val(submitValue)\r\n },\r\n _getDisplayedText(value) {\r\n var mode = this.option(\"mode\");\r\n var displayedText;\r\n if (\"text\" === mode) {\r\n var displayFormat = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n displayedText = dateLocalization.format(value, displayFormat)\r\n } else {\r\n var format = this._getFormatByMode(mode);\r\n if (format) {\r\n displayedText = dateLocalization.format(value, format)\r\n } else {\r\n displayedText = uiDateUtils.toStandardDateFormat(value, mode)\r\n }\r\n }\r\n return displayedText\r\n },\r\n _getFormatByMode: mode => inputType(mode) ? null : uiDateUtils.FORMATS_MAP[mode],\r\n _valueChangeEventHandler(e) {\r\n var {\r\n text: text,\r\n type: type,\r\n validationError: validationError\r\n } = this.option();\r\n var currentValue = this.dateOption(\"value\");\r\n if (text === this._getDisplayedText(currentValue)) {\r\n this._recallInternalValidation(currentValue, validationError);\r\n return\r\n }\r\n var parsedDate = this._getParsedDate(text);\r\n var value = null !== currentValue && void 0 !== currentValue ? currentValue : this._getDateByDefault();\r\n var newValue = uiDateUtils.mergeDates(value, parsedDate, type);\r\n var date = parsedDate && \"time\" === type ? newValue : parsedDate;\r\n if (this._applyInternalValidation(date).isValid) {\r\n var displayedText = this._getDisplayedText(newValue);\r\n if (value && newValue && value.getTime() === newValue.getTime() && displayedText !== text) {\r\n this._renderValue()\r\n } else {\r\n this.dateValue(newValue, e)\r\n }\r\n }\r\n },\r\n _recallInternalValidation(value, validationError) {\r\n if (!validationError || validationError.editorSpecific) {\r\n this._applyInternalValidation(value);\r\n this._applyCustomValidation(value)\r\n }\r\n },\r\n _getDateByDefault() {\r\n return this._strategy.useCurrentDateByDefault() && this._strategy.getDefaultDate()\r\n },\r\n _getParsedDate(text) {\r\n var displayFormat = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n var parsedText = this._strategy.getParsedText(text, displayFormat);\r\n return null !== parsedText && void 0 !== parsedText ? parsedText : void 0\r\n },\r\n _applyInternalValidation(value) {\r\n var text = this.option(\"text\");\r\n var hasText = !!text && null !== value;\r\n var isDate = !!value && isDateType(value) && !isNaN(value.getTime());\r\n var isDateInRange = isDate && dateUtils.dateInRange(value, this.dateOption(\"min\"), this.dateOption(\"max\"), this.option(\"type\"));\r\n var isValid = !hasText && !value || isDateInRange;\r\n var validationMessage = \"\";\r\n if (!isDate) {\r\n validationMessage = this.option(\"invalidDateMessage\")\r\n } else if (!isDateInRange) {\r\n validationMessage = this.option(\"dateOutOfRangeMessage\")\r\n }\r\n this._updateInternalValidationState(isValid, validationMessage);\r\n return {\r\n isValid: isValid,\r\n isDate: isDate\r\n }\r\n },\r\n _updateInternalValidationState(isValid, validationMessage) {\r\n this.option({\r\n isValid: isValid,\r\n validationError: isValid ? null : {\r\n editorSpecific: true,\r\n message: validationMessage\r\n }\r\n })\r\n },\r\n _applyCustomValidation(value) {\r\n this.validationRequest.fire({\r\n editor: this,\r\n value: this._serializeDate(value)\r\n })\r\n },\r\n _isValueChanged(newValue) {\r\n var oldValue = this.dateOption(\"value\");\r\n var oldTime = oldValue && oldValue.getTime();\r\n var newTime = newValue && newValue.getTime();\r\n return oldTime !== newTime\r\n },\r\n _isTextChanged(newValue) {\r\n var oldText = this.option(\"text\");\r\n var newText = newValue && this._getDisplayedText(newValue) || \"\";\r\n return oldText !== newText\r\n },\r\n _renderProps() {\r\n this.callBase();\r\n this._input().attr(\"autocomplete\", \"off\")\r\n },\r\n _renderOpenedState() {\r\n if (!this._isNativeType()) {\r\n this.callBase()\r\n }\r\n if (this._strategy.isAdaptivityChanged()) {\r\n this._refreshStrategy()\r\n }\r\n },\r\n _getPopupTitle() {\r\n var placeholder = this.option(\"placeholder\");\r\n if (placeholder) {\r\n return placeholder\r\n }\r\n var type = this.option(\"type\");\r\n if (type === TYPE.time) {\r\n return messageLocalization.format(\"dxDateBox-simulatedDataPickerTitleTime\")\r\n }\r\n if (type === TYPE.date || type === TYPE.datetime) {\r\n return messageLocalization.format(\"dxDateBox-simulatedDataPickerTitleDate\")\r\n }\r\n return \"\"\r\n },\r\n _refreshStrategy() {\r\n this._strategy.dispose();\r\n this._initStrategy();\r\n this.option(this._strategy.getDefaultOptions());\r\n this._refresh()\r\n },\r\n _applyButtonHandler(e) {\r\n var value = this._strategy.getValue();\r\n this.dateValue(value, e.event);\r\n this.callBase()\r\n },\r\n _dispose() {\r\n var _a;\r\n this.callBase();\r\n null === (_a = this._strategy) || void 0 === _a ? void 0 : _a.dispose()\r\n },\r\n _isNativeType() {\r\n return this._pickerType === PICKER_TYPE.native\r\n },\r\n _updatePopupTitle() {\r\n var _a;\r\n null === (_a = this._popup) || void 0 === _a ? void 0 : _a.option(\"title\", this._getPopupTitle())\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"showClearButton\":\r\n case \"buttons\":\r\n this.callBase.apply(this, arguments);\r\n this._formatValidationIcon();\r\n break;\r\n case \"pickerType\":\r\n this._updatePickerOptions({\r\n pickerType: args.value\r\n });\r\n this._refreshStrategy();\r\n this._refreshPickerTypeClass();\r\n this._invalidate();\r\n break;\r\n case \"type\":\r\n this._updatePickerOptions({\r\n format: args.value\r\n });\r\n this._refreshStrategy();\r\n this._refreshFormatClass();\r\n this._renderPopupWrapper();\r\n this._formatValidationIcon();\r\n this._updateValue();\r\n break;\r\n case \"placeholder\":\r\n this.callBase.apply(this, arguments);\r\n this._updatePopupTitle();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n var isValid = this.option(\"isValid\");\r\n this._applyInternalValidation(this.dateOption(\"value\"));\r\n if (!isValid) {\r\n this._applyCustomValidation(this.dateOption(\"value\"))\r\n }\r\n this._invalidate();\r\n break;\r\n case \"dateSerializationFormat\":\r\n case \"interval\":\r\n case \"disabledDates\":\r\n case \"calendarOptions\":\r\n this._invalidate();\r\n break;\r\n case \"displayFormat\":\r\n this.option(\"text\", this._getDisplayedText(this.dateOption(\"value\")));\r\n this._renderInputValue();\r\n break;\r\n case \"text\":\r\n this._strategy.textChangedHandler(args.value);\r\n this.callBase.apply(this, arguments);\r\n break;\r\n case \"isValid\":\r\n this.callBase.apply(this, arguments);\r\n this._formatValidationIcon();\r\n break;\r\n case \"showDropDownButton\":\r\n this._formatValidationIcon();\r\n this.callBase.apply(this, arguments);\r\n break;\r\n case \"readOnly\":\r\n this.callBase.apply(this, arguments);\r\n this._formatValidationIcon();\r\n break;\r\n case \"todayButtonText\":\r\n this._setPopupOption(\"toolbarItems\", this._getPopupToolbarItems());\r\n break;\r\n case \"invalidDateMessage\":\r\n case \"dateOutOfRangeMessage\":\r\n case \"adaptivityEnabled\":\r\n case \"showAnalogClock\":\r\n case \"_showValidationIcon\":\r\n break;\r\n default:\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _getSerializationFormat() {\r\n var value = this.option(\"value\");\r\n if (this.option(\"dateSerializationFormat\") && config().forceIsoDateParsing) {\r\n return this.option(\"dateSerializationFormat\")\r\n }\r\n if (isNumeric(value)) {\r\n return \"number\"\r\n }\r\n if (!isString(value)) {\r\n return\r\n }\r\n return dateSerialization.getDateSerializationFormat(value)\r\n },\r\n _updateValue(value) {\r\n this.callBase();\r\n this._applyInternalValidation(null !== value && void 0 !== value ? value : this.dateOption(\"value\"))\r\n },\r\n dateValue(value, dxEvent) {\r\n var isValueChanged = this._isValueChanged(value);\r\n if (isValueChanged && dxEvent) {\r\n this._saveValueChangeEvent(dxEvent)\r\n }\r\n if (!isValueChanged) {\r\n if (this._isTextChanged(value)) {\r\n this._updateValue(value)\r\n } else if (\"\" === this.option(\"text\")) {\r\n this._applyCustomValidation(value)\r\n }\r\n }\r\n return this.dateOption(\"value\", value)\r\n },\r\n dateOption(optionName, value) {\r\n if (1 === arguments.length) {\r\n return dateSerialization.deserializeDate(this.option(optionName))\r\n }\r\n this.option(optionName, this._serializeDate(value))\r\n },\r\n _serializeDate(date) {\r\n var serializationFormat = this._getSerializationFormat();\r\n return dateSerialization.serializeDate(date, serializationFormat)\r\n },\r\n _clearValue() {\r\n var value = this.option(\"value\");\r\n this.callBase();\r\n if (null === value) {\r\n this._applyCustomValidation(null)\r\n }\r\n },\r\n clear() {\r\n var value = this.option(\"value\");\r\n this.callBase();\r\n if (null === value) {\r\n this._applyInternalValidation(null)\r\n }\r\n }\r\n});\r\nexport default DateBox;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/date_box/m_date_box.mask.parts.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n fitIntoRange\r\n} from \"../../../core/utils/math\";\r\nimport {\r\n getPatternSetters\r\n} from \"../../../localization/ldml/date.parser\";\r\nvar monthGetter = date => date.getMonth() + 1;\r\nvar monthSetter = (date, value) => {\r\n var day = date.getDate();\r\n var monthLimits = getLimits(\"M\", date);\r\n var newValue = fitIntoRange(parseInt(value), monthLimits.min, monthLimits.max);\r\n date.setMonth(newValue - 1, 1);\r\n var {\r\n min: min,\r\n max: max\r\n } = getLimits(\"dM\", date);\r\n var newDay = fitIntoRange(day, min, max);\r\n date.setDate(newDay)\r\n};\r\nvar PATTERN_GETTERS = {\r\n a: date => date.getHours() < 12 ? 0 : 1,\r\n E: \"getDay\",\r\n y: \"getFullYear\",\r\n M: monthGetter,\r\n L: monthGetter,\r\n d: \"getDate\",\r\n H: \"getHours\",\r\n h: \"getHours\",\r\n m: \"getMinutes\",\r\n s: \"getSeconds\",\r\n S: \"getMilliseconds\",\r\n x: \"getTimezoneOffset\"\r\n};\r\nvar PATTERN_SETTERS = extend({}, getPatternSetters(), {\r\n a: (date, value) => {\r\n var hours = date.getHours();\r\n var current = hours >= 12;\r\n if (current === !!parseInt(value)) {\r\n return\r\n }\r\n date.setHours((hours + 12) % 24)\r\n },\r\n d: (date, value) => {\r\n var lastDayInMonth = getLimits(\"dM\", date).max;\r\n if (value > lastDayInMonth) {\r\n date.setMonth(date.getMonth() + 1)\r\n }\r\n date.setDate(value)\r\n },\r\n h: (date, value) => {\r\n var isPM = date.getHours() >= 12;\r\n date.setHours(+value % 12 + (isPM ? 12 : 0))\r\n },\r\n M: monthSetter,\r\n L: monthSetter,\r\n E: (date, value) => {\r\n if (value < 0) {\r\n return\r\n }\r\n date.setDate(date.getDate() - date.getDay() + parseInt(value))\r\n },\r\n y: (date, value) => {\r\n var currentYear = date.getFullYear();\r\n var valueLength = String(value).length;\r\n var maxLimitLength = String(getLimits(\"y\", date).max).length;\r\n var newValue = parseInt(String(currentYear).substr(0, maxLimitLength - valueLength) + value);\r\n date.setFullYear(newValue)\r\n },\r\n x: date => date\r\n});\r\nvar getPatternGetter = patternChar => PATTERN_GETTERS[patternChar] || (() => patternChar);\r\nexport var renderDateParts = (text, regExpInfo) => {\r\n var result = regExpInfo.regexp.exec(text);\r\n var start = 0;\r\n var end = 0;\r\n var sections = [];\r\n var _loop = function() {\r\n start = end;\r\n end = start + result[i].length;\r\n var pattern = regExpInfo.patterns[i - 1].replace(/^'|'$/g, \"\");\r\n var getter = getPatternGetter(pattern[0]);\r\n sections.push({\r\n index: i - 1,\r\n isStub: pattern === result[i],\r\n caret: {\r\n start: start,\r\n end: end\r\n },\r\n pattern: pattern,\r\n text: result[i],\r\n limits: function() {\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 getLimits(pattern[0], ...args)\r\n },\r\n setter: PATTERN_SETTERS[pattern[0]] || noop,\r\n getter: getter\r\n })\r\n };\r\n for (var i = 1; i < result.length; i++) {\r\n _loop()\r\n }\r\n return sections\r\n};\r\nvar getLimits = (pattern, date, forcedPattern) => {\r\n var limits = {\r\n y: {\r\n min: 0,\r\n max: 9999\r\n },\r\n M: {\r\n min: 1,\r\n max: 12\r\n },\r\n L: {\r\n min: 1,\r\n max: 12\r\n },\r\n d: {\r\n min: 1,\r\n max: 31\r\n },\r\n dM: {\r\n min: 1,\r\n max: new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate()\r\n },\r\n E: {\r\n min: 0,\r\n max: 6\r\n },\r\n H: {\r\n min: 0,\r\n max: 23\r\n },\r\n h: {\r\n min: 1,\r\n max: 12\r\n },\r\n m: {\r\n min: 0,\r\n max: 59\r\n },\r\n s: {\r\n min: 0,\r\n max: 59\r\n },\r\n S: {\r\n min: 0,\r\n max: 999\r\n },\r\n a: {\r\n min: 0,\r\n max: 1\r\n },\r\n x: {\r\n min: 0,\r\n max: 0\r\n }\r\n };\r\n return limits[forcedPattern || pattern] || limits.getAmPm\r\n};\r\nexport var getDatePartIndexByPosition = (dateParts, position) => {\r\n for (var i = 0; i < dateParts.length; i++) {\r\n var caretInGroup = dateParts[i].caret.end >= position;\r\n if (!dateParts[i].isStub && caretInGroup) {\r\n return i\r\n }\r\n }\r\n return null\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/ui/date_box/m_date_box.mask.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../../core/devices\";\r\nimport browser from \"../../../core/utils/browser\";\r\nimport {\r\n clipboardText\r\n} from \"../../../core/utils/dom\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n fitIntoRange,\r\n inRange,\r\n sign\r\n} from \"../../../core/utils/math\";\r\nimport {\r\n isDate,\r\n isDefined,\r\n isFunction,\r\n isString\r\n} from \"../../../core/utils/type\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed,\r\n normalizeKeyName\r\n} from \"../../../events/utils/index\";\r\nimport dateLocalization from \"../../../localization/date\";\r\nimport defaultDateNames from \"../../../localization/default_date_names\";\r\nimport {\r\n getFormat\r\n} from \"../../../localization/ldml/date.format\";\r\nimport {\r\n getRegExpInfo\r\n} from \"../../../localization/ldml/date.parser\";\r\nimport numberLocalization from \"../../../localization/number\";\r\nimport DateBoxBase from \"./m_date_box.base\";\r\nimport {\r\n getDatePartIndexByPosition,\r\n renderDateParts\r\n} from \"./m_date_box.mask.parts\";\r\nvar MASK_EVENT_NAMESPACE = \"dateBoxMask\";\r\nvar FORWARD = 1;\r\nvar BACKWARD = -1;\r\nvar DateBoxMask = DateBoxBase.inherit({\r\n _supportedKeys(e) {\r\n var originalHandlers = this.callBase(e);\r\n var callOriginalHandler = e => {\r\n var originalHandler = originalHandlers[normalizeKeyName(e)];\r\n return originalHandler && originalHandler.apply(this, [e])\r\n };\r\n var applyHandler = (e, maskHandler) => {\r\n if (this._shouldUseOriginalHandler(e)) {\r\n return callOriginalHandler.apply(this, [e])\r\n }\r\n return maskHandler.apply(this, [e])\r\n };\r\n return extend({}, originalHandlers, {\r\n del: e => applyHandler(e, event => {\r\n this._revertPart(FORWARD);\r\n this._isAllSelected() || event.preventDefault()\r\n }),\r\n backspace: e => applyHandler(e, event => {\r\n this._revertPart(BACKWARD);\r\n this._isAllSelected() || event.preventDefault()\r\n }),\r\n home: e => applyHandler(e, event => {\r\n this._selectFirstPart();\r\n event.preventDefault()\r\n }),\r\n end: e => applyHandler(e, event => {\r\n this._selectLastPart();\r\n event.preventDefault()\r\n }),\r\n escape: e => applyHandler(e, event => {\r\n this._revertChanges(event)\r\n }),\r\n enter: e => applyHandler(e, () => {\r\n this._enterHandler()\r\n }),\r\n leftArrow: e => applyHandler(e, event => {\r\n this._selectNextPart(BACKWARD);\r\n event.preventDefault()\r\n }),\r\n rightArrow: e => applyHandler(e, event => {\r\n this._selectNextPart(FORWARD);\r\n event.preventDefault()\r\n }),\r\n upArrow: e => applyHandler(e, event => {\r\n this._upDownArrowHandler(FORWARD);\r\n event.preventDefault()\r\n }),\r\n downArrow: e => applyHandler(e, event => {\r\n this._upDownArrowHandler(BACKWARD);\r\n event.preventDefault()\r\n })\r\n })\r\n },\r\n _shouldUseOriginalHandler(e) {\r\n var isNotDeletingInCalendar = this.option(\"opened\") && e && ![\"backspace\", \"del\"].includes(normalizeKeyName(e));\r\n return !this._useMaskBehavior() || isNotDeletingInCalendar || e && e.altKey\r\n },\r\n _upDownArrowHandler(step) {\r\n this._setNewDateIfEmpty();\r\n var originalValue = this._getActivePartValue(this._initialMaskValue);\r\n var currentValue = this._getActivePartValue();\r\n var delta = currentValue - originalValue;\r\n this._loadMaskValue(this._initialMaskValue);\r\n this._changePartValue(delta + step, true)\r\n },\r\n _changePartValue(step, lockOtherParts) {\r\n var activePartPattern = this._getActivePartProp(\"pattern\");\r\n var isAmPmPartActive = /^a{1,5}$/.test(activePartPattern);\r\n if (isAmPmPartActive) {\r\n this._toggleAmPm()\r\n } else {\r\n this._partIncrease(step, lockOtherParts)\r\n }\r\n },\r\n _toggleAmPm() {\r\n var currentValue = this._getActivePartProp(\"text\");\r\n var indexOfCurrentValue = defaultDateNames.getPeriodNames().indexOf(currentValue);\r\n var newValue = 1 ^ indexOfCurrentValue;\r\n this._setActivePartValue(newValue)\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n useMaskBehavior: false,\r\n emptyDateValue: new Date(2e3, 0, 1, 0, 0, 0)\r\n })\r\n },\r\n _isSingleCharKey(_ref) {\r\n var {\r\n originalEvent: originalEvent,\r\n alt: alt\r\n } = _ref;\r\n var key = originalEvent.data || originalEvent.key;\r\n return \"string\" === typeof key && 1 === key.length && !alt && !isCommandKeyPressed(originalEvent)\r\n },\r\n _isSingleDigitKey(e) {\r\n var _a;\r\n var data = null === (_a = e.originalEvent) || void 0 === _a ? void 0 : _a.data;\r\n return 1 === (null === data || void 0 === data ? void 0 : data.length) && parseInt(data, 10)\r\n },\r\n _useBeforeInputEvent: () => devices.real().android,\r\n _keyInputHandler(e, key) {\r\n var oldInputValue = this._input().val();\r\n this._processInputKey(key);\r\n e.preventDefault();\r\n var isValueChanged = oldInputValue !== this._input().val();\r\n isValueChanged && eventsEngine.trigger(this._input(), \"input\")\r\n },\r\n _keyboardHandler(e) {\r\n var {\r\n key: key\r\n } = e.originalEvent;\r\n var result = this.callBase(e);\r\n if (!this._useMaskBehavior() || this._useBeforeInputEvent()) {\r\n return result\r\n }\r\n if (browser.chrome && \"Process\" === e.key && 0 === e.code.indexOf(\"Digit\")) {\r\n key = e.code.replace(\"Digit\", \"\");\r\n this._processInputKey(key);\r\n this._maskInputHandler = () => {\r\n this._renderSelectedPart()\r\n }\r\n } else if (this._isSingleCharKey(e)) {\r\n this._keyInputHandler(e.originalEvent, key)\r\n }\r\n return result\r\n },\r\n _maskBeforeInputHandler(e) {\r\n this._maskInputHandler = null;\r\n var {\r\n inputType: inputType\r\n } = e.originalEvent;\r\n if (\"insertCompositionText\" === inputType) {\r\n this._maskInputHandler = () => {\r\n this._renderSelectedPart()\r\n }\r\n }\r\n var isBackwardDeletion = \"deleteContentBackward\" === inputType;\r\n var isForwardDeletion = \"deleteContentForward\" === inputType;\r\n if (isBackwardDeletion || isForwardDeletion) {\r\n var direction = isBackwardDeletion ? BACKWARD : FORWARD;\r\n this._maskInputHandler = () => {\r\n this._revertPart();\r\n this._selectNextPart(direction)\r\n }\r\n }\r\n if (!this._useMaskBehavior() || !this._isSingleCharKey(e)) {\r\n return\r\n }\r\n var key = e.originalEvent.data;\r\n this._keyInputHandler(e, key);\r\n return true\r\n },\r\n _keyPressHandler(e) {\r\n var {\r\n originalEvent: event\r\n } = e;\r\n if (\"insertCompositionText\" === (null === event || void 0 === event ? void 0 : event.inputType) && this._isSingleDigitKey(e)) {\r\n this._processInputKey(event.data);\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._selectNextPart()\r\n }\r\n this.callBase(e);\r\n if (this._maskInputHandler) {\r\n this._maskInputHandler();\r\n this._maskInputHandler = null\r\n }\r\n },\r\n _processInputKey(key) {\r\n if (this._isAllSelected()) {\r\n this._activePartIndex = 0\r\n }\r\n this._setNewDateIfEmpty();\r\n if (isNaN(parseInt(key))) {\r\n this._searchString(key)\r\n } else {\r\n this._searchNumber(key)\r\n }\r\n },\r\n _isAllSelected() {\r\n var caret = this._caret();\r\n return caret.end - caret.start === this.option(\"text\").length\r\n },\r\n _getFormatPattern() {\r\n if (this._formatPattern) {\r\n return this._formatPattern\r\n }\r\n var format = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n var isLDMLPattern = isString(format) && !dateLocalization._getPatternByFormat(format);\r\n if (isLDMLPattern) {\r\n this._formatPattern = format\r\n } else {\r\n this._formatPattern = getFormat(value => dateLocalization.format(value, format))\r\n }\r\n return this._formatPattern\r\n },\r\n _setNewDateIfEmpty() {\r\n if (!this._maskValue) {\r\n var value = \"time\" === this.option(\"type\") ? new Date(null) : new Date;\r\n this._maskValue = value;\r\n this._initialMaskValue = value;\r\n this._renderDateParts()\r\n }\r\n },\r\n _partLimitsReached(max) {\r\n var maxLimitLength = String(max).length;\r\n var formatLength = this._getActivePartProp(\"pattern\").length;\r\n var isShortFormat = 1 === formatLength;\r\n var maxSearchLength = isShortFormat ? maxLimitLength : Math.min(formatLength, maxLimitLength);\r\n var isLengthExceeded = this._searchValue.length === maxSearchLength;\r\n var isValueOverflowed = parseInt(\"\".concat(this._searchValue, \"0\")) > max;\r\n return isLengthExceeded || isValueOverflowed\r\n },\r\n _searchNumber(char) {\r\n var {\r\n max: max\r\n } = this._getActivePartLimits();\r\n var maxLimitLength = String(max).length;\r\n this._searchValue = (this._searchValue + char).substr(-maxLimitLength);\r\n if (isNaN(this._searchValue)) {\r\n this._searchValue = char\r\n }\r\n this._setActivePartValue(this._searchValue);\r\n if (this._partLimitsReached(max)) {\r\n this._selectNextPart(FORWARD)\r\n }\r\n },\r\n _searchString(char) {\r\n if (!isNaN(parseInt(this._getActivePartProp(\"text\")))) {\r\n return\r\n }\r\n var limits = this._getActivePartProp(\"limits\")(this._maskValue);\r\n var startString = this._searchValue + char.toLowerCase();\r\n var endLimit = limits.max - limits.min;\r\n for (var i = 0; i <= endLimit; i++) {\r\n this._loadMaskValue(this._initialMaskValue);\r\n this._changePartValue(i + 1);\r\n if (0 === this._getActivePartProp(\"text\").toLowerCase().indexOf(startString)) {\r\n this._searchValue = startString;\r\n return\r\n }\r\n }\r\n this._setNewDateIfEmpty();\r\n if (this._searchValue) {\r\n this._clearSearchValue();\r\n this._searchString(char)\r\n }\r\n },\r\n _clearSearchValue() {\r\n this._searchValue = \"\"\r\n },\r\n _revertPart(direction) {\r\n if (!this._isAllSelected()) {\r\n var actual = this._getActivePartValue(this.option(\"emptyDateValue\"));\r\n this._setActivePartValue(actual);\r\n this._selectNextPart(direction)\r\n }\r\n this._clearSearchValue()\r\n },\r\n _useMaskBehavior() {\r\n return this.option(\"useMaskBehavior\") && \"text\" === this.option(\"mode\")\r\n },\r\n _prepareRegExpInfo() {\r\n this._regExpInfo = getRegExpInfo(this._getFormatPattern(), dateLocalization);\r\n var {\r\n regexp: regexp\r\n } = this._regExpInfo;\r\n var {\r\n source: source\r\n } = regexp;\r\n var {\r\n flags: flags\r\n } = regexp;\r\n var quantifierRegexp = new RegExp(/(\\{[0-9]+,?[0-9]*\\})/);\r\n var convertedSource = source.split(quantifierRegexp).map(sourcePart => quantifierRegexp.test(sourcePart) ? sourcePart : numberLocalization.convertDigits(sourcePart, false)).join(\"\");\r\n this._regExpInfo.regexp = new RegExp(convertedSource, flags)\r\n },\r\n _initMaskState() {\r\n this._activePartIndex = 0;\r\n this._formatPattern = null;\r\n this._prepareRegExpInfo();\r\n this._loadMaskValue()\r\n },\r\n _renderMask() {\r\n this.callBase();\r\n this._detachMaskEvents();\r\n this._clearMaskState();\r\n if (this._useMaskBehavior()) {\r\n this._attachMaskEvents();\r\n this._initMaskState();\r\n this._renderDateParts()\r\n }\r\n },\r\n _renderDateParts() {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var text = this.option(\"text\") || this._getDisplayedText(this._maskValue);\r\n if (text) {\r\n this._dateParts = renderDateParts(text, this._regExpInfo);\r\n if (!this._input().is(\":hidden\")) {\r\n this._selectNextPart()\r\n }\r\n }\r\n },\r\n _detachMaskEvents() {\r\n eventsEngine.off(this._input(), \".\".concat(MASK_EVENT_NAMESPACE))\r\n },\r\n _attachMaskEvents() {\r\n eventsEngine.on(this._input(), addNamespace(\"dxclick\", MASK_EVENT_NAMESPACE), this._maskClickHandler.bind(this));\r\n eventsEngine.on(this._input(), addNamespace(\"paste\", MASK_EVENT_NAMESPACE), this._maskPasteHandler.bind(this));\r\n eventsEngine.on(this._input(), addNamespace(\"drop\", MASK_EVENT_NAMESPACE), () => {\r\n this._renderSelectedPart()\r\n });\r\n eventsEngine.on(this._input(), addNamespace(\"compositionend\", MASK_EVENT_NAMESPACE), this._maskCompositionEndHandler.bind(this));\r\n if (this._useBeforeInputEvent()) {\r\n eventsEngine.on(this._input(), addNamespace(\"beforeinput\", MASK_EVENT_NAMESPACE), this._maskBeforeInputHandler.bind(this))\r\n }\r\n },\r\n _renderSelectedPart() {\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._selectNextPart()\r\n },\r\n _selectLastPart() {\r\n if (this.option(\"text\")) {\r\n this._activePartIndex = this._dateParts.length;\r\n this._selectNextPart(BACKWARD)\r\n }\r\n },\r\n _selectFirstPart() {\r\n if (this.option(\"text\")) {\r\n this._activePartIndex = -1;\r\n this._selectNextPart(FORWARD)\r\n }\r\n },\r\n _onMouseWheel(e) {\r\n if (this._useMaskBehavior()) {\r\n this._partIncrease(e.delta > 0 ? FORWARD : BACKWARD, e)\r\n }\r\n },\r\n _selectNextPart() {\r\n var step = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0;\r\n if (!this.option(\"text\") || this._disposed) {\r\n return\r\n }\r\n if (step) {\r\n this._initialMaskValue = new Date(this._maskValue)\r\n }\r\n var index = fitIntoRange(this._activePartIndex + step, 0, this._dateParts.length - 1);\r\n if (this._dateParts[index].isStub) {\r\n var isBoundaryIndex = 0 === index && step < 0 || index === this._dateParts.length - 1 && step > 0;\r\n if (!isBoundaryIndex) {\r\n this._selectNextPart(step >= 0 ? step + 1 : step - 1);\r\n return\r\n }\r\n index = this._activePartIndex\r\n }\r\n if (this._activePartIndex !== index) {\r\n this._clearSearchValue()\r\n }\r\n this._activePartIndex = index;\r\n this._caret(this._getActivePartProp(\"caret\"))\r\n },\r\n _getRealLimitsPattern() {\r\n if (\"d\" === this._getActivePartProp(\"pattern\")[0]) {\r\n return \"dM\"\r\n }\r\n },\r\n _getActivePartLimits(lockOtherParts) {\r\n var limitFunction = this._getActivePartProp(\"limits\");\r\n return limitFunction(this._maskValue, lockOtherParts && this._getRealLimitsPattern())\r\n },\r\n _getActivePartValue(dateValue) {\r\n dateValue = dateValue || this._maskValue;\r\n var getter = this._getActivePartProp(\"getter\");\r\n return isFunction(getter) ? getter(dateValue) : dateValue[getter]()\r\n },\r\n _addLeadingZeroes(value) {\r\n var zeroes = this._searchValue.match(/^0+/);\r\n var limits = this._getActivePartLimits();\r\n var maxLimitLength = String(limits.max).length;\r\n return ((zeroes && zeroes[0] || \"\") + String(value)).substr(-maxLimitLength)\r\n },\r\n _setActivePartValue(value, dateValue) {\r\n dateValue = dateValue || this._maskValue;\r\n var setter = this._getActivePartProp(\"setter\");\r\n var limits = this._getActivePartLimits();\r\n value = inRange(value, limits.min, limits.max) ? value : value % 10;\r\n value = this._addLeadingZeroes(fitIntoRange(value, limits.min, limits.max));\r\n isFunction(setter) ? setter(dateValue, value) : dateValue[setter](value);\r\n this._renderDisplayText(this._getDisplayedText(dateValue));\r\n this._renderDateParts()\r\n },\r\n _getActivePartProp(property) {\r\n if (!this._dateParts || !this._dateParts[this._activePartIndex]) {\r\n return\r\n }\r\n return this._dateParts[this._activePartIndex][property]\r\n },\r\n _loadMaskValue() {\r\n var value = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.dateOption(\"value\");\r\n this._maskValue = value && new Date(value);\r\n this._initialMaskValue = value && new Date(value)\r\n },\r\n _saveMaskValue() {\r\n var value = this._maskValue && new Date(this._maskValue);\r\n if (value && \"date\" === this.option(\"type\")) {\r\n value.setHours(0, 0, 0, 0)\r\n }\r\n this._initialMaskValue = new Date(value);\r\n this.dateOption(\"value\", value)\r\n },\r\n _revertChanges() {\r\n this._loadMaskValue();\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._renderDateParts()\r\n },\r\n _renderDisplayText(text) {\r\n this.callBase(text);\r\n if (this._useMaskBehavior()) {\r\n this.option(\"text\", text)\r\n }\r\n },\r\n _partIncrease(step, lockOtherParts) {\r\n this._setNewDateIfEmpty();\r\n var {\r\n max: max,\r\n min: min\r\n } = this._getActivePartLimits(lockOtherParts);\r\n var newValue = step + this._getActivePartValue();\r\n if (newValue > max) {\r\n newValue = this._applyLimits(newValue, {\r\n limitBase: min,\r\n limitClosest: max,\r\n max: max\r\n })\r\n } else if (newValue < min) {\r\n newValue = this._applyLimits(newValue, {\r\n limitBase: max,\r\n limitClosest: min,\r\n max: max\r\n })\r\n }\r\n this._setActivePartValue(newValue)\r\n },\r\n _applyLimits(newValue, _ref2) {\r\n var {\r\n limitBase: limitBase,\r\n limitClosest: limitClosest,\r\n max: max\r\n } = _ref2;\r\n var delta = (newValue - limitClosest) % max;\r\n return delta ? limitBase + delta - 1 * sign(delta) : limitClosest\r\n },\r\n _maskClickHandler() {\r\n this._loadMaskValue(this._maskValue);\r\n if (this.option(\"text\")) {\r\n this._activePartIndex = getDatePartIndexByPosition(this._dateParts, this._caret().start);\r\n if (!this._isAllSelected()) {\r\n if (isDefined(this._activePartIndex)) {\r\n this._caret(this._getActivePartProp(\"caret\"))\r\n } else {\r\n this._selectLastPart()\r\n }\r\n }\r\n }\r\n },\r\n _maskCompositionEndHandler(e) {\r\n this._input().val(this._getDisplayedText(this._maskValue));\r\n this._selectNextPart();\r\n this._maskInputHandler = () => {\r\n this._renderSelectedPart()\r\n }\r\n },\r\n _maskPasteHandler(e) {\r\n var newText = this._replaceSelectedText(this.option(\"text\"), this._caret(), clipboardText(e));\r\n var date = dateLocalization.parse(newText, this._getFormatPattern());\r\n if (date && this._isDateValid(date)) {\r\n this._maskValue = date;\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._renderDateParts();\r\n this._selectNextPart()\r\n }\r\n e.preventDefault()\r\n },\r\n _isDateValid: date => isDate(date) && !isNaN(date),\r\n _isValueDirty() {\r\n var value = this.dateOption(\"value\");\r\n return (this._maskValue && this._maskValue.getTime()) !== (value && value.getTime())\r\n },\r\n _fireChangeEvent() {\r\n this._clearSearchValue();\r\n if (this._isValueDirty()) {\r\n eventsEngine.trigger(this._input(), \"change\")\r\n }\r\n },\r\n _enterHandler() {\r\n this._fireChangeEvent();\r\n this._selectNextPart(FORWARD)\r\n },\r\n _focusOutHandler(e) {\r\n var shouldFireChangeEvent = this._useMaskBehavior() && !e.isDefaultPrevented();\r\n if (shouldFireChangeEvent) {\r\n this._fireChangeEvent();\r\n this.callBase(e);\r\n this._selectFirstPart(e)\r\n } else {\r\n this.callBase(e)\r\n }\r\n },\r\n _valueChangeEventHandler(e) {\r\n var text = this.option(\"text\");\r\n if (this._useMaskBehavior()) {\r\n this._saveValueChangeEvent(e);\r\n if (!text) {\r\n this._maskValue = null\r\n } else if (null === this._maskValue) {\r\n this._loadMaskValue(text)\r\n }\r\n this._saveMaskValue()\r\n } else {\r\n this.callBase(e)\r\n }\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"useMaskBehavior\":\r\n this._renderMask();\r\n break;\r\n case \"displayFormat\":\r\n case \"mode\":\r\n this.callBase(args);\r\n this._renderMask();\r\n break;\r\n case \"value\":\r\n this._loadMaskValue();\r\n this.callBase(args);\r\n this._renderDateParts();\r\n break;\r\n case \"emptyDateValue\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clearMaskState() {\r\n this._clearSearchValue();\r\n delete this._dateParts;\r\n delete this._activePartIndex;\r\n delete this._maskValue\r\n },\r\n clear() {\r\n this._clearMaskState();\r\n this._activePartIndex = 0;\r\n this.callBase()\r\n },\r\n _clean() {\r\n this.callBase();\r\n this._detachMaskEvents();\r\n this._clearMaskState()\r\n }\r\n});\r\nexport default DateBoxMask;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/date_box/m_date_box.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport DateBoxMask from \"./m_date_box.mask\";\r\nregisterComponent(\"dxDateBox\", DateBoxMask);\r\nexport default DateBoxMask;\r\n","/**\r\n * DevExtreme (esm/ui/date_box.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport DateBox from \"../__internal/ui/date_box/m_date_box\";\r\nexport default DateBox;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/m_responsive_box.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n grep,\r\n noop\r\n} from \"../../core/utils/common\";\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 getWidth\r\n} from \"../../core/utils/size\";\r\nimport {\r\n isDefined,\r\n isEmptyObject,\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n defaultScreenFactorFunc,\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport Box from \"../../ui/box\";\r\nimport CollectionWidget from \"../../ui/collection/ui.collection_widget.edit\";\r\nimport errors from \"../../ui/widget/ui.errors\";\r\nvar RESPONSIVE_BOX_CLASS = \"dx-responsivebox\";\r\nvar SCREEN_SIZE_CLASS_PREFIX = \"\".concat(RESPONSIVE_BOX_CLASS, \"-screen-\");\r\nvar BOX_ITEM_CLASS = \"dx-box-item\";\r\nvar BOX_ITEM_DATA_KEY = \"dxBoxItemData\";\r\nvar HD_SCREEN_WIDTH = 1920;\r\nvar ResponsiveBox = CollectionWidget.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n rows: [],\r\n cols: [],\r\n screenByWidth: null,\r\n singleColumnScreen: \"\",\r\n height: \"100%\",\r\n width: \"100%\",\r\n activeStateEnabled: false,\r\n focusStateEnabled: false,\r\n onItemStateChanged: void 0,\r\n onLayoutChanged: null,\r\n currentScreenFactor: void 0\r\n })\r\n },\r\n _init() {\r\n if (!this.option(\"screenByWidth\")) {\r\n this._options.silent(\"screenByWidth\", defaultScreenFactorFunc)\r\n }\r\n this.callBase();\r\n this._initLayoutChangedAction()\r\n },\r\n _initLayoutChangedAction() {\r\n this._layoutChangedAction = this._createActionByOption(\"onLayoutChanged\", {\r\n excludeValidators: [\"disabled\", \"readonly\"]\r\n })\r\n },\r\n _itemClass: () => BOX_ITEM_CLASS,\r\n _itemDataKey: () => BOX_ITEM_DATA_KEY,\r\n _initMarkup() {\r\n this.callBase();\r\n this.$element().addClass(RESPONSIVE_BOX_CLASS)\r\n },\r\n _renderItems() {\r\n this._setScreenSize();\r\n this._screenItems = this._itemsByScreen();\r\n this._prepareGrid();\r\n this._spreadItems();\r\n this._layoutItems();\r\n this._linkNodeToItem()\r\n },\r\n _itemOptionChanged(item) {\r\n var $item = this._findItemElementByItem(item);\r\n if (!$item.length) {\r\n return\r\n }\r\n this._refreshItem($item, item);\r\n this._clearItemNodeTemplates();\r\n this._update(true)\r\n },\r\n _setScreenSize() {\r\n var currentScreen = this._getCurrentScreen();\r\n this._removeScreenSizeClass();\r\n this.$element().addClass(SCREEN_SIZE_CLASS_PREFIX + currentScreen);\r\n this.option(\"currentScreenFactor\", currentScreen)\r\n },\r\n _removeScreenSizeClass() {\r\n var currentScreenFactor = this.option(\"currentScreenFactor\");\r\n currentScreenFactor && this.$element().removeClass(SCREEN_SIZE_CLASS_PREFIX + currentScreenFactor)\r\n },\r\n _prepareGrid() {\r\n var grid = this._grid = [];\r\n this._prepareRowsAndCols();\r\n each(this._rows, () => {\r\n var row = [];\r\n grid.push(row);\r\n each(this._cols, () => {\r\n row.push(this._createEmptyCell())\r\n })\r\n })\r\n },\r\n getSingleColumnRows() {\r\n var rows = this.option(\"rows\");\r\n var screenItemsLength = this._screenItems.length;\r\n if (rows.length) {\r\n var filteredRows = this._filterByScreen(rows);\r\n var result = [];\r\n for (var i = 0; i < screenItemsLength; i++) {\r\n var sizeConfig = this._defaultSizeConfig();\r\n if (i < filteredRows.length && isDefined(filteredRows[i].shrink)) {\r\n sizeConfig.shrink = filteredRows[i].shrink\r\n }\r\n result.push(sizeConfig)\r\n }\r\n return result\r\n }\r\n return this._defaultSizeConfig(screenItemsLength)\r\n },\r\n _prepareRowsAndCols() {\r\n if (this._isSingleColumnScreen()) {\r\n this._prepareSingleColumnScreenItems();\r\n this._rows = this.getSingleColumnRows();\r\n this._cols = this._defaultSizeConfig(1)\r\n } else {\r\n this._rows = this._sizesByScreen(this.option(\"rows\"));\r\n this._cols = this._sizesByScreen(this.option(\"cols\"))\r\n }\r\n },\r\n _isSingleColumnScreen() {\r\n return this._screenRegExp().test(this.option(\"singleColumnScreen\")) || !this.option(\"rows\").length || !this.option(\"cols\").length\r\n },\r\n _prepareSingleColumnScreenItems() {\r\n this._screenItems.sort((item1, item2) => item1.location.row - item2.location.row || item1.location.col - item2.location.col);\r\n each(this._screenItems, (index, item) => {\r\n extend(item.location, {\r\n row: index,\r\n col: 0,\r\n rowspan: 1,\r\n colspan: 1\r\n })\r\n })\r\n },\r\n _sizesByScreen(sizeConfigs) {\r\n return map(this._filterByScreen(sizeConfigs), sizeConfig => extend(this._defaultSizeConfig(), sizeConfig))\r\n },\r\n _createDefaultSizeConfig: () => ({\r\n ratio: 1,\r\n baseSize: 0,\r\n minSize: 0,\r\n maxSize: 0\r\n }),\r\n _defaultSizeConfig(size) {\r\n var defaultSizeConfig = this._createDefaultSizeConfig();\r\n if (!arguments.length) {\r\n return defaultSizeConfig\r\n }\r\n var result = [];\r\n for (var i = 0; i < size; i++) {\r\n result.push(defaultSizeConfig)\r\n }\r\n return result\r\n },\r\n _filterByScreen(items) {\r\n var screenRegExp = this._screenRegExp();\r\n return grep(items, item => !item.screen || screenRegExp.test(item.screen))\r\n },\r\n _screenRegExp() {\r\n var screen = this._getCurrentScreen();\r\n return new RegExp(\"(^|\\\\s)\".concat(screen, \"($|\\\\s)\"), \"i\")\r\n },\r\n _getCurrentScreen() {\r\n var width = this._screenWidth();\r\n return this.option(\"screenByWidth\")(width)\r\n },\r\n _screenWidth: () => hasWindow() ? getWidth(getWindow()) : HD_SCREEN_WIDTH,\r\n _createEmptyCell: () => ({\r\n item: {},\r\n location: {\r\n colspan: 1,\r\n rowspan: 1\r\n }\r\n }),\r\n _spreadItems() {\r\n each(this._screenItems, (_, itemInfo) => {\r\n var location = itemInfo.location || {};\r\n var itemCol = location.col;\r\n var itemRow = location.row;\r\n var row = this._grid[itemRow];\r\n var itemCell = row && row[itemCol];\r\n this._occupyCells(itemCell, itemInfo)\r\n })\r\n },\r\n _itemsByScreen() {\r\n return this.option(\"items\").reduce((result, item) => {\r\n var locations = item.location || {};\r\n locations = isPlainObject(locations) ? [locations] : locations;\r\n this._filterByScreen(locations).forEach(location => {\r\n result.push({\r\n item: item,\r\n location: extend({\r\n rowspan: 1,\r\n colspan: 1\r\n }, location)\r\n })\r\n });\r\n return result\r\n }, [])\r\n },\r\n _occupyCells(itemCell, itemInfo) {\r\n if (!itemCell || this._isItemCellOccupied(itemCell, itemInfo)) {\r\n return\r\n }\r\n extend(itemCell, itemInfo);\r\n this._markSpanningCell(itemCell)\r\n },\r\n _isItemCellOccupied(itemCell, itemInfo) {\r\n if (!isEmptyObject(itemCell.item)) {\r\n return true\r\n }\r\n var result = false;\r\n this._loopOverSpanning(itemInfo.location, cell => {\r\n result = result || !isEmptyObject(cell.item)\r\n });\r\n return result\r\n },\r\n _loopOverSpanning(location, callback) {\r\n var rowEnd = location.row + location.rowspan - 1;\r\n var colEnd = location.col + location.colspan - 1;\r\n var boundRowEnd = Math.min(rowEnd, this._rows.length - 1);\r\n var boundColEnd = Math.min(colEnd, this._cols.length - 1);\r\n location.rowspan -= rowEnd - boundRowEnd;\r\n location.colspan -= colEnd - boundColEnd;\r\n for (var rowIndex = location.row; rowIndex <= boundRowEnd; rowIndex++) {\r\n for (var colIndex = location.col; colIndex <= boundColEnd; colIndex++) {\r\n if (rowIndex !== location.row || colIndex !== location.col) {\r\n callback(this._grid[rowIndex][colIndex])\r\n }\r\n }\r\n }\r\n },\r\n _markSpanningCell(itemCell) {\r\n this._loopOverSpanning(itemCell.location, cell => {\r\n extend(cell, {\r\n item: itemCell.item,\r\n spanningCell: itemCell\r\n })\r\n })\r\n },\r\n _linkNodeToItem() {\r\n each(this._itemElements(), (_, itemNode) => {\r\n var $item = $(itemNode);\r\n var item = $item.data(BOX_ITEM_DATA_KEY);\r\n if (!item.box) {\r\n item.node = $item.children()\r\n }\r\n })\r\n },\r\n _layoutItems() {\r\n var rowsCount = this._grid.length;\r\n var colsCount = rowsCount && this._grid[0].length;\r\n if (!rowsCount && !colsCount) {\r\n return\r\n }\r\n var result = this._layoutBlock({\r\n direction: \"col\",\r\n row: {\r\n start: 0,\r\n end: rowsCount - 1\r\n },\r\n col: {\r\n start: 0,\r\n end: colsCount - 1\r\n }\r\n });\r\n var rootBox = this._prepareBoxConfig(result.box || {\r\n direction: \"row\",\r\n items: [extend(result, {\r\n ratio: 1\r\n })]\r\n });\r\n extend(rootBox, this._rootBoxConfig(rootBox.items));\r\n this._$root = $(\"<div>\").appendTo(this._itemContainer());\r\n this._createComponent(this._$root, Box, rootBox)\r\n },\r\n _rootBoxConfig(items) {\r\n var rootItems = each(items, (index, item) => {\r\n this._needApplyAutoBaseSize(item) && extend(item, {\r\n baseSize: \"auto\"\r\n })\r\n });\r\n return {\r\n width: \"100%\",\r\n height: \"100%\",\r\n items: rootItems,\r\n itemTemplate: this._getTemplateByOption(\"itemTemplate\"),\r\n itemHoldTimeout: this.option(\"itemHoldTimeout\"),\r\n onItemHold: this._createActionByOption(\"onItemHold\"),\r\n onItemClick: this._createActionByOption(\"onItemClick\"),\r\n onItemContextMenu: this._createActionByOption(\"onItemContextMenu\"),\r\n onItemRendered: this._createActionByOption(\"onItemRendered\")\r\n }\r\n },\r\n _needApplyAutoBaseSize: item => !item.baseSize && (!item.minSize || \"auto\" === item.minSize) && (!item.maxSize || \"auto\" === item.maxSize),\r\n _prepareBoxConfig(config) {\r\n return extend(config || {}, {\r\n crossAlign: \"stretch\",\r\n onItemStateChanged: this.option(\"onItemStateChanged\")\r\n })\r\n },\r\n _layoutBlock(options) {\r\n if (this._isSingleItem(options)) {\r\n return this._itemByCell(options.row.start, options.col.start)\r\n }\r\n return this._layoutDirection(options)\r\n },\r\n _isSingleItem(options) {\r\n var firstCellLocation = this._grid[options.row.start][options.col.start].location;\r\n var isItemRowSpanned = options.row.end - options.row.start === firstCellLocation.rowspan - 1;\r\n var isItemColSpanned = options.col.end - options.col.start === firstCellLocation.colspan - 1;\r\n return isItemRowSpanned && isItemColSpanned\r\n },\r\n _itemByCell(rowIndex, colIndex) {\r\n var itemCell = this._grid[rowIndex][colIndex];\r\n return itemCell.spanningCell ? null : itemCell.item\r\n },\r\n _layoutDirection(options) {\r\n var items = [];\r\n var {\r\n direction: direction\r\n } = options;\r\n var crossDirection = this._crossDirection(direction);\r\n var block;\r\n while (block = this._nextBlock(options)) {\r\n if (this._isBlockIndivisible(options.prevBlockOptions, block)) {\r\n throw errors.Error(\"E1025\")\r\n }\r\n var item = this._layoutBlock({\r\n direction: crossDirection,\r\n row: block.row,\r\n col: block.col,\r\n prevBlockOptions: options\r\n });\r\n if (item) {\r\n extend(item, this._blockSize(block, crossDirection));\r\n items.push(item)\r\n }\r\n options[crossDirection].start = block[crossDirection].end + 1\r\n }\r\n return {\r\n box: this._prepareBoxConfig({\r\n direction: direction,\r\n items: items\r\n })\r\n }\r\n },\r\n _isBlockIndivisible: (options, block) => options && options.col.start === block.col.start && options.col.end === block.col.end && options.row.start === block.row.start && options.row.end === block.row.end,\r\n _crossDirection: direction => \"col\" === direction ? \"row\" : \"col\",\r\n _nextBlock(options) {\r\n var {\r\n direction: direction\r\n } = options;\r\n var crossDirection = this._crossDirection(direction);\r\n var startIndex = options[direction].start;\r\n var endIndex = options[direction].end;\r\n var crossStartIndex = options[crossDirection].start;\r\n if (crossStartIndex > options[crossDirection].end) {\r\n return null\r\n }\r\n var crossSpan = 1;\r\n for (var crossIndex = crossStartIndex; crossIndex < crossStartIndex + crossSpan; crossIndex++) {\r\n var lineCrossSpan = 1;\r\n for (var index = startIndex; index <= endIndex; index++) {\r\n var cell = this._cellByDirection(direction, index, crossIndex);\r\n lineCrossSpan = Math.max(lineCrossSpan, cell.location[\"\".concat(crossDirection, \"span\")])\r\n }\r\n var lineCrossEndIndex = crossIndex + lineCrossSpan;\r\n var crossEndIndex = crossStartIndex + crossSpan;\r\n if (lineCrossEndIndex > crossEndIndex) {\r\n crossSpan += lineCrossEndIndex - crossEndIndex\r\n }\r\n }\r\n var result = {};\r\n result[direction] = {\r\n start: startIndex,\r\n end: endIndex\r\n };\r\n result[crossDirection] = {\r\n start: crossStartIndex,\r\n end: crossStartIndex + crossSpan - 1\r\n };\r\n return result\r\n },\r\n _cellByDirection(direction, index, crossIndex) {\r\n return \"col\" === direction ? this._grid[crossIndex][index] : this._grid[index][crossIndex]\r\n },\r\n _blockSize(block, direction) {\r\n var defaultMinSize = \"row\" === direction ? \"auto\" : 0;\r\n var sizeConfigs = \"row\" === direction ? this._rows : this._cols;\r\n var result = extend(this._createDefaultSizeConfig(), {\r\n ratio: 0\r\n });\r\n for (var index = block[direction].start; index <= block[direction].end; index++) {\r\n var sizeConfig = sizeConfigs[index];\r\n result.ratio += sizeConfig.ratio;\r\n result.baseSize += sizeConfig.baseSize;\r\n result.minSize += sizeConfig.minSize;\r\n result.maxSize += sizeConfig.maxSize;\r\n if (isDefined(sizeConfig.shrink)) {\r\n result.shrink = sizeConfig.shrink\r\n }\r\n }\r\n result.minSize = result.minSize ? result.minSize : defaultMinSize;\r\n result.maxSize = result.maxSize ? result.maxSize : \"auto\";\r\n this._isSingleColumnScreen() && (result.baseSize = \"auto\");\r\n return result\r\n },\r\n _update(forceRemoveRoot) {\r\n var $existingRoot = this._$root;\r\n this._renderItems();\r\n if ($existingRoot) {\r\n if (forceRemoveRoot) {\r\n $existingRoot.remove()\r\n } else {\r\n $existingRoot.detach();\r\n this._saveAssistantRoot($existingRoot)\r\n }\r\n }\r\n this._layoutChangedAction()\r\n },\r\n _saveAssistantRoot($root) {\r\n this._assistantRoots = this._assistantRoots || [];\r\n this._assistantRoots.push($root)\r\n },\r\n _dispose() {\r\n this._clearItemNodeTemplates();\r\n this._cleanUnusedRoots();\r\n this.callBase.apply(this, arguments)\r\n },\r\n _cleanUnusedRoots() {\r\n if (!this._assistantRoots) {\r\n return\r\n }\r\n each(this._assistantRoots, (_, item) => {\r\n $(item).remove()\r\n })\r\n },\r\n _clearItemNodeTemplates() {\r\n each(this.option(\"items\"), (function() {\r\n delete this.node\r\n }))\r\n },\r\n _attachClickEvent: noop,\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"rows\":\r\n case \"cols\":\r\n case \"screenByWidth\":\r\n case \"singleColumnScreen\":\r\n this._clearItemNodeTemplates();\r\n this._invalidate();\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n this._update();\r\n break;\r\n case \"onLayoutChanged\":\r\n this._initLayoutChangedAction();\r\n break;\r\n case \"itemTemplate\":\r\n this._clearItemNodeTemplates();\r\n this.callBase(args);\r\n break;\r\n case \"currentScreenFactor\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _dimensionChanged() {\r\n if (this._getCurrentScreen() !== this.option(\"currentScreenFactor\")) {\r\n this._update()\r\n }\r\n },\r\n repaint() {\r\n this._update()\r\n }\r\n});\r\nregisterComponent(\"dxResponsiveBox\", ResponsiveBox);\r\nexport default ResponsiveBox;\r\n","/**\r\n * DevExtreme (esm/ui/responsive_box.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ResponsiveBox from \"../__internal/ui/m_responsive_box\";\r\nexport default ResponsiveBox;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/form/components/m_button_item.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nvar FIELD_BUTTON_ITEM_CLASS = \"dx-field-button-item\";\r\nexport function renderButtonItem(_ref) {\r\n var {\r\n item: item,\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList,\r\n validationGroup: validationGroup,\r\n createComponentCallback: createComponentCallback\r\n } = _ref;\r\n var $rootElement = $(\"<div>\").appendTo($parent).addClass(rootElementCssClassList.join(\" \")).addClass(FIELD_BUTTON_ITEM_CLASS).css(\"textAlign\", convertAlignmentToTextAlign(item.horizontalAlignment));\r\n $parent.css(\"justifyContent\", convertAlignmentToJustifyContent(item.verticalAlignment));\r\n var $button = $(\"<div>\").appendTo($rootElement);\r\n return {\r\n $rootElement: $rootElement,\r\n buttonInstance: createComponentCallback($button, \"dxButton\", extend({\r\n validationGroup: validationGroup\r\n }, item.buttonOptions))\r\n }\r\n}\r\n\r\nfunction convertAlignmentToTextAlign(horizontalAlignment) {\r\n return isDefined(horizontalAlignment) ? horizontalAlignment : \"right\"\r\n}\r\n\r\nfunction convertAlignmentToJustifyContent(verticalAlignment) {\r\n switch (verticalAlignment) {\r\n case \"center\":\r\n return \"center\";\r\n case \"bottom\":\r\n return \"flex-end\";\r\n default:\r\n return \"flex-start\"\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/form/components/m_empty_item.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nexport var FIELD_EMPTY_ITEM_CLASS = \"dx-field-empty-item\";\r\nexport function renderEmptyItem(_ref) {\r\n var {\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList\r\n } = _ref;\r\n return $(\"<div>\").addClass(FIELD_EMPTY_ITEM_CLASS).html(\" \").addClass(rootElementCssClassList.join(\" \")).appendTo($parent)\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/validation/m_default_adapter.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../../core/class\";\r\nvar DefaultAdapter = Class.inherit({\r\n ctor(editor, validator) {\r\n this.editor = editor;\r\n this.validator = validator;\r\n this.validationRequestsCallbacks = [];\r\n var handler = args => {\r\n this.validationRequestsCallbacks.forEach(item => item(args))\r\n };\r\n editor.validationRequest.add(handler);\r\n editor.on(\"disposing\", () => {\r\n editor.validationRequest.remove(handler)\r\n })\r\n },\r\n getValue() {\r\n return this.editor.option(\"value\")\r\n },\r\n getCurrentValidationError() {\r\n return this.editor.option(\"validationError\")\r\n },\r\n bypass() {\r\n return this.editor.option(\"disabled\")\r\n },\r\n applyValidationResults(params) {\r\n this.editor.option({\r\n validationErrors: params.brokenRules,\r\n validationStatus: params.status\r\n })\r\n },\r\n reset() {\r\n this.editor.clear()\r\n },\r\n focus() {\r\n this.editor.focus()\r\n }\r\n});\r\nexport default DefaultAdapter;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/m_validator.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport DOMComponent from \"../../core/dom_component\";\r\nimport {\r\n data as elementData\r\n} from \"../../core/element_data\";\r\nimport Guid from \"../../core/guid\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\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 map\r\n} from \"../../core/utils/iterator\";\r\nimport errors from \"../../ui/widget/ui.errors\";\r\nimport ValidationEngine from \"./m_validation_engine\";\r\nimport DefaultAdapter from \"./validation/m_default_adapter\";\r\nvar VALIDATOR_CLASS = \"dx-validator\";\r\nvar VALIDATION_STATUS_VALID = \"valid\";\r\nvar VALIDATION_STATUS_INVALID = \"invalid\";\r\nvar VALIDATION_STATUS_PENDING = \"pending\";\r\nvar Validator = DOMComponent.inherit({\r\n _initOptions(options) {\r\n this.callBase.apply(this, arguments);\r\n this.option(ValidationEngine.initValidationOptions(options))\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n validationRules: []\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initGroupRegistration();\r\n this.focused = Callbacks();\r\n this._initAdapter();\r\n this._validationInfo = {\r\n result: null,\r\n deferred: null,\r\n skipValidation: false\r\n }\r\n },\r\n _initGroupRegistration() {\r\n var group = this._findGroup();\r\n if (!this._groupWasInit) {\r\n this.on(\"disposing\", args => {\r\n ValidationEngine.removeRegisteredValidator(args.component._validationGroup, args.component)\r\n })\r\n }\r\n if (!this._groupWasInit || this._validationGroup !== group) {\r\n ValidationEngine.removeRegisteredValidator(this._validationGroup, this);\r\n this._groupWasInit = true;\r\n this._validationGroup = group;\r\n ValidationEngine.registerValidatorInGroup(group, this)\r\n }\r\n },\r\n _setOptionsByReference() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n validationGroup: true\r\n })\r\n },\r\n _getEditor() {\r\n var element = this.$element()[0];\r\n return elementData(element, \"dx-validation-target\")\r\n },\r\n _initAdapter() {\r\n var dxStandardEditor = this._getEditor();\r\n var adapter = this.option(\"adapter\");\r\n if (!adapter) {\r\n if (dxStandardEditor) {\r\n adapter = new DefaultAdapter(dxStandardEditor, this);\r\n adapter.validationRequestsCallbacks.push(args => {\r\n if (this._validationInfo.skipValidation) {\r\n return\r\n }\r\n this.validate(args)\r\n });\r\n this.option(\"adapter\", adapter);\r\n return\r\n }\r\n throw errors.Error(\"E0120\")\r\n }\r\n var callbacks = adapter.validationRequestsCallbacks;\r\n if (callbacks) {\r\n callbacks.push(args => {\r\n this.validate(args)\r\n })\r\n }\r\n },\r\n _toggleRTLDirection(isRtl) {\r\n var _a, _b, _c;\r\n var rtlEnabled = null !== (_c = null === (_b = null === (_a = this.option(\"adapter\")) || void 0 === _a ? void 0 : _a.editor) || void 0 === _b ? void 0 : _b.option(\"rtlEnabled\")) && void 0 !== _c ? _c : isRtl;\r\n this.callBase(rtlEnabled)\r\n },\r\n _initMarkup() {\r\n this.$element().addClass(VALIDATOR_CLASS);\r\n this.callBase()\r\n },\r\n _render() {\r\n this.callBase();\r\n this._toggleAccessibilityAttributes()\r\n },\r\n _toggleAccessibilityAttributes() {\r\n var dxStandardEditor = this._getEditor();\r\n if (dxStandardEditor) {\r\n var rules = this.option(\"validationRules\") || [];\r\n var isRequired = rules.some(_ref => {\r\n var {\r\n type: type\r\n } = _ref;\r\n return \"required\" === type\r\n }) || null;\r\n if (dxStandardEditor.isInitialized()) {\r\n dxStandardEditor.setAria(\"required\", isRequired)\r\n }\r\n dxStandardEditor.option(\"_onMarkupRendered\", () => {\r\n dxStandardEditor.setAria(\"required\", isRequired)\r\n })\r\n }\r\n },\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._initGroupRegistration()\r\n }\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"validationGroup\":\r\n this._initGroupRegistration();\r\n return;\r\n case \"validationRules\":\r\n this._resetValidationRules();\r\n this._toggleAccessibilityAttributes();\r\n void 0 !== this.option(\"isValid\") && this.validate();\r\n return;\r\n case \"adapter\":\r\n this._initAdapter();\r\n break;\r\n case \"isValid\":\r\n case \"validationStatus\":\r\n this.option(ValidationEngine.synchronizeValidationOptions(args, this.option()));\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _getValidationRules() {\r\n if (!this._validationRules) {\r\n this._validationRules = map(this.option(\"validationRules\"), (rule, index) => extend({}, rule, {\r\n validator: this,\r\n index: index\r\n }))\r\n }\r\n return this._validationRules\r\n },\r\n _findGroup() {\r\n var $element = this.$element();\r\n return this.option(\"validationGroup\") || ValidationEngine.findGroup($element, this._modelByElement($element))\r\n },\r\n _resetValidationRules() {\r\n delete this._validationRules\r\n },\r\n validate(args) {\r\n var adapter = this.option(\"adapter\");\r\n var name = this.option(\"name\");\r\n var bypass = adapter.bypass && adapter.bypass();\r\n var value = args && void 0 !== args.value ? args.value : adapter.getValue();\r\n var currentError = adapter.getCurrentValidationError && adapter.getCurrentValidationError();\r\n var rules = this._getValidationRules();\r\n var currentResult = this._validationInfo && this._validationInfo.result;\r\n if (currentResult && currentResult.status === VALIDATION_STATUS_PENDING && currentResult.value === value) {\r\n return extend({}, currentResult)\r\n }\r\n var result;\r\n if (bypass) {\r\n result = {\r\n isValid: true,\r\n status: VALIDATION_STATUS_VALID\r\n }\r\n } else if (currentError && currentError.editorSpecific) {\r\n currentError.validator = this;\r\n result = {\r\n isValid: false,\r\n status: VALIDATION_STATUS_INVALID,\r\n brokenRule: currentError,\r\n brokenRules: [currentError]\r\n }\r\n } else {\r\n result = ValidationEngine.validate(value, rules, name)\r\n }\r\n result.id = (new Guid).toString();\r\n this._applyValidationResult(result, adapter);\r\n result.complete && result.complete.then(res => {\r\n if (res.id === this._validationInfo.result.id) {\r\n this._applyValidationResult(res, adapter)\r\n }\r\n });\r\n return extend({}, this._validationInfo.result)\r\n },\r\n reset() {\r\n var adapter = this.option(\"adapter\");\r\n var result = {\r\n id: null,\r\n isValid: true,\r\n brokenRule: null,\r\n brokenRules: null,\r\n pendingRules: null,\r\n status: VALIDATION_STATUS_VALID,\r\n complete: null\r\n };\r\n this._validationInfo.skipValidation = true;\r\n adapter.reset();\r\n this._validationInfo.skipValidation = false;\r\n this._resetValidationRules();\r\n this._applyValidationResult(result, adapter)\r\n },\r\n _updateValidationResult(result) {\r\n if (!this._validationInfo.result || this._validationInfo.result.id !== result.id) {\r\n var complete = this._validationInfo.deferred && this._validationInfo.result.complete;\r\n this._validationInfo.result = extend({}, result, {\r\n complete: complete\r\n })\r\n } else {\r\n for (var prop in result) {\r\n if (\"id\" !== prop && \"complete\" !== prop) {\r\n this._validationInfo.result[prop] = result[prop]\r\n }\r\n }\r\n }\r\n },\r\n _applyValidationResult(result, adapter) {\r\n var validatedAction = this._createActionByOption(\"onValidated\", {\r\n excludeValidators: [\"readOnly\"]\r\n });\r\n result.validator = this;\r\n this._updateValidationResult(result);\r\n adapter.applyValidationResults && adapter.applyValidationResults(this._validationInfo.result);\r\n this.option({\r\n validationStatus: this._validationInfo.result.status\r\n });\r\n if (this._validationInfo.result.status === VALIDATION_STATUS_PENDING) {\r\n if (!this._validationInfo.deferred) {\r\n this._validationInfo.deferred = Deferred();\r\n this._validationInfo.result.complete = this._validationInfo.deferred.promise()\r\n }\r\n this._eventsStrategy.fireEvent(\"validating\", [this._validationInfo.result]);\r\n return\r\n }\r\n if (this._validationInfo.result.status !== VALIDATION_STATUS_PENDING) {\r\n validatedAction(result);\r\n if (this._validationInfo.deferred) {\r\n this._validationInfo.deferred.resolve(result);\r\n this._validationInfo.deferred = null\r\n }\r\n }\r\n },\r\n focus() {\r\n var adapter = this.option(\"adapter\");\r\n adapter && adapter.focus && adapter.focus()\r\n },\r\n _useTemplates: () => false\r\n});\r\nregisterComponent(\"dxValidator\", Validator);\r\nexport default Validator;\r\n","/**\r\n * DevExtreme (esm/ui/validator.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Validator from \"../__internal/ui/m_validator\";\r\nexport default Validator;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/form/constants.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var WIDGET_CLASS = \"dx-widget\";\r\nexport var FORM_CLASS = \"dx-form\";\r\nexport var FORM_GROUP_CLASS = \"dx-form-group\";\r\nexport var FORM_GROUP_CAPTION_CLASS = \"dx-form-group-caption\";\r\nexport var FORM_FIELD_ITEM_COL_CLASS = \"dx-col-\";\r\nexport var FIELD_ITEM_CLASS = \"dx-field-item\";\r\nexport var LAYOUT_MANAGER_ONE_COLUMN = \"dx-layout-manager-one-col\";\r\nexport var FIELD_ITEM_LABEL_CONTENT_CLASS = \"dx-field-item-label-content\";\r\nexport var FORM_LAYOUT_MANAGER_CLASS = \"dx-layout-manager\";\r\nexport var FIELD_ITEM_LABEL_CLASS = \"dx-field-item-label\";\r\nexport var FIELD_ITEM_CONTENT_CLASS = \"dx-field-item-content\";\r\nexport var SINGLE_COLUMN_ITEM_CONTENT = \"dx-single-column-item-content\";\r\nexport var ROOT_SIMPLE_ITEM_CLASS = \"dx-root-simple-item\";\r\nexport var FORM_GROUP_CONTENT_CLASS = \"dx-form-group-content\";\r\nexport var FIELD_ITEM_CONTENT_HAS_GROUP_CLASS = \"dx-field-item-has-group\";\r\nexport var FIELD_ITEM_CONTENT_HAS_TABS_CLASS = \"dx-field-item-has-tabs\";\r\nexport var FORM_GROUP_WITH_CAPTION_CLASS = \"dx-form-group-with-caption\";\r\nexport var FIELD_ITEM_TAB_CLASS = \"dx-field-item-tab\";\r\nexport var GROUP_COL_COUNT_CLASS = \"dx-group-colcount-\";\r\nexport var GROUP_COL_COUNT_ATTR = \"group-col-count\";\r\nexport var FORM_VALIDATION_SUMMARY = \"dx-form-validation-summary\";\r\nexport var FORM_UNDERLINED_CLASS = \"dx-form-styling-mode-underlined\";\r\nexport var SIMPLE_ITEM_TYPE = \"simple\";\r\n","/**\r\n * DevExtreme (esm/__internal/ui/form/m_form.layout_manager.utils.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Guid from \"../../../core/guid\";\r\nimport $ from \"../../../core/renderer\";\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} from \"../../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isFunction\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n SIMPLE_ITEM_TYPE\r\n} from \"./constants\";\r\nvar EDITORS_WITH_ARRAY_VALUE = [\"dxTagBox\", \"dxRangeSlider\", \"dxDateRangeBox\"];\r\nvar EDITORS_WITH_SPECIFIC_LABELS = [\"dxRangeSlider\", \"dxSlider\"];\r\nexport var EDITORS_WITHOUT_LABELS = [\"dxCalendar\", \"dxCheckBox\", \"dxHtmlEditor\", \"dxRadioGroup\", \"dxRangeSlider\", \"dxSlider\", \"dxSwitch\"];\r\nvar DROP_DOWN_EDITORS = [\"dxSelectBox\", \"dxDropDownBox\", \"dxTagBox\", \"dxLookup\", \"dxAutocomplete\", \"dxColorBox\", \"dxDateBox\", \"dxDateRangeBox\"];\r\nexport function convertToRenderFieldItemOptions(_ref) {\r\n var {\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList,\r\n formOrLayoutManager: formOrLayoutManager,\r\n createComponentCallback: createComponentCallback,\r\n item: item,\r\n template: template,\r\n labelTemplate: labelTemplate,\r\n name: name,\r\n formLabelLocation: formLabelLocation,\r\n requiredMessageTemplate: requiredMessageTemplate,\r\n validationGroup: validationGroup,\r\n editorValue: editorValue,\r\n canAssignUndefinedValueToEditor: canAssignUndefinedValueToEditor,\r\n editorValidationBoundary: editorValidationBoundary,\r\n editorStylingMode: editorStylingMode,\r\n showColonAfterLabel: showColonAfterLabel,\r\n managerLabelLocation: managerLabelLocation,\r\n itemId: itemId,\r\n managerMarkOptions: managerMarkOptions,\r\n labelMode: labelMode,\r\n onLabelTemplateRendered: onLabelTemplateRendered\r\n } = _ref;\r\n var isRequired = isDefined(item.isRequired) ? item.isRequired : !!_hasRequiredRuleInSet(item.validationRules);\r\n var isSimpleItem = item.itemType === SIMPLE_ITEM_TYPE;\r\n var helpID = item.helpText ? \"dx-\".concat(new Guid) : null;\r\n var labelOptions = _convertToLabelOptions({\r\n item: item,\r\n id: itemId,\r\n isRequired: isRequired,\r\n managerMarkOptions: managerMarkOptions,\r\n showColonAfterLabel: showColonAfterLabel,\r\n labelLocation: managerLabelLocation,\r\n formLabelMode: labelMode,\r\n labelTemplate: labelTemplate,\r\n onLabelTemplateRendered: onLabelTemplateRendered\r\n });\r\n var needRenderLabel = labelOptions.visible && (labelOptions.text || labelOptions.labelTemplate && isSimpleItem);\r\n var {\r\n location: labelLocation,\r\n labelID: labelID\r\n } = labelOptions;\r\n var labelNeedBaselineAlign = \"top\" !== labelLocation && [\"dxTextArea\", \"dxRadioGroup\", \"dxCalendar\", \"dxHtmlEditor\"].includes(item.editorType);\r\n var editorOptions = _convertToEditorOptions({\r\n $parent: $parent,\r\n editorType: item.editorType,\r\n editorValue: editorValue,\r\n defaultEditorName: item.dataField,\r\n canAssignUndefinedValueToEditor: canAssignUndefinedValueToEditor,\r\n externalEditorOptions: item.editorOptions,\r\n editorInputId: itemId,\r\n editorValidationBoundary: editorValidationBoundary,\r\n editorStylingMode: editorStylingMode,\r\n formLabelMode: labelMode,\r\n labelText: labelOptions.textWithoutColon,\r\n labelMark: labelOptions.markOptions.showRequiredMark ? String.fromCharCode(160) + labelOptions.markOptions.requiredMark : \"\"\r\n });\r\n var needRenderOptionalMarkAsHelpText = labelOptions.markOptions.showOptionalMark && !labelOptions.visible && \"hidden\" !== editorOptions.labelMode && !isDefined(item.helpText);\r\n var helpText = needRenderOptionalMarkAsHelpText ? labelOptions.markOptions.optionalMark : item.helpText;\r\n return {\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList,\r\n formOrLayoutManager: formOrLayoutManager,\r\n createComponentCallback: createComponentCallback,\r\n labelOptions: labelOptions,\r\n labelNeedBaselineAlign: labelNeedBaselineAlign,\r\n labelLocation: labelLocation,\r\n needRenderLabel: needRenderLabel,\r\n item: item,\r\n isSimpleItem: isSimpleItem,\r\n isRequired: isRequired,\r\n template: template,\r\n helpID: helpID,\r\n labelID: labelID,\r\n name: name,\r\n helpText: helpText,\r\n formLabelLocation: formLabelLocation,\r\n requiredMessageTemplate: requiredMessageTemplate,\r\n validationGroup: validationGroup,\r\n editorOptions: editorOptions\r\n }\r\n}\r\nexport function getLabelMarkText(_ref2) {\r\n var {\r\n showRequiredMark: showRequiredMark,\r\n requiredMark: requiredMark,\r\n showOptionalMark: showOptionalMark,\r\n optionalMark: optionalMark\r\n } = _ref2;\r\n if (!showRequiredMark && !showOptionalMark) {\r\n return \"\"\r\n }\r\n return String.fromCharCode(160) + (showRequiredMark ? requiredMark : optionalMark)\r\n}\r\nexport function convertToLabelMarkOptions(_ref3, isRequired) {\r\n var {\r\n showRequiredMark: showRequiredMark,\r\n requiredMark: requiredMark,\r\n showOptionalMark: showOptionalMark,\r\n optionalMark: optionalMark\r\n } = _ref3;\r\n return {\r\n showRequiredMark: showRequiredMark && isRequired,\r\n requiredMark: requiredMark,\r\n showOptionalMark: showOptionalMark && !isRequired,\r\n optionalMark: optionalMark\r\n }\r\n}\r\n\r\nfunction getDropDownEditorOptions($parent, editorType, editorInputId) {\r\n var isDropDownEditor = DROP_DOWN_EDITORS.includes(editorType);\r\n if (!isDropDownEditor) {\r\n return {}\r\n }\r\n return {\r\n onPopupInitialized: _ref4 => {\r\n var {\r\n component: component,\r\n popup: popup\r\n } = _ref4;\r\n var openOnFieldClick = component.option(\"openOnFieldClick\");\r\n var initialHideOnOutsideClick = popup.option(\"hideOnOutsideClick\");\r\n if (openOnFieldClick && isFunction(initialHideOnOutsideClick)) {\r\n var hideOnOutsideClick = e => {\r\n var $target = $(e.target);\r\n var $label = $parent.find('label[for=\"'.concat(editorInputId, '\"]'));\r\n var isLabelClicked = !!$target.closest($label).length;\r\n return !isLabelClicked && initialHideOnOutsideClick(e)\r\n };\r\n component.option(\"dropDownOptions\", {\r\n hideOnOutsideClick: hideOnOutsideClick\r\n });\r\n popup.option({\r\n hideOnOutsideClick: hideOnOutsideClick\r\n })\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction _convertToEditorOptions(_ref5) {\r\n var {\r\n $parent: $parent,\r\n editorType: editorType,\r\n defaultEditorName: defaultEditorName,\r\n editorValue: editorValue,\r\n canAssignUndefinedValueToEditor: canAssignUndefinedValueToEditor,\r\n externalEditorOptions: externalEditorOptions,\r\n editorInputId: editorInputId,\r\n editorValidationBoundary: editorValidationBoundary,\r\n editorStylingMode: editorStylingMode,\r\n formLabelMode: formLabelMode,\r\n labelText: labelText,\r\n labelMark: labelMark\r\n } = _ref5;\r\n var editorOptionsWithValue = {};\r\n if (void 0 !== editorValue || canAssignUndefinedValueToEditor) {\r\n editorOptionsWithValue.value = editorValue\r\n }\r\n if (EDITORS_WITH_ARRAY_VALUE.includes(editorType)) {\r\n editorOptionsWithValue.value = editorOptionsWithValue.value || []\r\n }\r\n var labelMode = null === externalEditorOptions || void 0 === externalEditorOptions ? void 0 : externalEditorOptions.labelMode;\r\n if (!isDefined(labelMode)) {\r\n labelMode = \"outside\" === formLabelMode ? \"hidden\" : formLabelMode\r\n }\r\n var stylingMode = (null === externalEditorOptions || void 0 === externalEditorOptions ? void 0 : externalEditorOptions.stylingMode) || editorStylingMode;\r\n var useSpecificLabelOptions = EDITORS_WITH_SPECIFIC_LABELS.includes(editorType);\r\n var dropDownEditorOptions = getDropDownEditorOptions($parent, editorType, editorInputId);\r\n var result = extend(true, editorOptionsWithValue, externalEditorOptions, dropDownEditorOptions, {\r\n inputAttr: {\r\n id: editorInputId\r\n },\r\n validationBoundary: editorValidationBoundary,\r\n stylingMode: stylingMode,\r\n label: useSpecificLabelOptions ? null === externalEditorOptions || void 0 === externalEditorOptions ? void 0 : externalEditorOptions.label : labelText,\r\n labelMode: labelMode,\r\n labelMark: labelMark\r\n });\r\n if (externalEditorOptions) {\r\n if (result.dataSource) {\r\n result.dataSource = externalEditorOptions.dataSource\r\n }\r\n if (result.items) {\r\n result.items = externalEditorOptions.items\r\n }\r\n }\r\n if (defaultEditorName && !result.name) {\r\n result.name = defaultEditorName\r\n }\r\n return result\r\n}\r\n\r\nfunction _hasRequiredRuleInSet(rules) {\r\n var hasRequiredRule;\r\n if (rules && rules.length) {\r\n each(rules, (index, rule) => {\r\n if (\"required\" === rule.type) {\r\n hasRequiredRule = true;\r\n return false\r\n }\r\n })\r\n }\r\n return hasRequiredRule\r\n}\r\n\r\nfunction _convertToLabelOptions(_ref6) {\r\n var {\r\n item: item,\r\n id: id,\r\n isRequired: isRequired,\r\n managerMarkOptions: managerMarkOptions,\r\n showColonAfterLabel: showColonAfterLabel,\r\n labelLocation: labelLocation,\r\n labelTemplate: labelTemplate,\r\n formLabelMode: formLabelMode,\r\n onLabelTemplateRendered: onLabelTemplateRendered\r\n } = _ref6;\r\n var isEditorWithoutLabels = EDITORS_WITHOUT_LABELS.includes(item.editorType);\r\n var labelOptions = extend({\r\n showColon: showColonAfterLabel,\r\n location: labelLocation,\r\n id: id,\r\n visible: \"outside\" === formLabelMode || isEditorWithoutLabels && \"hidden\" !== formLabelMode,\r\n isRequired: isRequired\r\n }, item ? item.label : {}, {\r\n markOptions: convertToLabelMarkOptions(managerMarkOptions, isRequired),\r\n labelTemplate: labelTemplate,\r\n onLabelTemplateRendered: onLabelTemplateRendered\r\n });\r\n if ([\"dxRadioGroup\", \"dxCheckBox\", \"dxLookup\", \"dxSlider\", \"dxRangeSlider\", \"dxSwitch\", \"dxHtmlEditor\", \"dxDateRangeBox\"].includes(item.editorType)) {\r\n labelOptions.labelID = \"dx-label-\".concat(new Guid)\r\n }\r\n if (!labelOptions.text && item.dataField) {\r\n labelOptions.text = captionize(item.dataField)\r\n }\r\n if (labelOptions.text) {\r\n labelOptions.textWithoutColon = labelOptions.text;\r\n labelOptions.text += labelOptions.showColon ? \":\" : \"\"\r\n }\r\n return labelOptions\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/form/components/m_label.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getPublicElement\r\n} from \"../../../../core/element\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n FIELD_ITEM_LABEL_CLASS,\r\n FIELD_ITEM_LABEL_CONTENT_CLASS\r\n} from \"../constants\";\r\nimport {\r\n getLabelMarkText\r\n} from \"../m_form.layout_manager.utils\";\r\nexport var GET_LABEL_WIDTH_BY_TEXT_CLASS = \"dx-layout-manager-hidden-label\";\r\nexport var FIELD_ITEM_REQUIRED_MARK_CLASS = \"dx-field-item-required-mark\";\r\nexport var FIELD_ITEM_LABEL_LOCATION_CLASS = \"dx-field-item-label-location-\";\r\nexport var FIELD_ITEM_OPTIONAL_MARK_CLASS = \"dx-field-item-optional-mark\";\r\nexport var FIELD_ITEM_LABEL_TEXT_CLASS = \"dx-field-item-label-text\";\r\nexport function renderLabel(_ref) {\r\n var {\r\n text: text,\r\n id: id,\r\n location: location,\r\n alignment: alignment,\r\n labelID: labelID = null,\r\n markOptions: markOptions = {},\r\n labelTemplate: labelTemplate,\r\n labelTemplateData: labelTemplateData,\r\n onLabelTemplateRendered: onLabelTemplateRendered\r\n } = _ref;\r\n if ((!isDefined(text) || text.length <= 0) && !isDefined(labelTemplate)) {\r\n return null\r\n }\r\n var $label = $(\"<label>\").addClass(\"\".concat(FIELD_ITEM_LABEL_CLASS, \" \").concat(FIELD_ITEM_LABEL_LOCATION_CLASS).concat(location)).attr(\"for\", id).attr(\"id\", labelID).css(\"textAlign\", alignment);\r\n var $labelContainer = $(\"<span>\").addClass(FIELD_ITEM_LABEL_CONTENT_CLASS);\r\n var $labelContent = $(\"<span>\").addClass(FIELD_ITEM_LABEL_TEXT_CLASS).text(text);\r\n if (labelTemplate) {\r\n $labelContent = $(\"<div>\").addClass(\"dx-field-item-custom-label-content\");\r\n labelTemplateData.text = text;\r\n labelTemplate.render({\r\n container: getPublicElement($labelContent),\r\n model: labelTemplateData,\r\n onRendered() {\r\n null === onLabelTemplateRendered || void 0 === onLabelTemplateRendered ? void 0 : onLabelTemplateRendered()\r\n }\r\n })\r\n }\r\n return $label.append($labelContainer.append($labelContent, _renderLabelMark(markOptions)))\r\n}\r\n\r\nfunction _renderLabelMark(markOptions) {\r\n var markText = getLabelMarkText(markOptions);\r\n if (\"\" === markText) {\r\n return null\r\n }\r\n return $(\"<span>\").addClass(markOptions.showRequiredMark ? FIELD_ITEM_REQUIRED_MARK_CLASS : FIELD_ITEM_OPTIONAL_MARK_CLASS).text(markText)\r\n}\r\nexport function setLabelWidthByMaxLabelWidth($targetContainer, labelsSelector, labelMarkOptions) {\r\n var FIELD_ITEM_LABEL_CONTENT_CLASS_Selector = \"\".concat(labelsSelector, \" > .\").concat(FIELD_ITEM_LABEL_CLASS, \":not(.\").concat(FIELD_ITEM_LABEL_LOCATION_CLASS, \"top) > .\").concat(FIELD_ITEM_LABEL_CONTENT_CLASS);\r\n var $FIELD_ITEM_LABEL_CONTENT_CLASS_Items = $targetContainer.find(FIELD_ITEM_LABEL_CONTENT_CLASS_Selector);\r\n var FIELD_ITEM_LABEL_CONTENT_CLASS_Length = $FIELD_ITEM_LABEL_CONTENT_CLASS_Items.length;\r\n var labelWidth;\r\n var i;\r\n var maxWidth = 0;\r\n for (i = 0; i < FIELD_ITEM_LABEL_CONTENT_CLASS_Length; i++) {\r\n labelWidth = getLabelWidthByHTML($FIELD_ITEM_LABEL_CONTENT_CLASS_Items[i]);\r\n if (labelWidth > maxWidth) {\r\n maxWidth = labelWidth\r\n }\r\n }\r\n for (i = 0; i < FIELD_ITEM_LABEL_CONTENT_CLASS_Length; i++) {\r\n $FIELD_ITEM_LABEL_CONTENT_CLASS_Items[i].style.width = \"\".concat(maxWidth, \"px\")\r\n }\r\n}\r\n\r\nfunction getLabelWidthByHTML(labelContent) {\r\n var result = 0;\r\n var itemsCount = labelContent.children.length;\r\n for (var i = 0; i < itemsCount; i++) {\r\n var child = labelContent.children[i];\r\n result += child.offsetWidth\r\n }\r\n return result\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/form/components/m_field_item.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getPublicElement\r\n} from \"../../../../core/element\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n captionize\r\n} from \"../../../../core/utils/inflector\";\r\nimport {\r\n format\r\n} from \"../../../../core/utils/string\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport {\r\n isMaterialBased\r\n} from \"../../../../ui/themes\";\r\nimport Validator from \"../../../../ui/validator\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport {\r\n FIELD_ITEM_CONTENT_CLASS\r\n} from \"../constants\";\r\nimport {\r\n renderLabel\r\n} from \"./m_label\";\r\nexport var FLEX_LAYOUT_CLASS = \"dx-flex-layout\";\r\nexport var FIELD_ITEM_OPTIONAL_CLASS = \"dx-field-item-optional\";\r\nexport var FIELD_ITEM_REQUIRED_CLASS = \"dx-field-item-required\";\r\nexport var FIELD_ITEM_CONTENT_WRAPPER_CLASS = \"dx-field-item-content-wrapper\";\r\nexport var FIELD_ITEM_CONTENT_LOCATION_CLASS = \"dx-field-item-content-location-\";\r\nexport var FIELD_ITEM_LABEL_ALIGN_CLASS = \"dx-field-item-label-align\";\r\nexport var FIELD_ITEM_HELP_TEXT_CLASS = \"dx-field-item-help-text\";\r\nexport var LABEL_VERTICAL_ALIGNMENT_CLASS = \"dx-label-v-align\";\r\nexport var LABEL_HORIZONTAL_ALIGNMENT_CLASS = \"dx-label-h-align\";\r\nexport var TOGGLE_CONTROLS_PADDING_CLASS = \"dx-toggle-controls-paddings\";\r\nvar TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\r\nvar VALIDATION_TARGET_CLASS = \"dx-validation-target\";\r\nvar INVALID_CLASS = \"dx-invalid\";\r\nexport function renderFieldItem(_ref) {\r\n var {\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList,\r\n formOrLayoutManager: formOrLayoutManager,\r\n createComponentCallback: createComponentCallback,\r\n labelOptions: labelOptions,\r\n labelNeedBaselineAlign: labelNeedBaselineAlign,\r\n labelLocation: labelLocation,\r\n needRenderLabel: needRenderLabel,\r\n formLabelLocation: formLabelLocation,\r\n item: item,\r\n editorOptions: editorOptions,\r\n isSimpleItem: isSimpleItem,\r\n isRequired: isRequired,\r\n template: template,\r\n helpID: helpID,\r\n labelID: labelID,\r\n name: name,\r\n helpText: helpText,\r\n requiredMessageTemplate: requiredMessageTemplate,\r\n validationGroup: validationGroup\r\n } = _ref;\r\n var $rootElement = $(\"<div>\").addClass(rootElementCssClassList.join(\" \")).appendTo($parent);\r\n $rootElement.addClass(isRequired ? FIELD_ITEM_REQUIRED_CLASS : FIELD_ITEM_OPTIONAL_CLASS);\r\n if (isSimpleItem) {\r\n $rootElement.addClass(FLEX_LAYOUT_CLASS)\r\n }\r\n if (isSimpleItem && labelNeedBaselineAlign) {\r\n $rootElement.addClass(FIELD_ITEM_LABEL_ALIGN_CLASS)\r\n }\r\n var $fieldEditorContainer = $(\"<div>\");\r\n $fieldEditorContainer.data(\"dx-form-item\", item);\r\n $fieldEditorContainer.addClass(FIELD_ITEM_CONTENT_CLASS).addClass(FIELD_ITEM_CONTENT_LOCATION_CLASS + {\r\n right: \"left\",\r\n left: \"right\",\r\n top: \"bottom\"\r\n } [formLabelLocation]);\r\n var $label = null;\r\n if (needRenderLabel) {\r\n if (labelOptions.labelTemplate) {\r\n labelOptions.labelTemplateData = getTemplateData(item, editorOptions, formOrLayoutManager)\r\n }\r\n $label = renderLabel(labelOptions)\r\n }\r\n if ($label) {\r\n var {\r\n editorType: editorType\r\n } = item;\r\n $rootElement.append($label);\r\n if (\"top\" === labelLocation || \"left\" === labelLocation) {\r\n $rootElement.append($fieldEditorContainer)\r\n }\r\n if (\"right\" === labelLocation) {\r\n $rootElement.prepend($fieldEditorContainer)\r\n }\r\n if (\"top\" === labelLocation) {\r\n $rootElement.addClass(LABEL_VERTICAL_ALIGNMENT_CLASS)\r\n } else {\r\n $rootElement.addClass(LABEL_HORIZONTAL_ALIGNMENT_CLASS)\r\n }\r\n if (\"dxCheckBox\" === editorType || \"dxSwitch\" === editorType) {\r\n eventsEngine.on($label, clickEventName, () => {\r\n eventsEngine.trigger($fieldEditorContainer.children(), clickEventName)\r\n })\r\n }\r\n var isToggleControls = [\"dxCheckBox\", \"dxSwitch\", \"dxRadioGroup\"].includes(editorType);\r\n var labelAlignment = labelOptions.alignment;\r\n var isLabelAlignmentLeft = \"left\" === labelAlignment || !labelAlignment;\r\n var hasNotTemplate = !template;\r\n var isLabelOnTop = \"top\" === labelLocation;\r\n if (hasNotTemplate && isToggleControls && isLabelOnTop && isLabelAlignmentLeft) {\r\n $fieldEditorContainer.addClass(TOGGLE_CONTROLS_PADDING_CLASS)\r\n }\r\n } else {\r\n $rootElement.append($fieldEditorContainer)\r\n }\r\n var widgetInstance;\r\n if (template) {\r\n template.render({\r\n container: getPublicElement($fieldEditorContainer),\r\n model: getTemplateData(item, editorOptions, formOrLayoutManager),\r\n onRendered() {\r\n var $validationTarget = getValidationTarget($fieldEditorContainer);\r\n var validationTargetInstance = tryGetValidationTargetInstance($validationTarget);\r\n subscribeWrapperInvalidClassToggle(validationTargetInstance)\r\n }\r\n })\r\n } else {\r\n var $div = $(\"<div>\").appendTo($fieldEditorContainer);\r\n try {\r\n widgetInstance = createComponentCallback($div, item.editorType, editorOptions);\r\n widgetInstance.setAria(\"describedby\", helpID);\r\n if (labelID) {\r\n widgetInstance.setAria(\"labelledby\", labelID)\r\n }\r\n widgetInstance.setAria(\"required\", isRequired)\r\n } catch (e) {\r\n errors.log(\"E1035\", e.message)\r\n }\r\n }\r\n var $validationTarget = getValidationTarget($fieldEditorContainer);\r\n var validationTargetInstance = $validationTarget && $validationTarget.data(VALIDATION_TARGET_CLASS);\r\n if (validationTargetInstance) {\r\n var isItemHaveCustomLabel = item.label && item.label.text;\r\n var itemName = isItemHaveCustomLabel ? null : name;\r\n var fieldName = isItemHaveCustomLabel ? item.label.text : itemName && captionize(itemName);\r\n var validationRules;\r\n if (isSimpleItem) {\r\n if (item.validationRules) {\r\n validationRules = item.validationRules\r\n } else {\r\n var requiredMessage = format(requiredMessageTemplate, fieldName || \"\");\r\n validationRules = item.isRequired ? [{\r\n type: \"required\",\r\n message: requiredMessage\r\n }] : null\r\n }\r\n }\r\n if (Array.isArray(validationRules) && validationRules.length) {\r\n createComponentCallback($validationTarget, Validator, {\r\n validationRules: validationRules,\r\n validationGroup: validationGroup,\r\n dataGetter: () => ({\r\n formItem: item\r\n })\r\n })\r\n }\r\n subscribeWrapperInvalidClassToggle(validationTargetInstance)\r\n }\r\n if (helpText && isSimpleItem) {\r\n var $editorParent = $fieldEditorContainer.parent();\r\n $editorParent.append($(\"<div>\").addClass(FIELD_ITEM_CONTENT_WRAPPER_CLASS).append($fieldEditorContainer).append($(\"<div>\").addClass(FIELD_ITEM_HELP_TEXT_CLASS).attr(\"id\", helpID).text(helpText)))\r\n }\r\n return {\r\n $fieldEditorContainer: $fieldEditorContainer,\r\n $rootElement: $rootElement,\r\n widgetInstance: widgetInstance\r\n }\r\n}\r\n\r\nfunction getValidationTarget($fieldEditorContainer) {\r\n var $editor = $fieldEditorContainer.children().first();\r\n return $editor.hasClass(TEMPLATE_WRAPPER_CLASS) ? $editor.children().first() : $editor\r\n}\r\n\r\nfunction tryGetValidationTargetInstance($validationTarget) {\r\n var _a, _b;\r\n return (null === $validationTarget || void 0 === $validationTarget ? void 0 : $validationTarget.data(VALIDATION_TARGET_CLASS)) || (null === (_b = null === (_a = null === $validationTarget || void 0 === $validationTarget ? void 0 : $validationTarget.parent) || void 0 === _a ? void 0 : _a.call($validationTarget)) || void 0 === _b ? void 0 : _b.data(VALIDATION_TARGET_CLASS))\r\n}\r\n\r\nfunction subscribeWrapperInvalidClassToggle(validationTargetInstance) {\r\n if (validationTargetInstance && isMaterialBased()) {\r\n var wrapperClass = \".\".concat(FIELD_ITEM_CONTENT_WRAPPER_CLASS);\r\n var toggleInvalidClass = _ref2 => {\r\n var {\r\n element: element,\r\n component: component\r\n } = _ref2;\r\n var {\r\n isValid: isValid,\r\n validationMessageMode: validationMessageMode\r\n } = component.option();\r\n $(element).parents(wrapperClass).toggleClass(INVALID_CLASS, false === isValid && (component._isFocused() || \"always\" === validationMessageMode))\r\n };\r\n validationTargetInstance.on(\"optionChanged\", e => {\r\n if (\"isValid\" !== e.name) {\r\n return\r\n }\r\n toggleInvalidClass(e)\r\n });\r\n validationTargetInstance.on(\"focusIn\", toggleInvalidClass).on(\"focusOut\", toggleInvalidClass).on(\"enterKey\", toggleInvalidClass)\r\n }\r\n}\r\n\r\nfunction getTemplateData(item, editorOptions, formOrLayoutManager) {\r\n return {\r\n dataField: item.dataField,\r\n editorType: item.editorType,\r\n editorOptions: editorOptions,\r\n component: formOrLayoutManager,\r\n name: item.name\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/form/m_form.items_runtime_info.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Guid from \"../../../core/guid\";\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 isString\r\n} from \"../../../core/utils/type\";\r\nexport default class FormItemsRunTimeInfo {\r\n constructor() {\r\n this._map = {}\r\n }\r\n _findWidgetInstance(condition) {\r\n var result;\r\n each(this._map, (guid, _ref) => {\r\n var {\r\n widgetInstance: widgetInstance,\r\n item: item\r\n } = _ref;\r\n if (condition(item)) {\r\n result = widgetInstance;\r\n return false\r\n }\r\n });\r\n return result\r\n }\r\n _findFieldByCondition(callback, valueExpr) {\r\n var result;\r\n each(this._map, (key, value) => {\r\n if (callback(value)) {\r\n result = \"guid\" === valueExpr ? key : value[valueExpr];\r\n return false\r\n }\r\n });\r\n return result\r\n }\r\n clear() {\r\n this._map = {}\r\n }\r\n removeItemsByItems(itemsRunTimeInfo) {\r\n each(itemsRunTimeInfo.getItems(), guid => this.removeItemByKey(guid))\r\n }\r\n removeItemByKey(key) {\r\n delete this._map[key]\r\n }\r\n add(options) {\r\n var key = options.guid || new Guid;\r\n this._map[key] = options;\r\n return key\r\n }\r\n addItemsOrExtendFrom(itemsRunTimeInfo) {\r\n itemsRunTimeInfo.each((key, itemRunTimeInfo) => {\r\n if (this._map[key]) {\r\n if (itemRunTimeInfo.widgetInstance) {\r\n this._map[key].widgetInstance = itemRunTimeInfo.widgetInstance\r\n }\r\n this._map[key].$itemContainer = itemRunTimeInfo.$itemContainer\r\n } else {\r\n this.add({\r\n item: itemRunTimeInfo.item,\r\n widgetInstance: itemRunTimeInfo.widgetInstance,\r\n guid: key,\r\n $itemContainer: itemRunTimeInfo.$itemContainer\r\n })\r\n }\r\n })\r\n }\r\n extendRunTimeItemInfoByKey(key, options) {\r\n if (this._map[key]) {\r\n this._map[key] = extend(this._map[key], options)\r\n }\r\n }\r\n findWidgetInstanceByItem(item) {\r\n return this._findWidgetInstance(storedItem => storedItem === item)\r\n }\r\n findGroupOrTabLayoutManagerByPath(targetPath) {\r\n return this._findFieldByCondition(_ref2 => {\r\n var {\r\n path: path\r\n } = _ref2;\r\n return path === targetPath\r\n }, \"layoutManager\")\r\n }\r\n findKeyByPath(targetPath) {\r\n return this._findFieldByCondition(_ref3 => {\r\n var {\r\n path: path\r\n } = _ref3;\r\n return path === targetPath\r\n }, \"guid\")\r\n }\r\n findWidgetInstanceByName(name) {\r\n return this._findWidgetInstance(item => name === item.name)\r\n }\r\n findWidgetInstanceByDataField(dataField) {\r\n return this._findWidgetInstance(item => dataField === (isString(item) ? item : item.dataField))\r\n }\r\n findItemContainerByItem(item) {\r\n for (var key in this._map) {\r\n if (this._map[key].item === item) {\r\n return this._map[key].$itemContainer\r\n }\r\n }\r\n return null\r\n }\r\n findItemIndexByItem(targetItem) {\r\n return this._findFieldByCondition(_ref4 => {\r\n var {\r\n item: item\r\n } = _ref4;\r\n return item === targetItem\r\n }, \"itemIndex\")\r\n }\r\n findPreparedItemByItem(item) {\r\n return this._findFieldByCondition(_ref5 => {\r\n var {\r\n item: currentItem\r\n } = _ref5;\r\n return currentItem === item\r\n }, \"preparedItem\")\r\n }\r\n getItems() {\r\n return this._map\r\n }\r\n each(handler) {\r\n each(this._map, (key, itemRunTimeInfo) => {\r\n handler(key, itemRunTimeInfo)\r\n })\r\n }\r\n removeItemsByPathStartWith(path) {\r\n var keys = Object.keys(this._map);\r\n var filteredKeys = keys.filter(key => {\r\n if (this._map[key].path) {\r\n return this._map[key].path.indexOf(path, 0) > -1\r\n }\r\n return false\r\n });\r\n filteredKeys.forEach(key => this.removeItemByKey(key))\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/form/m_form.layout_manager.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport \"../../../ui/text_box\";\r\nimport \"../../../ui/number_box\";\r\nimport \"../../../ui/check_box\";\r\nimport \"../../../ui/date_box\";\r\nimport \"../../../ui/button\";\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n normalizeIndexes\r\n} from \"../../../core/utils/array\";\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 getWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n isDefined,\r\n isEmptyObject,\r\n isFunction,\r\n isObject,\r\n type\r\n} from \"../../../core/utils/type\";\r\nimport variableWrapper from \"../../../core/utils/variable_wrapper\";\r\nimport {\r\n getCurrentScreenFactor,\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 ResponsiveBox from \"../../../ui/responsive_box\";\r\nimport Widget from \"../../../ui/widget/ui.widget\";\r\nimport {\r\n renderButtonItem\r\n} from \"./components/m_button_item\";\r\nimport {\r\n renderEmptyItem\r\n} from \"./components/m_empty_item\";\r\nimport {\r\n renderFieldItem\r\n} from \"./components/m_field_item\";\r\nimport {\r\n FIELD_ITEM_CLASS,\r\n FORM_LAYOUT_MANAGER_CLASS,\r\n LAYOUT_MANAGER_ONE_COLUMN,\r\n ROOT_SIMPLE_ITEM_CLASS,\r\n SIMPLE_ITEM_TYPE,\r\n SINGLE_COLUMN_ITEM_CONTENT\r\n} from \"./constants\";\r\nimport {\r\n default as FormItemsRunTimeInfo\r\n} from \"./m_form.items_runtime_info\";\r\nimport {\r\n convertToRenderFieldItemOptions\r\n} from \"./m_form.layout_manager.utils\";\r\nvar FORM_EDITOR_BY_DEFAULT = \"dxTextBox\";\r\nvar LAYOUT_MANAGER_FIRST_ROW_CLASS = \"dx-first-row\";\r\nvar LAYOUT_MANAGER_LAST_ROW_CLASS = \"dx-last-row\";\r\nvar LAYOUT_MANAGER_FIRST_COL_CLASS = \"dx-first-col\";\r\nvar LAYOUT_MANAGER_LAST_COL_CLASS = \"dx-last-col\";\r\nvar LayoutManager = Widget.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n layoutData: {},\r\n readOnly: false,\r\n colCount: 1,\r\n colCountByScreen: void 0,\r\n labelLocation: \"left\",\r\n onFieldDataChanged: null,\r\n onEditorEnterKey: null,\r\n customizeItem: null,\r\n alignItemLabels: true,\r\n minColWidth: 200,\r\n showRequiredMark: true,\r\n screenByWidth: null,\r\n showOptionalMark: false,\r\n requiredMark: \"*\",\r\n labelMode: \"outside\",\r\n optionalMark: messageLocalization.format(\"dxForm-optionalMark\"),\r\n requiredMessage: messageLocalization.getFormatter(\"dxForm-requiredMessage\")\r\n })\r\n },\r\n _setOptionsByReference() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n layoutData: true,\r\n validationGroup: true\r\n })\r\n },\r\n _init() {\r\n var layoutData = this.option(\"layoutData\");\r\n this.callBase();\r\n this._itemWatchers = [];\r\n this._itemsRunTimeInfo = new FormItemsRunTimeInfo;\r\n this._updateReferencedOptions(layoutData);\r\n this._initDataAndItems(layoutData)\r\n },\r\n _dispose() {\r\n this.callBase();\r\n this._cleanItemWatchers()\r\n },\r\n _initDataAndItems(initialData) {\r\n this._syncDataWithItems();\r\n this._updateItems(initialData)\r\n },\r\n _syncDataWithItems() {\r\n var layoutData = this.option(\"layoutData\");\r\n var userItems = this.option(\"items\");\r\n if (isDefined(userItems)) {\r\n userItems.forEach(item => {\r\n if (item.dataField && void 0 === this._getDataByField(item.dataField)) {\r\n var value;\r\n if (item.editorOptions) {\r\n value = item.editorOptions.value\r\n }\r\n if (isDefined(value) || item.dataField in layoutData) {\r\n this._updateFieldValue(item.dataField, value)\r\n }\r\n }\r\n })\r\n }\r\n },\r\n _getDataByField(dataField) {\r\n return dataField ? this.option(\"layoutData.\".concat(dataField)) : null\r\n },\r\n _isCheckboxUndefinedStateEnabled(_ref) {\r\n var {\r\n allowIndeterminateState: allowIndeterminateState,\r\n editorType: editorType,\r\n dataField: dataField\r\n } = _ref;\r\n if (true === allowIndeterminateState && \"dxCheckBox\" === editorType) {\r\n var nameParts = [\"layoutData\", ...dataField.split(\".\")];\r\n var propertyName = nameParts.pop();\r\n var layoutData = this.option(nameParts.join(\".\"));\r\n return layoutData && propertyName in layoutData\r\n }\r\n return false\r\n },\r\n _updateFieldValue(dataField, value) {\r\n var layoutData = this.option(\"layoutData\");\r\n var newValue = value;\r\n if (!variableWrapper.isWrapped(layoutData[dataField]) && isDefined(dataField)) {\r\n this.option(\"layoutData.\".concat(dataField), newValue)\r\n } else if (variableWrapper.isWritableWrapped(layoutData[dataField])) {\r\n newValue = isFunction(newValue) ? newValue() : newValue;\r\n layoutData[dataField](newValue)\r\n }\r\n this._triggerOnFieldDataChanged({\r\n dataField: dataField,\r\n value: newValue\r\n })\r\n },\r\n _triggerOnFieldDataChanged(args) {\r\n this._createActionByOption(\"onFieldDataChanged\")(args)\r\n },\r\n _updateItems(layoutData) {\r\n var that = this;\r\n var userItems = this.option(\"items\");\r\n var isUserItemsExist = isDefined(userItems);\r\n var customizeItem = that.option(\"customizeItem\");\r\n var items = isUserItemsExist ? userItems : this._generateItemsByData(layoutData);\r\n if (isDefined(items)) {\r\n var processedItems = [];\r\n each(items, (index, item) => {\r\n if (that._isAcceptableItem(item)) {\r\n item = that._processItem(item);\r\n customizeItem && customizeItem(item);\r\n if (isObject(item) && false !== variableWrapper.unwrap(item.visible)) {\r\n processedItems.push(item)\r\n }\r\n }\r\n });\r\n if (!that._itemWatchers.length || !isUserItemsExist) {\r\n that._updateItemWatchers(items)\r\n }\r\n this._setItems(processedItems);\r\n this._sortItems()\r\n }\r\n },\r\n _cleanItemWatchers() {\r\n this._itemWatchers.forEach(dispose => {\r\n dispose()\r\n });\r\n this._itemWatchers = []\r\n },\r\n _updateItemWatchers(items) {\r\n var that = this;\r\n var watch = that._getWatch();\r\n items.forEach(item => {\r\n if (isObject(item) && isDefined(item.visible) && isFunction(watch)) {\r\n that._itemWatchers.push(watch(() => variableWrapper.unwrap(item.visible), () => {\r\n that._updateItems(that.option(\"layoutData\"));\r\n that.repaint()\r\n }, {\r\n skipImmediate: true\r\n }))\r\n }\r\n })\r\n },\r\n _generateItemsByData(layoutData) {\r\n var result = [];\r\n if (isDefined(layoutData)) {\r\n each(layoutData, dataField => {\r\n result.push({\r\n dataField: dataField\r\n })\r\n })\r\n }\r\n return result\r\n },\r\n _isAcceptableItem(item) {\r\n var itemField = item.dataField || item;\r\n var itemData = this._getDataByField(itemField);\r\n return !(isFunction(itemData) && !variableWrapper.isWrapped(itemData))\r\n },\r\n _processItem(item) {\r\n var _a;\r\n if (\"string\" === typeof item) {\r\n item = {\r\n dataField: item\r\n }\r\n }\r\n if (\"object\" === typeof item && !item.itemType) {\r\n item.itemType = SIMPLE_ITEM_TYPE\r\n }\r\n if (!isDefined(item.editorType) && isDefined(item.dataField)) {\r\n var value = this._getDataByField(item.dataField);\r\n item.editorType = isDefined(value) ? this._getEditorTypeByDataType(type(value)) : FORM_EDITOR_BY_DEFAULT\r\n }\r\n if (\"dxCheckBox\" === item.editorType) {\r\n item.allowIndeterminateState = null !== (_a = item.allowIndeterminateState) && void 0 !== _a ? _a : true\r\n }\r\n return item\r\n },\r\n _getEditorTypeByDataType(dataType) {\r\n switch (dataType) {\r\n case \"number\":\r\n return \"dxNumberBox\";\r\n case \"date\":\r\n return \"dxDateBox\";\r\n case \"boolean\":\r\n return \"dxCheckBox\";\r\n default:\r\n return \"dxTextBox\"\r\n }\r\n },\r\n _sortItems() {\r\n normalizeIndexes(this._items, \"visibleIndex\");\r\n this._sortIndexes()\r\n },\r\n _sortIndexes() {\r\n this._items.sort((itemA, itemB) => {\r\n var indexA = itemA.visibleIndex;\r\n var indexB = itemB.visibleIndex;\r\n var result;\r\n if (indexA > indexB) {\r\n result = 1\r\n } else if (indexA < indexB) {\r\n result = -1\r\n } else {\r\n result = 0\r\n }\r\n return result\r\n })\r\n },\r\n _initMarkup() {\r\n this._itemsRunTimeInfo.clear();\r\n this.$element().addClass(FORM_LAYOUT_MANAGER_CLASS);\r\n this.callBase();\r\n this._renderResponsiveBox()\r\n },\r\n _renderResponsiveBox() {\r\n var templatesInfo = [];\r\n if (this._items && this._items.length) {\r\n var colCount = this._getColCount();\r\n var $container = $(\"<div>\").appendTo(this.$element());\r\n this._prepareItemsWithMerging(colCount);\r\n var layoutItems = this._generateLayoutItems();\r\n this._responsiveBox = this._createComponent($container, ResponsiveBox, this._getResponsiveBoxConfig(layoutItems, colCount, templatesInfo));\r\n if (!hasWindow()) {\r\n this._renderTemplates(templatesInfo)\r\n }\r\n }\r\n },\r\n _itemStateChangedHandler(e) {\r\n this._refresh()\r\n },\r\n _renderTemplates(templatesInfo) {\r\n var that = this;\r\n var itemsWithLabelTemplateCount = 0;\r\n templatesInfo.forEach(_ref2 => {\r\n var {\r\n item: item\r\n } = _ref2;\r\n var _a;\r\n if (null === (_a = null === item || void 0 === item ? void 0 : item.label) || void 0 === _a ? void 0 : _a.template) {\r\n itemsWithLabelTemplateCount++\r\n }\r\n });\r\n each(templatesInfo, (index, info) => {\r\n switch (info.itemType) {\r\n case \"empty\":\r\n renderEmptyItem(info);\r\n break;\r\n case \"button\":\r\n that._renderButtonItem(info);\r\n break;\r\n default:\r\n that._renderFieldItem(info, itemsWithLabelTemplateCount)\r\n }\r\n })\r\n },\r\n _getResponsiveBoxConfig(layoutItems, colCount, templatesInfo) {\r\n var that = this;\r\n var colCountByScreen = that.option(\"colCountByScreen\");\r\n var xsColCount = colCountByScreen && colCountByScreen.xs;\r\n return {\r\n onItemStateChanged: this._itemStateChangedHandler.bind(this),\r\n onLayoutChanged() {\r\n var onLayoutChanged = that.option(\"onLayoutChanged\");\r\n var isSingleColumnMode = that.isSingleColumnMode();\r\n if (onLayoutChanged) {\r\n that.$element().toggleClass(LAYOUT_MANAGER_ONE_COLUMN, isSingleColumnMode);\r\n onLayoutChanged(isSingleColumnMode)\r\n }\r\n },\r\n onContentReady(e) {\r\n if (hasWindow()) {\r\n that._renderTemplates(templatesInfo)\r\n }\r\n if (that.option(\"onLayoutChanged\")) {\r\n that.$element().toggleClass(LAYOUT_MANAGER_ONE_COLUMN, that.isSingleColumnMode(e.component))\r\n }\r\n },\r\n itemTemplate(e, itemData, itemElement) {\r\n if (!e.location) {\r\n return\r\n }\r\n var $itemElement = $(itemElement);\r\n var itemRenderedCountInPreviousRows = e.location.row * colCount;\r\n var item = that._items[e.location.col + itemRenderedCountInPreviousRows];\r\n if (!item) {\r\n return\r\n }\r\n var itemCssClassList = [item.cssClass];\r\n $itemElement.toggleClass(SINGLE_COLUMN_ITEM_CONTENT, that.isSingleColumnMode(this));\r\n if (0 === e.location.row) {\r\n itemCssClassList.push(LAYOUT_MANAGER_FIRST_ROW_CLASS)\r\n }\r\n if (0 === e.location.col) {\r\n itemCssClassList.push(LAYOUT_MANAGER_FIRST_COL_CLASS)\r\n }\r\n if (item.itemType === SIMPLE_ITEM_TYPE && that.option(\"isRoot\")) {\r\n $itemElement.addClass(ROOT_SIMPLE_ITEM_CLASS)\r\n }\r\n var isLastColumn = e.location.col === colCount - 1 || e.location.col + e.location.colspan === colCount;\r\n var rowsCount = that._getRowsCount();\r\n var isLastRow = e.location.row === rowsCount - 1;\r\n if (isLastColumn) {\r\n itemCssClassList.push(LAYOUT_MANAGER_LAST_COL_CLASS)\r\n }\r\n if (isLastRow) {\r\n itemCssClassList.push(LAYOUT_MANAGER_LAST_ROW_CLASS)\r\n }\r\n if (\"empty\" !== item.itemType) {\r\n itemCssClassList.push(FIELD_ITEM_CLASS);\r\n itemCssClassList.push(that.option(\"cssItemClass\"));\r\n if (isDefined(item.col)) {\r\n itemCssClassList.push(\"dx-col-\".concat(item.col))\r\n }\r\n }\r\n templatesInfo.push({\r\n itemType: item.itemType,\r\n item: item,\r\n $parent: $itemElement,\r\n rootElementCssClassList: itemCssClassList\r\n })\r\n },\r\n cols: that._generateRatio(colCount),\r\n rows: that._generateRatio(that._getRowsCount(), true),\r\n dataSource: layoutItems,\r\n screenByWidth: that.option(\"screenByWidth\"),\r\n singleColumnScreen: xsColCount ? false : \"xs\"\r\n }\r\n },\r\n _getColCount() {\r\n var colCount = this.option(\"colCount\");\r\n var colCountByScreen = this.option(\"colCountByScreen\");\r\n if (colCountByScreen) {\r\n var screenFactor = this.option(\"form\").getTargetScreenFactor();\r\n if (!screenFactor) {\r\n screenFactor = hasWindow() ? getCurrentScreenFactor(this.option(\"screenByWidth\")) : \"lg\"\r\n }\r\n colCount = colCountByScreen[screenFactor] || colCount\r\n }\r\n if (\"auto\" === colCount) {\r\n if (this._cashedColCount) {\r\n return this._cashedColCount\r\n }\r\n this._cashedColCount = colCount = this._getMaxColCount()\r\n }\r\n return colCount < 1 ? 1 : colCount\r\n },\r\n _getMaxColCount() {\r\n if (!hasWindow()) {\r\n return 1\r\n }\r\n var minColWidth = this.option(\"minColWidth\");\r\n var width = getWidth(this.$element());\r\n var itemsCount = this._items.length;\r\n var maxColCount = Math.floor(width / minColWidth) || 1;\r\n return itemsCount < maxColCount ? itemsCount : maxColCount\r\n },\r\n isCachedColCountObsolete() {\r\n return this._cashedColCount && this._getMaxColCount() !== this._cashedColCount\r\n },\r\n _prepareItemsWithMerging(colCount) {\r\n var items = this._items.slice(0);\r\n var item;\r\n var itemsMergedByCol;\r\n var result = [];\r\n var j;\r\n var i;\r\n for (i = 0; i < items.length; i++) {\r\n item = items[i];\r\n result.push(item);\r\n if (this.option(\"alignItemLabels\") || item.alignItemLabels || item.colSpan) {\r\n item.col = this._getColByIndex(result.length - 1, colCount)\r\n }\r\n if (item.colSpan > 1 && item.col + item.colSpan <= colCount) {\r\n itemsMergedByCol = [];\r\n for (j = 0; j < item.colSpan - 1; j++) {\r\n itemsMergedByCol.push({\r\n merged: true\r\n })\r\n }\r\n result = result.concat(itemsMergedByCol)\r\n } else {\r\n delete item.colSpan\r\n }\r\n }\r\n this._setItems(result)\r\n },\r\n _getColByIndex: (index, colCount) => index % colCount,\r\n _setItems(items) {\r\n this._items = items;\r\n this._cashedColCount = null\r\n },\r\n _generateLayoutItems() {\r\n var items = this._items;\r\n var colCount = this._getColCount();\r\n var result = [];\r\n var item;\r\n var i;\r\n for (i = 0; i < items.length; i++) {\r\n item = items[i];\r\n if (!item.merged) {\r\n var generatedItem = {\r\n location: {\r\n row: parseInt(i / colCount),\r\n col: this._getColByIndex(i, colCount)\r\n }\r\n };\r\n if (isDefined(item.disabled)) {\r\n generatedItem.disabled = item.disabled\r\n }\r\n if (isDefined(item.visible)) {\r\n generatedItem.visible = item.visible\r\n }\r\n if (isDefined(item.colSpan)) {\r\n generatedItem.location.colspan = item.colSpan\r\n }\r\n if (isDefined(item.rowSpan)) {\r\n generatedItem.location.rowspan = item.rowSpan\r\n }\r\n result.push(generatedItem)\r\n }\r\n }\r\n return result\r\n },\r\n _renderEmptyItem($container) {\r\n renderEmptyItem({\r\n $container: $container\r\n })\r\n },\r\n _renderButtonItem(_ref3) {\r\n var {\r\n item: item,\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList\r\n } = _ref3;\r\n var {\r\n $rootElement: $rootElement,\r\n buttonInstance: buttonInstance\r\n } = renderButtonItem({\r\n item: item,\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList,\r\n validationGroup: this.option(\"validationGroup\"),\r\n createComponentCallback: this._createComponent.bind(this)\r\n });\r\n this._itemsRunTimeInfo.add({\r\n item: item,\r\n widgetInstance: buttonInstance,\r\n guid: item.guid,\r\n $itemContainer: $rootElement\r\n })\r\n },\r\n _renderFieldItem(_ref4, itemsWithLabelTemplateCount) {\r\n var {\r\n item: item,\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList\r\n } = _ref4;\r\n var _a, _b;\r\n var editorValue = this._getDataByField(item.dataField);\r\n var canAssignUndefinedValueToEditor = false;\r\n if (void 0 === editorValue) {\r\n var {\r\n allowIndeterminateState: allowIndeterminateState,\r\n editorType: editorType,\r\n dataField: dataField\r\n } = item;\r\n canAssignUndefinedValueToEditor = this._isCheckboxUndefinedStateEnabled({\r\n allowIndeterminateState: allowIndeterminateState,\r\n editorType: editorType,\r\n dataField: dataField\r\n })\r\n }\r\n var name = item.dataField || item.name;\r\n var formOrLayoutManager = this._getFormOrThis();\r\n var {\r\n $fieldEditorContainer: $fieldEditorContainer,\r\n widgetInstance: widgetInstance,\r\n $rootElement: $rootElement\r\n } = renderFieldItem(convertToRenderFieldItemOptions({\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList,\r\n item: item,\r\n name: name,\r\n editorValue: editorValue,\r\n canAssignUndefinedValueToEditor: canAssignUndefinedValueToEditor,\r\n formOrLayoutManager: this._getFormOrThis(),\r\n createComponentCallback: this._createComponent.bind(this),\r\n formLabelLocation: this.option(\"labelLocation\"),\r\n requiredMessageTemplate: this.option(\"requiredMessage\"),\r\n validationGroup: this.option(\"validationGroup\"),\r\n editorValidationBoundary: this.option(\"validationBoundary\"),\r\n editorStylingMode: this.option(\"form\") && this.option(\"form\").option(\"stylingMode\"),\r\n showColonAfterLabel: this.option(\"showColonAfterLabel\"),\r\n managerLabelLocation: this.option(\"labelLocation\"),\r\n template: item.template ? this._getTemplate(item.template) : null,\r\n labelTemplate: (null === (_a = item.label) || void 0 === _a ? void 0 : _a.template) ? this._getTemplate(item.label.template) : null,\r\n itemId: this.option(\"form\") && this.option(\"form\").getItemID(name),\r\n managerMarkOptions: this._getMarkOptions(),\r\n labelMode: this.option(\"labelMode\"),\r\n onLabelTemplateRendered: () => {\r\n this._incTemplateRenderedCallCount();\r\n if (this._shouldAlignLabelsOnTemplateRendered(formOrLayoutManager, itemsWithLabelTemplateCount)) {\r\n formOrLayoutManager._alignLabels(this, this.isSingleColumnMode(formOrLayoutManager))\r\n }\r\n }\r\n }));\r\n null === (_b = this.option(\"onFieldItemRendered\")) || void 0 === _b ? void 0 : _b();\r\n if (widgetInstance && item.dataField) {\r\n this._bindDataField(widgetInstance, item.dataField, item.editorType, $fieldEditorContainer)\r\n }\r\n this._itemsRunTimeInfo.add({\r\n item: item,\r\n widgetInstance: widgetInstance,\r\n guid: item.guid,\r\n $itemContainer: $rootElement\r\n })\r\n },\r\n _incTemplateRenderedCallCount() {\r\n var _a;\r\n this._labelTemplateRenderedCallCount = (null !== (_a = this._labelTemplateRenderedCallCount) && void 0 !== _a ? _a : 0) + 1\r\n },\r\n _shouldAlignLabelsOnTemplateRendered(formOrLayoutManager, totalItemsWithLabelTemplate) {\r\n return formOrLayoutManager.option(\"templatesRenderAsynchronously\") && this._labelTemplateRenderedCallCount === totalItemsWithLabelTemplate\r\n },\r\n _getMarkOptions() {\r\n return {\r\n showRequiredMark: this.option(\"showRequiredMark\"),\r\n requiredMark: this.option(\"requiredMark\"),\r\n showOptionalMark: this.option(\"showOptionalMark\"),\r\n optionalMark: this.option(\"optionalMark\")\r\n }\r\n },\r\n _getFormOrThis() {\r\n return this.option(\"form\") || this\r\n },\r\n _bindDataField(editorInstance, dataField, editorType, $container) {\r\n var formOrThis = this._getFormOrThis();\r\n editorInstance.on(\"enterKey\", args => {\r\n formOrThis._createActionByOption(\"onEditorEnterKey\")(extend(args, {\r\n dataField: dataField\r\n }))\r\n });\r\n this._createWatcher(editorInstance, $container, dataField);\r\n this.linkEditorToDataField(editorInstance, dataField, editorType)\r\n },\r\n _createWatcher(editorInstance, $container, dataField) {\r\n var that = this;\r\n var watch = that._getWatch();\r\n if (!isFunction(watch)) {\r\n return\r\n }\r\n var dispose = watch(() => that._getDataByField(dataField), () => {\r\n var fieldValue = that._getDataByField(dataField);\r\n if (\"dxTagBox\" === editorInstance.NAME) {\r\n var editorValue = editorInstance.option(\"value\");\r\n if (fieldValue !== editorValue && function(array1, array2) {\r\n if (!Array.isArray(array1) || !Array.isArray(array2) || array1.length !== array2.length) {\r\n return false\r\n }\r\n for (var i = 0; i < array1.length; i++) {\r\n if (array1[i] !== array2[i]) {\r\n return false\r\n }\r\n }\r\n return true\r\n }(fieldValue, editorValue)) {\r\n return\r\n }\r\n }\r\n editorInstance.option(\"value\", fieldValue)\r\n }, {\r\n deep: true,\r\n skipImmediate: true\r\n }, {\r\n createWatcherDataField: dataField\r\n });\r\n eventsEngine.on($container, removeEvent, dispose)\r\n },\r\n _getWatch() {\r\n if (!isDefined(this._watch)) {\r\n var formInstance = this.option(\"form\");\r\n this._watch = formInstance && formInstance.option(\"integrationOptions.watchMethod\")\r\n }\r\n return this._watch\r\n },\r\n _createComponent($editor, type, editorOptions) {\r\n var readOnlyState = this.option(\"readOnly\");\r\n var hasEditorReadOnly = Object.hasOwn(editorOptions, \"readOnly\");\r\n var instance = this.callBase($editor, type, _extends(_extends({}, editorOptions), {\r\n readOnly: !hasEditorReadOnly ? readOnlyState : editorOptions.readOnly\r\n }));\r\n var isChangeByForm = false;\r\n instance.on(\"optionChanged\", args => {\r\n if (\"readOnly\" === args.name && !isChangeByForm) {\r\n hasEditorReadOnly = true\r\n }\r\n });\r\n this.on(\"optionChanged\", args => {\r\n if (\"readOnly\" === args.name && !hasEditorReadOnly) {\r\n isChangeByForm = true;\r\n instance.option(args.name, args.value);\r\n isChangeByForm = false\r\n }\r\n });\r\n return instance\r\n },\r\n _generateRatio(count, isAutoSize) {\r\n var result = [];\r\n var ratio;\r\n var i;\r\n for (i = 0; i < count; i++) {\r\n ratio = {\r\n ratio: 1\r\n };\r\n if (isAutoSize) {\r\n ratio.baseSize = \"auto\"\r\n }\r\n result.push(ratio)\r\n }\r\n return result\r\n },\r\n _getRowsCount() {\r\n return Math.ceil(this._items.length / this._getColCount())\r\n },\r\n _updateReferencedOptions(newLayoutData) {\r\n var layoutData = this.option(\"layoutData\");\r\n if (isObject(layoutData)) {\r\n Object.getOwnPropertyNames(layoutData).forEach(property => delete this._optionsByReference[\"layoutData.\".concat(property)])\r\n }\r\n if (isObject(newLayoutData)) {\r\n Object.getOwnPropertyNames(newLayoutData).forEach(property => this._optionsByReference[\"layoutData.\".concat(property)] = true)\r\n }\r\n },\r\n _clearWidget(instance) {\r\n this._disableEditorValueChangedHandler = true;\r\n instance.clear();\r\n this._disableEditorValueChangedHandler = false;\r\n instance.option(\"isValid\", true)\r\n },\r\n _optionChanged(args) {\r\n if (0 === args.fullName.search(\"layoutData.\")) {\r\n return\r\n }\r\n switch (args.name) {\r\n case \"showRequiredMark\":\r\n case \"showOptionalMark\":\r\n case \"requiredMark\":\r\n case \"optionalMark\":\r\n this._cashedRequiredConfig = null;\r\n this._invalidate();\r\n break;\r\n case \"layoutData\":\r\n this._updateReferencedOptions(args.value);\r\n if (this.option(\"items\")) {\r\n if (!isEmptyObject(args.value)) {\r\n this._itemsRunTimeInfo.each((_, itemRunTimeInfo) => {\r\n if (isDefined(itemRunTimeInfo.item)) {\r\n var {\r\n dataField: dataField\r\n } = itemRunTimeInfo.item;\r\n if (dataField && isDefined(itemRunTimeInfo.widgetInstance)) {\r\n var valueGetter = compileGetter(dataField);\r\n var dataValue = valueGetter(args.value);\r\n var {\r\n allowIndeterminateState: allowIndeterminateState,\r\n editorType: editorType\r\n } = itemRunTimeInfo.item;\r\n if (void 0 !== dataValue || this._isCheckboxUndefinedStateEnabled({\r\n allowIndeterminateState: allowIndeterminateState,\r\n editorType: editorType,\r\n dataField: dataField\r\n })) {\r\n itemRunTimeInfo.widgetInstance.option(\"value\", dataValue)\r\n } else {\r\n this._clearWidget(itemRunTimeInfo.widgetInstance)\r\n }\r\n }\r\n }\r\n })\r\n }\r\n } else {\r\n this._initDataAndItems(args.value);\r\n this._invalidate()\r\n }\r\n break;\r\n case \"items\":\r\n this._cleanItemWatchers();\r\n this._initDataAndItems(args.value);\r\n this._invalidate();\r\n break;\r\n case \"alignItemLabels\":\r\n case \"labelLocation\":\r\n case \"labelMode\":\r\n case \"requiredMessage\":\r\n this._invalidate();\r\n break;\r\n case \"customizeItem\":\r\n this._updateItems(this.option(\"layoutData\"));\r\n this._invalidate();\r\n break;\r\n case \"colCount\":\r\n case \"colCountByScreen\":\r\n this._resetColCount();\r\n break;\r\n case \"minColWidth\":\r\n if (\"auto\" === this.option(\"colCount\")) {\r\n this._resetColCount()\r\n }\r\n break;\r\n case \"readOnly\":\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n if (\"auto\" === this.option(\"colCount\")) {\r\n this._resetColCount()\r\n }\r\n break;\r\n case \"onFieldDataChanged\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _resetColCount() {\r\n this._cashedColCount = null;\r\n this._invalidate()\r\n },\r\n linkEditorToDataField(editorInstance, dataField) {\r\n this.on(\"optionChanged\", args => {\r\n if (args.fullName === \"layoutData.\".concat(dataField)) {\r\n editorInstance._setOptionWithoutOptionChange(\"value\", args.value)\r\n }\r\n });\r\n editorInstance.on(\"valueChanged\", args => {\r\n var isValueReferenceType = isObject(args.value) || Array.isArray(args.value);\r\n if (!this._disableEditorValueChangedHandler && !(isValueReferenceType && args.value === args.previousValue)) {\r\n this._updateFieldValue(dataField, args.value)\r\n }\r\n })\r\n },\r\n _dimensionChanged() {\r\n if (\"auto\" === this.option(\"colCount\") && this.isCachedColCountObsolete()) {\r\n this._eventsStrategy.fireEvent(\"autoColCountChanged\")\r\n }\r\n },\r\n updateData(data, value) {\r\n var that = this;\r\n if (isObject(data)) {\r\n each(data, (dataField, fieldValue) => {\r\n that._updateFieldValue(dataField, fieldValue)\r\n })\r\n } else if (\"string\" === typeof data) {\r\n that._updateFieldValue(data, value)\r\n }\r\n },\r\n getEditor(field) {\r\n return this._itemsRunTimeInfo.findWidgetInstanceByDataField(field) || this._itemsRunTimeInfo.findWidgetInstanceByName(field)\r\n },\r\n isSingleColumnMode(component) {\r\n var responsiveBox = this._responsiveBox || component;\r\n if (responsiveBox) {\r\n return responsiveBox.option(\"currentScreenFactor\") === responsiveBox.option(\"singleColumnScreen\")\r\n }\r\n },\r\n getItemsRunTimeInfo() {\r\n return this._itemsRunTimeInfo\r\n }\r\n});\r\nregisterComponent(\"dxLayoutManager\", LayoutManager);\r\nexport default LayoutManager;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/m_validation_summary.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n grep\r\n} from \"../../core/utils/common\";\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 eventsEngine from \"../../events/core/events_engine\";\r\nimport CollectionWidget from \"../../ui/collection/ui.collection_widget.edit\";\r\nimport ValidationEngine from \"./m_validation_engine\";\r\nvar VALIDATION_SUMMARY_CLASS = \"dx-validationsummary\";\r\nvar ITEM_CLASS = \"\".concat(VALIDATION_SUMMARY_CLASS, \"-item\");\r\nvar ITEM_DATA_KEY = \"\".concat(VALIDATION_SUMMARY_CLASS, \"-item-data\");\r\nvar ValidationSummary = CollectionWidget.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n focusStateEnabled: false,\r\n noDataText: null\r\n })\r\n },\r\n _setOptionsByReference() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n validationGroup: true\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initGroupRegistration()\r\n },\r\n _initGroupRegistration() {\r\n var $element = this.$element();\r\n var group = this.option(\"validationGroup\") || ValidationEngine.findGroup($element, this._modelByElement($element));\r\n var groupConfig = ValidationEngine.addGroup(group, true);\r\n this._unsubscribeGroup();\r\n this._groupWasInit = true;\r\n this._validationGroup = group;\r\n this.groupSubscription = this._groupValidationHandler.bind(this);\r\n groupConfig.on(\"validated\", this.groupSubscription)\r\n },\r\n _unsubscribeGroup() {\r\n var groupConfig = ValidationEngine.getGroupConfig(this._validationGroup);\r\n groupConfig && groupConfig.off(\"validated\", this.groupSubscription)\r\n },\r\n _getOrderedItems(validators, items) {\r\n var orderedItems = [];\r\n each(validators, (_, validator) => {\r\n var foundItems = grep(items, item => {\r\n if (item.validator === validator) {\r\n return true\r\n }\r\n });\r\n if (foundItems.length) {\r\n orderedItems = orderedItems.concat(foundItems)\r\n }\r\n });\r\n return orderedItems\r\n },\r\n _groupValidationHandler(params) {\r\n var items = this._getOrderedItems(params.validators, map(params.brokenRules, rule => ({\r\n text: rule.message,\r\n validator: rule.validator,\r\n index: rule.index\r\n })));\r\n this.validators = params.validators;\r\n each(this.validators, (_, validator) => {\r\n if (validator._validationSummary !== this) {\r\n var handler = this._itemValidationHandler.bind(this);\r\n validator.on(\"validated\", handler);\r\n validator.on(\"disposing\", (function() {\r\n validator.off(\"validated\", handler);\r\n validator._validationSummary = null;\r\n handler = null\r\n }));\r\n validator._validationSummary = this\r\n }\r\n });\r\n this.option(\"items\", items)\r\n },\r\n _itemValidationHandler(_ref) {\r\n var {\r\n isValid: isValid,\r\n validator: validator,\r\n brokenRules: brokenRules\r\n } = _ref;\r\n var items = this.option(\"items\");\r\n var itemsChanged = false;\r\n var itemIndex = 0;\r\n var _loop = function() {\r\n var item = items[itemIndex];\r\n if (item.validator === validator) {\r\n var foundRule = grep(brokenRules || [], rule => rule.index === item.index)[0];\r\n if (isValid || !foundRule) {\r\n items.splice(itemIndex, 1);\r\n itemsChanged = true;\r\n return 1\r\n }\r\n if (foundRule.message !== item.text) {\r\n item.text = foundRule.message;\r\n itemsChanged = true\r\n }\r\n }\r\n itemIndex++\r\n };\r\n while (itemIndex < items.length) {\r\n if (_loop()) {\r\n continue\r\n }\r\n }\r\n each(brokenRules, (_, rule) => {\r\n var foundItem = grep(items, item => item.validator === validator && item.index === rule.index)[0];\r\n if (!foundItem) {\r\n items.push({\r\n text: rule.message,\r\n validator: validator,\r\n index: rule.index\r\n });\r\n itemsChanged = true\r\n }\r\n });\r\n if (itemsChanged) {\r\n items = this._getOrderedItems(this.validators, items);\r\n this.option(\"items\", items)\r\n }\r\n },\r\n _initMarkup() {\r\n this.$element().addClass(VALIDATION_SUMMARY_CLASS);\r\n this.callBase()\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"validationGroup\":\r\n this._initGroupRegistration();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _itemClass: () => ITEM_CLASS,\r\n _itemDataKey: () => ITEM_DATA_KEY,\r\n _postprocessRenderItem(params) {\r\n eventsEngine.on(params.itemElement, \"click\", () => {\r\n params.itemData.validator && params.itemData.validator.focus && params.itemData.validator.focus()\r\n })\r\n },\r\n _dispose() {\r\n this.callBase();\r\n this._unsubscribeGroup()\r\n },\r\n refreshValidationGroup() {\r\n this._initGroupRegistration()\r\n }\r\n});\r\nregisterComponent(\"dxValidationSummary\", ValidationSummary);\r\nexport default ValidationSummary;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/m_validation_group.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport DOMComponent from \"../../core/dom_component\";\r\nimport $ from \"../../core/renderer\";\r\nimport ValidationEngine from \"./m_validation_engine\";\r\nimport ValidationSummary from \"./m_validation_summary\";\r\nimport Validator from \"./m_validator\";\r\nvar VALIDATION_ENGINE_CLASS = \"dx-validationgroup\";\r\nvar VALIDATOR_CLASS = \"dx-validator\";\r\nvar VALIDATION_SUMMARY_CLASS = \"dx-validationsummary\";\r\nclass ValidationGroup extends DOMComponent {\r\n _getDefaultOptions() {\r\n return super._getDefaultOptions()\r\n }\r\n _init() {\r\n super._init();\r\n ValidationEngine.addGroup(this, false)\r\n }\r\n _initMarkup() {\r\n var $element = this.$element();\r\n $element.addClass(VALIDATION_ENGINE_CLASS);\r\n $element.find(\".\".concat(VALIDATOR_CLASS)).each((_, validatorContainer) => {\r\n Validator.getInstance($(validatorContainer))._initGroupRegistration()\r\n });\r\n $element.find(\".\".concat(VALIDATION_SUMMARY_CLASS)).each((_, summaryContainer) => {\r\n ValidationSummary.getInstance($(summaryContainer)).refreshValidationGroup()\r\n });\r\n super._initMarkup()\r\n }\r\n validate() {\r\n return ValidationEngine.validateGroup(this)\r\n }\r\n reset() {\r\n return ValidationEngine.resetGroup(this)\r\n }\r\n _dispose() {\r\n ValidationEngine.removeGroup(this);\r\n this.$element().removeClass(VALIDATION_ENGINE_CLASS);\r\n super._dispose()\r\n }\r\n _useTemplates() {\r\n return false\r\n }\r\n}\r\nregisterComponent(\"dxValidationGroup\", ValidationGroup);\r\nexport default ValidationGroup;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scrollable.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Scrollable from \"../../__internal/ui/scroll_view/m_scrollable\";\r\nexport default Scrollable;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/multi_view/m_multi_view.animation.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport fx from \"../../../animation/fx\";\r\nimport {\r\n move\r\n} from \"../../../animation/translator\";\r\nexport var _translator = {\r\n move($element, position) {\r\n move($element, {\r\n left: position\r\n })\r\n }\r\n};\r\nexport var animation = {\r\n moveTo($element, position, duration, completeAction) {\r\n fx.animate($element, {\r\n type: \"slide\",\r\n to: {\r\n left: position\r\n },\r\n duration: duration,\r\n complete: completeAction\r\n })\r\n },\r\n complete($element) {\r\n fx.stop($element, true)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/ui/m_multi_view.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n locate\r\n} from \"../../animation/translator\";\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 deferRender,\r\n noop\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 sign\r\n} from \"../../core/utils/math\";\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport Swipeable from \"../../events/gesture/swipeable\";\r\nimport {\r\n triggerResizeEvent\r\n} from \"../../events/visibility_change\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport CollectionWidget from \"../../ui/collection/ui.collection_widget.live_update\";\r\nimport {\r\n _translator,\r\n animation\r\n} from \"./multi_view/m_multi_view.animation\";\r\nvar MULTIVIEW_CLASS = \"dx-multiview\";\r\nvar MULTIVIEW_WRAPPER_CLASS = \"dx-multiview-wrapper\";\r\nvar MULTIVIEW_ITEM_CONTAINER_CLASS = \"dx-multiview-item-container\";\r\nvar MULTIVIEW_ITEM_CLASS = \"dx-multiview-item\";\r\nvar MULTIVIEW_ITEM_HIDDEN_CLASS = \"dx-multiview-item-hidden\";\r\nvar MULTIVIEW_ITEM_DATA_KEY = \"dxMultiViewItemData\";\r\nvar MULTIVIEW_ANIMATION_DURATION = 200;\r\nvar toNumber = value => +value;\r\nvar position = $element => locate($element).left;\r\nvar MultiView = CollectionWidget.inherit({\r\n _activeStateUnit: \".\".concat(MULTIVIEW_ITEM_CLASS),\r\n _supportedKeys() {\r\n return extend(this.callBase(), {\r\n pageUp: noop,\r\n pageDown: noop\r\n })\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n selectedIndex: 0,\r\n swipeEnabled: true,\r\n animationEnabled: true,\r\n loop: false,\r\n deferRendering: true,\r\n loopItemFocus: false,\r\n selectOnFocus: true,\r\n selectionMode: \"single\",\r\n selectionRequired: true,\r\n selectByClick: false\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device: () => \"desktop\" === devices.real().deviceType && !devices.isSimulator(),\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _itemClass: () => MULTIVIEW_ITEM_CLASS,\r\n _itemDataKey: () => MULTIVIEW_ITEM_DATA_KEY,\r\n _itemContainer() {\r\n return this._$itemContainer\r\n },\r\n _itemElements() {\r\n return this._itemContainer().children(this._itemSelector())\r\n },\r\n _itemWidth() {\r\n if (!this._itemWidthValue) {\r\n this._itemWidthValue = getWidth(this._$wrapper)\r\n }\r\n return this._itemWidthValue\r\n },\r\n _clearItemWidthCache() {\r\n delete this._itemWidthValue\r\n },\r\n _itemsCount() {\r\n return this.option(\"items\").length\r\n },\r\n _normalizeIndex(index) {\r\n var count = this._itemsCount();\r\n if (index < 0) {\r\n index += count\r\n }\r\n if (index >= count) {\r\n index -= count\r\n }\r\n return index\r\n },\r\n _getRTLSignCorrection() {\r\n return this.option(\"rtlEnabled\") ? -1 : 1\r\n },\r\n _init() {\r\n this.callBase.apply(this, arguments);\r\n var $element = this.$element();\r\n $element.addClass(MULTIVIEW_CLASS);\r\n this._$wrapper = $(\"<div>\").addClass(MULTIVIEW_WRAPPER_CLASS);\r\n this._$wrapper.appendTo($element);\r\n this._$itemContainer = $(\"<div>\").addClass(MULTIVIEW_ITEM_CONTAINER_CLASS);\r\n this._$itemContainer.appendTo(this._$wrapper);\r\n this.option(\"loopItemFocus\", this.option(\"loop\"));\r\n this._findBoundaryIndices();\r\n this._initSwipeable()\r\n },\r\n _initMarkup() {\r\n this._deferredItems = [];\r\n this.callBase();\r\n var selectedItemIndices = this._getSelectedItemIndices();\r\n this._updateItemsVisibility(selectedItemIndices[0]);\r\n this._setElementAria();\r\n this._setItemsAria()\r\n },\r\n _afterItemElementDeleted($item, deletedActionArgs) {\r\n this.callBase($item, deletedActionArgs);\r\n if (this._deferredItems) {\r\n this._deferredItems.splice(deletedActionArgs.itemIndex, 1)\r\n }\r\n },\r\n _beforeItemElementInserted(change) {\r\n this.callBase.apply(this, arguments);\r\n if (this._deferredItems) {\r\n this._deferredItems.splice(change.index, 0, null)\r\n }\r\n },\r\n _executeItemRenderAction(index, itemData, itemElement) {\r\n index = (this.option(\"items\") || []).indexOf(itemData);\r\n this.callBase(index, itemData, itemElement)\r\n },\r\n _renderItemContent(args) {\r\n var renderContentDeferred = Deferred();\r\n var that = this;\r\n var {\r\n callBase: callBase\r\n } = this;\r\n var deferred = Deferred();\r\n deferred.done(() => {\r\n var $itemContent = callBase.call(that, args);\r\n renderContentDeferred.resolve($itemContent)\r\n });\r\n this._deferredItems[args.index] = deferred;\r\n this.option(\"deferRendering\") || deferred.resolve();\r\n return renderContentDeferred.promise()\r\n },\r\n _render() {\r\n this.callBase();\r\n deferRender(() => {\r\n var selectedItemIndices = this._getSelectedItemIndices();\r\n this._updateItems(selectedItemIndices[0])\r\n })\r\n },\r\n _getElementAria: () => ({\r\n role: \"group\",\r\n roledescription: messageLocalization.format(\"dxMultiView-elementAriaRoleDescription\"),\r\n label: messageLocalization.format(\"dxMultiView-elementAriaLabel\")\r\n }),\r\n _setElementAria() {\r\n var aria = this._getElementAria();\r\n this.setAria(aria, this.$element())\r\n },\r\n _setItemsAria() {\r\n var $itemElements = this._itemElements();\r\n var itemsCount = this._itemsCount();\r\n $itemElements.each((itemIndex, item) => {\r\n var aria = this._getItemAria({\r\n itemIndex: itemIndex,\r\n itemsCount: itemsCount\r\n });\r\n this.setAria(aria, $(item))\r\n })\r\n },\r\n _getItemAria(_ref) {\r\n var {\r\n itemIndex: itemIndex,\r\n itemsCount: itemsCount\r\n } = _ref;\r\n var aria = {\r\n role: \"group\",\r\n roledescription: messageLocalization.format(\"dxMultiView-itemAriaRoleDescription\"),\r\n label: messageLocalization.format(\"dxMultiView-itemAriaLabel\", itemIndex + 1, itemsCount)\r\n };\r\n return aria\r\n },\r\n _updateItems(selectedIndex, newIndex) {\r\n this._updateItemsPosition(selectedIndex, newIndex);\r\n this._updateItemsVisibility(selectedIndex, newIndex)\r\n },\r\n _modifyByChanges() {\r\n this.callBase.apply(this, arguments);\r\n var selectedItemIndices = this._getSelectedItemIndices();\r\n this._updateItemsVisibility(selectedItemIndices[0])\r\n },\r\n _updateItemsPosition(selectedIndex, newIndex) {\r\n var $itemElements = this._itemElements();\r\n var positionSign = isDefined(newIndex) ? -this._animationDirection(newIndex, selectedIndex) : void 0;\r\n var $selectedItem = $itemElements.eq(selectedIndex);\r\n _translator.move($selectedItem, 0);\r\n if (isDefined(newIndex)) {\r\n _translator.move($itemElements.eq(newIndex), \"\".concat(100 * positionSign, \"%\"))\r\n }\r\n },\r\n _updateItemsVisibility(selectedIndex, newIndex) {\r\n var $itemElements = this._itemElements();\r\n $itemElements.each((itemIndex, item) => {\r\n var $item = $(item);\r\n var isHidden = itemIndex !== selectedIndex && itemIndex !== newIndex;\r\n if (!isHidden) {\r\n this._renderSpecificItem(itemIndex)\r\n }\r\n $item.toggleClass(MULTIVIEW_ITEM_HIDDEN_CLASS, isHidden);\r\n this.setAria(\"hidden\", isHidden || void 0, $item)\r\n })\r\n },\r\n _renderSpecificItem(index) {\r\n var $item = this._itemElements().eq(index);\r\n var hasItemContent = $item.find(this._itemContentClass()).length > 0;\r\n if (isDefined(index) && !hasItemContent) {\r\n this._deferredItems[index].resolve();\r\n triggerResizeEvent($item)\r\n }\r\n },\r\n _refreshItem($item, item) {\r\n this.callBase($item, item);\r\n this._updateItemsVisibility(this.option(\"selectedIndex\"))\r\n },\r\n _setAriaSelectionAttribute: noop,\r\n _updateSelection(addedSelection, removedSelection) {\r\n var newIndex = addedSelection[0];\r\n var prevIndex = removedSelection[0];\r\n animation.complete(this._$itemContainer);\r\n this._updateItems(prevIndex, newIndex);\r\n var animationDirection = this._animationDirection(newIndex, prevIndex);\r\n this._animateItemContainer(animationDirection * this._itemWidth(), () => {\r\n _translator.move(this._$itemContainer, 0);\r\n this._updateItems(newIndex);\r\n getWidth(this._$itemContainer)\r\n })\r\n },\r\n _animateItemContainer(position, completeCallback) {\r\n var duration = this.option(\"animationEnabled\") ? MULTIVIEW_ANIMATION_DURATION : 0;\r\n animation.moveTo(this._$itemContainer, position, duration, completeCallback)\r\n },\r\n _animationDirection(newIndex, prevIndex) {\r\n var containerPosition = position(this._$itemContainer);\r\n var indexDifference = (prevIndex - newIndex) * this._getRTLSignCorrection() * this._getItemFocusLoopSignCorrection();\r\n var isSwipePresent = 0 !== containerPosition;\r\n var directionSignVariable = isSwipePresent ? containerPosition : indexDifference;\r\n return sign(directionSignVariable)\r\n },\r\n _getSwipeDisabledState() {\r\n return !this.option(\"swipeEnabled\") || this._itemsCount() <= 1\r\n },\r\n _initSwipeable() {\r\n this._createComponent(this.$element(), Swipeable, {\r\n disabled: this._getSwipeDisabledState(),\r\n elastic: false,\r\n itemSizeFunc: this._itemWidth.bind(this),\r\n onStart: args => this._swipeStartHandler(args.event),\r\n onUpdated: args => this._swipeUpdateHandler(args.event),\r\n onEnd: args => this._swipeEndHandler(args.event)\r\n })\r\n },\r\n _findBoundaryIndices() {\r\n var items = this.option(\"items\");\r\n var firstIndex;\r\n var lastIndex;\r\n items.forEach((item, index) => {\r\n var isDisabled = Boolean(null === item || void 0 === item ? void 0 : item.disabled);\r\n if (!isDisabled) {\r\n null !== firstIndex && void 0 !== firstIndex ? firstIndex : firstIndex = index;\r\n lastIndex = index\r\n }\r\n });\r\n this._boundaryIndices = {\r\n firstAvailableIndex: null !== firstIndex && void 0 !== firstIndex ? firstIndex : 0,\r\n lastAvailableIndex: null !== lastIndex && void 0 !== lastIndex ? lastIndex : items.length - 1,\r\n firstTrueIndex: 0,\r\n lastTrueIndex: items.length - 1\r\n }\r\n },\r\n _swipeStartHandler(e) {\r\n animation.complete(this._$itemContainer);\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var loop = this.option(\"loop\");\r\n var {\r\n firstAvailableIndex: firstAvailableIndex,\r\n lastAvailableIndex: lastAvailableIndex\r\n } = this._boundaryIndices;\r\n var rtl = this.option(\"rtlEnabled\");\r\n e.maxLeftOffset = toNumber(loop || (rtl ? selectedIndex > firstAvailableIndex : selectedIndex < lastAvailableIndex));\r\n e.maxRightOffset = toNumber(loop || (rtl ? selectedIndex < lastAvailableIndex : selectedIndex > firstAvailableIndex));\r\n this._swipeDirection = null\r\n },\r\n _swipeUpdateHandler(e) {\r\n var {\r\n offset: offset\r\n } = e;\r\n var swipeDirection = sign(offset) * this._getRTLSignCorrection();\r\n _translator.move(this._$itemContainer, offset * this._itemWidth());\r\n if (swipeDirection !== this._swipeDirection) {\r\n this._swipeDirection = swipeDirection;\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var newIndex = this._normalizeIndex(selectedIndex - swipeDirection);\r\n this._updateItems(selectedIndex, newIndex)\r\n }\r\n },\r\n _findNextAvailableIndex(index, offset) {\r\n var {\r\n items: items,\r\n loop: loop\r\n } = this.option();\r\n var {\r\n firstAvailableIndex: firstAvailableIndex,\r\n lastAvailableIndex: lastAvailableIndex,\r\n firstTrueIndex: firstTrueIndex,\r\n lastTrueIndex: lastTrueIndex\r\n } = this._boundaryIndices;\r\n var isFirstActive = [firstTrueIndex, firstAvailableIndex].includes(index);\r\n var isLastActive = [lastTrueIndex, lastAvailableIndex].includes(index);\r\n if (loop) {\r\n if (isFirstActive && offset < 0) {\r\n return lastAvailableIndex\r\n }\r\n if (isLastActive && offset > 0) {\r\n return firstAvailableIndex\r\n }\r\n }\r\n for (var i = index + offset; i >= firstAvailableIndex && i <= lastAvailableIndex; i += offset) {\r\n var isDisabled = Boolean(items[i].disabled);\r\n if (!isDisabled) {\r\n return i\r\n }\r\n }\r\n return index\r\n },\r\n _swipeEndHandler(e) {\r\n var targetOffset = e.targetOffset * this._getRTLSignCorrection();\r\n if (targetOffset) {\r\n var newSelectedIndex = this._findNextAvailableIndex(this.option(\"selectedIndex\"), -targetOffset);\r\n this.option(\"selectedIndex\", newSelectedIndex);\r\n var $selectedElement = this.itemElements().filter(\".dx-item-selected\");\r\n this.option(\"focusStateEnabled\") && this.option(\"focusedElement\", getPublicElement($selectedElement))\r\n } else {\r\n this._animateItemContainer(0, noop)\r\n }\r\n },\r\n _getItemFocusLoopSignCorrection() {\r\n return this._itemFocusLooped ? -1 : 1\r\n },\r\n _moveFocus() {\r\n this.callBase.apply(this, arguments);\r\n this._itemFocusLooped = false\r\n },\r\n _prevItem($items) {\r\n var $result = this.callBase.apply(this, arguments);\r\n this._itemFocusLooped = $result.is($items.last());\r\n return $result\r\n },\r\n _nextItem($items) {\r\n var $result = this.callBase.apply(this, arguments);\r\n this._itemFocusLooped = $result.is($items.first());\r\n return $result\r\n },\r\n _dimensionChanged() {\r\n this._clearItemWidthCache()\r\n },\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _updateSwipeDisabledState() {\r\n var disabled = this._getSwipeDisabledState();\r\n Swipeable.getInstance(this.$element()).option(\"disabled\", disabled)\r\n },\r\n _dispose() {\r\n delete this._boundaryIndices;\r\n this.callBase()\r\n },\r\n _optionChanged(args) {\r\n var {\r\n value: value\r\n } = args;\r\n switch (args.name) {\r\n case \"loop\":\r\n this.option(\"loopItemFocus\", value);\r\n break;\r\n case \"animationEnabled\":\r\n break;\r\n case \"swipeEnabled\":\r\n this._updateSwipeDisabledState();\r\n break;\r\n case \"deferRendering\":\r\n this._invalidate();\r\n break;\r\n case \"items\":\r\n this._updateSwipeDisabledState();\r\n this._findBoundaryIndices();\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxMultiView\", MultiView);\r\nexport default MultiView;\r\n","/**\r\n * DevExtreme (esm/ui/multi_view.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport MultiView from \"../__internal/ui/m_multi_view\";\r\nexport default MultiView;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/get_scroll_left_max.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function getScrollLeftMax(element) {\r\n return element.scrollWidth - element.clientWidth\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/get_boundary_props.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getScrollLeftMax\r\n} from \"./get_scroll_left_max\";\r\nimport {\r\n getScrollTopMax\r\n} from \"./get_scroll_top_max\";\r\nimport {\r\n ScrollDirection\r\n} from \"./scroll_direction\";\r\nexport function isReachedLeft(scrollOffsetLeft, epsilon) {\r\n return Math.round(scrollOffsetLeft) <= epsilon\r\n}\r\nexport function isReachedRight(element, scrollOffsetLeft, epsilon) {\r\n return Math.round(getScrollLeftMax(element) - scrollOffsetLeft) <= epsilon\r\n}\r\nexport function isReachedTop(scrollOffsetTop, epsilon) {\r\n return Math.round(scrollOffsetTop) <= epsilon\r\n}\r\nexport function isReachedBottom(element, scrollOffsetTop, pocketHeight, epsilon) {\r\n return Math.round(getScrollTopMax(element) - scrollOffsetTop - pocketHeight) <= epsilon\r\n}\r\nexport function getBoundaryProps(direction, scrollOffset, element) {\r\n var pocketHeight = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0;\r\n var {\r\n left: left,\r\n top: top\r\n } = scrollOffset;\r\n var boundaryProps = {};\r\n var {\r\n isHorizontal: isHorizontal,\r\n isVertical: isVertical\r\n } = new ScrollDirection(direction);\r\n if (isHorizontal) {\r\n boundaryProps.reachedLeft = isReachedLeft(left, 0);\r\n boundaryProps.reachedRight = isReachedRight(element, left, 0)\r\n }\r\n if (isVertical) {\r\n boundaryProps.reachedTop = isReachedTop(top, 0);\r\n boundaryProps.reachedBottom = isReachedBottom(element, top, pocketHeight, 0)\r\n }\r\n return boundaryProps\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/get_scroll_top_max.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function getScrollTopMax(element) {\r\n return element.scrollHeight - element.clientHeight\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/tabs/constants.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var TABS_EXPANDED_CLASS = \"dx-tabs-expanded\";\r\n","/**\r\n * DevExtreme (esm/__internal/ui/tabs/m_item.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport CollectionWidgetItem from \"../../ui/collection/m_item\";\r\nvar TABS_ITEM_BADGE_CLASS = \"dx-tabs-item-badge\";\r\nvar BADGE_CLASS = \"dx-badge\";\r\nvar TabsItem = CollectionWidgetItem.inherit({\r\n _renderWatchers() {\r\n this.callBase();\r\n this._startWatcher(\"badge\", this._renderBadge.bind(this))\r\n },\r\n _renderBadge(badge) {\r\n this._$element.children(\".\".concat(BADGE_CLASS)).remove();\r\n if (!badge) {\r\n return\r\n }\r\n var $badge = $(\"<div>\").addClass(TABS_ITEM_BADGE_CLASS).addClass(BADGE_CLASS).text(badge);\r\n this._$element.append($badge)\r\n }\r\n});\r\nexport default TabsItem;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/tabs/m_tabs.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport devices from \"../../../core/devices\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../../core/templates/bindable_template\";\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 getImageContainer\r\n} from \"../../../core/utils/icon\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n getHeight,\r\n getOuterWidth,\r\n getWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport holdEvent from \"../../../events/hold\";\r\nimport pointerEvents from \"../../../events/pointer\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nimport {\r\n isReachedBottom,\r\n isReachedLeft,\r\n isReachedRight,\r\n isReachedTop\r\n} from \"../../../renovation/ui/scroll_view/utils/get_boundary_props\";\r\nimport {\r\n getScrollLeftMax\r\n} from \"../../../renovation/ui/scroll_view/utils/get_scroll_left_max\";\r\nimport Button from \"../../../ui/button\";\r\nimport {\r\n default as CollectionWidget\r\n} from \"../../../ui/collection/ui.collection_widget.live_update\";\r\nimport Scrollable from \"../../../ui/scroll_view/ui.scrollable\";\r\nimport {\r\n current as currentTheme,\r\n isFluent,\r\n isMaterial\r\n} from \"../../../ui/themes\";\r\nimport {\r\n render\r\n} from \"../../../ui/widget/utils.ink_ripple\";\r\nimport {\r\n TABS_EXPANDED_CLASS\r\n} from \"./constants\";\r\nimport TabsItem from \"./m_item\";\r\nvar TABS_CLASS = \"dx-tabs\";\r\nvar TABS_WRAPPER_CLASS = \"dx-tabs-wrapper\";\r\nvar TABS_STRETCHED_CLASS = \"dx-tabs-stretched\";\r\nvar TABS_SCROLLABLE_CLASS = \"dx-tabs-scrollable\";\r\nvar TABS_NAV_BUTTONS_CLASS = \"dx-tabs-nav-buttons\";\r\nvar OVERFLOW_HIDDEN_CLASS = \"dx-overflow-hidden\";\r\nvar TABS_ITEM_CLASS = \"dx-tab\";\r\nvar TABS_ITEM_SELECTED_CLASS = \"dx-tab-selected\";\r\nvar TABS_SCROLLING_ENABLED_CLASS = \"dx-tabs-scrolling-enabled\";\r\nvar TABS_NAV_BUTTON_CLASS = \"dx-tabs-nav-button\";\r\nvar TABS_LEFT_NAV_BUTTON_CLASS = \"dx-tabs-nav-button-left\";\r\nvar TABS_RIGHT_NAV_BUTTON_CLASS = \"dx-tabs-nav-button-right\";\r\nvar TABS_ITEM_TEXT_CLASS = \"dx-tab-text\";\r\nvar TABS_ITEM_TEXT_SPAN_CLASS = \"dx-tab-text-span\";\r\nvar TABS_ITEM_TEXT_SPAN_PSEUDO_CLASS = \"dx-tab-text-span-pseudo\";\r\nvar STATE_DISABLED_CLASS = \"dx-state-disabled\";\r\nvar FOCUSED_DISABLED_NEXT_TAB_CLASS = \"dx-focused-disabled-next-tab\";\r\nvar FOCUSED_DISABLED_PREV_TAB_CLASS = \"dx-focused-disabled-prev-tab\";\r\nvar TABS_ORIENTATION_CLASS = {\r\n vertical: \"dx-tabs-vertical\",\r\n horizontal: \"dx-tabs-horizontal\"\r\n};\r\nvar INDICATOR_POSITION_CLASS = {\r\n top: \"dx-tab-indicator-position-top\",\r\n right: \"dx-tab-indicator-position-right\",\r\n bottom: \"dx-tab-indicator-position-bottom\",\r\n left: \"dx-tab-indicator-position-left\"\r\n};\r\nvar TABS_ICON_POSITION_CLASS = {\r\n top: \"dx-tabs-icon-position-top\",\r\n end: \"dx-tabs-icon-position-end\",\r\n bottom: \"dx-tabs-icon-position-bottom\",\r\n start: \"dx-tabs-icon-position-start\"\r\n};\r\nvar TABS_STYLING_MODE_CLASS = {\r\n primary: \"dx-tabs-styling-mode-primary\",\r\n secondary: \"dx-tabs-styling-mode-secondary\"\r\n};\r\nvar TABS_ITEM_DATA_KEY = \"dxTabData\";\r\nvar BUTTON_NEXT_ICON = \"chevronnext\";\r\nvar BUTTON_PREV_ICON = \"chevronprev\";\r\nvar FEEDBACK_HIDE_TIMEOUT = 100;\r\nvar FEEDBACK_DURATION_INTERVAL = 5;\r\nvar FEEDBACK_SCROLL_TIMEOUT = 300;\r\nvar TAB_OFFSET = 30;\r\nvar ORIENTATION = {\r\n horizontal: \"horizontal\",\r\n vertical: \"vertical\"\r\n};\r\nvar INDICATOR_POSITION = {\r\n top: \"top\",\r\n right: \"right\",\r\n bottom: \"bottom\",\r\n left: \"left\"\r\n};\r\nvar SCROLLABLE_DIRECTION = {\r\n horizontal: \"horizontal\",\r\n vertical: \"vertical\"\r\n};\r\nvar ICON_POSITION = {\r\n top: \"top\",\r\n end: \"end\",\r\n bottom: \"bottom\",\r\n start: \"start\"\r\n};\r\nvar STYLING_MODE = {\r\n primary: \"primary\",\r\n secondary: \"secondary\"\r\n};\r\nvar Tabs = CollectionWidget.inherit({\r\n _activeStateUnit: \".\".concat(TABS_ITEM_CLASS),\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n showNavButtons: true,\r\n scrollByContent: true,\r\n scrollingEnabled: true,\r\n selectionMode: \"single\",\r\n orientation: ORIENTATION.horizontal,\r\n iconPosition: ICON_POSITION.start,\r\n stylingMode: STYLING_MODE.primary,\r\n activeStateEnabled: true,\r\n selectionRequired: false,\r\n selectOnFocus: true,\r\n loopItemFocus: false,\r\n useInkRipple: false,\r\n badgeExpr: data => data ? data.badge : void 0,\r\n _itemAttributes: {\r\n role: \"tab\"\r\n },\r\n _indicatorPosition: null\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n var themeName = currentTheme();\r\n return this.callBase().concat([{\r\n device: () => \"desktop\" !== devices.real().deviceType,\r\n options: {\r\n showNavButtons: false\r\n }\r\n }, {\r\n device: {\r\n deviceType: \"desktop\"\r\n },\r\n options: {\r\n scrollByContent: false\r\n }\r\n }, {\r\n device: () => \"desktop\" === devices.real().deviceType && !devices.isSimulator(),\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: () => isFluent(themeName),\r\n options: {\r\n iconPosition: ICON_POSITION.top,\r\n stylingMode: STYLING_MODE.secondary\r\n }\r\n }, {\r\n device: () => isMaterial(themeName),\r\n options: {\r\n useInkRipple: true,\r\n selectOnFocus: false,\r\n iconPosition: ICON_POSITION.top\r\n }\r\n }])\r\n },\r\n _init() {\r\n var {\r\n orientation: orientation,\r\n stylingMode: stylingMode,\r\n scrollingEnabled: scrollingEnabled\r\n } = this.option();\r\n var indicatorPosition = this._getIndicatorPosition();\r\n this.callBase();\r\n this.$element().addClass(TABS_CLASS);\r\n this._toggleScrollingEnabledClass(scrollingEnabled);\r\n this._toggleOrientationClass(orientation);\r\n this._toggleIndicatorPositionClass(indicatorPosition);\r\n this._toggleIconPositionClass();\r\n this._toggleStylingModeClass(stylingMode);\r\n this._renderWrapper();\r\n this._renderMultiple();\r\n this._feedbackHideTimeout = FEEDBACK_HIDE_TIMEOUT\r\n },\r\n _prepareDefaultItemTemplate(data, $container) {\r\n var text = isPlainObject(data) ? null === data || void 0 === data ? void 0 : data.text : data;\r\n if (isDefined(text)) {\r\n var $tabTextSpan = $(\"<span>\").addClass(TABS_ITEM_TEXT_SPAN_CLASS);\r\n $tabTextSpan.text(text);\r\n var $tabTextSpanPseudo = $(\"<span>\").addClass(TABS_ITEM_TEXT_SPAN_PSEUDO_CLASS);\r\n $tabTextSpanPseudo.text(text);\r\n $tabTextSpanPseudo.appendTo($tabTextSpan);\r\n $tabTextSpan.appendTo($container)\r\n }\r\n if (isDefined(data.html)) {\r\n $container.html(data.html)\r\n }\r\n },\r\n _initTemplates() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n item: new BindableTemplate(($container, data) => {\r\n this._prepareDefaultItemTemplate(data, $container);\r\n var $iconElement = getImageContainer(data.icon);\r\n $iconElement && $iconElement.prependTo($container);\r\n var $tabItem = $(\"<div>\").addClass(TABS_ITEM_TEXT_CLASS);\r\n $container.wrapInner($tabItem)\r\n }, [\"text\", \"html\", \"icon\"], this.option(\"integrationOptions.watchMethod\"))\r\n })\r\n },\r\n _createItemByTemplate: function(itemTemplate, renderArgs) {\r\n var {\r\n itemData: itemData,\r\n container: container,\r\n index: index\r\n } = renderArgs;\r\n this._deferredTemplates[index] = Deferred();\r\n return itemTemplate.render({\r\n model: itemData,\r\n container: container,\r\n index: index,\r\n onRendered: () => this._deferredTemplates[index].resolve()\r\n })\r\n },\r\n _itemClass: () => TABS_ITEM_CLASS,\r\n _selectedItemClass: () => TABS_ITEM_SELECTED_CLASS,\r\n _itemDataKey: () => TABS_ITEM_DATA_KEY,\r\n _initMarkup() {\r\n this._deferredTemplates = [];\r\n this.callBase();\r\n this.option(\"useInkRipple\") && this._renderInkRipple();\r\n this.$element().addClass(OVERFLOW_HIDDEN_CLASS)\r\n },\r\n _render() {\r\n this.callBase();\r\n this._deferRenderScrolling()\r\n },\r\n _deferRenderScrolling() {\r\n when.apply(this, this._deferredTemplates).done(() => this._renderScrolling())\r\n },\r\n _renderScrolling() {\r\n var removeClasses = [TABS_STRETCHED_CLASS, TABS_EXPANDED_CLASS, OVERFLOW_HIDDEN_CLASS];\r\n this.$element().removeClass(removeClasses.join(\" \"));\r\n if (this.option(\"scrollingEnabled\") && this._isItemsSizeExceeded()) {\r\n if (!this._scrollable) {\r\n this._renderScrollable();\r\n this._renderNavButtons()\r\n }\r\n var scrollable = this.getScrollable();\r\n scrollable.update();\r\n if (this.option(\"rtlEnabled\")) {\r\n var maxLeftOffset = getScrollLeftMax($(this.getScrollable().container()).get(0));\r\n scrollable.scrollTo({\r\n left: maxLeftOffset\r\n })\r\n }\r\n this._updateNavButtonsState();\r\n this._scrollToItem(this.option(\"selectedItem\"))\r\n }\r\n if (!(this.option(\"scrollingEnabled\") && this._isItemsSizeExceeded())) {\r\n this._cleanScrolling();\r\n if (this._needStretchItems()) {\r\n this.$element().addClass(TABS_STRETCHED_CLASS)\r\n }\r\n this.$element().removeClass(TABS_NAV_BUTTONS_CLASS).addClass(TABS_EXPANDED_CLASS)\r\n }\r\n },\r\n _isVertical() {\r\n return this.option(\"orientation\") === ORIENTATION.vertical\r\n },\r\n _isItemsSizeExceeded() {\r\n var isVertical = this._isVertical();\r\n var isItemsSizeExceeded = isVertical ? this._isItemsHeightExceeded() : this._isItemsWidthExceeded();\r\n return isItemsSizeExceeded\r\n },\r\n _isItemsWidthExceeded() {\r\n var $visibleItems = this._getVisibleItems();\r\n var tabItemTotalWidth = this._getSummaryItemsSize(\"width\", $visibleItems, true);\r\n var elementWidth = getWidth(this.$element());\r\n if ([tabItemTotalWidth, elementWidth].includes(0)) {\r\n return false\r\n }\r\n var isItemsWidthExceeded = tabItemTotalWidth > elementWidth - 1;\r\n return isItemsWidthExceeded\r\n },\r\n _isItemsHeightExceeded() {\r\n var $visibleItems = this._getVisibleItems();\r\n var itemsHeight = this._getSummaryItemsSize(\"height\", $visibleItems, true);\r\n var elementHeight = getHeight(this.$element());\r\n var isItemsHeightExceeded = itemsHeight - 1 > elementHeight;\r\n return isItemsHeightExceeded\r\n },\r\n _needStretchItems() {\r\n var $visibleItems = this._getVisibleItems();\r\n var elementWidth = getWidth(this.$element());\r\n var itemsWidth = [];\r\n each($visibleItems, (_, item) => {\r\n itemsWidth.push(getOuterWidth(item, true))\r\n });\r\n var maxTabItemWidth = Math.max.apply(null, itemsWidth);\r\n var requireWidth = elementWidth / $visibleItems.length;\r\n var needStretchItems = maxTabItemWidth > requireWidth + 1;\r\n return needStretchItems\r\n },\r\n _cleanNavButtons() {\r\n if (!this._leftButton || !this._rightButton) {\r\n return\r\n }\r\n this._leftButton.$element().remove();\r\n this._rightButton.$element().remove();\r\n this._leftButton = null;\r\n this._rightButton = null\r\n },\r\n _cleanScrolling() {\r\n if (!this._scrollable) {\r\n return\r\n }\r\n this._$wrapper.appendTo(this.$element());\r\n this._scrollable.$element().remove();\r\n this._scrollable = null;\r\n this._cleanNavButtons()\r\n },\r\n _renderInkRipple() {\r\n this._inkRipple = render()\r\n },\r\n _getPointerEvent: () => pointerEvents.up,\r\n _toggleActiveState($element, value, e) {\r\n this.callBase.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 _renderMultiple() {\r\n if (\"multiple\" === this.option(\"selectionMode\")) {\r\n this.option(\"selectOnFocus\", false)\r\n }\r\n },\r\n _renderWrapper() {\r\n this._$wrapper = $(\"<div>\").addClass(TABS_WRAPPER_CLASS);\r\n this.setAria(\"role\", \"tablist\", this._$wrapper);\r\n this.$element().append(this._$wrapper)\r\n },\r\n _itemContainer() {\r\n return this._$wrapper\r\n },\r\n _getScrollableDirection() {\r\n var isVertical = this._isVertical();\r\n var scrollableDirection = isVertical ? SCROLLABLE_DIRECTION.vertical : SCROLLABLE_DIRECTION.horizontal;\r\n return scrollableDirection\r\n },\r\n _updateScrollable() {\r\n if (this.getScrollable()) {\r\n this._cleanScrolling()\r\n }\r\n this._renderScrolling()\r\n },\r\n _renderScrollable() {\r\n var $itemContainer = this.$element().wrapInner($(\"<div>\").addClass(TABS_SCROLLABLE_CLASS)).children();\r\n this._scrollable = this._createComponent($itemContainer, Scrollable, {\r\n direction: this._getScrollableDirection(),\r\n showScrollbar: \"never\",\r\n useKeyboard: false,\r\n useNative: false,\r\n scrollByContent: this.option(\"scrollByContent\"),\r\n onScroll: () => {\r\n this._updateNavButtonsState()\r\n }\r\n });\r\n this.$element().append(this._scrollable.$element())\r\n },\r\n _scrollToItem(itemData) {\r\n if (!this._scrollable) {\r\n return\r\n }\r\n var $item = this._editStrategy.getItemElement(itemData);\r\n this._scrollable.scrollToElement($item)\r\n },\r\n _renderNavButtons() {\r\n this.$element().toggleClass(TABS_NAV_BUTTONS_CLASS, this.option(\"showNavButtons\"));\r\n if (!this.option(\"showNavButtons\")) {\r\n return\r\n }\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n this._leftButton = this._createNavButton(-TAB_OFFSET, rtlEnabled ? BUTTON_NEXT_ICON : BUTTON_PREV_ICON);\r\n var $leftButton = this._leftButton.$element();\r\n $leftButton.addClass(TABS_LEFT_NAV_BUTTON_CLASS);\r\n this.$element().prepend($leftButton);\r\n this._rightButton = this._createNavButton(TAB_OFFSET, rtlEnabled ? BUTTON_PREV_ICON : BUTTON_NEXT_ICON);\r\n var $rightButton = this._rightButton.$element();\r\n $rightButton.addClass(TABS_RIGHT_NAV_BUTTON_CLASS);\r\n this.$element().append($rightButton)\r\n },\r\n _updateNavButtonsState() {\r\n var _a, _b, _c, _d;\r\n var isVertical = this._isVertical();\r\n var scrollable = this.getScrollable();\r\n if (isVertical) {\r\n null === (_a = this._leftButton) || void 0 === _a ? void 0 : _a.option(\"disabled\", isReachedTop(scrollable.scrollTop(), 1));\r\n null === (_b = this._rightButton) || void 0 === _b ? void 0 : _b.option(\"disabled\", isReachedBottom($(scrollable.container()).get(0), scrollable.scrollTop(), 0, 1))\r\n } else {\r\n null === (_c = this._leftButton) || void 0 === _c ? void 0 : _c.option(\"disabled\", isReachedLeft(scrollable.scrollLeft(), 1));\r\n null === (_d = this._rightButton) || void 0 === _d ? void 0 : _d.option(\"disabled\", isReachedRight($(scrollable.container()).get(0), scrollable.scrollLeft(), 1))\r\n }\r\n },\r\n _updateScrollPosition(offset, duration) {\r\n this._scrollable.update();\r\n this._scrollable.scrollBy(offset / duration)\r\n },\r\n _createNavButton(offset, icon) {\r\n var holdAction = this._createAction(() => {\r\n this._holdInterval = setInterval(() => {\r\n this._updateScrollPosition(offset, FEEDBACK_DURATION_INTERVAL)\r\n }, FEEDBACK_DURATION_INTERVAL)\r\n });\r\n var holdEventName = addNamespace(holdEvent.name, \"dxNavButton\");\r\n var pointerUpEventName = addNamespace(pointerEvents.up, \"dxNavButton\");\r\n var pointerOutEventName = addNamespace(pointerEvents.out, \"dxNavButton\");\r\n var navButton = this._createComponent($(\"<div>\").addClass(TABS_NAV_BUTTON_CLASS), Button, {\r\n focusStateEnabled: false,\r\n icon: icon,\r\n integrationOptions: {},\r\n onClick: () => {\r\n this._updateScrollPosition(offset, 1)\r\n }\r\n });\r\n var $navButton = navButton.$element();\r\n eventsEngine.on($navButton, holdEventName, {\r\n timeout: FEEDBACK_SCROLL_TIMEOUT\r\n }, e => {\r\n holdAction({\r\n event: e\r\n })\r\n });\r\n eventsEngine.on($navButton, pointerUpEventName, () => {\r\n this._clearInterval()\r\n });\r\n eventsEngine.on($navButton, pointerOutEventName, () => {\r\n this._clearInterval()\r\n });\r\n return navButton\r\n },\r\n _clearInterval() {\r\n if (this._holdInterval) {\r\n clearInterval(this._holdInterval)\r\n }\r\n },\r\n _updateSelection(addedSelection) {\r\n this._scrollable && this._scrollable.scrollToElement(this.itemElements().eq(addedSelection[0]))\r\n },\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _dimensionChanged() {\r\n this._renderScrolling()\r\n },\r\n _itemSelectHandler(e) {\r\n if (\"single\" === this.option(\"selectionMode\") && this.isItemSelected(e.currentTarget)) {\r\n return\r\n }\r\n this.callBase(e)\r\n },\r\n _refreshActiveDescendant() {\r\n this.callBase(this._$wrapper)\r\n },\r\n _clean() {\r\n this._deferredTemplates = [];\r\n this._cleanScrolling();\r\n this.callBase()\r\n },\r\n _toggleTabsVerticalClass(value) {\r\n this.$element().toggleClass(TABS_ORIENTATION_CLASS.vertical, value)\r\n },\r\n _toggleTabsHorizontalClass(value) {\r\n this.$element().toggleClass(TABS_ORIENTATION_CLASS.horizontal, value)\r\n },\r\n _getIndicatorPositionClass: indicatorPosition => INDICATOR_POSITION_CLASS[indicatorPosition],\r\n _getIndicatorPosition() {\r\n var {\r\n _indicatorPosition: _indicatorPosition,\r\n rtlEnabled: rtlEnabled\r\n } = this.option();\r\n if (_indicatorPosition) {\r\n return _indicatorPosition\r\n }\r\n var isVertical = this._isVertical();\r\n if (rtlEnabled) {\r\n return isVertical ? INDICATOR_POSITION.left : INDICATOR_POSITION.bottom\r\n }\r\n return isVertical ? INDICATOR_POSITION.right : INDICATOR_POSITION.bottom\r\n },\r\n _toggleIndicatorPositionClass(indicatorPosition) {\r\n var newClass = this._getIndicatorPositionClass(indicatorPosition);\r\n this._toggleElementClasses(INDICATOR_POSITION_CLASS, newClass)\r\n },\r\n _toggleScrollingEnabledClass(scrollingEnabled) {\r\n this.$element().toggleClass(TABS_SCROLLING_ENABLED_CLASS, Boolean(scrollingEnabled))\r\n },\r\n _toggleOrientationClass(orientation) {\r\n var isVertical = orientation === ORIENTATION.vertical;\r\n this._toggleTabsVerticalClass(isVertical);\r\n this._toggleTabsHorizontalClass(!isVertical)\r\n },\r\n _getTabsIconPositionClass() {\r\n var position = this.option(\"iconPosition\");\r\n switch (position) {\r\n case ICON_POSITION.top:\r\n return TABS_ICON_POSITION_CLASS.top;\r\n case ICON_POSITION.end:\r\n return TABS_ICON_POSITION_CLASS.end;\r\n case ICON_POSITION.bottom:\r\n return TABS_ICON_POSITION_CLASS.bottom;\r\n case ICON_POSITION.start:\r\n default:\r\n return TABS_ICON_POSITION_CLASS.start\r\n }\r\n },\r\n _toggleIconPositionClass() {\r\n var newClass = this._getTabsIconPositionClass();\r\n this._toggleElementClasses(TABS_ICON_POSITION_CLASS, newClass)\r\n },\r\n _toggleStylingModeClass(value) {\r\n var _a;\r\n var newClass = null !== (_a = TABS_STYLING_MODE_CLASS[value]) && void 0 !== _a ? _a : TABS_STYLING_MODE_CLASS.primary;\r\n this._toggleElementClasses(TABS_STYLING_MODE_CLASS, newClass)\r\n },\r\n _toggleElementClasses(classMap, newClass) {\r\n for (var key in classMap) {\r\n this.$element().removeClass(classMap[key])\r\n }\r\n this.$element().addClass(newClass)\r\n },\r\n _toggleFocusedDisabledNextClass(currentIndex, isNextDisabled) {\r\n this._itemElements().eq(currentIndex).toggleClass(FOCUSED_DISABLED_NEXT_TAB_CLASS, isNextDisabled)\r\n },\r\n _toggleFocusedDisabledPrevClass(currentIndex, isPrevDisabled) {\r\n this._itemElements().eq(currentIndex).toggleClass(FOCUSED_DISABLED_PREV_TAB_CLASS, isPrevDisabled)\r\n },\r\n _toggleFocusedDisabledClasses(value) {\r\n var {\r\n selectedIndex: currentIndex\r\n } = this.option();\r\n this._itemElements().removeClass(FOCUSED_DISABLED_NEXT_TAB_CLASS).removeClass(FOCUSED_DISABLED_PREV_TAB_CLASS);\r\n var prevItemIndex = currentIndex - 1;\r\n var nextItemIndex = currentIndex + 1;\r\n var nextFocusedIndex = $(value).index();\r\n var isNextDisabled = this._itemElements().eq(nextItemIndex).hasClass(STATE_DISABLED_CLASS);\r\n var isPrevDisabled = this._itemElements().eq(prevItemIndex).hasClass(STATE_DISABLED_CLASS);\r\n var shouldNextClassBeSetted = isNextDisabled && nextFocusedIndex === nextItemIndex;\r\n var shouldPrevClassBeSetted = isPrevDisabled && nextFocusedIndex === prevItemIndex;\r\n this._toggleFocusedDisabledNextClass(currentIndex, shouldNextClassBeSetted);\r\n this._toggleFocusedDisabledPrevClass(currentIndex, shouldPrevClassBeSetted)\r\n },\r\n _updateFocusedElement() {\r\n var {\r\n focusStateEnabled: focusStateEnabled,\r\n selectedIndex: selectedIndex\r\n } = this.option();\r\n var itemElements = this._itemElements();\r\n if (focusStateEnabled && itemElements.length) {\r\n var selectedItem = itemElements.get(selectedIndex);\r\n this.option({\r\n focusedElement: selectedItem\r\n })\r\n }\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"useInkRipple\":\r\n case \"scrollingEnabled\":\r\n this._toggleScrollingEnabledClass(args.value);\r\n this._invalidate();\r\n break;\r\n case \"showNavButtons\":\r\n this._invalidate();\r\n break;\r\n case \"scrollByContent\":\r\n this._scrollable && this._scrollable.option(args.name, args.value);\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n this._dimensionChanged();\r\n break;\r\n case \"selectionMode\":\r\n this._renderMultiple();\r\n this.callBase(args);\r\n break;\r\n case \"badgeExpr\":\r\n this._invalidate();\r\n break;\r\n case \"focusedElement\":\r\n this._toggleFocusedDisabledClasses(args.value);\r\n this.callBase(args);\r\n this._scrollToItem(args.value);\r\n break;\r\n case \"rtlEnabled\":\r\n this.callBase(args);\r\n var indicatorPosition = this._getIndicatorPosition();\r\n this._toggleIndicatorPositionClass(indicatorPosition);\r\n break;\r\n case \"orientation\":\r\n this._toggleOrientationClass(args.value);\r\n var _indicatorPosition2 = this._getIndicatorPosition();\r\n this._toggleIndicatorPositionClass(_indicatorPosition2);\r\n if (hasWindow()) {\r\n this._updateScrollable()\r\n }\r\n break;\r\n case \"iconPosition\":\r\n this._toggleIconPositionClass();\r\n if (hasWindow()) {\r\n this._dimensionChanged()\r\n }\r\n break;\r\n case \"stylingMode\":\r\n this._toggleStylingModeClass(args.value);\r\n if (hasWindow()) {\r\n this._dimensionChanged()\r\n }\r\n break;\r\n case \"_indicatorPosition\":\r\n this._toggleIndicatorPositionClass(args.value);\r\n break;\r\n case \"selectedIndex\":\r\n case \"selectedItem\":\r\n case \"selectedItems\":\r\n this.callBase(args);\r\n this._updateFocusedElement();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _afterItemElementInserted() {\r\n this.callBase();\r\n this._deferRenderScrolling()\r\n },\r\n _afterItemElementDeleted($item, deletedActionArgs) {\r\n this.callBase($item, deletedActionArgs);\r\n this._renderScrolling()\r\n },\r\n getScrollable() {\r\n return this._scrollable\r\n }\r\n});\r\nTabs.ItemClass = TabsItem;\r\nregisterComponent(\"dxTabs\", Tabs);\r\nexport default Tabs;\r\n","/**\r\n * DevExtreme (esm/ui/tabs.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Tabs from \"../__internal/ui/tabs/m_tabs\";\r\nexport default Tabs;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/tab_panel/m_tab_panel.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport devices from \"../../../core/devices\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../../core/templates/bindable_template\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n getImageContainer\r\n} from \"../../../core/utils/icon\";\r\nimport {\r\n touch\r\n} from \"../../../core/utils/support\";\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../../../core/utils/type\";\r\nimport MultiView from \"../../../ui/multi_view\";\r\nimport Tabs from \"../../../ui/tabs\";\r\nimport {\r\n current as currentTheme,\r\n isFluent,\r\n isMaterialBased\r\n} from \"../../../ui/themes\";\r\nimport {\r\n default as TabPanelItem\r\n} from \"./m_item\";\r\nexport var TABPANEL_CLASS = \"dx-tabpanel\";\r\nvar TABPANEL_TABS_CLASS = \"dx-tabpanel-tabs\";\r\nvar TABPANEL_TABS_ITEM_CLASS = \"dx-tabpanel-tab\";\r\nvar TABPANEL_CONTAINER_CLASS = \"dx-tabpanel-container\";\r\nvar TABS_ITEM_TEXT_CLASS = \"dx-tab-text\";\r\nvar DISABLED_FOCUSED_TAB_CLASS = \"dx-disabled-focused-tab\";\r\nvar TABS_ITEM_TEXT_SPAN_CLASS = \"dx-tab-text-span\";\r\nvar TABS_ITEM_TEXT_SPAN_PSEUDO_CLASS = \"dx-tab-text-span-pseudo\";\r\nvar TABPANEL_TABS_POSITION_CLASS = {\r\n top: \"dx-tabpanel-tabs-position-top\",\r\n right: \"dx-tabpanel-tabs-position-right\",\r\n bottom: \"dx-tabpanel-tabs-position-bottom\",\r\n left: \"dx-tabpanel-tabs-position-left\"\r\n};\r\nvar TABS_POSITION = {\r\n top: \"top\",\r\n right: \"right\",\r\n bottom: \"bottom\",\r\n left: \"left\"\r\n};\r\nvar TABS_INDICATOR_POSITION_BY_TABS_POSITION = {\r\n top: \"bottom\",\r\n right: \"left\",\r\n bottom: \"top\",\r\n left: \"right\"\r\n};\r\nvar TABS_ORIENTATION = {\r\n horizontal: \"horizontal\",\r\n vertical: \"vertical\"\r\n};\r\nvar ICON_POSITION = {\r\n top: \"top\",\r\n end: \"end\",\r\n bottom: \"bottom\",\r\n start: \"start\"\r\n};\r\nvar STYLING_MODE = {\r\n primary: \"primary\",\r\n secondary: \"secondary\"\r\n};\r\nvar TabPanel = MultiView.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n itemTitleTemplate: \"title\",\r\n hoverStateEnabled: true,\r\n showNavButtons: false,\r\n scrollByContent: true,\r\n scrollingEnabled: true,\r\n tabsPosition: TABS_POSITION.top,\r\n iconPosition: ICON_POSITION.start,\r\n stylingMode: STYLING_MODE.primary,\r\n onTitleClick: null,\r\n onTitleHold: null,\r\n onTitleRendered: null,\r\n badgeExpr: data => data ? data.badge : void 0,\r\n _tabsIndicatorPosition: null\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n var themeName = currentTheme();\r\n return this.callBase().concat([{\r\n device: () => \"desktop\" === devices.real().deviceType && !devices.isSimulator(),\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: () => !touch,\r\n options: {\r\n swipeEnabled: false\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n animationEnabled: false\r\n }\r\n }, {\r\n device: () => isFluent(themeName),\r\n options: {\r\n stylingMode: STYLING_MODE.secondary\r\n }\r\n }, {\r\n device: () => isMaterialBased(themeName),\r\n options: {\r\n iconPosition: ICON_POSITION.top\r\n }\r\n }])\r\n },\r\n _init() {\r\n this.callBase();\r\n this.$element().addClass(TABPANEL_CLASS);\r\n this._toggleTabPanelTabsPositionClass()\r\n },\r\n _getElementAria: () => ({\r\n role: \"tabpanel\"\r\n }),\r\n _getItemAria: () => ({\r\n role: \"tabpanel\"\r\n }),\r\n _initMarkup() {\r\n this.callBase();\r\n this._createTitleActions();\r\n this._renderLayout()\r\n },\r\n _prepareTabsItemTemplate(data, $container) {\r\n var $iconElement = getImageContainer(null === data || void 0 === data ? void 0 : data.icon);\r\n if ($iconElement) {\r\n $container.append($iconElement)\r\n }\r\n var title = isPlainObject(data) ? null === data || void 0 === data ? void 0 : data.title : data;\r\n if (isDefined(title) && !isPlainObject(title)) {\r\n var $tabTextSpan = $(\"<span>\").addClass(TABS_ITEM_TEXT_SPAN_CLASS);\r\n $tabTextSpan.append(domAdapter.createTextNode(title));\r\n var $tabTextSpanPseudo = $(\"<span>\").addClass(TABS_ITEM_TEXT_SPAN_PSEUDO_CLASS);\r\n $tabTextSpanPseudo.append(domAdapter.createTextNode(title));\r\n $tabTextSpanPseudo.appendTo($tabTextSpan);\r\n $tabTextSpan.appendTo($container)\r\n }\r\n },\r\n _initTemplates() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n title: new BindableTemplate(($container, data) => {\r\n this._prepareTabsItemTemplate(data, $container);\r\n var $tabItem = $(\"<div>\").addClass(TABS_ITEM_TEXT_CLASS);\r\n $container.wrapInner($tabItem)\r\n }, [\"title\", \"icon\"], this.option(\"integrationOptions.watchMethod\"))\r\n })\r\n },\r\n _createTitleActions() {\r\n this._createTitleClickAction();\r\n this._createTitleHoldAction();\r\n this._createTitleRenderedAction()\r\n },\r\n _createTitleClickAction() {\r\n this._titleClickAction = this._createActionByOption(\"onTitleClick\")\r\n },\r\n _createTitleHoldAction() {\r\n this._titleHoldAction = this._createActionByOption(\"onTitleHold\")\r\n },\r\n _createTitleRenderedAction() {\r\n this._titleRenderedAction = this._createActionByOption(\"onTitleRendered\")\r\n },\r\n _renderLayout() {\r\n if (this._tabs) {\r\n return\r\n }\r\n var $element = this.$element();\r\n this._$tabContainer = $(\"<div>\").addClass(TABPANEL_TABS_CLASS).appendTo($element);\r\n var $tabs = $(\"<div>\").appendTo(this._$tabContainer);\r\n this._tabs = this._createComponent($tabs, Tabs, this._tabConfig());\r\n this._$container = $(\"<div>\").addClass(TABPANEL_CONTAINER_CLASS).appendTo($element);\r\n this._$container.append(this._$wrapper)\r\n },\r\n _refreshActiveDescendant() {\r\n if (!this._tabs) {\r\n return\r\n }\r\n var tabs = this._tabs;\r\n var tabItems = tabs.itemElements();\r\n var $activeTab = $(tabItems[tabs.option(\"selectedIndex\")]);\r\n var id = this.getFocusedItemId();\r\n this.setAria(\"controls\", void 0, $(tabItems));\r\n this.setAria(\"controls\", id, $activeTab)\r\n },\r\n _getTabsIndicatorPosition() {\r\n var {\r\n _tabsIndicatorPosition: _tabsIndicatorPosition,\r\n tabsPosition: tabsPosition\r\n } = this.option();\r\n return null !== _tabsIndicatorPosition && void 0 !== _tabsIndicatorPosition ? _tabsIndicatorPosition : TABS_INDICATOR_POSITION_BY_TABS_POSITION[tabsPosition]\r\n },\r\n _tabConfig() {\r\n var tabsIndicatorPosition = this._getTabsIndicatorPosition();\r\n return {\r\n selectOnFocus: true,\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n repaintChangesOnly: this.option(\"repaintChangesOnly\"),\r\n tabIndex: this.option(\"tabIndex\"),\r\n selectedIndex: this.option(\"selectedIndex\"),\r\n badgeExpr: this.option(\"badgeExpr\"),\r\n onItemClick: this._titleClickAction.bind(this),\r\n onItemHold: this._titleHoldAction.bind(this),\r\n itemHoldTimeout: this.option(\"itemHoldTimeout\"),\r\n onSelectionChanged: function(e) {\r\n this.option(\"selectedIndex\", e.component.option(\"selectedIndex\"));\r\n this._refreshActiveDescendant()\r\n }.bind(this),\r\n onItemRendered: this._titleRenderedAction.bind(this),\r\n itemTemplate: this._getTemplateByOption(\"itemTitleTemplate\"),\r\n items: this.option(\"items\"),\r\n noDataText: null,\r\n scrollingEnabled: this.option(\"scrollingEnabled\"),\r\n scrollByContent: this.option(\"scrollByContent\"),\r\n showNavButtons: this.option(\"showNavButtons\"),\r\n itemTemplateProperty: \"tabTemplate\",\r\n loopItemFocus: this.option(\"loop\"),\r\n selectionRequired: true,\r\n onOptionChanged: function(args) {\r\n if (\"focusedElement\" === args.name) {\r\n if (args.value) {\r\n var $value = $(args.value);\r\n var $newItem = this._itemElements().eq($value.index());\r\n this.option(\"focusedElement\", getPublicElement($newItem))\r\n } else {\r\n this.option(\"focusedElement\", args.value)\r\n }\r\n }\r\n }.bind(this),\r\n onFocusIn: function(args) {\r\n this._focusInHandler(args.event)\r\n }.bind(this),\r\n onFocusOut: function(args) {\r\n if (!this._isFocusOutHandlerExecuting) {\r\n this._focusOutHandler(args.event)\r\n }\r\n }.bind(this),\r\n orientation: this._getTabsOrientation(),\r\n iconPosition: this.option(\"iconPosition\"),\r\n stylingMode: this.option(\"stylingMode\"),\r\n _itemAttributes: {\r\n class: TABPANEL_TABS_ITEM_CLASS\r\n },\r\n _indicatorPosition: tabsIndicatorPosition\r\n }\r\n },\r\n _renderFocusTarget() {\r\n this._focusTarget().attr(\"tabIndex\", -1)\r\n },\r\n _getTabsOrientation() {\r\n var {\r\n tabsPosition: tabsPosition\r\n } = this.option();\r\n if ([TABS_POSITION.right, TABS_POSITION.left].includes(tabsPosition)) {\r\n return TABS_ORIENTATION.vertical\r\n }\r\n return TABS_ORIENTATION.horizontal\r\n },\r\n _getTabPanelTabsPositionClass() {\r\n var position = this.option(\"tabsPosition\");\r\n switch (position) {\r\n case TABS_POSITION.right:\r\n return TABPANEL_TABS_POSITION_CLASS.right;\r\n case TABS_POSITION.bottom:\r\n return TABPANEL_TABS_POSITION_CLASS.bottom;\r\n case TABS_POSITION.left:\r\n return TABPANEL_TABS_POSITION_CLASS.left;\r\n case TABS_POSITION.top:\r\n default:\r\n return TABPANEL_TABS_POSITION_CLASS.top\r\n }\r\n },\r\n _toggleTabPanelTabsPositionClass() {\r\n for (var key in TABPANEL_TABS_POSITION_CLASS) {\r\n this.$element().removeClass(TABPANEL_TABS_POSITION_CLASS[key])\r\n }\r\n var newClass = this._getTabPanelTabsPositionClass();\r\n this.$element().addClass(newClass)\r\n },\r\n _updateTabsOrientation() {\r\n var orientation = this._getTabsOrientation();\r\n this._setTabsOption(\"orientation\", orientation)\r\n },\r\n _toggleWrapperFocusedClass(isFocused) {\r\n this._toggleFocusClass(isFocused, this._$wrapper)\r\n },\r\n _toggleDisabledFocusedClass(isFocused) {\r\n this._focusTarget().toggleClass(DISABLED_FOCUSED_TAB_CLASS, isFocused)\r\n },\r\n _updateFocusState(e, isFocused) {\r\n this.callBase(e, isFocused);\r\n var isTabsTarget = e.target === this._tabs._focusTarget().get(0);\r\n var isMultiViewTarget = e.target === this._focusTarget().get(0);\r\n if (isTabsTarget) {\r\n this._toggleFocusClass(isFocused, this._focusTarget())\r\n }\r\n if (isTabsTarget || isMultiViewTarget) {\r\n var isDisabled = this._isDisabled(this.option(\"focusedElement\"));\r\n this._toggleWrapperFocusedClass(isFocused && !isDisabled);\r\n this._toggleDisabledFocusedClass(isFocused && isDisabled)\r\n }\r\n if (isMultiViewTarget) {\r\n this._toggleFocusClass(isFocused, this._tabs.option(\"focusedElement\"))\r\n }\r\n },\r\n _focusOutHandler(e) {\r\n this._isFocusOutHandlerExecuting = true;\r\n this.callBase.apply(this, arguments);\r\n this._tabs._focusOutHandler(e);\r\n this._isFocusOutHandlerExecuting = false\r\n },\r\n _setTabsOption(name, value) {\r\n if (this._tabs) {\r\n this._tabs.option(name, value)\r\n }\r\n },\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._tabs._dimensionChanged()\r\n }\r\n },\r\n registerKeyHandler(key, handler) {\r\n this.callBase(key, handler);\r\n if (this._tabs) {\r\n this._tabs.registerKeyHandler(key, handler)\r\n }\r\n },\r\n repaint() {\r\n this.callBase();\r\n this._tabs.repaint()\r\n },\r\n _updateTabsIndicatorPosition() {\r\n var value = this._getTabsIndicatorPosition();\r\n this._setTabsOption(\"_indicatorPosition\", value)\r\n },\r\n _optionChanged(args) {\r\n var {\r\n name: name,\r\n value: value,\r\n fullName: fullName\r\n } = args;\r\n switch (name) {\r\n case \"dataSource\":\r\n this.callBase(args);\r\n break;\r\n case \"items\":\r\n this._setTabsOption(name, this.option(name));\r\n if (!this.option(\"repaintChangesOnly\")) {\r\n this._tabs.repaint()\r\n }\r\n this.callBase(args);\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._tabs.repaint();\r\n break;\r\n case \"selectedIndex\":\r\n case \"selectedItem\":\r\n this._setTabsOption(fullName, value);\r\n this.callBase(args);\r\n if (true === this.option(\"focusStateEnabled\")) {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var selectedTabContent = this._itemElements().eq(selectedIndex);\r\n this.option(\"focusedElement\", getPublicElement(selectedTabContent))\r\n }\r\n break;\r\n case \"itemHoldTimeout\":\r\n case \"focusStateEnabled\":\r\n case \"hoverStateEnabled\":\r\n this._setTabsOption(fullName, value);\r\n this.callBase(args);\r\n break;\r\n case \"scrollingEnabled\":\r\n case \"scrollByContent\":\r\n case \"showNavButtons\":\r\n this._setTabsOption(fullName, value);\r\n break;\r\n case \"focusedElement\":\r\n var id = value ? $(value).index() : value;\r\n var newItem = value ? this._tabs._itemElements().eq(id) : value;\r\n this._setTabsOption(\"focusedElement\", getPublicElement(newItem));\r\n if (value) {\r\n var isDisabled = this._isDisabled(value);\r\n this._toggleWrapperFocusedClass(!isDisabled);\r\n this._toggleDisabledFocusedClass(isDisabled)\r\n }\r\n this.callBase(args);\r\n break;\r\n case \"itemTitleTemplate\":\r\n this._setTabsOption(\"itemTemplate\", this._getTemplateByOption(\"itemTitleTemplate\"));\r\n break;\r\n case \"onTitleClick\":\r\n this._createTitleClickAction();\r\n this._setTabsOption(\"onItemClick\", this._titleClickAction.bind(this));\r\n break;\r\n case \"onTitleHold\":\r\n this._createTitleHoldAction();\r\n this._setTabsOption(\"onItemHold\", this._titleHoldAction.bind(this));\r\n break;\r\n case \"onTitleRendered\":\r\n this._createTitleRenderedAction();\r\n this._setTabsOption(\"onItemRendered\", this._titleRenderedAction.bind(this));\r\n break;\r\n case \"loop\":\r\n this._setTabsOption(\"loopItemFocus\", value);\r\n break;\r\n case \"badgeExpr\":\r\n this._invalidate();\r\n break;\r\n case \"tabsPosition\":\r\n this._toggleTabPanelTabsPositionClass();\r\n this._updateTabsIndicatorPosition();\r\n this._updateTabsOrientation();\r\n break;\r\n case \"iconPosition\":\r\n this._setTabsOption(\"iconPosition\", value);\r\n break;\r\n case \"stylingMode\":\r\n this._setTabsOption(\"stylingMode\", value);\r\n break;\r\n case \"_tabsIndicatorPosition\":\r\n this._setTabsOption(\"_indicatorPosition\", value);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nTabPanel.ItemClass = TabPanelItem;\r\nregisterComponent(\"dxTabPanel\", TabPanel);\r\nexport default TabPanel;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/tab_panel/m_item.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport CollectionWidgetItem from \"../../ui/collection/m_item\";\r\nexport default class TabPanelItem extends CollectionWidgetItem {\r\n _renderWatchers() {\r\n this._startWatcher(\"badge\", noop);\r\n return super._renderWatchers()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/tab_panel.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport TabPanel from \"../__internal/ui/tab_panel/m_tab_panel\";\r\nexport default TabPanel;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/form/m_form.item_option_action.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../../core/class\";\r\nexport default class ItemOptionAction {\r\n constructor(options) {\r\n this._options = options;\r\n this._itemsRunTimeInfo = this._options.itemsRunTimeInfo\r\n }\r\n findInstance() {\r\n return this._itemsRunTimeInfo.findWidgetInstanceByItem(this._options.item)\r\n }\r\n findItemContainer() {\r\n return this._itemsRunTimeInfo.findItemContainerByItem(this._options.item)\r\n }\r\n findPreparedItem() {\r\n return this._itemsRunTimeInfo.findPreparedItemByItem(this._options.item)\r\n }\r\n tryExecute() {\r\n Class.abstract()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/form/m_form.utils.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nexport var createItemPathByIndex = (index, isTabs) => \"\".concat(isTabs ? \"tabs\" : \"items\", \"[\").concat(index, \"]\");\r\nexport var concatPaths = (path1, path2) => {\r\n if (isDefined(path1) && isDefined(path2)) {\r\n return \"\".concat(path1, \".\").concat(path2)\r\n }\r\n return path1 || path2\r\n};\r\nexport var getTextWithoutSpaces = text => text ? text.replace(/\\s/g, \"\") : void 0;\r\nexport var isEqualToDataFieldOrNameOrTitleOrCaption = (item, fieldName) => {\r\n if (item) {\r\n return item.dataField === fieldName || item.name === fieldName || getTextWithoutSpaces(item.title) === fieldName || \"group\" === item.itemType && getTextWithoutSpaces(item.caption) === fieldName\r\n }\r\n return false\r\n};\r\nexport var getFullOptionName = (path, optionName) => \"\".concat(path, \".\").concat(optionName);\r\nexport var getOptionNameFromFullName = fullName => {\r\n var parts = fullName.split(\".\");\r\n return parts[parts.length - 1].replace(/\\[\\d+]/, \"\")\r\n};\r\nexport var tryGetTabPath = fullPath => {\r\n var pathParts = fullPath.split(\".\");\r\n var resultPathParts = [...pathParts];\r\n for (var i = pathParts.length - 1; i >= 0; i--) {\r\n if (isFullPathContainsTabs(pathParts[i])) {\r\n return resultPathParts.join(\".\")\r\n }\r\n resultPathParts.splice(i, 1)\r\n }\r\n return \"\"\r\n};\r\nexport var isFullPathContainsTabs = fullPath => fullPath.indexOf(\"tabs\") > -1;\r\nexport var getItemPath = (items, item, isTabs) => {\r\n var index = items.indexOf(item);\r\n if (index > -1) {\r\n return createItemPathByIndex(index, isTabs)\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var targetItem = items[i];\r\n var tabOrGroupItems = targetItem.tabs || targetItem.items;\r\n if (tabOrGroupItems) {\r\n var itemPath = getItemPath(tabOrGroupItems, item, targetItem.tabs);\r\n if (itemPath) {\r\n return concatPaths(createItemPathByIndex(i, isTabs), itemPath)\r\n }\r\n }\r\n }\r\n};\r\nexport function convertToLayoutManagerOptions(_ref) {\r\n var {\r\n form: form,\r\n $formElement: $formElement,\r\n formOptions: formOptions,\r\n items: items,\r\n validationGroup: validationGroup,\r\n extendedLayoutManagerOptions: extendedLayoutManagerOptions,\r\n onFieldDataChanged: onFieldDataChanged,\r\n onContentReady: onContentReady,\r\n onDisposing: onDisposing,\r\n onFieldItemRendered: onFieldItemRendered\r\n } = _ref;\r\n var baseOptions = {\r\n form: form,\r\n items: items,\r\n $formElement: $formElement,\r\n validationGroup: validationGroup,\r\n onFieldDataChanged: onFieldDataChanged,\r\n onContentReady: onContentReady,\r\n onDisposing: onDisposing,\r\n onFieldItemRendered: onFieldItemRendered,\r\n validationBoundary: formOptions.scrollingEnabled ? $formElement : void 0,\r\n scrollingEnabled: formOptions.scrollingEnabled,\r\n showRequiredMark: formOptions.showRequiredMark,\r\n showOptionalMark: formOptions.showOptionalMark,\r\n requiredMark: formOptions.requiredMark,\r\n optionalMark: formOptions.optionalMark,\r\n requiredMessage: formOptions.requiredMessage,\r\n screenByWidth: formOptions.screenByWidth,\r\n layoutData: formOptions.formData,\r\n labelLocation: formOptions.labelLocation,\r\n customizeItem: formOptions.customizeItem,\r\n minColWidth: formOptions.minColWidth,\r\n showColonAfterLabel: formOptions.showColonAfterLabel,\r\n onEditorEnterKey: formOptions.onEditorEnterKey,\r\n labelMode: formOptions.labelMode\r\n };\r\n var result = extend(baseOptions, {\r\n isRoot: extendedLayoutManagerOptions.isRoot,\r\n colCount: extendedLayoutManagerOptions.colCount,\r\n alignItemLabels: extendedLayoutManagerOptions.alignItemLabels,\r\n cssItemClass: extendedLayoutManagerOptions.cssItemClass,\r\n colCountByScreen: extendedLayoutManagerOptions.colCountByScreen,\r\n onLayoutChanged: extendedLayoutManagerOptions.onLayoutChanged,\r\n width: extendedLayoutManagerOptions.width\r\n });\r\n return result\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/form/m_form.item_options_actions.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n data\r\n} from \"../../../core/element_data\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport ItemOptionAction from \"./m_form.item_option_action\";\r\nimport {\r\n getFullOptionName\r\n} from \"./m_form.utils\";\r\nclass WidgetOptionItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var {\r\n value: value\r\n } = this._options;\r\n var instance = this.findInstance();\r\n if (instance) {\r\n instance.option(value);\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\nclass TabOptionItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var tabPanel = this.findInstance();\r\n if (tabPanel) {\r\n var {\r\n optionName: optionName,\r\n item: item,\r\n value: value\r\n } = this._options;\r\n var itemIndex = this._itemsRunTimeInfo.findItemIndexByItem(item);\r\n if (itemIndex >= 0) {\r\n tabPanel.option(getFullOptionName(\"items[\".concat(itemIndex, \"]\"), optionName), value);\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n}\r\nclass SimpleItemTemplateChangedAction extends ItemOptionAction {\r\n tryExecute() {\r\n return false\r\n }\r\n}\r\nclass GroupItemTemplateChangedAction extends ItemOptionAction {\r\n tryExecute() {\r\n var preparedItem = this.findPreparedItem();\r\n if (null != preparedItem && preparedItem._prepareGroupItemTemplate && preparedItem._renderGroupContentTemplate) {\r\n preparedItem._prepareGroupItemTemplate(this._options.item.template);\r\n preparedItem._renderGroupContentTemplate();\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\nclass TabsOptionItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var tabPanel = this.findInstance();\r\n if (tabPanel) {\r\n var {\r\n value: value\r\n } = this._options;\r\n tabPanel.option(\"dataSource\", value);\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\nclass ValidationRulesItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var {\r\n item: item\r\n } = this._options;\r\n var instance = this.findInstance();\r\n var validator = instance && data(instance.$element()[0], \"dxValidator\");\r\n if (validator && item) {\r\n var filterRequired = item => \"required\" === item.type;\r\n var oldContainsRequired = (validator.option(\"validationRules\") || []).some(filterRequired);\r\n var newContainsRequired = (item.validationRules || []).some(filterRequired);\r\n if (!oldContainsRequired && !newContainsRequired || oldContainsRequired && newContainsRequired) {\r\n validator.option(\"validationRules\", item.validationRules);\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n}\r\nclass CssClassItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var $itemContainer = this.findItemContainer();\r\n var {\r\n previousValue: previousValue,\r\n value: value\r\n } = this._options;\r\n if ($itemContainer) {\r\n $itemContainer.removeClass(previousValue).addClass(value);\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\nvar tryCreateItemOptionAction = (optionName, itemActionOptions) => {\r\n var _a, _b, _c;\r\n switch (optionName) {\r\n case \"editorOptions\":\r\n case \"buttonOptions\":\r\n return new WidgetOptionItemOptionAction(itemActionOptions);\r\n case \"validationRules\":\r\n return new ValidationRulesItemOptionAction(itemActionOptions);\r\n case \"cssClass\":\r\n return new CssClassItemOptionAction(itemActionOptions);\r\n case \"badge\":\r\n case \"disabled\":\r\n case \"icon\":\r\n case \"tabTemplate\":\r\n case \"title\":\r\n return new TabOptionItemOptionAction(extend(itemActionOptions, {\r\n optionName: optionName\r\n }));\r\n case \"tabs\":\r\n return new TabsOptionItemOptionAction(itemActionOptions);\r\n case \"template\":\r\n var itemType = null !== (_b = null === (_a = null === itemActionOptions || void 0 === itemActionOptions ? void 0 : itemActionOptions.item) || void 0 === _a ? void 0 : _a.itemType) && void 0 !== _b ? _b : null === (_c = itemActionOptions.itemsRunTimeInfo.findPreparedItemByItem(null === itemActionOptions || void 0 === itemActionOptions ? void 0 : itemActionOptions.item)) || void 0 === _c ? void 0 : _c.itemType;\r\n if (\"simple\" === itemType) {\r\n return new SimpleItemTemplateChangedAction(itemActionOptions)\r\n }\r\n if (\"group\" === itemType) {\r\n return new GroupItemTemplateChangedAction(itemActionOptions)\r\n }\r\n return new TabOptionItemOptionAction(extend(itemActionOptions, {\r\n optionName: optionName\r\n }));\r\n default:\r\n return null\r\n }\r\n};\r\nexport default tryCreateItemOptionAction;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/form/m_form.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport \"./m_form.layout_manager\";\r\nimport \"../../../ui/validation_summary\";\r\nimport \"../../../ui/validation_group\";\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport config from \"../../../core/config\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport Guid from \"../../../core/guid\";\r\nimport $ from \"../../../core/renderer\";\r\nimport resizeObserverSingleton from \"../../../core/resize_observer\";\r\nimport {\r\n ensureDefined\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 isDefined,\r\n isEmptyObject,\r\n isObject,\r\n isString\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n defaultScreenFactorFunc,\r\n getCurrentScreenFactor,\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n triggerResizeEvent,\r\n triggerShownEvent\r\n} from \"../../../events/visibility_change\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport Editor from \"../../../ui/editor/editor\";\r\nimport Scrollable from \"../../../ui/scroll_view/ui.scrollable\";\r\nimport TabPanel from \"../../../ui/tab_panel\";\r\nimport {\r\n isMaterial,\r\n isMaterialBased\r\n} from \"../../../ui/themes\";\r\nimport ValidationEngine from \"../../../ui/validation_engine\";\r\nimport Widget from \"../../../ui/widget/ui.widget\";\r\nimport {\r\n DROP_DOWN_EDITOR_CLASS\r\n} from \"../../ui/drop_down_editor/m_drop_down_editor\";\r\nimport {\r\n TOOLBAR_CLASS\r\n} from \"../../ui/toolbar/m_constants\";\r\nimport {\r\n TEXTEDITOR_CLASS,\r\n TEXTEDITOR_INPUT_CLASS\r\n} from \"../text_box/m_text_editor.base\";\r\nimport {\r\n setLabelWidthByMaxLabelWidth\r\n} from \"./components/m_label\";\r\nimport {\r\n FIELD_ITEM_CLASS,\r\n FIELD_ITEM_CONTENT_CLASS,\r\n FIELD_ITEM_CONTENT_HAS_GROUP_CLASS,\r\n FIELD_ITEM_CONTENT_HAS_TABS_CLASS,\r\n FIELD_ITEM_TAB_CLASS,\r\n FORM_CLASS,\r\n FORM_FIELD_ITEM_COL_CLASS,\r\n FORM_GROUP_CAPTION_CLASS,\r\n FORM_GROUP_CLASS,\r\n FORM_GROUP_CONTENT_CLASS,\r\n FORM_GROUP_WITH_CAPTION_CLASS,\r\n FORM_UNDERLINED_CLASS,\r\n FORM_VALIDATION_SUMMARY,\r\n GROUP_COL_COUNT_ATTR,\r\n GROUP_COL_COUNT_CLASS,\r\n ROOT_SIMPLE_ITEM_CLASS\r\n} from \"./constants\";\r\nimport tryCreateItemOptionAction from \"./m_form.item_options_actions\";\r\nimport {\r\n default as FormItemsRunTimeInfo\r\n} from \"./m_form.items_runtime_info\";\r\nimport {\r\n convertToLabelMarkOptions\r\n} from \"./m_form.layout_manager.utils\";\r\nimport {\r\n concatPaths,\r\n convertToLayoutManagerOptions,\r\n createItemPathByIndex,\r\n getFullOptionName,\r\n getItemPath,\r\n getOptionNameFromFullName,\r\n getTextWithoutSpaces,\r\n isEqualToDataFieldOrNameOrTitleOrCaption,\r\n isFullPathContainsTabs,\r\n tryGetTabPath\r\n} from \"./m_form.utils\";\r\nvar FOCUSED_STATE_CLASS = \"dx-state-focused\";\r\nvar ITEM_OPTIONS_FOR_VALIDATION_UPDATING = [\"items\", \"isRequired\", \"validationRules\", \"visible\"];\r\nvar Form = Widget.inherit({\r\n _init() {\r\n this.callBase();\r\n this._dirtyFields = new Set;\r\n this._cachedColCountOptions = [];\r\n this._itemsRunTimeInfo = new FormItemsRunTimeInfo;\r\n this._groupsColCount = [];\r\n this._attachSyncSubscriptions()\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n formID: \"dx-\".concat(new Guid),\r\n formData: {},\r\n colCount: 1,\r\n screenByWidth: defaultScreenFactorFunc,\r\n colCountByScreen: void 0,\r\n labelLocation: \"left\",\r\n readOnly: false,\r\n onFieldDataChanged: null,\r\n customizeItem: null,\r\n onEditorEnterKey: null,\r\n minColWidth: 200,\r\n alignItemLabels: true,\r\n alignItemLabelsInAllGroups: true,\r\n alignRootItemLabels: true,\r\n showColonAfterLabel: true,\r\n showRequiredMark: true,\r\n showOptionalMark: false,\r\n requiredMark: \"*\",\r\n optionalMark: messageLocalization.format(\"dxForm-optionalMark\"),\r\n requiredMessage: messageLocalization.getFormatter(\"dxForm-requiredMessage\"),\r\n showValidationSummary: false,\r\n items: void 0,\r\n scrollingEnabled: false,\r\n validationGroup: void 0,\r\n stylingMode: config().editorStylingMode,\r\n labelMode: \"outside\",\r\n isDirty: false\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device: () => isMaterialBased(),\r\n options: {\r\n labelLocation: \"top\"\r\n }\r\n }, {\r\n device: () => isMaterial(),\r\n options: {\r\n showColonAfterLabel: false\r\n }\r\n }])\r\n },\r\n _setOptionsByReference() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n formData: true,\r\n validationGroup: true\r\n })\r\n },\r\n _getGroupColCount: $element => parseInt($element.attr(GROUP_COL_COUNT_ATTR)),\r\n _applyLabelsWidthByCol($container, index) {\r\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n var labelMarkOptions = arguments.length > 3 ? arguments[3] : void 0;\r\n var fieldItemClass = options.inOneColumn ? FIELD_ITEM_CLASS : FORM_FIELD_ITEM_COL_CLASS + index;\r\n var cssExcludeTabbedSelector = options.excludeTabbed ? \":not(.\".concat(FIELD_ITEM_TAB_CLASS, \")\") : \"\";\r\n setLabelWidthByMaxLabelWidth($container, \".\".concat(fieldItemClass).concat(cssExcludeTabbedSelector), labelMarkOptions)\r\n },\r\n _applyLabelsWidth($container, excludeTabbed, inOneColumn, colCount, labelMarkOptions) {\r\n colCount = inOneColumn ? 1 : colCount || this._getGroupColCount($container);\r\n var applyLabelsOptions = {\r\n excludeTabbed: excludeTabbed,\r\n inOneColumn: inOneColumn\r\n };\r\n var i;\r\n for (i = 0; i < colCount; i++) {\r\n this._applyLabelsWidthByCol($container, i, applyLabelsOptions, labelMarkOptions)\r\n }\r\n },\r\n _getGroupElementsInColumn($container, columnIndex, colCount) {\r\n var cssColCountSelector = isDefined(colCount) ? \".\".concat(GROUP_COL_COUNT_CLASS).concat(colCount) : \"\";\r\n var groupSelector = \".\".concat(FORM_FIELD_ITEM_COL_CLASS).concat(columnIndex, \" > .\").concat(FIELD_ITEM_CONTENT_CLASS, \" > .\").concat(FORM_GROUP_CLASS).concat(cssColCountSelector);\r\n return $container.find(groupSelector)\r\n },\r\n _applyLabelsWidthWithGroups($container, colCount, excludeTabbed, labelMarkOptions) {\r\n if (true === this.option(\"alignRootItemLabels\")) {\r\n var $rootSimpleItems = $container.find(\".\".concat(ROOT_SIMPLE_ITEM_CLASS));\r\n for (var colIndex = 0; colIndex < colCount; colIndex++) {\r\n this._applyLabelsWidthByCol($rootSimpleItems, colIndex, excludeTabbed, labelMarkOptions)\r\n }\r\n }\r\n var alignItemLabelsInAllGroups = this.option(\"alignItemLabelsInAllGroups\");\r\n if (alignItemLabelsInAllGroups) {\r\n this._applyLabelsWidthWithNestedGroups($container, colCount, excludeTabbed, labelMarkOptions)\r\n } else {\r\n var $groups = this.$element().find(\".\".concat(FORM_GROUP_CLASS));\r\n var i;\r\n for (i = 0; i < $groups.length; i++) {\r\n this._applyLabelsWidth($groups.eq(i), excludeTabbed, void 0, void 0, labelMarkOptions)\r\n }\r\n }\r\n },\r\n _applyLabelsWidthWithNestedGroups($container, colCount, excludeTabbed, labelMarkOptions) {\r\n var applyLabelsOptions = {\r\n excludeTabbed: excludeTabbed\r\n };\r\n var colIndex;\r\n var groupsColIndex;\r\n var groupColIndex;\r\n var $groupsByCol;\r\n for (colIndex = 0; colIndex < colCount; colIndex++) {\r\n $groupsByCol = this._getGroupElementsInColumn($container, colIndex);\r\n this._applyLabelsWidthByCol($groupsByCol, 0, applyLabelsOptions, labelMarkOptions);\r\n for (groupsColIndex = 0; groupsColIndex < this._groupsColCount.length; groupsColIndex++) {\r\n $groupsByCol = this._getGroupElementsInColumn($container, colIndex, this._groupsColCount[groupsColIndex]);\r\n var groupColCount = this._getGroupColCount($groupsByCol);\r\n for (groupColIndex = 1; groupColIndex < groupColCount; groupColIndex++) {\r\n this._applyLabelsWidthByCol($groupsByCol, groupColIndex, applyLabelsOptions, labelMarkOptions)\r\n }\r\n }\r\n }\r\n },\r\n _labelLocation() {\r\n return this.option(\"labelLocation\")\r\n },\r\n _alignLabelsInColumn(_ref) {\r\n var {\r\n layoutManager: layoutManager,\r\n inOneColumn: inOneColumn,\r\n $container: $container,\r\n excludeTabbed: excludeTabbed,\r\n items: items\r\n } = _ref;\r\n if (!hasWindow() || \"top\" === this._labelLocation()) {\r\n return\r\n }\r\n var labelMarkOptions = convertToLabelMarkOptions(layoutManager._getMarkOptions());\r\n if (inOneColumn) {\r\n this._applyLabelsWidth($container, excludeTabbed, true, void 0, labelMarkOptions)\r\n } else if (this._checkGrouping(items)) {\r\n this._applyLabelsWidthWithGroups($container, layoutManager._getColCount(), excludeTabbed, labelMarkOptions)\r\n } else {\r\n this._applyLabelsWidth($container, excludeTabbed, false, layoutManager._getColCount(), labelMarkOptions)\r\n }\r\n },\r\n _prepareFormData() {\r\n if (!isDefined(this.option(\"formData\"))) {\r\n this.option(\"formData\", {})\r\n }\r\n },\r\n _setStylingModeClass() {\r\n if (\"underlined\" === this.option(\"stylingMode\")) {\r\n this.$element().addClass(FORM_UNDERLINED_CLASS)\r\n }\r\n },\r\n _initMarkup() {\r\n ValidationEngine.addGroup(this._getValidationGroup(), false);\r\n this._clearCachedInstances();\r\n this._prepareFormData();\r\n this.$element().addClass(FORM_CLASS);\r\n this._setStylingModeClass();\r\n this.callBase();\r\n this.setAria(\"role\", \"form\", this.$element());\r\n if (this.option(\"scrollingEnabled\")) {\r\n this._renderScrollable()\r\n }\r\n this._renderLayout();\r\n this._renderValidationSummary();\r\n this._lastMarkupScreenFactor = this._targetScreenFactor || this._getCurrentScreenFactor();\r\n this._attachResizeObserverSubscription()\r\n },\r\n _attachResizeObserverSubscription() {\r\n if (hasWindow()) {\r\n var formRootElement = this.$element().get(0);\r\n resizeObserverSingleton.unobserve(formRootElement);\r\n resizeObserverSingleton.observe(formRootElement, () => {\r\n this._resizeHandler()\r\n })\r\n }\r\n },\r\n _resizeHandler() {\r\n if (this._cachedLayoutManagers.length) {\r\n each(this._cachedLayoutManagers, (_, layoutManager) => {\r\n var _a;\r\n null === (_a = layoutManager.option(\"onLayoutChanged\")) || void 0 === _a ? void 0 : _a(layoutManager.isSingleColumnMode())\r\n })\r\n }\r\n },\r\n _getCurrentScreenFactor() {\r\n return hasWindow() ? getCurrentScreenFactor(this.option(\"screenByWidth\")) : \"lg\"\r\n },\r\n _clearCachedInstances() {\r\n this._itemsRunTimeInfo.clear();\r\n this._cachedLayoutManagers = []\r\n },\r\n _alignLabels(layoutManager, inOneColumn) {\r\n this._alignLabelsInColumn({\r\n $container: this.$element(),\r\n layoutManager: layoutManager,\r\n excludeTabbed: true,\r\n items: this.option(\"items\"),\r\n inOneColumn: inOneColumn\r\n });\r\n triggerResizeEvent(this.$element().find(\".\".concat(TOOLBAR_CLASS)))\r\n },\r\n _clean() {\r\n this._clearValidationSummary();\r\n this.callBase();\r\n this._groupsColCount = [];\r\n this._cachedColCountOptions = [];\r\n this._lastMarkupScreenFactor = void 0;\r\n resizeObserverSingleton.unobserve(this.$element().get(0))\r\n },\r\n _renderScrollable() {\r\n var useNativeScrolling = this.option(\"useNativeScrolling\");\r\n this._scrollable = new Scrollable(this.$element(), {\r\n useNative: !!useNativeScrolling,\r\n useSimulatedScrollbar: !useNativeScrolling,\r\n useKeyboard: false,\r\n direction: \"both\",\r\n bounceEnabled: false\r\n })\r\n },\r\n _getContent() {\r\n return this.option(\"scrollingEnabled\") ? $(this._scrollable.content()) : this.$element()\r\n },\r\n _clearValidationSummary() {\r\n var _a;\r\n null === (_a = this._$validationSummary) || void 0 === _a ? void 0 : _a.remove();\r\n this._$validationSummary = void 0;\r\n this._validationSummary = void 0\r\n },\r\n _renderValidationSummary() {\r\n this._clearValidationSummary();\r\n if (this.option(\"showValidationSummary\")) {\r\n this._$validationSummary = $(\"<div>\").addClass(FORM_VALIDATION_SUMMARY).appendTo(this._getContent());\r\n this._validationSummary = this._$validationSummary.dxValidationSummary({\r\n validationGroup: this._getValidationGroup()\r\n }).dxValidationSummary(\"instance\")\r\n }\r\n },\r\n _prepareItems(items, parentIsTabbedItem, currentPath, isTabs) {\r\n if (items) {\r\n var result = [];\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var path = concatPaths(currentPath, createItemPathByIndex(i, isTabs));\r\n var itemRunTimeInfo = {\r\n item: item,\r\n itemIndex: i,\r\n path: path\r\n };\r\n var guid = this._itemsRunTimeInfo.add(itemRunTimeInfo);\r\n if (isString(item)) {\r\n item = {\r\n dataField: item\r\n }\r\n }\r\n if (isObject(item)) {\r\n var preparedItem = _extends({}, item);\r\n itemRunTimeInfo.preparedItem = preparedItem;\r\n preparedItem.guid = guid;\r\n this._tryPrepareGroupItem(preparedItem);\r\n this._tryPrepareTabbedItem(preparedItem, path);\r\n this._tryPrepareItemTemplate(preparedItem);\r\n if (parentIsTabbedItem) {\r\n preparedItem.cssItemClass = FIELD_ITEM_TAB_CLASS\r\n }\r\n if (preparedItem.items) {\r\n preparedItem.items = this._prepareItems(preparedItem.items, parentIsTabbedItem, path)\r\n }\r\n result.push(preparedItem)\r\n } else {\r\n result.push(item)\r\n }\r\n }\r\n return result\r\n }\r\n },\r\n _tryPrepareGroupItem(item) {\r\n if (\"group\" === item.itemType) {\r\n item.alignItemLabels = ensureDefined(item.alignItemLabels, true);\r\n item._prepareGroupItemTemplate = itemTemplate => {\r\n if (item.template) {\r\n item.groupContentTemplate = this._getTemplate(itemTemplate)\r\n }\r\n item.template = this._itemGroupTemplate.bind(this, item)\r\n };\r\n item._prepareGroupItemTemplate(item.template)\r\n }\r\n },\r\n _tryPrepareTabbedItem(item, path) {\r\n if (\"tabbed\" === item.itemType) {\r\n item.template = this._itemTabbedTemplate.bind(this, item);\r\n item.tabs = this._prepareItems(item.tabs, true, path, true)\r\n }\r\n },\r\n _tryPrepareItemTemplate(item) {\r\n if (item.template) {\r\n item.template = this._getTemplate(item.template)\r\n }\r\n },\r\n _checkGrouping(items) {\r\n if (items) {\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (\"group\" === item.itemType) {\r\n return true\r\n }\r\n }\r\n }\r\n },\r\n _renderLayout() {\r\n var that = this;\r\n var items = that.option(\"items\");\r\n var $content = that._getContent();\r\n items = that._prepareItems(items);\r\n that._rootLayoutManager = that._renderLayoutManager($content, this._createLayoutManagerOptions(items, {\r\n isRoot: true,\r\n colCount: that.option(\"colCount\"),\r\n alignItemLabels: that.option(\"alignItemLabels\"),\r\n screenByWidth: this.option(\"screenByWidth\"),\r\n colCountByScreen: this.option(\"colCountByScreen\"),\r\n onLayoutChanged(inOneColumn) {\r\n that._alignLabels.bind(that)(that._rootLayoutManager, inOneColumn)\r\n },\r\n onContentReady(e) {\r\n that._alignLabels(e.component, e.component.isSingleColumnMode())\r\n }\r\n }))\r\n },\r\n _tryGetItemsForTemplate: item => item.items || [],\r\n _itemTabbedTemplate(item, e, $container) {\r\n var _a;\r\n var $tabPanel = $(\"<div>\").appendTo($container);\r\n var tabPanelOptions = extend({}, item.tabPanelOptions, {\r\n dataSource: item.tabs,\r\n onItemRendered: args => {\r\n var _a, _b;\r\n null === (_b = null === (_a = item.tabPanelOptions) || void 0 === _a ? void 0 : _a.onItemRendered) || void 0 === _b ? void 0 : _b.call(_a, args);\r\n triggerShownEvent(args.itemElement)\r\n },\r\n itemTemplate: (itemData, e, container) => {\r\n var $container = $(container);\r\n var alignItemLabels = ensureDefined(itemData.alignItemLabels, true);\r\n var layoutManager = this._renderLayoutManager($container, this._createLayoutManagerOptions(this._tryGetItemsForTemplate(itemData), {\r\n colCount: itemData.colCount,\r\n alignItemLabels: alignItemLabels,\r\n screenByWidth: this.option(\"screenByWidth\"),\r\n colCountByScreen: itemData.colCountByScreen,\r\n cssItemClass: itemData.cssItemClass,\r\n onLayoutChanged: inOneColumn => {\r\n this._alignLabelsInColumn({\r\n $container: $container,\r\n layoutManager: layoutManager,\r\n items: itemData.items,\r\n inOneColumn: inOneColumn\r\n })\r\n }\r\n }));\r\n if (this._itemsRunTimeInfo) {\r\n this._itemsRunTimeInfo.extendRunTimeItemInfoByKey(itemData.guid, {\r\n layoutManager: layoutManager\r\n })\r\n }\r\n if (alignItemLabels) {\r\n this._alignLabelsInColumn({\r\n $container: $container,\r\n layoutManager: layoutManager,\r\n items: itemData.items,\r\n inOneColumn: layoutManager.isSingleColumnMode()\r\n })\r\n }\r\n }\r\n });\r\n var tryUpdateTabPanelInstance = (items, instance) => {\r\n if (Array.isArray(items)) {\r\n items.forEach(item => this._itemsRunTimeInfo.extendRunTimeItemInfoByKey(item.guid, {\r\n widgetInstance: instance\r\n }))\r\n }\r\n };\r\n var tabPanel = this._createComponent($tabPanel, TabPanel, tabPanelOptions);\r\n $($container).parent().addClass(FIELD_ITEM_CONTENT_HAS_TABS_CLASS);\r\n tabPanel.on(\"optionChanged\", e => {\r\n if (\"dataSource\" === e.fullName) {\r\n tryUpdateTabPanelInstance(e.value, e.component)\r\n }\r\n });\r\n tryUpdateTabPanelInstance([{\r\n guid: item.guid\r\n }, ...null !== (_a = item.tabs) && void 0 !== _a ? _a : []], tabPanel)\r\n },\r\n _itemGroupTemplate(item, options, $container) {\r\n var {\r\n id: id\r\n } = options.editorOptions.inputAttr;\r\n var $group = $(\"<div>\").toggleClass(FORM_GROUP_WITH_CAPTION_CLASS, isDefined(item.caption) && item.caption.length).addClass(FORM_GROUP_CLASS).appendTo($container);\r\n var groupAria = {\r\n role: \"group\",\r\n labelledby: id\r\n };\r\n this.setAria(groupAria, $group);\r\n $($container).parent().addClass(FIELD_ITEM_CONTENT_HAS_GROUP_CLASS);\r\n if (item.caption) {\r\n $(\"<span>\").addClass(FORM_GROUP_CAPTION_CLASS).text(item.caption).attr(\"id\", id).appendTo($group)\r\n }\r\n var $groupContent = $(\"<div>\").addClass(FORM_GROUP_CONTENT_CLASS).appendTo($group);\r\n if (item.groupContentTemplate) {\r\n item._renderGroupContentTemplate = () => {\r\n $groupContent.empty();\r\n var data = {\r\n formData: this.option(\"formData\"),\r\n component: this\r\n };\r\n item.groupContentTemplate.render({\r\n model: data,\r\n container: getPublicElement($groupContent)\r\n })\r\n };\r\n item._renderGroupContentTemplate()\r\n } else {\r\n var layoutManager = this._renderLayoutManager($groupContent, this._createLayoutManagerOptions(this._tryGetItemsForTemplate(item), {\r\n colCount: item.colCount,\r\n colCountByScreen: item.colCountByScreen,\r\n alignItemLabels: item.alignItemLabels,\r\n cssItemClass: item.cssItemClass\r\n }));\r\n this._itemsRunTimeInfo && this._itemsRunTimeInfo.extendRunTimeItemInfoByKey(item.guid, {\r\n layoutManager: layoutManager\r\n });\r\n var colCount = layoutManager._getColCount();\r\n if (!this._groupsColCount.includes(colCount)) {\r\n this._groupsColCount.push(colCount)\r\n }\r\n $group.addClass(GROUP_COL_COUNT_CLASS + colCount);\r\n $group.attr(GROUP_COL_COUNT_ATTR, colCount)\r\n }\r\n },\r\n _createLayoutManagerOptions(items, extendedLayoutManagerOptions) {\r\n return convertToLayoutManagerOptions({\r\n form: this,\r\n formOptions: this.option(),\r\n $formElement: this.$element(),\r\n items: items,\r\n validationGroup: this._getValidationGroup(),\r\n extendedLayoutManagerOptions: extendedLayoutManagerOptions,\r\n onFieldDataChanged: args => {\r\n if (!this._isDataUpdating) {\r\n this._triggerOnFieldDataChanged(args)\r\n }\r\n },\r\n onContentReady: args => {\r\n this._itemsRunTimeInfo.addItemsOrExtendFrom(args.component._itemsRunTimeInfo);\r\n extendedLayoutManagerOptions.onContentReady && extendedLayoutManagerOptions.onContentReady(args)\r\n },\r\n onDisposing: _ref2 => {\r\n var {\r\n component: component\r\n } = _ref2;\r\n var nestedItemsRunTimeInfo = component.getItemsRunTimeInfo();\r\n this._itemsRunTimeInfo.removeItemsByItems(nestedItemsRunTimeInfo)\r\n },\r\n onFieldItemRendered: () => {\r\n var _a;\r\n null === (_a = this._validationSummary) || void 0 === _a ? void 0 : _a.refreshValidationGroup()\r\n }\r\n })\r\n },\r\n _renderLayoutManager($parent, layoutManagerOptions) {\r\n var baseColCountByScreen = {\r\n lg: layoutManagerOptions.colCount,\r\n md: layoutManagerOptions.colCount,\r\n sm: layoutManagerOptions.colCount,\r\n xs: 1\r\n };\r\n this._cachedColCountOptions.push({\r\n colCountByScreen: extend(baseColCountByScreen, layoutManagerOptions.colCountByScreen)\r\n });\r\n var $element = $(\"<div>\");\r\n $element.appendTo($parent);\r\n var instance = this._createComponent($element, \"dxLayoutManager\", layoutManagerOptions);\r\n instance.on(\"autoColCountChanged\", () => {\r\n this._clearAutoColCountChangedTimeout();\r\n this.autoColCountChangedTimeoutId = setTimeout(() => !this._disposed && this._refresh(), 0)\r\n });\r\n this._cachedLayoutManagers.push(instance);\r\n return instance\r\n },\r\n _getValidationGroup() {\r\n return this.option(\"validationGroup\") || this\r\n },\r\n _createComponent($element, type, config) {\r\n config = config || {};\r\n this._extendConfig(config, {\r\n readOnly: this.option(\"readOnly\")\r\n });\r\n return this.callBase($element, type, config)\r\n },\r\n _attachSyncSubscriptions() {\r\n var that = this;\r\n that.on(\"optionChanged\", args => {\r\n var optionFullName = args.fullName;\r\n if (\"formData\" === optionFullName) {\r\n if (!isDefined(args.value)) {\r\n that._options.silent(\"formData\", args.value = {})\r\n }\r\n that._triggerOnFieldDataChangedByDataSet(args.value)\r\n }\r\n if (that._cachedLayoutManagers.length) {\r\n each(that._cachedLayoutManagers, (index, layoutManager) => {\r\n if (\"formData\" === optionFullName) {\r\n that._isDataUpdating = true;\r\n layoutManager.option(\"layoutData\", args.value);\r\n that._isDataUpdating = false\r\n }\r\n if (\"readOnly\" === args.name || \"disabled\" === args.name) {\r\n layoutManager.option(optionFullName, args.value)\r\n }\r\n })\r\n }\r\n })\r\n },\r\n _optionChanged(args) {\r\n var splitFullName = args.fullName.split(\".\");\r\n if (splitFullName.length > 1 && -1 !== splitFullName[0].search(\"items\") && this._itemsOptionChangedHandler(args)) {\r\n return\r\n }\r\n if (splitFullName.length > 1 && -1 !== splitFullName[0].search(\"formData\") && this._formDataOptionChangedHandler(args)) {\r\n return\r\n }\r\n this._defaultOptionChangedHandler(args)\r\n },\r\n _defaultOptionChangedHandler(args) {\r\n switch (args.name) {\r\n case \"formData\":\r\n if (!this.option(\"items\")) {\r\n this._invalidate()\r\n } else if (isEmptyObject(args.value)) {\r\n this._clear()\r\n }\r\n break;\r\n case \"onFieldDataChanged\":\r\n break;\r\n case \"items\":\r\n case \"colCount\":\r\n case \"onEditorEnterKey\":\r\n case \"labelLocation\":\r\n case \"labelMode\":\r\n case \"alignItemLabels\":\r\n case \"showColonAfterLabel\":\r\n case \"customizeItem\":\r\n case \"alignItemLabelsInAllGroups\":\r\n case \"showRequiredMark\":\r\n case \"showOptionalMark\":\r\n case \"requiredMark\":\r\n case \"optionalMark\":\r\n case \"requiredMessage\":\r\n case \"scrollingEnabled\":\r\n case \"formID\":\r\n case \"colCountByScreen\":\r\n case \"screenByWidth\":\r\n case \"stylingMode\":\r\n this._invalidate();\r\n break;\r\n case \"showValidationSummary\":\r\n this._renderValidationSummary();\r\n break;\r\n case \"minColWidth\":\r\n if (\"auto\" === this.option(\"colCount\")) {\r\n this._invalidate()\r\n }\r\n break;\r\n case \"alignRootItemLabels\":\r\n case \"readOnly\":\r\n case \"isDirty\":\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._rootLayoutManager.option(args.name, args.value);\r\n this._alignLabels(this._rootLayoutManager, this._rootLayoutManager.isSingleColumnMode());\r\n break;\r\n case \"validationGroup\":\r\n ValidationEngine.removeGroup(args.previousValue || this);\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _itemsOptionChangedHandler(args) {\r\n var nameParts = args.fullName.split(\".\");\r\n var {\r\n value: value\r\n } = args;\r\n var itemPath = this._getItemPath(nameParts);\r\n var item = this.option(itemPath);\r\n var optionNameWithoutPath = args.fullName.replace(\"\".concat(itemPath, \".\"), \"\");\r\n var simpleOptionName = optionNameWithoutPath.split(\".\")[0].replace(/\\[\\d+]/, \"\");\r\n var itemAction = this._tryCreateItemOptionAction(simpleOptionName, item, item[simpleOptionName], args.previousValue, itemPath);\r\n var result = this._tryExecuteItemOptionAction(itemAction) || this._tryChangeLayoutManagerItemOption(args.fullName, value);\r\n if (!result && item) {\r\n this._changeItemOption(item, optionNameWithoutPath, value);\r\n var items = this._generateItemsFromData(this.option(\"items\"));\r\n this.option(\"items\", items);\r\n result = true\r\n }\r\n return result\r\n },\r\n _formDataOptionChangedHandler(args) {\r\n var nameParts = args.fullName.split(\".\");\r\n var {\r\n value: value\r\n } = args;\r\n var dataField = nameParts.slice(1).join(\".\");\r\n var editor = this.getEditor(dataField);\r\n if (editor) {\r\n editor.option(\"value\", value)\r\n } else {\r\n this._triggerOnFieldDataChanged({\r\n dataField: dataField,\r\n value: value\r\n })\r\n }\r\n return true\r\n },\r\n _tryCreateItemOptionAction(optionName, item, value, previousValue, itemPath) {\r\n if (\"tabs\" === optionName) {\r\n this._itemsRunTimeInfo.removeItemsByPathStartWith(\"\".concat(itemPath, \".tabs\"));\r\n value = this._prepareItems(value, true, itemPath, true)\r\n }\r\n return tryCreateItemOptionAction(optionName, {\r\n item: item,\r\n value: value,\r\n previousValue: previousValue,\r\n itemsRunTimeInfo: this._itemsRunTimeInfo\r\n })\r\n },\r\n _tryExecuteItemOptionAction: action => action && action.tryExecute(),\r\n _updateValidationGroupAndSummaryIfNeeded(fullName) {\r\n var _a;\r\n var optionName = getOptionNameFromFullName(fullName);\r\n if (ITEM_OPTIONS_FOR_VALIDATION_UPDATING.includes(optionName)) {\r\n ValidationEngine.addGroup(this._getValidationGroup(), false);\r\n if (this.option(\"showValidationSummary\")) {\r\n null === (_a = this._validationSummary) || void 0 === _a ? void 0 : _a.refreshValidationGroup()\r\n }\r\n }\r\n },\r\n _setLayoutManagerItemOption(layoutManager, optionName, value, path) {\r\n if (this._updateLockCount > 0) {\r\n !layoutManager._updateLockCount && layoutManager.beginUpdate();\r\n var key = this._itemsRunTimeInfo.findKeyByPath(path);\r\n this.postponedOperations.add(key, () => {\r\n !layoutManager._disposed && layoutManager.endUpdate();\r\n return Deferred().resolve()\r\n })\r\n }\r\n var contentReadyHandler = e => {\r\n e.component.off(\"contentReady\", contentReadyHandler);\r\n if (isFullPathContainsTabs(path)) {\r\n var tabPath = tryGetTabPath(path);\r\n var tabLayoutManager = this._itemsRunTimeInfo.findGroupOrTabLayoutManagerByPath(tabPath);\r\n if (tabLayoutManager) {\r\n this._alignLabelsInColumn({\r\n items: tabLayoutManager.option(\"items\"),\r\n layoutManager: tabLayoutManager,\r\n $container: tabLayoutManager.$element(),\r\n inOneColumn: tabLayoutManager.isSingleColumnMode()\r\n })\r\n }\r\n } else {\r\n this._alignLabels(this._rootLayoutManager, this._rootLayoutManager.isSingleColumnMode())\r\n }\r\n };\r\n layoutManager.on(\"contentReady\", contentReadyHandler);\r\n layoutManager.option(optionName, value);\r\n this._updateValidationGroupAndSummaryIfNeeded(optionName)\r\n },\r\n _tryChangeLayoutManagerItemOption(fullName, value) {\r\n var nameParts = fullName.split(\".\");\r\n var optionName = getOptionNameFromFullName(fullName);\r\n if (\"items\" === optionName && nameParts.length > 1) {\r\n var itemPath = this._getItemPath(nameParts);\r\n var layoutManager = this._itemsRunTimeInfo.findGroupOrTabLayoutManagerByPath(itemPath);\r\n if (layoutManager) {\r\n this._itemsRunTimeInfo.removeItemsByItems(layoutManager.getItemsRunTimeInfo());\r\n var items = this._prepareItems(value, false, itemPath);\r\n this._setLayoutManagerItemOption(layoutManager, optionName, items, itemPath);\r\n return true\r\n }\r\n } else if (nameParts.length > 2) {\r\n var endPartIndex = nameParts.length - 2;\r\n var _itemPath = this._getItemPath(nameParts.slice(0, endPartIndex));\r\n var _layoutManager = this._itemsRunTimeInfo.findGroupOrTabLayoutManagerByPath(_itemPath);\r\n if (_layoutManager) {\r\n var fullOptionName = getFullOptionName(nameParts[endPartIndex], optionName);\r\n if (\"editorType\" === optionName) {\r\n if (_layoutManager.option(fullOptionName) !== value) {\r\n return false\r\n }\r\n }\r\n if (\"visible\" === optionName) {\r\n var formItems = this.option(getFullOptionName(_itemPath, \"items\"));\r\n if (formItems && formItems.length) {\r\n var layoutManagerItems = _layoutManager.option(\"items\");\r\n formItems.forEach((item, index) => {\r\n var layoutItem = layoutManagerItems[index];\r\n layoutItem.visibleIndex = item.visibleIndex\r\n })\r\n }\r\n }\r\n this._setLayoutManagerItemOption(_layoutManager, fullOptionName, value, _itemPath);\r\n return true\r\n }\r\n }\r\n return false\r\n },\r\n _tryChangeLayoutManagerItemOptions(itemPath, options) {\r\n var result;\r\n this.beginUpdate();\r\n each(options, (optionName, optionValue) => {\r\n result = this._tryChangeLayoutManagerItemOption(getFullOptionName(itemPath, optionName), optionValue);\r\n if (!result) {\r\n return false\r\n }\r\n });\r\n this.endUpdate();\r\n return result\r\n },\r\n _getItemPath(nameParts) {\r\n var itemPath = nameParts[0];\r\n var i;\r\n for (i = 1; i < nameParts.length; i++) {\r\n if (-1 !== nameParts[i].search(/items\\[\\d+]|tabs\\[\\d+]/)) {\r\n itemPath += \".\".concat(nameParts[i])\r\n } else {\r\n break\r\n }\r\n }\r\n return itemPath\r\n },\r\n _triggerOnFieldDataChanged(args) {\r\n this._updateIsDirty(args.dataField);\r\n this._createActionByOption(\"onFieldDataChanged\")(args)\r\n },\r\n _triggerOnFieldDataChangedByDataSet(data) {\r\n if (data && isObject(data)) {\r\n Object.keys(data).forEach(key => {\r\n this._triggerOnFieldDataChanged({\r\n dataField: key,\r\n value: data[key]\r\n })\r\n })\r\n }\r\n },\r\n _updateFieldValue(dataField, value) {\r\n if (isDefined(this.option(\"formData\"))) {\r\n var editor = this.getEditor(dataField);\r\n this.option(\"formData.\".concat(dataField), value);\r\n if (editor) {\r\n var editorValue = editor.option(\"value\");\r\n if (editorValue !== value) {\r\n editor.option(\"value\", value)\r\n }\r\n }\r\n }\r\n },\r\n _generateItemsFromData(items) {\r\n var formData = this.option(\"formData\");\r\n var result = [];\r\n if (!items && isDefined(formData)) {\r\n each(formData, dataField => {\r\n result.push({\r\n dataField: dataField\r\n })\r\n })\r\n }\r\n if (items) {\r\n each(items, (index, item) => {\r\n if (isObject(item)) {\r\n result.push(item)\r\n } else {\r\n result.push({\r\n dataField: item\r\n })\r\n }\r\n })\r\n }\r\n return result\r\n },\r\n _getItemByField(field, items) {\r\n var that = this;\r\n var fieldParts = isObject(field) ? field : that._getFieldParts(field);\r\n var {\r\n fieldName: fieldName\r\n } = fieldParts;\r\n var {\r\n fieldPath: fieldPath\r\n } = fieldParts;\r\n var resultItem;\r\n if (items.length) {\r\n each(items, (index, item) => {\r\n var {\r\n itemType: itemType\r\n } = item;\r\n if (fieldPath.length) {\r\n var path = fieldPath.slice();\r\n item = that._getItemByFieldPath(path, fieldName, item)\r\n } else if (\"group\" === itemType && !(item.caption || item.name) || \"tabbed\" === itemType && !item.name) {\r\n var subItemsField = that._getSubItemField(itemType);\r\n item.items = that._generateItemsFromData(item.items);\r\n item = that._getItemByField({\r\n fieldName: fieldName,\r\n fieldPath: fieldPath\r\n }, item[subItemsField])\r\n }\r\n if (isEqualToDataFieldOrNameOrTitleOrCaption(item, fieldName)) {\r\n resultItem = item;\r\n return false\r\n }\r\n })\r\n }\r\n return resultItem\r\n },\r\n _getFieldParts(field) {\r\n var fieldName = field;\r\n var separatorIndex = fieldName.indexOf(\".\");\r\n var resultPath = [];\r\n while (-1 !== separatorIndex) {\r\n resultPath.push(fieldName.substr(0, separatorIndex));\r\n fieldName = fieldName.substr(separatorIndex + 1);\r\n separatorIndex = fieldName.indexOf(\".\")\r\n }\r\n return {\r\n fieldName: fieldName,\r\n fieldPath: resultPath.reverse()\r\n }\r\n },\r\n _getItemByFieldPath(path, fieldName, item) {\r\n var {\r\n itemType: itemType\r\n } = item;\r\n var subItemsField = this._getSubItemField(itemType);\r\n var isItemWithSubItems = \"group\" === itemType || \"tabbed\" === itemType || item.title;\r\n var result;\r\n do {\r\n if (isItemWithSubItems) {\r\n var name = item.name || item.caption || item.title;\r\n var isGroupWithName = isDefined(name);\r\n var nameWithoutSpaces = getTextWithoutSpaces(name);\r\n var pathNode = void 0;\r\n item[subItemsField] = this._generateItemsFromData(item[subItemsField]);\r\n if (isGroupWithName) {\r\n pathNode = path.pop()\r\n }\r\n if (!path.length) {\r\n result = this._getItemByField(fieldName, item[subItemsField]);\r\n if (result) {\r\n break\r\n }\r\n }\r\n if (!isGroupWithName || isGroupWithName && nameWithoutSpaces === pathNode) {\r\n if (path.length) {\r\n result = this._searchItemInEverySubItem(path, fieldName, item[subItemsField])\r\n }\r\n }\r\n } else {\r\n break\r\n }\r\n } while (path.length && !isDefined(result));\r\n return result\r\n },\r\n _getSubItemField: itemType => \"tabbed\" === itemType ? \"tabs\" : \"items\",\r\n _searchItemInEverySubItem(path, fieldName, items) {\r\n var that = this;\r\n var result;\r\n each(items, (index, groupItem) => {\r\n result = that._getItemByFieldPath(path.slice(), fieldName, groupItem);\r\n if (result) {\r\n return false\r\n }\r\n });\r\n if (!result) {\r\n result = false\r\n }\r\n return result\r\n },\r\n _changeItemOption(item, option, value) {\r\n if (isObject(item)) {\r\n item[option] = value\r\n }\r\n },\r\n _dimensionChanged() {\r\n var currentScreenFactor = this._getCurrentScreenFactor();\r\n if (this._lastMarkupScreenFactor !== currentScreenFactor) {\r\n if (this._isColCountChanged(this._lastMarkupScreenFactor, currentScreenFactor)) {\r\n this._targetScreenFactor = currentScreenFactor;\r\n this._refresh();\r\n this._targetScreenFactor = void 0\r\n }\r\n this._lastMarkupScreenFactor = currentScreenFactor\r\n }\r\n },\r\n _isColCountChanged(oldScreenSize, newScreenSize) {\r\n var isChanged = false;\r\n each(this._cachedColCountOptions, (index, item) => {\r\n if (item.colCountByScreen[oldScreenSize] !== item.colCountByScreen[newScreenSize]) {\r\n isChanged = true;\r\n return false\r\n }\r\n });\r\n return isChanged\r\n },\r\n _refresh() {\r\n var editorSelector = \".\".concat(TEXTEDITOR_CLASS, \".\").concat(FOCUSED_STATE_CLASS, \":not(.\").concat(DROP_DOWN_EDITOR_CLASS, \") .\").concat(TEXTEDITOR_INPUT_CLASS);\r\n eventsEngine.trigger(this.$element().find(editorSelector), \"change\");\r\n this.callBase()\r\n },\r\n _updateIsDirty(dataField) {\r\n var editor = this.getEditor(dataField);\r\n if (!editor) {\r\n return\r\n }\r\n if (editor.option(\"isDirty\")) {\r\n this._dirtyFields.add(dataField)\r\n } else {\r\n this._dirtyFields.delete(dataField)\r\n }\r\n this.option(\"isDirty\", !!this._dirtyFields.size)\r\n },\r\n updateRunTimeInfoForEachEditor(editorAction) {\r\n this._itemsRunTimeInfo.each((_, itemRunTimeInfo) => {\r\n var {\r\n widgetInstance: widgetInstance\r\n } = itemRunTimeInfo;\r\n if (isDefined(widgetInstance) && Editor.isEditor(widgetInstance)) {\r\n editorAction(widgetInstance)\r\n }\r\n })\r\n },\r\n _clear() {\r\n this.updateRunTimeInfoForEachEditor(editor => {\r\n editor.clear();\r\n editor.option(\"isValid\", true)\r\n });\r\n ValidationEngine.resetGroup(this._getValidationGroup())\r\n },\r\n _updateData(data, value, isComplexData) {\r\n var that = this;\r\n var _data = isComplexData ? value : data;\r\n if (isObject(_data)) {\r\n each(_data, (dataField, fieldValue) => {\r\n that._updateData(isComplexData ? \"\".concat(data, \".\").concat(dataField) : dataField, fieldValue, isObject(fieldValue))\r\n })\r\n } else if (isString(data)) {\r\n that._updateFieldValue(data, value)\r\n }\r\n },\r\n registerKeyHandler(key, handler) {\r\n this.callBase(key, handler);\r\n this._itemsRunTimeInfo.each((_, itemRunTimeInfo) => {\r\n if (isDefined(itemRunTimeInfo.widgetInstance)) {\r\n itemRunTimeInfo.widgetInstance.registerKeyHandler(key, handler)\r\n }\r\n })\r\n },\r\n _focusTarget() {\r\n return this.$element().find(\".\".concat(FIELD_ITEM_CONTENT_CLASS, \" [tabindex]\")).first()\r\n },\r\n _visibilityChanged() {\r\n this._alignLabels(this._rootLayoutManager, this._rootLayoutManager.isSingleColumnMode())\r\n },\r\n _clearAutoColCountChangedTimeout() {\r\n if (this.autoColCountChangedTimeoutId) {\r\n clearTimeout(this.autoColCountChangedTimeoutId);\r\n this.autoColCountChangedTimeoutId = void 0\r\n }\r\n },\r\n _dispose() {\r\n this._clearAutoColCountChangedTimeout();\r\n ValidationEngine.removeGroup(this._getValidationGroup());\r\n this.callBase()\r\n },\r\n clear() {\r\n this._clear()\r\n },\r\n resetValues() {\r\n this._clear()\r\n },\r\n reset(editorsData) {\r\n this.updateRunTimeInfoForEachEditor(editor => {\r\n var editorName = editor.option(\"name\");\r\n if (editorsData && editorName in editorsData) {\r\n editor.reset(editorsData[editorName])\r\n } else {\r\n editor.reset()\r\n }\r\n });\r\n this._renderValidationSummary()\r\n },\r\n updateData(data, value) {\r\n this._updateData(data, value)\r\n },\r\n getEditor(dataField) {\r\n return this._itemsRunTimeInfo.findWidgetInstanceByDataField(dataField) || this._itemsRunTimeInfo.findWidgetInstanceByName(dataField)\r\n },\r\n getButton(name) {\r\n return this._itemsRunTimeInfo.findWidgetInstanceByName(name)\r\n },\r\n updateDimensions() {\r\n var that = this;\r\n var deferred = Deferred();\r\n if (that._scrollable) {\r\n that._scrollable.update().done(() => {\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 itemOption(id, option, value) {\r\n var items = this._generateItemsFromData(this.option(\"items\"));\r\n var item = this._getItemByField(id, items);\r\n var path = getItemPath(items, item);\r\n if (!item) {\r\n return\r\n }\r\n switch (arguments.length) {\r\n case 1:\r\n return item;\r\n case 3:\r\n var itemAction = this._tryCreateItemOptionAction(option, item, value, item[option], path);\r\n this._changeItemOption(item, option, value);\r\n var fullName = getFullOptionName(path, option);\r\n if (!this._tryExecuteItemOptionAction(itemAction) && !this._tryChangeLayoutManagerItemOption(fullName, value)) {\r\n this.option(\"items\", items)\r\n }\r\n break;\r\n default:\r\n if (isObject(option)) {\r\n if (!this._tryChangeLayoutManagerItemOptions(path, option)) {\r\n var allowUpdateItems;\r\n each(option, (optionName, optionValue) => {\r\n var itemAction = this._tryCreateItemOptionAction(optionName, item, optionValue, item[optionName], path);\r\n this._changeItemOption(item, optionName, optionValue);\r\n if (!allowUpdateItems && !this._tryExecuteItemOptionAction(itemAction)) {\r\n allowUpdateItems = true\r\n }\r\n });\r\n allowUpdateItems && this.option(\"items\", items)\r\n }\r\n }\r\n }\r\n },\r\n validate() {\r\n return ValidationEngine.validateGroup(this._getValidationGroup())\r\n },\r\n getItemID(name) {\r\n return \"dx_\".concat(this.option(\"formID\"), \"_\").concat(name || new Guid)\r\n },\r\n getTargetScreenFactor() {\r\n return this._targetScreenFactor\r\n }\r\n});\r\nregisterComponent(\"dxForm\", Form);\r\nexport default Form;\r\n","/**\r\n * DevExtreme (esm/ui/form.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Form from \"./form/ui.form\";\r\nexport default Form;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/m_recurrence_editor.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport \"../../ui/radio_group\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport Guid from \"../../core/guid\";\r\nimport $ from \"../../core/renderer\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport ButtonGroup from \"../../ui/button_group\";\r\nimport DateBox from \"../../ui/date_box\";\r\nimport Editor from \"../../ui/editor/editor\";\r\nimport Form from \"../../ui/form\";\r\nimport NumberBox from \"../../ui/number_box\";\r\nimport {\r\n current,\r\n isFluent\r\n} from \"../../ui/themes\";\r\nimport {\r\n PathTimeZoneConversion\r\n} from \"../scheduler/r1/timezone_calculator/index\";\r\nimport {\r\n getRecurrenceProcessor\r\n} from \"./m_recurrence\";\r\nvar RECURRENCE_EDITOR = \"dx-recurrence-editor\";\r\nvar LABEL_POSTFIX = \"-label\";\r\nvar WRAPPER_POSTFIX = \"-wrapper\";\r\nvar RECURRENCE_EDITOR_CONTAINER = \"dx-recurrence-editor-container\";\r\nvar REPEAT_END_EDITOR = \"dx-recurrence-repeat-end\";\r\nvar REPEAT_END_TYPE_EDITOR = \"dx-recurrence-radiogroup-repeat-type\";\r\nvar REPEAT_COUNT_EDITOR = \"dx-recurrence-numberbox-repeat-count\";\r\nvar REPEAT_UNTIL_DATE_EDITOR = \"dx-recurrence-datebox-until-date\";\r\nvar RECURRENCE_BUTTON_GROUP = \"dx-recurrence-button-group\";\r\nvar FREQUENCY_EDITOR = \"dx-recurrence-selectbox-freq\";\r\nvar INTERVAL_EDITOR = \"dx-recurrence-numberbox-interval\";\r\nvar REPEAT_ON_EDITOR = \"dx-recurrence-repeat-on\";\r\nvar DAY_OF_MONTH = \"dx-recurrence-numberbox-day-of-month\";\r\nvar MONTH_OF_YEAR = \"dx-recurrence-selectbox-month-of-year\";\r\nvar recurrentEditorNumberBoxWidth = 70;\r\nvar recurrentEditorSelectBoxWidth = 120;\r\nvar defaultRecurrenceTypeIndex = 1;\r\nvar frequenciesMessages = [{\r\n recurrence: \"dxScheduler-recurrenceHourly\",\r\n value: \"hourly\"\r\n}, {\r\n recurrence: \"dxScheduler-recurrenceDaily\",\r\n value: \"daily\"\r\n}, {\r\n recurrence: \"dxScheduler-recurrenceWeekly\",\r\n value: \"weekly\"\r\n}, {\r\n recurrence: \"dxScheduler-recurrenceMonthly\",\r\n value: \"monthly\"\r\n}, {\r\n recurrence: \"dxScheduler-recurrenceYearly\",\r\n value: \"yearly\"\r\n}];\r\nvar frequencies = frequenciesMessages.map(item => ({\r\n text: () => messageLocalization.format(item.recurrence),\r\n value: item.value\r\n}));\r\nvar repeatEndTypes = [{\r\n type: \"never\"\r\n}, {\r\n type: \"until\"\r\n}, {\r\n type: \"count\"\r\n}];\r\nvar days = [\"SU\", \"MO\", \"TU\", \"WE\", \"TH\", \"FR\", \"SA\"];\r\nvar getStylingModeFunc = () => isFluent(current()) ? \"filled\" : void 0;\r\nclass RecurrenceRule {\r\n constructor(rule) {\r\n this._recurrenceProcessor = getRecurrenceProcessor();\r\n this._recurrenceProcessor = getRecurrenceProcessor();\r\n this._recurrenceRule = this._recurrenceProcessor.evalRecurrenceRule(rule).rule\r\n }\r\n makeRules(string) {\r\n this._recurrenceRule = this._recurrenceProcessor.evalRecurrenceRule(string).rule\r\n }\r\n makeRule(field, value) {\r\n if (!value || Array.isArray(value) && !value.length) {\r\n delete this._recurrenceRule[field];\r\n return\r\n }\r\n if (isDefined(field)) {\r\n if (\"until\" === field) {\r\n delete this._recurrenceRule.count\r\n }\r\n if (\"count\" === field) {\r\n delete this._recurrenceRule.until\r\n }\r\n this._recurrenceRule[field] = value\r\n }\r\n }\r\n getRepeatEndRule() {\r\n var rules = this._recurrenceRule;\r\n if (\"count\" in rules) {\r\n return \"count\"\r\n }\r\n if (\"until\" in rules) {\r\n return \"until\"\r\n }\r\n return \"never\"\r\n }\r\n getRecurrenceString() {\r\n return this._recurrenceProcessor.getRecurrenceString(this._recurrenceRule)\r\n }\r\n getRules() {\r\n return this._recurrenceRule\r\n }\r\n getDaysFromByDayRule() {\r\n return this._recurrenceProcessor.daysFromByDayRule(this._recurrenceRule)\r\n }\r\n}\r\nclass RecurrenceEditor extends Editor {\r\n _getDefaultOptions() {\r\n var defaultOptions = super._getDefaultOptions();\r\n return extend(defaultOptions, {\r\n value: null,\r\n startDate: new Date,\r\n firstDayOfWeek: void 0\r\n })\r\n }\r\n _getFirstDayOfWeek() {\r\n var firstDayOfWeek = this.option(\"firstDayOfWeek\");\r\n return isDefined(firstDayOfWeek) ? firstDayOfWeek : dateLocalization.firstDayOfWeekIndex()\r\n }\r\n _createComponent(element, name) {\r\n var config = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n this._extendConfig(config, {\r\n readOnly: this.option(\"readOnly\")\r\n });\r\n return super._createComponent(element, name, config)\r\n }\r\n _init() {\r\n super._init();\r\n this._recurrenceRule = new RecurrenceRule(this.option(\"value\"))\r\n }\r\n _render() {\r\n super._render();\r\n this.$element().addClass(RECURRENCE_EDITOR);\r\n this._$container = $(\"<div>\").addClass(RECURRENCE_EDITOR_CONTAINER).appendTo(this.$element());\r\n this._prepareEditors();\r\n this._renderEditors(this._$container)\r\n }\r\n getEditorByField(fieldName) {\r\n var editor = this.getRecurrenceForm().getEditor(fieldName);\r\n if (!isDefined(editor)) {\r\n switch (fieldName) {\r\n case \"byday\":\r\n editor = this._weekEditor;\r\n break;\r\n case \"count\":\r\n editor = this._repeatCountEditor;\r\n break;\r\n case \"until\":\r\n editor = this._repeatUntilDate\r\n }\r\n }\r\n return editor\r\n }\r\n _prepareEditors() {\r\n var freq = (this._recurrenceRule.getRules().freq || frequenciesMessages[defaultRecurrenceTypeIndex].value).toLowerCase();\r\n this._editors = [this._createFreqEditor(freq), this._createIntervalEditor(freq), this._createRepeatOnLabel(freq), {\r\n itemType: \"group\",\r\n cssClass: REPEAT_ON_EDITOR,\r\n colCount: 2,\r\n colCountByScreen: {\r\n xs: 2\r\n },\r\n items: this._createRepeatOnEditor(freq)\r\n }, {\r\n itemType: \"group\",\r\n items: this._createRepeatEndEditor()\r\n }];\r\n return this._editors\r\n }\r\n _createFreqEditor(freq) {\r\n return {\r\n dataField: \"freq\",\r\n name: \"FREQ\",\r\n editorType: \"dxSelectBox\",\r\n cssClass: FREQUENCY_EDITOR,\r\n editorOptions: {\r\n stylingMode: getStylingModeFunc(),\r\n items: frequencies,\r\n value: freq,\r\n field: \"freq\",\r\n valueExpr: \"value\",\r\n displayExpr: \"text\",\r\n layout: \"horizontal\",\r\n elementAttr: {\r\n class: FREQUENCY_EDITOR\r\n },\r\n onValueChanged: args => this._valueChangedHandler(args)\r\n },\r\n label: {\r\n text: messageLocalization.format(\"dxScheduler-editorLabelRecurrence\")\r\n }\r\n }\r\n }\r\n _createIntervalEditor(freq) {\r\n var interval = this._recurrenceRule.getRules().interval || 1;\r\n return {\r\n itemType: \"group\",\r\n colCount: 2,\r\n cssClass: \"\".concat(INTERVAL_EDITOR).concat(WRAPPER_POSTFIX),\r\n colCountByScreen: {\r\n xs: 2\r\n },\r\n items: [{\r\n dataField: \"interval\",\r\n editorType: \"dxNumberBox\",\r\n editorOptions: {\r\n stylingMode: getStylingModeFunc(),\r\n format: \"#\",\r\n width: recurrentEditorNumberBoxWidth,\r\n min: 1,\r\n field: \"interval\",\r\n value: interval,\r\n showSpinButtons: true,\r\n useLargeSpinButtons: false,\r\n elementAttr: {\r\n class: INTERVAL_EDITOR\r\n },\r\n onValueChanged: args => this._valueChangedHandler(args)\r\n },\r\n label: {\r\n text: messageLocalization.format(\"dxScheduler-recurrenceRepeatEvery\")\r\n }\r\n }, {\r\n name: \"intervalLabel\",\r\n cssClass: \"\".concat(INTERVAL_EDITOR).concat(LABEL_POSTFIX),\r\n template: () => messageLocalization.format(\"dxScheduler-recurrenceRepeat\".concat(freq.charAt(0).toUpperCase()).concat(freq.substr(1).toLowerCase()))\r\n }]\r\n }\r\n }\r\n _createRepeatOnLabel(freq) {\r\n return {\r\n itemType: \"group\",\r\n cssClass: \"\".concat(REPEAT_ON_EDITOR).concat(LABEL_POSTFIX),\r\n items: [{\r\n name: \"repeatOnLabel\",\r\n colSpan: 2,\r\n template: () => messageLocalization.format(\"dxScheduler-recurrenceRepeatOn\"),\r\n visible: freq && \"daily\" !== freq && \"hourly\" !== freq\r\n }]\r\n }\r\n }\r\n _createRepeatOnEditor(freq) {\r\n return [this._createByDayEditor(freq), this._createByMonthEditor(freq), this._createByMonthDayEditor(freq)]\r\n }\r\n _createByDayEditor(freq) {\r\n return {\r\n dataField: \"byday\",\r\n colSpan: 2,\r\n template: (_, itemElement) => {\r\n var firstDayOfWeek = this._getFirstDayOfWeek();\r\n var byDay = this._daysOfWeekByRules();\r\n var localDaysNames = dateLocalization.getDayNames(\"abbreviated\");\r\n var dayNames = days.slice(firstDayOfWeek).concat(days.slice(0, firstDayOfWeek));\r\n var itemsButtonGroup = localDaysNames.slice(firstDayOfWeek).concat(localDaysNames.slice(0, firstDayOfWeek)).map((item, index) => ({\r\n text: item,\r\n key: dayNames[index]\r\n }));\r\n this._$repeatOnWeek = $(\"<div>\").addClass(RECURRENCE_BUTTON_GROUP).appendTo(itemElement);\r\n this._weekEditor = this._createComponent(this._$repeatOnWeek, ButtonGroup, {\r\n items: itemsButtonGroup,\r\n field: \"byday\",\r\n selectionMode: \"multiple\",\r\n selectedItemKeys: byDay,\r\n keyExpr: \"key\",\r\n onSelectionChanged: e => {\r\n var selectedItemKeys = e.component.option(\"selectedItemKeys\");\r\n var selectedKeys = (null === selectedItemKeys || void 0 === selectedItemKeys ? void 0 : selectedItemKeys.length) ? selectedItemKeys : this._getDefaultByDayValue();\r\n this._recurrenceRule.makeRule(\"byday\", selectedKeys);\r\n this._changeEditorValue()\r\n }\r\n })\r\n },\r\n visible: \"weekly\" === freq,\r\n label: {\r\n visible: false\r\n }\r\n }\r\n }\r\n _createByMonthEditor(freq) {\r\n var monthsName = dateLocalization.getMonthNames(\"wide\");\r\n var months = [...Array(12)].map((_, i) => ({\r\n value: \"\".concat(i + 1),\r\n text: monthsName[i]\r\n }));\r\n return {\r\n dataField: \"bymonth\",\r\n editorType: \"dxSelectBox\",\r\n editorOptions: {\r\n stylingMode: getStylingModeFunc(),\r\n field: \"bymonth\",\r\n items: months,\r\n value: this._monthOfYearByRules(),\r\n width: recurrentEditorSelectBoxWidth,\r\n displayExpr: \"text\",\r\n valueExpr: \"value\",\r\n elementAttr: {\r\n class: MONTH_OF_YEAR\r\n },\r\n onValueChanged: args => this._valueChangedHandler(args)\r\n },\r\n visible: \"yearly\" === freq,\r\n label: {\r\n visible: false\r\n }\r\n }\r\n }\r\n _createByMonthDayEditor(freq) {\r\n return {\r\n dataField: \"bymonthday\",\r\n editorType: \"dxNumberBox\",\r\n editorOptions: {\r\n stylingMode: getStylingModeFunc(),\r\n min: 1,\r\n max: 31,\r\n format: \"#\",\r\n width: recurrentEditorNumberBoxWidth,\r\n field: \"bymonthday\",\r\n showSpinButtons: true,\r\n useLargeSpinButtons: false,\r\n value: this._dayOfMonthByRules(),\r\n elementAttr: {\r\n class: DAY_OF_MONTH\r\n },\r\n onValueChanged: args => this._valueChangedHandler(args)\r\n },\r\n visible: \"monthly\" === freq || \"yearly\" === freq,\r\n label: {\r\n visible: false\r\n }\r\n }\r\n }\r\n _createRepeatEndEditor() {\r\n var repeatType = this._recurrenceRule.getRepeatEndRule();\r\n return [{\r\n dataField: \"repeatEnd\",\r\n editorType: \"dxRadioGroup\",\r\n editorOptions: {\r\n items: repeatEndTypes,\r\n value: repeatType,\r\n valueExpr: \"type\",\r\n field: \"repeatEnd\",\r\n itemTemplate: itemData => {\r\n if (\"count\" === itemData.type) {\r\n return this._renderRepeatCountEditor()\r\n }\r\n if (\"until\" === itemData.type) {\r\n return this._renderRepeatUntilEditor()\r\n }\r\n return this._renderDefaultRepeatEnd()\r\n },\r\n layout: \"vertical\",\r\n elementAttr: {\r\n class: REPEAT_END_TYPE_EDITOR\r\n },\r\n onValueChanged: args => this._repeatEndValueChangedHandler(args)\r\n },\r\n label: {\r\n text: messageLocalization.format(\"dxScheduler-recurrenceEnd\")\r\n }\r\n }]\r\n }\r\n _renderEditors($container) {\r\n this._recurrenceForm = this._createComponent($container, Form, {\r\n items: this._editors,\r\n showValidationSummary: false,\r\n scrollingEnabled: true,\r\n showColonAfterLabel: false,\r\n labelLocation: \"top\"\r\n });\r\n this._disableRepeatEndParts()\r\n }\r\n _setAriaDescribedBy(editor, $label) {\r\n var labelId = \"label-\".concat(new Guid);\r\n editor.setAria(\"describedby\", labelId);\r\n editor.setAria(\"id\", labelId, $label)\r\n }\r\n getRecurrenceForm() {\r\n return this._recurrenceForm\r\n }\r\n changeValueByVisibility(value) {\r\n if (value) {\r\n if (!this.option(\"value\")) {\r\n this._handleDefaults()\r\n }\r\n } else {\r\n this._recurrenceRule.makeRules(\"\");\r\n this.option(\"value\", \"\")\r\n }\r\n }\r\n _handleDefaults() {\r\n this._recurrenceRule.makeRule(\"freq\", frequenciesMessages[defaultRecurrenceTypeIndex].value);\r\n this._changeEditorValue()\r\n }\r\n _changeEditorValue() {\r\n this.option(\"value\", this._recurrenceRule.getRecurrenceString() || \"\")\r\n }\r\n _daysOfWeekByRules() {\r\n var daysByRule = this._recurrenceRule.getDaysFromByDayRule();\r\n if (!daysByRule.length) {\r\n daysByRule = this._getDefaultByDayValue()\r\n }\r\n return daysByRule\r\n }\r\n _getDefaultByDayValue() {\r\n var startDate = this.option(\"startDate\");\r\n var startDay = startDate.getDay();\r\n return [days[startDay]]\r\n }\r\n _dayOfMonthByRules() {\r\n var dayByRule = this._recurrenceRule.getRules().bymonthday;\r\n if (!dayByRule) {\r\n dayByRule = this.option(\"startDate\").getDate()\r\n }\r\n return dayByRule\r\n }\r\n _monthOfYearByRules() {\r\n var monthByRule = this._recurrenceRule.getRules().bymonth;\r\n if (!monthByRule) {\r\n monthByRule = this.option(\"startDate\").getMonth() + 1\r\n }\r\n return String(monthByRule)\r\n }\r\n _renderDefaultRepeatEnd() {\r\n var $editorTemplate = $(\"<div>\").addClass(REPEAT_END_EDITOR + WRAPPER_POSTFIX);\r\n $(\"<div>\").text(messageLocalization.format(\"dxScheduler-recurrenceNever\")).addClass(REPEAT_END_EDITOR + LABEL_POSTFIX).appendTo($editorTemplate);\r\n return $editorTemplate\r\n }\r\n _repeatEndValueChangedHandler(args) {\r\n var {\r\n value: value\r\n } = args;\r\n this._disableRepeatEndParts(value);\r\n if (\"until\" === value) {\r\n this._recurrenceRule.makeRule(value, this._getUntilValue())\r\n }\r\n if (\"count\" === value) {\r\n this._recurrenceRule.makeRule(value, this._repeatCountEditor.option(\"value\"))\r\n }\r\n if (\"never\" === value) {\r\n this._recurrenceRule.makeRule(\"count\", \"\");\r\n this._recurrenceRule.makeRule(\"until\", \"\")\r\n }\r\n this._changeEditorValue()\r\n }\r\n _disableRepeatEndParts() {\r\n var value = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._recurrenceRule.getRepeatEndRule();\r\n if (\"until\" === value) {\r\n this._repeatCountEditor.option(\"disabled\", true);\r\n this._repeatUntilDate.option(\"disabled\", false)\r\n }\r\n if (\"count\" === value) {\r\n this._repeatCountEditor.option(\"disabled\", false);\r\n this._repeatUntilDate.option(\"disabled\", true)\r\n }\r\n if (\"never\" === value) {\r\n this._repeatCountEditor.option(\"disabled\", true);\r\n this._repeatUntilDate.option(\"disabled\", true)\r\n }\r\n }\r\n _renderRepeatCountEditor() {\r\n var repeatCount = this._recurrenceRule.getRules().count || 1;\r\n var $editorWrapper = $(\"<div>\").addClass(REPEAT_END_EDITOR + WRAPPER_POSTFIX);\r\n $(\"<div>\").text(messageLocalization.format(\"dxScheduler-recurrenceAfter\")).addClass(REPEAT_END_EDITOR + LABEL_POSTFIX).appendTo($editorWrapper);\r\n this._$repeatCountEditor = $(\"<div>\").addClass(REPEAT_COUNT_EDITOR).appendTo($editorWrapper);\r\n $(\"<div>\").text(messageLocalization.format(\"dxScheduler-recurrenceRepeatCount\")).addClass(REPEAT_END_EDITOR + LABEL_POSTFIX).appendTo($editorWrapper);\r\n this._repeatCountEditor = this._createComponent(this._$repeatCountEditor, NumberBox, {\r\n stylingMode: getStylingModeFunc(),\r\n field: \"count\",\r\n format: \"#\",\r\n width: recurrentEditorNumberBoxWidth,\r\n min: 1,\r\n showSpinButtons: true,\r\n useLargeSpinButtons: false,\r\n value: repeatCount,\r\n onValueChanged: this._repeatCountValueChangeHandler.bind(this)\r\n });\r\n return $editorWrapper\r\n }\r\n _repeatCountValueChangeHandler(args) {\r\n if (\"count\" === this._recurrenceRule.getRepeatEndRule()) {\r\n var {\r\n value: value\r\n } = args;\r\n this._recurrenceRule.makeRule(\"count\", value);\r\n this._changeEditorValue()\r\n }\r\n }\r\n _formatUntilDate(date) {\r\n if (this._recurrenceRule.getRules().until && dateUtils.sameDate(this._recurrenceRule.getRules().until, date)) {\r\n return date\r\n }\r\n return dateUtils.setToDayEnd(date)\r\n }\r\n _renderRepeatUntilEditor() {\r\n var repeatUntil = this._getUntilValue();\r\n var $editorWrapper = $(\"<div>\").addClass(REPEAT_END_EDITOR + WRAPPER_POSTFIX);\r\n $(\"<div>\").text(messageLocalization.format(\"dxScheduler-recurrenceOn\")).addClass(REPEAT_END_EDITOR + LABEL_POSTFIX).appendTo($editorWrapper);\r\n this._$repeatDateEditor = $(\"<div>\").addClass(REPEAT_UNTIL_DATE_EDITOR).appendTo($editorWrapper);\r\n this._repeatUntilDate = this._createComponent(this._$repeatDateEditor, DateBox, {\r\n stylingMode: getStylingModeFunc(),\r\n field: \"until\",\r\n value: repeatUntil,\r\n type: \"date\",\r\n onValueChanged: this._repeatUntilValueChangeHandler.bind(this),\r\n calendarOptions: {\r\n firstDayOfWeek: this._getFirstDayOfWeek()\r\n },\r\n useMaskBehavior: true\r\n });\r\n return $editorWrapper\r\n }\r\n _repeatUntilValueChangeHandler(args) {\r\n if (\"until\" === this._recurrenceRule.getRepeatEndRule()) {\r\n var dateInTimeZone = this._formatUntilDate(new Date(args.value));\r\n var getStartDateTimeZone = this.option(\"getStartDateTimeZone\");\r\n var appointmentTimeZone = getStartDateTimeZone();\r\n var path = appointmentTimeZone ? PathTimeZoneConversion.fromAppointmentToSource : PathTimeZoneConversion.fromGridToSource;\r\n var dateInLocaleTimeZone = this.option(\"timeZoneCalculator\").createDate(dateInTimeZone, {\r\n path: path,\r\n appointmentTimeZone: appointmentTimeZone\r\n });\r\n this._recurrenceRule.makeRule(\"until\", dateInLocaleTimeZone);\r\n this._changeEditorValue()\r\n }\r\n }\r\n _valueChangedHandler(args) {\r\n var {\r\n value: value,\r\n previousValue: previousValue\r\n } = args;\r\n var field = args.component.option(\"field\");\r\n if (!this.option(\"visible\")) {\r\n this.option(\"value\", \"\")\r\n } else {\r\n this._recurrenceRule.makeRule(field, value);\r\n if (\"freq\" === field) {\r\n this._makeRepeatOnRule(value);\r\n this._changeRepeatOnVisibility(value, previousValue)\r\n }\r\n this._changeEditorValue()\r\n }\r\n }\r\n _makeRepeatOnRule(value) {\r\n if (\"daily\" === value || \"hourly\" === value) {\r\n this._recurrenceRule.makeRule(\"byday\", \"\");\r\n this._recurrenceRule.makeRule(\"bymonth\", \"\");\r\n this._recurrenceRule.makeRule(\"bymonthday\", \"\")\r\n }\r\n if (\"weekly\" === value) {\r\n this._recurrenceRule.makeRule(\"byday\", this._daysOfWeekByRules());\r\n this._recurrenceRule.makeRule(\"bymonth\", \"\");\r\n this._recurrenceRule.makeRule(\"bymonthday\", \"\")\r\n }\r\n if (\"monthly\" === value) {\r\n this._recurrenceRule.makeRule(\"bymonthday\", this._dayOfMonthByRules());\r\n this._recurrenceRule.makeRule(\"bymonth\", \"\");\r\n this._recurrenceRule.makeRule(\"byday\", \"\")\r\n }\r\n if (\"yearly\" === value) {\r\n this._recurrenceRule.makeRule(\"bymonthday\", this._dayOfMonthByRules());\r\n this._recurrenceRule.makeRule(\"bymonth\", this._monthOfYearByRules());\r\n this._recurrenceRule.makeRule(\"byday\", \"\")\r\n }\r\n }\r\n _optionChanged(args) {\r\n var _a, _b, _c, _d;\r\n switch (args.name) {\r\n case \"readOnly\":\r\n null === (_a = this._recurrenceForm) || void 0 === _a ? void 0 : _a.option(\"readOnly\", args.value);\r\n null === (_b = this._repeatCountEditor) || void 0 === _b ? void 0 : _b.option(\"readOnly\", args.value);\r\n null === (_c = this._weekEditor) || void 0 === _c ? void 0 : _c.option(\"readOnly\", args.value);\r\n null === (_d = this._repeatUntilDate) || void 0 === _d ? void 0 : _d.option(\"readOnly\", args.value);\r\n super._optionChanged(args);\r\n break;\r\n case \"value\":\r\n this._recurrenceRule.makeRules(args.value);\r\n this._changeRepeatIntervalLabel();\r\n this._disableRepeatEndParts();\r\n this._changeEditorsValue(this._recurrenceRule.getRules());\r\n super._optionChanged(args);\r\n break;\r\n case \"startDate\":\r\n this._makeRepeatOnRule(this._recurrenceRule.getRules().freq);\r\n if (isDefined(this._recurrenceRule.getRecurrenceString())) {\r\n this._changeEditorValue()\r\n }\r\n break;\r\n case \"firstDayOfWeek\":\r\n if (this._weekEditor) {\r\n var localDaysNames = dateLocalization.getDayNames(\"abbreviated\");\r\n var dayNames = days.slice(args.value).concat(days.slice(0, args.value));\r\n var itemsButtonGroup = localDaysNames.slice(args.value).concat(localDaysNames.slice(0, args.value)).map((item, index) => ({\r\n text: item,\r\n key: dayNames[index]\r\n }));\r\n this._weekEditor.option(\"items\", itemsButtonGroup)\r\n }\r\n if (this._$repeatDateEditor) {\r\n this._repeatUntilDate.option(\"calendarOptions.firstDayOfWeek\", this._getFirstDayOfWeek())\r\n }\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _changeRepeatOnVisibility(freq, previousFreq) {\r\n if (freq !== previousFreq) {\r\n this._recurrenceForm.itemOption(\"byday\", \"visible\", false);\r\n this._recurrenceForm.itemOption(\"bymonthday\", \"visible\", false);\r\n this._recurrenceForm.itemOption(\"bymonth\", \"visible\", false);\r\n this._recurrenceForm.itemOption(\"repeatOnLabel\", \"visible\", freq && \"daily\" !== freq && \"hourly\" !== freq);\r\n if (\"weekly\" === freq) {\r\n this._recurrenceForm.itemOption(\"byday\", \"visible\", true)\r\n }\r\n if (\"monthly\" === freq) {\r\n this._recurrenceForm.itemOption(\"bymonthday\", \"visible\", true)\r\n }\r\n if (\"yearly\" === freq) {\r\n this._recurrenceForm.itemOption(\"bymonthday\", \"visible\", true);\r\n this._recurrenceForm.itemOption(\"bymonth\", \"visible\", true)\r\n }\r\n }\r\n }\r\n _changeRepeatIntervalLabel() {\r\n var {\r\n freq: freq\r\n } = this._recurrenceRule.getRules();\r\n freq && this._recurrenceForm.itemOption(\"intervalLabel\", \"template\", messageLocalization.format(\"dxScheduler-recurrenceRepeat\".concat(freq.charAt(0).toUpperCase()).concat(freq.substr(1).toLowerCase())))\r\n }\r\n _changeEditorsValue(rules) {\r\n this._recurrenceForm.getEditor(\"freq\").option(\"value\", (rules.freq || frequenciesMessages[defaultRecurrenceTypeIndex].value).toLowerCase());\r\n this._changeDayOfWeekValue();\r\n this._changeDayOfMonthValue();\r\n this._changeMonthOfYearValue();\r\n this._changeIntervalValue(rules.interval);\r\n this._changeRepeatCountValue();\r\n this._changeRepeatEndValue();\r\n this._changeRepeatUntilValue()\r\n }\r\n _changeIntervalValue(value) {\r\n this._recurrenceForm.getEditor(\"interval\").option(\"value\", value || 1)\r\n }\r\n _changeRepeatEndValue() {\r\n var repeatType = this._recurrenceRule.getRepeatEndRule();\r\n this._recurrenceForm.getEditor(\"repeatEnd\").option(\"value\", repeatType)\r\n }\r\n _changeDayOfWeekValue() {\r\n var isEditorVisible = this._recurrenceForm.itemOption(\"byday\").visible;\r\n if (isEditorVisible) {\r\n var _days = this._daysOfWeekByRules();\r\n this.getEditorByField(\"byday\").option(\"selectedItemKeys\", _days)\r\n }\r\n }\r\n _changeDayOfMonthValue() {\r\n var isEditorVisible = this._recurrenceForm.itemOption(\"bymonthday\").visible;\r\n if (isEditorVisible) {\r\n var day = this._dayOfMonthByRules();\r\n this._recurrenceForm.getEditor(\"bymonthday\").option(\"value\", day)\r\n }\r\n }\r\n _changeMonthOfYearValue() {\r\n var isEditorVisible = this._recurrenceForm.itemOption(\"bymonth\").visible;\r\n if (isEditorVisible) {\r\n var month = this._monthOfYearByRules();\r\n this._recurrenceForm.getEditor(\"bymonth\").option(\"value\", month)\r\n }\r\n }\r\n _changeRepeatCountValue() {\r\n var count = this._recurrenceRule.getRules().count || 1;\r\n this._repeatCountEditor.option(\"value\", count)\r\n }\r\n _changeRepeatUntilValue() {\r\n this._repeatUntilDate.option(\"value\", this._getUntilValue())\r\n }\r\n _getUntilValue() {\r\n var untilDate = this._recurrenceRule.getRules().until;\r\n if (!untilDate) {\r\n return this._formatUntilDate(new Date)\r\n }\r\n var getStartDateTimeZone = this.option(\"getStartDateTimeZone\");\r\n var appointmentTimeZone = getStartDateTimeZone();\r\n var path = appointmentTimeZone ? PathTimeZoneConversion.fromSourceToAppointment : PathTimeZoneConversion.fromSourceToGrid;\r\n return this.option(\"timeZoneCalculator\").createDate(untilDate, {\r\n path: path,\r\n appointmentTimeZone: appointmentTimeZone\r\n })\r\n }\r\n toggle() {\r\n this._freqEditor.focus()\r\n }\r\n setAria() {\r\n if (this._switchEditor) {\r\n this._switchEditor.setAria(arguments.length <= 0 ? void 0 : arguments[0], arguments.length <= 1 ? void 0 : arguments[1])\r\n }\r\n }\r\n}\r\nregisterComponent(\"dxRecurrenceEditor\", RecurrenceEditor);\r\nexport default RecurrenceEditor;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/text_box/m_utils.scroll.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n isDxMouseWheelEvent\r\n} from \"../../../events/utils/index\";\r\nvar allowScroll = function(container, delta, shiftKey) {\r\n var $container = $(container);\r\n var scrollTopPos = shiftKey ? $container.scrollLeft() : $container.scrollTop();\r\n var prop = shiftKey ? \"Width\" : \"Height\";\r\n var scrollSize = $container.prop(\"scroll\".concat(prop));\r\n var clientSize = $container.prop(\"client\".concat(prop));\r\n var scrollBottomPos = scrollSize - clientSize - scrollTopPos | 0;\r\n if (0 === scrollTopPos && 0 === scrollBottomPos) {\r\n return false\r\n }\r\n var isScrollFromTop = 0 === scrollTopPos && delta >= 0;\r\n var isScrollFromBottom = 0 === scrollBottomPos && delta <= 0;\r\n var isScrollFromMiddle = scrollTopPos > 0 && scrollBottomPos > 0;\r\n if (isScrollFromTop || isScrollFromBottom || isScrollFromMiddle) {\r\n return true\r\n }\r\n};\r\nvar prepareScrollData = function(container, validateTarget) {\r\n var $container = $(container);\r\n return {\r\n validate(e) {\r\n if (isDxMouseWheelEvent(e) && (eventTarget = e.target, validateTarget ? $(eventTarget).is(container) : true)) {\r\n if (allowScroll($container, -e.delta, e.shiftKey)) {\r\n e._needSkipEvent = true;\r\n return true\r\n }\r\n return false\r\n }\r\n var eventTarget\r\n }\r\n }\r\n};\r\nexport {\r\n allowScroll,\r\n prepareScrollData\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/ui/m_text_area.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n ensureDefined,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getElementBoxParams,\r\n getOuterHeight,\r\n getVerticalOffsets,\r\n parseHeight\r\n} from \"../../core/utils/size\";\r\nimport {\r\n isDefined\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 scrollEvents from \"../../events/gesture/emitter.gesture.scroll\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n addNamespace,\r\n eventData\r\n} from \"../../events/utils/index\";\r\nimport TextBox from \"../../ui/text_box\";\r\nimport {\r\n allowScroll,\r\n prepareScrollData\r\n} from \"../ui/text_box/m_utils.scroll\";\r\nvar TEXTAREA_CLASS = \"dx-textarea\";\r\nvar TEXTEDITOR_INPUT_CLASS_AUTO_RESIZE = \"dx-texteditor-input-auto-resize\";\r\nvar TextArea = TextBox.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n spellcheck: true,\r\n minHeight: void 0,\r\n maxHeight: void 0,\r\n autoResizeEnabled: false\r\n })\r\n },\r\n _initMarkup() {\r\n this.$element().addClass(TEXTAREA_CLASS);\r\n this.callBase();\r\n this.setAria(\"multiline\", \"true\")\r\n },\r\n _renderContentImpl() {\r\n this._updateInputHeight();\r\n this.callBase()\r\n },\r\n _renderInput() {\r\n this.callBase();\r\n this._renderScrollHandler()\r\n },\r\n _createInput() {\r\n var $input = $(\"<textarea>\");\r\n this._applyInputAttributes($input, this.option(\"inputAttr\"));\r\n this._updateInputAutoResizeAppearance($input);\r\n return $input\r\n },\r\n _setInputMinHeight: noop,\r\n _renderScrollHandler() {\r\n this._eventY = 0;\r\n var $input = this._input();\r\n var initScrollData = prepareScrollData($input, true);\r\n eventsEngine.on($input, addNamespace(scrollEvents.init, this.NAME), initScrollData, noop);\r\n eventsEngine.on($input, addNamespace(pointerEvents.down, this.NAME), this._pointerDownHandler.bind(this));\r\n eventsEngine.on($input, addNamespace(pointerEvents.move, this.NAME), this._pointerMoveHandler.bind(this))\r\n },\r\n _pointerDownHandler(e) {\r\n this._eventY = eventData(e).y\r\n },\r\n _pointerMoveHandler(e) {\r\n var currentEventY = eventData(e).y;\r\n var delta = this._eventY - currentEventY;\r\n if (allowScroll(this._input(), delta)) {\r\n e.isScrollingEvent = true;\r\n e.stopPropagation()\r\n }\r\n this._eventY = currentEventY\r\n },\r\n _renderDimensions() {\r\n var $element = this.$element();\r\n var element = $element.get(0);\r\n var width = this._getOptionValue(\"width\", element);\r\n var height = this._getOptionValue(\"height\", element);\r\n var minHeight = this.option(\"minHeight\");\r\n var maxHeight = this.option(\"maxHeight\");\r\n $element.css({\r\n minHeight: void 0 !== minHeight ? minHeight : \"\",\r\n maxHeight: void 0 !== maxHeight ? maxHeight : \"\",\r\n width: width,\r\n height: height\r\n })\r\n },\r\n _resetDimensions() {\r\n this.$element().css({\r\n height: \"\",\r\n minHeight: \"\",\r\n maxHeight: \"\"\r\n })\r\n },\r\n _renderEvents() {\r\n if (this.option(\"autoResizeEnabled\")) {\r\n eventsEngine.on(this._input(), addNamespace(\"input paste\", this.NAME), this._updateInputHeight.bind(this))\r\n }\r\n this.callBase()\r\n },\r\n _refreshEvents() {\r\n eventsEngine.off(this._input(), addNamespace(\"input paste\", this.NAME));\r\n this.callBase()\r\n },\r\n _getHeightDifference($input) {\r\n return getVerticalOffsets(this._$element.get(0), false) + getVerticalOffsets(this._$textEditorContainer.get(0), false) + getVerticalOffsets(this._$textEditorInputContainer.get(0), true) + getElementBoxParams(\"height\", getWindow().getComputedStyle($input.get(0))).margin\r\n },\r\n _updateInputHeight() {\r\n if (!hasWindow()) {\r\n return\r\n }\r\n var $input = this._input();\r\n var height = this.option(\"height\");\r\n var autoHeightResizing = void 0 === height && this.option(\"autoResizeEnabled\");\r\n var shouldCalculateInputHeight = autoHeightResizing || void 0 === height && this.option(\"minHeight\");\r\n if (!shouldCalculateInputHeight) {\r\n $input.css(\"height\", \"\");\r\n return\r\n }\r\n this._resetDimensions();\r\n this._$element.css(\"height\", getOuterHeight(this._$element));\r\n $input.css(\"height\", 0);\r\n var heightDifference = this._getHeightDifference($input);\r\n this._renderDimensions();\r\n var minHeight = this._getBoundaryHeight(\"minHeight\");\r\n var maxHeight = this._getBoundaryHeight(\"maxHeight\");\r\n var inputHeight = $input[0].scrollHeight;\r\n if (void 0 !== minHeight) {\r\n inputHeight = Math.max(inputHeight, minHeight - heightDifference)\r\n }\r\n if (void 0 !== maxHeight) {\r\n var adjustedMaxHeight = maxHeight - heightDifference;\r\n var needScroll = inputHeight > adjustedMaxHeight;\r\n inputHeight = Math.min(inputHeight, adjustedMaxHeight);\r\n this._updateInputAutoResizeAppearance($input, !needScroll)\r\n }\r\n $input.css(\"height\", inputHeight);\r\n if (autoHeightResizing) {\r\n this._$element.css(\"height\", \"auto\")\r\n }\r\n },\r\n _getBoundaryHeight(optionName) {\r\n var boundaryValue = this.option(optionName);\r\n if (isDefined(boundaryValue)) {\r\n return \"number\" === typeof boundaryValue ? boundaryValue : parseHeight(boundaryValue, this.$element().get(0).parentElement, this._$element.get(0))\r\n }\r\n },\r\n _renderInputType: noop,\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._updateInputHeight()\r\n }\r\n },\r\n _updateInputAutoResizeAppearance($input, isAutoResizeEnabled) {\r\n if ($input) {\r\n var autoResizeEnabled = ensureDefined(isAutoResizeEnabled, this.option(\"autoResizeEnabled\"));\r\n $input.toggleClass(TEXTEDITOR_INPUT_CLASS_AUTO_RESIZE, autoResizeEnabled)\r\n }\r\n },\r\n _dimensionChanged() {\r\n if (this.option(\"visible\")) {\r\n this._updateInputHeight()\r\n }\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"autoResizeEnabled\":\r\n this._updateInputAutoResizeAppearance(this._input(), args.value);\r\n this._refreshEvents();\r\n this._updateInputHeight();\r\n break;\r\n case \"value\":\r\n case \"height\":\r\n this.callBase(args);\r\n this._updateInputHeight();\r\n break;\r\n case \"minHeight\":\r\n case \"maxHeight\":\r\n this._renderDimensions();\r\n this._updateInputHeight();\r\n break;\r\n case \"visible\":\r\n this.callBase(args);\r\n args.value && this._updateInputHeight();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxTextArea\", TextArea);\r\nexport default TextArea;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/m_tag_box.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport devices from \"../../core/devices\";\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 Guid from \"../../core/guid\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../core/templates/bindable_template\";\r\nimport {\r\n getIntersection,\r\n removeDuplicates\r\n} from \"../../core/utils/array\";\r\nimport {\r\n ensureDefined,\r\n equalByValue,\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 createTextElementHiddenCopy\r\n} from \"../../core/utils/dom\";\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 SelectionFilterCreator as FilterCreator\r\n} from \"../../core/utils/selection_filter\";\r\nimport {\r\n getHeight,\r\n getOuterWidth\r\n} from \"../../core/utils/size\";\r\nimport {\r\n isDefined,\r\n isObject,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n normalizeLoadResult\r\n} from \"../../data/data_source/utils\";\r\nimport {\r\n name as clickEvent\r\n} from \"../../events/click\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport SelectBox from \"../../ui/select_box\";\r\nimport errors from \"../../ui/widget/ui.errors\";\r\nimport caret from \"../ui/text_box/m_utils.caret\";\r\nimport {\r\n allowScroll\r\n} from \"../ui/text_box/m_utils.scroll\";\r\n\r\nfunction xor(a, b) {\r\n return (a || b) && !(a && b)\r\n}\r\nvar TAGBOX_TAG_DATA_KEY = \"dxTagData\";\r\nvar TAGBOX_CLASS = \"dx-tagbox\";\r\nvar TAGBOX_TAG_CONTAINER_CLASS = \"dx-tag-container\";\r\nvar TAGBOX_TAG_CLASS = \"dx-tag\";\r\nvar TAGBOX_MULTI_TAG_CLASS = \"dx-tagbox-multi-tag\";\r\nvar TAGBOX_CUSTOM_TAG_CLASS = \"dx-tag-custom\";\r\nvar TAGBOX_TAG_REMOVE_BUTTON_CLASS = \"dx-tag-remove-button\";\r\nvar TAGBOX_ONLY_SELECT_CLASS = \"dx-tagbox-only-select\";\r\nvar TAGBOX_SINGLE_LINE_CLASS = \"dx-tagbox-single-line\";\r\nvar TAGBOX_POPUP_WRAPPER_CLASS = \"dx-tagbox-popup-wrapper\";\r\nvar TAGBOX_TAG_CONTENT_CLASS = \"dx-tag-content\";\r\nvar TAGBOX_DEFAULT_FIELD_TEMPLATE_CLASS = \"dx-tagbox-default-template\";\r\nvar TAGBOX_CUSTOM_FIELD_TEMPLATE_CLASS = \"dx-tagbox-custom-template\";\r\nvar TEXTEDITOR_INPUT_CONTAINER_CLASS = \"dx-texteditor-input-container\";\r\nvar TAGBOX_MOUSE_WHEEL_DELTA_MULTIPLIER = -.3;\r\nvar TagBox = SelectBox.inherit({\r\n _supportedKeys() {\r\n var parent = this.callBase();\r\n var sendToList = options => this._list._keyboardHandler(options);\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n return extend({}, parent, {\r\n backspace(e) {\r\n if (!this._isCaretAtTheStart()) {\r\n return\r\n }\r\n this._processKeyboardEvent(e);\r\n this._isTagRemoved = true;\r\n var $tagToDelete = this._$focusedTag || this._tagElements().last();\r\n if (this._$focusedTag) {\r\n this._moveTagFocus(\"prev\", true)\r\n }\r\n if (0 === $tagToDelete.length) {\r\n return\r\n }\r\n this._preserveFocusedTag = true;\r\n this._removeTagElement($tagToDelete);\r\n delete this._preserveFocusedTag\r\n },\r\n upArrow: (e, opts) => e.altKey || !this._list ? parent.upArrow.call(this, e) : sendToList(opts),\r\n downArrow: (e, opts) => e.altKey || !this._list ? parent.downArrow.call(this, e) : sendToList(opts),\r\n del(e) {\r\n if (!this._$focusedTag || !this._isCaretAtTheStart()) {\r\n return\r\n }\r\n this._processKeyboardEvent(e);\r\n this._isTagRemoved = true;\r\n var $tagToDelete = this._$focusedTag;\r\n this._moveTagFocus(\"next\", true);\r\n this._preserveFocusedTag = true;\r\n this._removeTagElement($tagToDelete);\r\n delete this._preserveFocusedTag\r\n },\r\n enter(e, options) {\r\n var isListItemFocused = this._list && null !== this._list.option(\"focusedElement\");\r\n var isCustomItem = this.option(\"acceptCustomValue\") && !isListItemFocused;\r\n if (isCustomItem) {\r\n e.preventDefault();\r\n \"\" !== this._searchValue() && this._customItemAddedHandler(e);\r\n return\r\n }\r\n if (this.option(\"opened\")) {\r\n this._saveValueChangeEvent(e);\r\n sendToList(options);\r\n e.preventDefault()\r\n }\r\n },\r\n space(e, options) {\r\n var isOpened = this.option(\"opened\");\r\n var isInputActive = this._shouldRenderSearchEvent();\r\n if (isOpened && !isInputActive) {\r\n this._saveValueChangeEvent(e);\r\n sendToList(options);\r\n e.preventDefault()\r\n }\r\n },\r\n leftArrow(e) {\r\n if (!this._isCaretAtTheStart() || this._isEmpty() || this._isEditable() && rtlEnabled && !this._$focusedTag) {\r\n return\r\n }\r\n e.preventDefault();\r\n var direction = rtlEnabled ? \"next\" : \"prev\";\r\n this._moveTagFocus(direction);\r\n !this.option(\"multiline\") && this._scrollContainer(direction)\r\n },\r\n rightArrow(e) {\r\n if (!this._isCaretAtTheStart() || this._isEmpty() || this._isEditable() && !rtlEnabled && !this._$focusedTag) {\r\n return\r\n }\r\n e.preventDefault();\r\n var direction = rtlEnabled ? \"prev\" : \"next\";\r\n this._moveTagFocus(direction);\r\n !this.option(\"multiline\") && this._scrollContainer(direction)\r\n }\r\n })\r\n },\r\n _processKeyboardEvent(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._saveValueChangeEvent(e)\r\n },\r\n _isEmpty() {\r\n return 0 === this._getValue().length\r\n },\r\n _updateTagsContainer($element) {\r\n this._$tagsContainer = $element.addClass(TAGBOX_TAG_CONTAINER_CLASS)\r\n },\r\n _allowSelectItemByTab: () => false,\r\n _isCaretAtTheStart() {\r\n var position = caret(this._input());\r\n return 0 === (null === position || void 0 === position ? void 0 : position.start) && 0 === position.end\r\n },\r\n _updateInputAriaActiveDescendant(id) {\r\n this.setAria(\"activedescendant\", id, this._input())\r\n },\r\n _moveTagFocus(direction, clearOnBoundary) {\r\n if (!this._$focusedTag) {\r\n var tagElements = this._tagElements();\r\n this._$focusedTag = \"next\" === direction ? tagElements.first() : tagElements.last();\r\n this._toggleFocusClass(true, this._$focusedTag);\r\n this._updateInputAriaActiveDescendant(this._$focusedTag.attr(\"id\"));\r\n return\r\n }\r\n var $nextFocusedTag = this._$focusedTag[direction](\".\".concat(TAGBOX_TAG_CLASS));\r\n if ($nextFocusedTag.length > 0) {\r\n this._replaceFocusedTag($nextFocusedTag);\r\n this._updateInputAriaActiveDescendant($nextFocusedTag.attr(\"id\"))\r\n } else if (clearOnBoundary || \"next\" === direction && this._isEditable()) {\r\n this._clearTagFocus();\r\n this._updateInputAriaActiveDescendant()\r\n }\r\n },\r\n _replaceFocusedTag($nextFocusedTag) {\r\n this._toggleFocusClass(false, this._$focusedTag);\r\n this._$focusedTag = $nextFocusedTag;\r\n this._toggleFocusClass(true, this._$focusedTag)\r\n },\r\n _clearTagFocus() {\r\n if (!this._$focusedTag) {\r\n return\r\n }\r\n this._toggleFocusClass(false, this._$focusedTag);\r\n this._updateInputAriaActiveDescendant();\r\n delete this._$focusedTag\r\n },\r\n _focusClassTarget($element) {\r\n if ($element && $element.length && $element[0] !== this._focusTarget()[0]) {\r\n return $element\r\n }\r\n return this.callBase()\r\n },\r\n _getLabelContainer() {\r\n return this._$tagsContainer\r\n },\r\n _getFieldElement() {\r\n return this._input()\r\n },\r\n _scrollContainer(direction) {\r\n if (this.option(\"multiline\") || !hasWindow()) {\r\n return\r\n }\r\n if (!this._$tagsContainer) {\r\n return\r\n }\r\n var scrollPosition = this._getScrollPosition(direction);\r\n this._$tagsContainer.scrollLeft(scrollPosition)\r\n },\r\n _getScrollPosition(direction) {\r\n if (\"start\" === direction || \"end\" === direction) {\r\n return this._getBorderPosition(direction)\r\n }\r\n return this._$focusedTag ? this._getFocusedTagPosition(direction) : this._getBorderPosition(\"end\")\r\n },\r\n _getBorderPosition(direction) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isScrollLeft = xor(\"end\" === direction, rtlEnabled);\r\n var scrollSign = rtlEnabled ? -1 : 1;\r\n return xor(isScrollLeft, !rtlEnabled) ? 0 : scrollSign * (this._$tagsContainer.get(0).scrollWidth - getOuterWidth(this._$tagsContainer))\r\n },\r\n _getFocusedTagPosition(direction) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isScrollLeft = xor(\"next\" === direction, rtlEnabled);\r\n var {\r\n left: scrollOffset\r\n } = this._$focusedTag.position();\r\n var scrollLeft = this._$tagsContainer.scrollLeft();\r\n if (isScrollLeft) {\r\n scrollOffset += getOuterWidth(this._$focusedTag, true) - getOuterWidth(this._$tagsContainer)\r\n }\r\n if (xor(isScrollLeft, scrollOffset < 0)) {\r\n scrollLeft += scrollOffset\r\n }\r\n return scrollLeft\r\n },\r\n _setNextValue: noop,\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n value: [],\r\n showDropDownButton: false,\r\n maxFilterQueryLength: 1500,\r\n tagTemplate: \"tag\",\r\n selectAllText: messageLocalization.format(\"dxList-selectAll\"),\r\n hideSelectedItems: false,\r\n selectedItems: [],\r\n selectAllMode: \"page\",\r\n onSelectAllValueChanged: null,\r\n maxDisplayedTags: void 0,\r\n showMultiTagOnly: true,\r\n onMultiTagPreparing: null,\r\n multiline: true,\r\n useSubmitBehavior: true\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._selectedItems = [];\r\n this._initSelectAllValueChangedAction()\r\n },\r\n _initActions() {\r\n this.callBase();\r\n this._initMultiTagPreparingAction()\r\n },\r\n _initMultiTagPreparingAction() {\r\n this._multiTagPreparingAction = this._createActionByOption(\"onMultiTagPreparing\", {\r\n beforeExecute: e => {\r\n this._multiTagPreparingHandler(e.args[0])\r\n },\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _multiTagPreparingHandler(args) {\r\n var {\r\n length: selectedCount\r\n } = this._getValue();\r\n if (!this.option(\"showMultiTagOnly\")) {\r\n args.text = messageLocalization.getFormatter(\"dxTagBox-moreSelected\")(selectedCount - this.option(\"maxDisplayedTags\") + 1)\r\n } else {\r\n args.text = messageLocalization.getFormatter(\"dxTagBox-selected\")(selectedCount)\r\n }\r\n },\r\n _initDynamicTemplates() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n tag: new BindableTemplate(($container, data) => {\r\n var _a;\r\n var $tagContent = $(\"<div>\").addClass(TAGBOX_TAG_CONTENT_CLASS);\r\n $(\"<span>\").text(null !== (_a = data.text) && void 0 !== _a ? _a : data).appendTo($tagContent);\r\n $(\"<div>\").addClass(TAGBOX_TAG_REMOVE_BUTTON_CLASS).appendTo($tagContent);\r\n $container.append($tagContent)\r\n }, [\"text\"], this.option(\"integrationOptions.watchMethod\"), {\r\n text: this._displayGetter\r\n })\r\n })\r\n },\r\n _toggleSubmitElement(enabled) {\r\n if (enabled) {\r\n this._renderSubmitElement();\r\n this._setSubmitValue()\r\n } else {\r\n this._$submitElement && this._$submitElement.remove();\r\n delete this._$submitElement\r\n }\r\n },\r\n _renderSubmitElement() {\r\n if (!this.option(\"useSubmitBehavior\")) {\r\n return\r\n }\r\n this._$submitElement = $(\"<select>\").attr({\r\n multiple: \"multiple\",\r\n \"aria-label\": \"Selected items\"\r\n }).css(\"display\", \"none\").appendTo(this.$element())\r\n },\r\n _setSubmitValue() {\r\n if (!this.option(\"useSubmitBehavior\")) {\r\n return\r\n }\r\n var value = this._getValue();\r\n var $options = [];\r\n for (var i = 0, n = value.length; i < n; i++) {\r\n var useDisplayText = this._shouldUseDisplayValue(value[i]);\r\n $options.push($(\"<option>\").val(useDisplayText ? this._displayGetter(value[i]) : value[i]).attr(\"selected\", \"selected\"))\r\n }\r\n this._getSubmitElement().empty().append($options)\r\n },\r\n _initMarkup() {\r\n this._tagElementsCache = $();\r\n var isSingleLineMode = !this.option(\"multiline\");\r\n this.$element().addClass(TAGBOX_CLASS).toggleClass(TAGBOX_ONLY_SELECT_CLASS, !(this.option(\"searchEnabled\") || this.option(\"acceptCustomValue\"))).toggleClass(TAGBOX_SINGLE_LINE_CLASS, isSingleLineMode);\r\n this.setAria({\r\n role: \"group\",\r\n roledescription: \"tagbox\"\r\n }, this.$element());\r\n this._initTagTemplate();\r\n this.callBase()\r\n },\r\n _getNewLabelId(actualId, newId, shouldRemove) {\r\n if (!actualId) {\r\n return newId\r\n }\r\n if (shouldRemove) {\r\n if (actualId === newId) {\r\n return\r\n }\r\n return actualId.split(\" \").filter(id => id !== newId).join(\" \")\r\n }\r\n return \"\".concat(actualId, \" \").concat(newId)\r\n },\r\n _updateElementAria(id, shouldRemove) {\r\n var shouldClearLabel = !id;\r\n if (shouldClearLabel) {\r\n this.setAria(\"labelledby\", void 0, this.$element());\r\n return\r\n }\r\n var labelId = this.$element().attr(\"aria-labelledby\");\r\n var newLabelId = this._getNewLabelId(labelId, id, shouldRemove);\r\n this.setAria(\"labelledby\", newLabelId, this.$element())\r\n },\r\n _render() {\r\n this.callBase();\r\n this._renderTagRemoveAction();\r\n this._renderSingleLineScroll();\r\n this._scrollContainer(\"start\")\r\n },\r\n _initTagTemplate() {\r\n this._tagTemplate = this._getTemplateByOption(\"tagTemplate\")\r\n },\r\n _renderField() {\r\n var isDefaultFieldTemplate = !isDefined(this.option(\"fieldTemplate\"));\r\n this.$element().toggleClass(TAGBOX_DEFAULT_FIELD_TEMPLATE_CLASS, isDefaultFieldTemplate).toggleClass(TAGBOX_CUSTOM_FIELD_TEMPLATE_CLASS, !isDefaultFieldTemplate);\r\n this.callBase()\r\n },\r\n _renderTagRemoveAction() {\r\n var tagRemoveAction = this._createAction(this._removeTagHandler.bind(this));\r\n var eventName = addNamespace(clickEvent, \"dxTagBoxTagRemove\");\r\n eventsEngine.off(this._$tagsContainer, eventName);\r\n eventsEngine.on(this._$tagsContainer, eventName, \".\".concat(TAGBOX_TAG_REMOVE_BUTTON_CLASS), event => {\r\n tagRemoveAction({\r\n event: event\r\n })\r\n })\r\n },\r\n _renderSingleLineScroll() {\r\n var mouseWheelEvent = addNamespace(\"dxmousewheel\", this.NAME);\r\n var $element = this.$element();\r\n var isMultiline = this.option(\"multiline\");\r\n eventsEngine.off($element, mouseWheelEvent);\r\n if (\"desktop\" !== devices.real().deviceType) {\r\n this._$tagsContainer && this._$tagsContainer.css(\"overflowX\", isMultiline ? \"\" : \"auto\");\r\n return\r\n }\r\n if (isMultiline) {\r\n return\r\n }\r\n eventsEngine.on($element, mouseWheelEvent, this._tagContainerMouseWheelHandler.bind(this))\r\n },\r\n _tagContainerMouseWheelHandler(e) {\r\n var scrollLeft = this._$tagsContainer.scrollLeft();\r\n var delta = e.delta * TAGBOX_MOUSE_WHEEL_DELTA_MULTIPLIER;\r\n if (!isCommandKeyPressed(e) && allowScroll(this._$tagsContainer, delta, true)) {\r\n this._$tagsContainer.scrollLeft(scrollLeft + delta);\r\n return false\r\n }\r\n return\r\n },\r\n _renderEvents() {\r\n this.callBase();\r\n var input = this._input();\r\n var namespace = addNamespace(\"keydown\", this.NAME);\r\n eventsEngine.on(input, namespace, e => {\r\n var keyName = normalizeKeyName(e);\r\n if (!this._isControlKey(keyName) && this._isEditable()) {\r\n this._clearTagFocus()\r\n }\r\n })\r\n },\r\n _popupWrapperClass() {\r\n return \"\".concat(this.callBase(), \" \").concat(TAGBOX_POPUP_WRAPPER_CLASS)\r\n },\r\n _renderInput() {\r\n this.callBase();\r\n this._renderPreventBlurOnInputClick()\r\n },\r\n _renderPreventBlurOnInputClick() {\r\n var eventName = addNamespace(\"mousedown\", \"dxTagBox\");\r\n eventsEngine.off(this._inputWrapper(), eventName);\r\n eventsEngine.on(this._inputWrapper(), eventName, e => {\r\n if (e.target !== this._input()[0] && this._isFocused()) {\r\n e.preventDefault()\r\n }\r\n })\r\n },\r\n _renderInputValueImpl() {\r\n return this._renderMultiSelect()\r\n },\r\n _loadInputValue: () => when(),\r\n _clearTextValue() {\r\n this._input().val(\"\");\r\n this._toggleEmptinessEventHandler();\r\n this.option(\"text\", \"\")\r\n },\r\n _focusInHandler(e) {\r\n if (!this._preventNestedFocusEvent(e)) {\r\n this._scrollContainer(\"end\")\r\n }\r\n this.callBase(e)\r\n },\r\n _renderInputValue() {\r\n this.option(\"displayValue\", this._searchValue());\r\n return this.callBase()\r\n },\r\n _restoreInputText(saveEditingValue) {\r\n if (!saveEditingValue) {\r\n this._clearTextValue()\r\n }\r\n },\r\n _focusOutHandler(e) {\r\n if (!this._preventNestedFocusEvent(e)) {\r\n this._clearTagFocus();\r\n this._scrollContainer(\"start\")\r\n }\r\n this.callBase(e)\r\n },\r\n _initSelectAllValueChangedAction() {\r\n this._selectAllValueChangeAction = this._createActionByOption(\"onSelectAllValueChanged\")\r\n },\r\n _renderList() {\r\n this.callBase();\r\n this._setListDataSourceFilter()\r\n },\r\n _canListHaveFocus() {\r\n return \"useButtons\" === this.option(\"applyValueMode\")\r\n },\r\n _listConfig() {\r\n var selectionMode = this.option(\"showSelectionControls\") ? \"all\" : \"multiple\";\r\n return extend(this.callBase(), {\r\n maxFilterLengthInRequest: this.option(\"maxFilterQueryLength\"),\r\n selectionMode: selectionMode,\r\n selectAllText: this.option(\"selectAllText\"),\r\n onSelectAllValueChanged: _ref => {\r\n var {\r\n value: value\r\n } = _ref;\r\n this._selectAllValueChangeAction({\r\n value: value\r\n })\r\n },\r\n selectAllMode: this.option(\"selectAllMode\"),\r\n selectedItems: this._selectedItems,\r\n onFocusedItemChanged: null\r\n })\r\n },\r\n _renderMultiSelect() {\r\n var d = Deferred();\r\n this._updateTagsContainer(this._$textEditorInputContainer);\r\n this._renderInputSize();\r\n this._renderTags().done(() => {\r\n this._popup && this._popup.refreshPosition();\r\n d.resolve()\r\n }).fail(d.reject);\r\n return d.promise()\r\n },\r\n _listItemClickHandler(e) {\r\n !this.option(\"showSelectionControls\") && this._clearTextValue();\r\n if (\"useButtons\" === this.option(\"applyValueMode\")) {\r\n return\r\n }\r\n this.callBase(e);\r\n this._saveValueChangeEvent(void 0)\r\n },\r\n _shouldClearFilter() {\r\n var shouldClearFilter = this.callBase();\r\n var showSelectionControls = this.option(\"showSelectionControls\");\r\n return !showSelectionControls && shouldClearFilter\r\n },\r\n _renderInputSize() {\r\n var $input = this._input();\r\n var value = $input.val();\r\n var isEmptyInput = isString(value) && value;\r\n var width = \"\";\r\n var size;\r\n var canTypeText = this.option(\"searchEnabled\") || this.option(\"acceptCustomValue\");\r\n if (isEmptyInput && canTypeText) {\r\n var $calculationElement = createTextElementHiddenCopy($input, value, {\r\n includePaddings: true\r\n });\r\n $calculationElement.insertAfter($input);\r\n width = getOuterWidth($calculationElement) + 5;\r\n $calculationElement.remove()\r\n } else if (!value) {\r\n size = 1\r\n }\r\n $input.css(\"width\", width);\r\n $input.attr(\"size\", null !== size && void 0 !== size ? size : \"\")\r\n },\r\n _renderInputSubstitution() {\r\n this.callBase();\r\n this._updateWidgetHeight()\r\n },\r\n _getValue() {\r\n return this.option(\"value\") || []\r\n },\r\n _multiTagRequired() {\r\n var values = this._getValue();\r\n var maxDisplayedTags = this.option(\"maxDisplayedTags\");\r\n return isDefined(maxDisplayedTags) && values.length > maxDisplayedTags\r\n },\r\n _renderMultiTag($input) {\r\n var $tag = $(\"<div>\").addClass(TAGBOX_TAG_CLASS).addClass(TAGBOX_MULTI_TAG_CLASS);\r\n var args = {\r\n multiTagElement: getPublicElement($tag),\r\n selectedItems: this.option(\"selectedItems\")\r\n };\r\n this._multiTagPreparingAction(args);\r\n if (args.cancel) {\r\n return false\r\n }\r\n $tag.data(TAGBOX_TAG_DATA_KEY, args.text);\r\n $tag.insertBefore($input);\r\n this._tagTemplate.render({\r\n model: args.text,\r\n container: getPublicElement($tag)\r\n });\r\n return $tag\r\n },\r\n _getFilter(creator) {\r\n var dataSourceFilter = this._dataController.filter();\r\n var filterExpr = creator.getCombinedFilter(this.option(\"valueExpr\"), dataSourceFilter);\r\n var filterQueryLength = encodeURI(JSON.stringify(filterExpr)).length;\r\n var maxFilterQueryLength = this.option(\"maxFilterQueryLength\");\r\n if (filterQueryLength <= maxFilterQueryLength) {\r\n return filterExpr\r\n }\r\n errors.log(\"W1019\", maxFilterQueryLength)\r\n },\r\n _getFilteredItems(values) {\r\n var _a, _b;\r\n null === (_a = this._loadFilteredItemsPromise) || void 0 === _a ? void 0 : _a.reject();\r\n var creator = new FilterCreator(values);\r\n var listSelectedItems = null === (_b = this._list) || void 0 === _b ? void 0 : _b.option(\"selectedItems\");\r\n var isListItemsLoaded = !!listSelectedItems && this._list._dataController.isLoaded();\r\n var selectedItems = listSelectedItems || this.option(\"selectedItems\");\r\n var clientFilterFunction = creator.getLocalFilter(this._valueGetter);\r\n var filteredItems = selectedItems.filter(clientFilterFunction);\r\n var selectedItemsAlreadyLoaded = filteredItems.length === values.length;\r\n var d = Deferred();\r\n var dataController = this._dataController;\r\n if ((!this._isDataSourceChanged || isListItemsLoaded) && selectedItemsAlreadyLoaded) {\r\n return d.resolve(filteredItems).promise()\r\n }\r\n var {\r\n customQueryParams: customQueryParams,\r\n expand: expand,\r\n select: select\r\n } = dataController.loadOptions();\r\n var filter = this._getFilter(creator);\r\n dataController.loadFromStore({\r\n filter: filter,\r\n customQueryParams: customQueryParams,\r\n expand: expand,\r\n select: select\r\n }).done((data, extra) => {\r\n this._isDataSourceChanged = false;\r\n if (this._disposed) {\r\n d.reject();\r\n return\r\n }\r\n var {\r\n data: items\r\n } = normalizeLoadResult(data, extra);\r\n var mappedItems = dataController.applyMapFunction(items);\r\n d.resolve(mappedItems.filter(clientFilterFunction))\r\n }).fail(d.reject);\r\n this._loadFilteredItemsPromise = d;\r\n return d.promise()\r\n },\r\n _createTagsData(values, filteredItems) {\r\n var items = [];\r\n var cache = {};\r\n var isValueExprSpecified = \"this\" === this._valueGetterExpr();\r\n var filteredValues = {};\r\n filteredItems.forEach(filteredItem => {\r\n var filteredItemValue = isValueExprSpecified ? JSON.stringify(filteredItem) : this._valueGetter(filteredItem);\r\n filteredValues[filteredItemValue] = filteredItem\r\n });\r\n var loadItemPromises = [];\r\n values.forEach((value, index) => {\r\n var currentItem = filteredValues[isValueExprSpecified ? JSON.stringify(value) : value];\r\n if (isValueExprSpecified && !isDefined(currentItem)) {\r\n loadItemPromises.push(this._loadItem(value, cache).always(item => {\r\n var newItem = this._createTagData(item, value);\r\n items.splice(index, 0, newItem)\r\n }))\r\n } else {\r\n var newItem = this._createTagData(currentItem, value);\r\n items.splice(index, 0, newItem)\r\n }\r\n });\r\n var d = Deferred();\r\n when.apply(this, loadItemPromises).always(() => {\r\n d.resolve(items)\r\n });\r\n return d.promise()\r\n },\r\n _createTagData(item, value) {\r\n if (isDefined(item)) {\r\n this._selectedItems.push(item);\r\n return item\r\n }\r\n var selectedItem = this.option(\"selectedItem\");\r\n var customItem = this._valueGetter(selectedItem) === value ? selectedItem : value;\r\n return customItem\r\n },\r\n _isGroupedData() {\r\n return this.option(\"grouped\") && !this._dataController.group()\r\n },\r\n _getItemsByValues(values) {\r\n var resultItems = [];\r\n values.forEach(value => {\r\n var item = this._getItemFromPlain(value);\r\n if (isDefined(item)) {\r\n resultItems.push(item)\r\n }\r\n });\r\n return resultItems\r\n },\r\n _getFilteredGroupedItems(values) {\r\n var selectedItems = Deferred();\r\n if (this._filteredGroupedItemsLoadPromise) {\r\n this._dataController.cancel(this._filteredGroupedItemsLoadPromise.operationId)\r\n }\r\n if (!this._dataController.items().length) {\r\n this._filteredGroupedItemsLoadPromise = this._dataController.load().done(() => {\r\n selectedItems.resolve(this._getItemsByValues(values))\r\n }).fail(() => {\r\n selectedItems.resolve([])\r\n }).always(() => {\r\n this._filteredGroupedItemsLoadPromise = void 0\r\n })\r\n } else {\r\n selectedItems.resolve(this._getItemsByValues(values))\r\n }\r\n return selectedItems.promise()\r\n },\r\n _loadTagsData() {\r\n var values = this._getValue();\r\n var tagData = Deferred();\r\n this._selectedItems = [];\r\n var filteredItemsPromise = this._isGroupedData() ? this._getFilteredGroupedItems(values) : this._getFilteredItems(values);\r\n filteredItemsPromise.done(filteredItems => {\r\n var items = this._createTagsData(values, filteredItems);\r\n items.always(data => {\r\n tagData.resolve(data)\r\n })\r\n }).fail(tagData.reject.bind(this));\r\n return tagData.promise()\r\n },\r\n _renderTags() {\r\n var d = Deferred();\r\n var isPlainDataUsed = false;\r\n if (this._shouldGetItemsFromPlain(this._valuesToUpdate)) {\r\n this._selectedItems = this._getItemsFromPlain(this._valuesToUpdate);\r\n if (this._selectedItems.length === this._valuesToUpdate.length) {\r\n this._renderTagsImpl(this._selectedItems);\r\n isPlainDataUsed = true;\r\n d.resolve()\r\n }\r\n }\r\n if (!isPlainDataUsed) {\r\n this._loadTagsData().done(items => {\r\n if (this._disposed) {\r\n d.reject();\r\n return\r\n }\r\n this._renderTagsImpl(items);\r\n d.resolve()\r\n }).fail(d.reject)\r\n }\r\n return d.promise()\r\n },\r\n _renderTagsImpl(items) {\r\n this._renderTagsCore(items);\r\n this._renderEmptyState();\r\n if (!this._preserveFocusedTag) {\r\n this._clearTagFocus()\r\n }\r\n },\r\n _shouldGetItemsFromPlain(values) {\r\n return values && this._dataController.isLoaded() && values.length <= this._getPlainItems().length\r\n },\r\n _getItemsFromPlain(values) {\r\n var selectedItems = this._getSelectedItemsFromList(values);\r\n var needFilterPlainItems = 0 === selectedItems.length && values.length > 0 || selectedItems.length < values.length;\r\n if (needFilterPlainItems) {\r\n var plainItems = this._getPlainItems();\r\n selectedItems = this._filterSelectedItems(plainItems, values)\r\n }\r\n return selectedItems\r\n },\r\n _getSelectedItemsFromList(values) {\r\n var _a;\r\n var listSelectedItems = null === (_a = this._list) || void 0 === _a ? void 0 : _a.option(\"selectedItems\");\r\n var selectedItems = [];\r\n if (values.length === (null === listSelectedItems || void 0 === listSelectedItems ? void 0 : listSelectedItems.length)) {\r\n selectedItems = this._filterSelectedItems(listSelectedItems, values)\r\n }\r\n return selectedItems\r\n },\r\n _filterSelectedItems(plainItems, values) {\r\n var selectedItems = plainItems.filter(dataItem => {\r\n var currentValue;\r\n for (var i = 0; i < values.length; i++) {\r\n currentValue = values[i];\r\n if (isObject(currentValue)) {\r\n if (this._isValueEquals(dataItem, currentValue)) {\r\n return true\r\n }\r\n } else if (this._isValueEquals(this._valueGetter(dataItem), currentValue)) {\r\n return true\r\n }\r\n }\r\n return false\r\n }, this);\r\n return selectedItems\r\n },\r\n _integrateInput() {\r\n this._isInputReady.resolve();\r\n this.callBase();\r\n var tagsContainer = this.$element().find(\".\".concat(TEXTEDITOR_INPUT_CONTAINER_CLASS));\r\n this._updateTagsContainer(tagsContainer);\r\n this._renderTagRemoveAction()\r\n },\r\n _renderTagsCore(items) {\r\n var _a;\r\n null === (_a = this._isInputReady) || void 0 === _a ? void 0 : _a.reject();\r\n this._isInputReady = Deferred();\r\n this._renderField();\r\n this.option(\"selectedItems\", this._selectedItems.slice());\r\n this._cleanTags();\r\n if (this._input().length > 0) {\r\n this._isInputReady.resolve()\r\n }\r\n when(this._isInputReady).done(() => {\r\n this._renderTagsElements(items)\r\n })\r\n },\r\n _renderTagsElements(items) {\r\n var $multiTag = this._multiTagRequired() && this._renderMultiTag(this._input());\r\n var showMultiTagOnly = this.option(\"showMultiTagOnly\");\r\n var maxDisplayedTags = this.option(\"maxDisplayedTags\");\r\n items.forEach((item, index) => {\r\n if ($multiTag && showMultiTagOnly || $multiTag && !showMultiTagOnly && index - maxDisplayedTags >= -1) {\r\n return false\r\n }\r\n this._renderTag(item, $multiTag || this._input());\r\n return\r\n });\r\n if (this._isFocused()) {\r\n this._scrollContainer(\"end\")\r\n }\r\n this._refreshTagElements()\r\n },\r\n _cleanTags() {\r\n if (this._multiTagRequired()) {\r\n this._tagElements().remove()\r\n } else {\r\n var $tags = this._tagElements();\r\n var values = this._getValue();\r\n each($tags, (_, tag) => {\r\n var $tag = $(tag);\r\n var tagData = $tag.data(TAGBOX_TAG_DATA_KEY);\r\n if (!(null === values || void 0 === values ? void 0 : values.includes(tagData))) {\r\n $tag.remove()\r\n }\r\n })\r\n }\r\n this._updateElementAria()\r\n },\r\n _renderEmptyState() {\r\n var isEmpty = !(this._getValue().length || this._selectedItems.length || this._searchValue());\r\n this._toggleEmptiness(isEmpty);\r\n this._renderDisplayText()\r\n },\r\n _renderDisplayText() {\r\n this._renderInputSize()\r\n },\r\n _refreshTagElements() {\r\n this._tagElementsCache = this.$element().find(\".\".concat(TAGBOX_TAG_CLASS))\r\n },\r\n _tagElements() {\r\n return this._tagElementsCache\r\n },\r\n _applyTagTemplate(item, $tag) {\r\n this._tagTemplate.render({\r\n model: item,\r\n container: getPublicElement($tag)\r\n })\r\n },\r\n _renderTag(item, $input) {\r\n var value = this._valueGetter(item);\r\n if (!isDefined(value)) {\r\n return\r\n }\r\n var $tag = this._getTag(value);\r\n var displayValue = this._displayGetter(item);\r\n var itemModel = this._getItemModel(item, displayValue);\r\n if ($tag) {\r\n if (isDefined(displayValue)) {\r\n $tag.empty();\r\n this._applyTagTemplate(itemModel, $tag)\r\n }\r\n $tag.removeClass(TAGBOX_CUSTOM_TAG_CLASS);\r\n this._updateElementAria($tag.attr(\"id\"))\r\n } else {\r\n var tagId = \"dx-\".concat(new Guid);\r\n $tag = this._createTag(value, $input, tagId);\r\n if (isDefined(item)) {\r\n this._applyTagTemplate(itemModel, $tag)\r\n } else {\r\n $tag.addClass(TAGBOX_CUSTOM_TAG_CLASS);\r\n this._applyTagTemplate(value, $tag)\r\n }\r\n this._updateElementAria(tagId)\r\n }\r\n },\r\n _getItemModel(item, displayValue) {\r\n if (isObject(item) && isDefined(displayValue)) {\r\n return item\r\n }\r\n return ensureDefined(displayValue, \"\")\r\n },\r\n _getTag(value) {\r\n var $tags = this._tagElements();\r\n var tagsLength = $tags.length;\r\n var result = false;\r\n for (var i = 0; i < tagsLength; i++) {\r\n var $tag = $tags[i];\r\n var tagData = elementData($tag, TAGBOX_TAG_DATA_KEY);\r\n if (value === tagData || equalByValue(value, tagData)) {\r\n result = $($tag);\r\n break\r\n }\r\n }\r\n return result\r\n },\r\n _createTag: (value, $input, tagId) => $(\"<div>\").attr(\"id\", tagId).addClass(TAGBOX_TAG_CLASS).data(TAGBOX_TAG_DATA_KEY, value).insertBefore($input),\r\n _toggleEmptinessEventHandler() {\r\n this._toggleEmptiness(!this._getValue().length && !this._searchValue().length)\r\n },\r\n _customItemAddedHandler(e) {\r\n this.callBase(e);\r\n this._clearTextValue()\r\n },\r\n _removeTagHandler(args) {\r\n var e = args.event;\r\n e.stopPropagation();\r\n this._saveValueChangeEvent(e);\r\n var $tag = $(e.target).closest(\".\".concat(TAGBOX_TAG_CLASS));\r\n this._removeTagElement($tag)\r\n },\r\n _removeTagElement($tag) {\r\n if ($tag.hasClass(TAGBOX_MULTI_TAG_CLASS)) {\r\n if (!this.option(\"showMultiTagOnly\")) {\r\n this.option(\"value\", this._getValue().slice(0, this.option(\"maxDisplayedTags\")))\r\n } else {\r\n this.clear()\r\n }\r\n return\r\n }\r\n var itemValue = $tag.data(TAGBOX_TAG_DATA_KEY);\r\n var itemId = $tag.attr(\"id\");\r\n this._removeTagWithUpdate(itemValue);\r\n this._updateElementAria(itemId, true);\r\n this._refreshTagElements()\r\n },\r\n _updateField: noop,\r\n _removeTagWithUpdate(itemValue) {\r\n var value = this._getValue().slice();\r\n this._removeTag(value, itemValue);\r\n this.option(\"value\", value);\r\n this.option(\"selectedItem\", null);\r\n if (0 === value.length) {\r\n this._clearTagFocus()\r\n }\r\n },\r\n _getCurrentValue() {\r\n return this._lastValue()\r\n },\r\n _selectionChangeHandler(e) {\r\n if (\"useButtons\" === this.option(\"applyValueMode\")) {\r\n return\r\n }\r\n var value = this._getValue().slice();\r\n each(e.removedItems || [], (_, removedItem) => {\r\n this._removeTag(value, this._valueGetter(removedItem))\r\n });\r\n each(e.addedItems || [], (_, addedItem) => {\r\n this._addTag(value, this._valueGetter(addedItem))\r\n });\r\n this._updateWidgetHeight();\r\n if (!equalByValue(this._list.option(\"selectedItemKeys\"), this.option(\"value\"))) {\r\n var listSelectionChangeEvent = this._list._getSelectionChangeEvent();\r\n listSelectionChangeEvent && this._saveValueChangeEvent(listSelectionChangeEvent);\r\n this.option(\"value\", value)\r\n }\r\n this._list._saveSelectionChangeEvent(void 0)\r\n },\r\n _removeTag(value, item) {\r\n var index = this._valueIndex(item, value);\r\n if (index >= 0) {\r\n value.splice(index, 1)\r\n }\r\n },\r\n _addTag(value, item) {\r\n var index = this._valueIndex(item);\r\n if (index < 0) {\r\n value.push(item)\r\n }\r\n },\r\n _fieldRenderData() {\r\n return this._selectedItems.slice()\r\n },\r\n _completeSelection(value) {\r\n if (!this.option(\"showSelectionControls\")) {\r\n this._setValue(value)\r\n }\r\n },\r\n _setValue(value) {\r\n var _a, _b;\r\n if (null === value) {\r\n return\r\n }\r\n var useButtons = \"useButtons\" === this.option(\"applyValueMode\");\r\n var valueIndex = this._valueIndex(value);\r\n var values = (useButtons ? (null === (_a = this._list) || void 0 === _a ? void 0 : _a.option(\"selectedItemKeys\")) || [] : this._getValue()).slice();\r\n if (valueIndex >= 0) {\r\n values.splice(valueIndex, 1)\r\n } else {\r\n values.push(value)\r\n }\r\n if (useButtons) {\r\n null === (_b = this._list) || void 0 === _b ? void 0 : _b.option(\"selectedItemKeys\", values)\r\n } else {\r\n this.option(\"value\", values)\r\n }\r\n },\r\n _isSelectedValue(value, cache) {\r\n return this._valueIndex(value, null, cache) > -1\r\n },\r\n _valueIndex(value, values, cache) {\r\n var result = -1;\r\n if (cache && \"object\" !== typeof value) {\r\n if (!cache.indexByValues) {\r\n cache.indexByValues = {};\r\n values = values || this._getValue();\r\n values.forEach((value, index) => {\r\n cache.indexByValues[value] = index\r\n })\r\n }\r\n if (value in cache.indexByValues) {\r\n return cache.indexByValues[value]\r\n }\r\n }\r\n values = values || this._getValue();\r\n each(values, (index, selectedValue) => {\r\n if (this._isValueEquals(value, selectedValue)) {\r\n result = index;\r\n return false\r\n }\r\n return\r\n });\r\n return result\r\n },\r\n _lastValue() {\r\n var values = this._getValue();\r\n var lastValue = values[values.length - 1];\r\n return null !== lastValue && void 0 !== lastValue ? lastValue : null\r\n },\r\n _shouldRenderSearchEvent() {\r\n return this.option(\"searchEnabled\") || this.option(\"acceptCustomValue\")\r\n },\r\n _searchHandler(e) {\r\n if (this.option(\"searchEnabled\") && !!e && !this._isTagRemoved) {\r\n this.callBase(arguments);\r\n this._setListDataSourceFilter()\r\n }\r\n this._updateWidgetHeight();\r\n delete this._isTagRemoved\r\n },\r\n _updateWidgetHeight() {\r\n var element = this.$element();\r\n var originalHeight = getHeight(element);\r\n this._renderInputSize();\r\n var currentHeight = getHeight(element);\r\n if (this._popup && this.option(\"opened\") && this._isEditable() && currentHeight !== originalHeight) {\r\n this._popup.repaint()\r\n }\r\n },\r\n _refreshSelected() {\r\n var _a;\r\n (null === (_a = this._list) || void 0 === _a ? void 0 : _a.getDataSource()) && this._list.option(\"selectedItems\", this._selectedItems)\r\n },\r\n _resetListDataSourceFilter() {\r\n var dataController = this._dataController;\r\n delete this._userFilter;\r\n dataController.filter(null);\r\n dataController.reload()\r\n },\r\n _setListDataSourceFilter() {\r\n if (!this.option(\"hideSelectedItems\") || !this._list) {\r\n return\r\n }\r\n var dataController = this._dataController;\r\n var valueGetterExpr = this._valueGetterExpr();\r\n if (isString(valueGetterExpr) && \"this\" !== valueGetterExpr) {\r\n var filter = this._dataSourceFilterExpr();\r\n if (void 0 === this._userFilter) {\r\n this._userFilter = dataController.filter() || null\r\n }\r\n this._userFilter && filter.push(this._userFilter);\r\n filter.length ? dataController.filter(filter) : dataController.filter(null)\r\n } else {\r\n dataController.filter(this._dataSourceFilterFunction.bind(this))\r\n }\r\n dataController.load()\r\n },\r\n _dataSourceFilterExpr() {\r\n var filter = [];\r\n this._getValue().forEach(value => filter.push([\"!\", [this._valueGetterExpr(), value]]));\r\n return filter\r\n },\r\n _dataSourceFilterFunction(itemData) {\r\n var itemValue = this._valueGetter(itemData);\r\n var result = true;\r\n each(this._getValue(), (index, value) => {\r\n if (this._isValueEquals(value, itemValue)) {\r\n result = false;\r\n return false\r\n }\r\n return\r\n });\r\n return result\r\n },\r\n _dataSourceChangedHandler() {\r\n this._isDataSourceChanged = true;\r\n this.callBase.apply(this, arguments)\r\n },\r\n _applyButtonHandler(args) {\r\n this._saveValueChangeEvent(args.event);\r\n this.option(\"value\", this._getSortedListValues());\r\n this._clearTextValue();\r\n this.callBase();\r\n this._cancelSearchIfNeed()\r\n },\r\n _getSortedListValues() {\r\n var listValues = this._getListValues();\r\n var currentValue = this.option(\"value\") || [];\r\n var existedItems = listValues.length ? getIntersection(currentValue, listValues) : [];\r\n var newItems = existedItems.length ? removeDuplicates(listValues, currentValue) : listValues;\r\n return existedItems.concat(newItems)\r\n },\r\n _getListValues() {\r\n if (!this._list) {\r\n return []\r\n }\r\n return this._getPlainItems(this._list.option(\"selectedItems\")).map(item => this._valueGetter(item))\r\n },\r\n _setListDataSource() {\r\n var currentValue = this._getValue();\r\n this.callBase();\r\n if (currentValue !== this.option(\"value\")) {\r\n this.option(\"value\", currentValue)\r\n }\r\n this._refreshSelected()\r\n },\r\n _renderOpenedState() {\r\n this.callBase();\r\n if (\"useButtons\" === this.option(\"applyValueMode\") && !this.option(\"opened\")) {\r\n this._refreshSelected()\r\n }\r\n },\r\n clear() {\r\n this._restoreInputText();\r\n var defaultValue = this._getDefaultOptions().value;\r\n var currentValue = this.option(\"value\");\r\n if (defaultValue && 0 === defaultValue.length && currentValue && defaultValue.length === currentValue.length) {\r\n return\r\n }\r\n this.callBase()\r\n },\r\n _clean() {\r\n this.callBase();\r\n delete this._defaultTagTemplate;\r\n delete this._valuesToUpdate;\r\n delete this._tagTemplate\r\n },\r\n _getSelectedItemsDifference(newItems, previousItems) {\r\n if (!newItems.length) {\r\n return {\r\n addedItems: [],\r\n removedItems: previousItems.slice()\r\n }\r\n }\r\n if (!previousItems.length) {\r\n return {\r\n addedItems: newItems.slice(),\r\n removedItems: []\r\n }\r\n }\r\n var previousItemsValuesMap = previousItems.reduce((map, item) => {\r\n var value = this._valueGetter(item);\r\n map[value] = item;\r\n return map\r\n }, {});\r\n var addedItems = [];\r\n newItems.forEach(item => {\r\n var value = this._valueGetter(item);\r\n if (!previousItemsValuesMap[value]) {\r\n addedItems.push(item)\r\n }\r\n delete previousItemsValuesMap[value]\r\n });\r\n return {\r\n addedItems: addedItems,\r\n removedItems: Object.values(previousItemsValuesMap)\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 \"onSelectAllValueChanged\":\r\n this._initSelectAllValueChangedAction();\r\n break;\r\n case \"onMultiTagPreparing\":\r\n this._initMultiTagPreparingAction();\r\n this._renderTags();\r\n break;\r\n case \"hideSelectedItems\":\r\n if (value) {\r\n this._setListDataSourceFilter()\r\n } else {\r\n this._resetListDataSourceFilter()\r\n }\r\n break;\r\n case \"useSubmitBehavior\":\r\n this._toggleSubmitElement(value);\r\n break;\r\n case \"displayExpr\":\r\n this.callBase(args);\r\n this._initTemplates();\r\n this._invalidate();\r\n break;\r\n case \"tagTemplate\":\r\n this._initTagTemplate();\r\n this._invalidate();\r\n break;\r\n case \"selectAllText\":\r\n this._setListOption(\"selectAllText\", this.option(\"selectAllText\"));\r\n break;\r\n case \"readOnly\":\r\n case \"disabled\":\r\n this.callBase(args);\r\n !value && this._refreshEvents();\r\n break;\r\n case \"value\":\r\n this._valuesToUpdate = value;\r\n this.callBase(args);\r\n this._valuesToUpdate = void 0;\r\n this._setListDataSourceFilter();\r\n break;\r\n case \"maxDisplayedTags\":\r\n case \"showMultiTagOnly\":\r\n this._renderTags();\r\n break;\r\n case \"selectAllMode\":\r\n this._setListOption(name, value);\r\n break;\r\n case \"selectedItem\":\r\n break;\r\n case \"selectedItems\":\r\n this._selectionChangedAction(this._getSelectedItemsDifference(value, previousValue));\r\n break;\r\n case \"multiline\":\r\n this.$element().toggleClass(TAGBOX_SINGLE_LINE_CLASS, !value);\r\n this._renderSingleLineScroll();\r\n break;\r\n case \"maxFilterQueryLength\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _getActualSearchValue() {\r\n return this.callBase() || this._searchValue()\r\n },\r\n _popupHidingHandler() {\r\n this.callBase();\r\n this._clearFilter()\r\n }\r\n});\r\nregisterComponent(\"dxTagBox\", TagBox);\r\nexport default TagBox;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/m_switch.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport fx from \"../../animation/fx\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport devices from \"../../core/devices\";\r\nimport $ from \"../../core/renderer\";\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 getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport {\r\n getOuterWidth\r\n} from \"../../core/utils/size\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n lock\r\n} from \"../../events/core/emitter.feedback\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Swipeable from \"../../events/gesture/swipeable\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport Editor from \"../../ui/editor/editor\";\r\nvar SWITCH_CLASS = \"dx-switch\";\r\nvar SWITCH_WRAPPER_CLASS = \"\".concat(SWITCH_CLASS, \"-wrapper\");\r\nvar SWITCH_CONTAINER_CLASS = \"\".concat(SWITCH_CLASS, \"-container\");\r\nvar SWITCH_INNER_CLASS = \"\".concat(SWITCH_CLASS, \"-inner\");\r\nvar SWITCH_HANDLE_CLASS = \"\".concat(SWITCH_CLASS, \"-handle\");\r\nvar SWITCH_ON_VALUE_CLASS = \"\".concat(SWITCH_CLASS, \"-on-value\");\r\nvar SWITCH_ON_CLASS = \"\".concat(SWITCH_CLASS, \"-on\");\r\nvar SWITCH_OFF_CLASS = \"\".concat(SWITCH_CLASS, \"-off\");\r\nvar SWITCH_ANIMATION_DURATION = 100;\r\nvar Switch = Editor.inherit({\r\n _supportedKeys() {\r\n var isRTL = this.option(\"rtlEnabled\");\r\n var click = function(e) {\r\n e.preventDefault();\r\n this._clickAction({\r\n event: e\r\n })\r\n };\r\n var move = function(value, e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._saveValueChangeEvent(e);\r\n this._animateValue(value)\r\n };\r\n return extend(this.callBase(), {\r\n space: click,\r\n enter: click,\r\n leftArrow: move.bind(this, !!isRTL),\r\n rightArrow: move.bind(this, !isRTL)\r\n })\r\n },\r\n _useTemplates: () => false,\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true,\r\n switchedOnText: messageLocalization.format(\"dxSwitch-switchedOnText\"),\r\n switchedOffText: messageLocalization.format(\"dxSwitch-switchedOffText\"),\r\n value: false\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device: () => \"desktop\" === devices.real().deviceType && !devices.isSimulator(),\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _feedbackHideTimeout: 0,\r\n _animating: false,\r\n _initMarkup() {\r\n this._renderContainers();\r\n this.$element().addClass(SWITCH_CLASS).append(this._$switchWrapper);\r\n this._renderSubmitElement();\r\n this._renderClick();\r\n this.setAria(\"role\", \"button\");\r\n this._renderSwipeable();\r\n this.callBase();\r\n this._renderSwitchInner();\r\n this._renderLabels();\r\n this._renderValue()\r\n },\r\n _getInnerOffset(value, offset) {\r\n var ratio = (offset - this._offsetDirection() * Number(!value)) / 2;\r\n return \"\".concat(100 * ratio, \"%\")\r\n },\r\n _getHandleOffset(value, offset) {\r\n if (this.option(\"rtlEnabled\")) {\r\n value = !value\r\n }\r\n if (value) {\r\n var calcValue = 100 * -offset - 100;\r\n return \"\".concat(calcValue, \"%\")\r\n }\r\n return \"\".concat(100 * -offset, \"%\")\r\n },\r\n _renderSwitchInner() {\r\n this._$switchInner = $(\"<div>\").addClass(SWITCH_INNER_CLASS).appendTo(this._$switchContainer);\r\n this._$handle = $(\"<div>\").addClass(SWITCH_HANDLE_CLASS).appendTo(this._$switchInner)\r\n },\r\n _renderLabels() {\r\n this._$labelOn = $(\"<div>\").addClass(SWITCH_ON_CLASS).prependTo(this._$switchInner);\r\n this._$labelOff = $(\"<div>\").addClass(SWITCH_OFF_CLASS).appendTo(this._$switchInner);\r\n this._setLabelsText()\r\n },\r\n _renderContainers() {\r\n this._$switchContainer = $(\"<div>\").addClass(SWITCH_CONTAINER_CLASS);\r\n this._$switchWrapper = $(\"<div>\").addClass(SWITCH_WRAPPER_CLASS).append(this._$switchContainer)\r\n },\r\n _renderSwipeable() {\r\n this._createComponent(this.$element(), Swipeable, {\r\n elastic: false,\r\n immediate: true,\r\n onStart: this._swipeStartHandler.bind(this),\r\n onUpdated: this._swipeUpdateHandler.bind(this),\r\n onEnd: this._swipeEndHandler.bind(this),\r\n itemSizeFunc: this._getItemSizeFunc.bind(this)\r\n })\r\n },\r\n _getItemSizeFunc() {\r\n return getOuterWidth(this._$switchContainer, true) - getBoundingRect(this._$handle.get(0)).width\r\n },\r\n _renderSubmitElement() {\r\n this._$submitElement = $(\"<input>\").attr(\"type\", \"hidden\").appendTo(this.$element())\r\n },\r\n _getSubmitElement() {\r\n return this._$submitElement\r\n },\r\n _offsetDirection() {\r\n return this.option(\"rtlEnabled\") ? -1 : 1\r\n },\r\n _renderPosition(state, swipeOffset) {\r\n var innerOffset = this._getInnerOffset(state, swipeOffset);\r\n var handleOffset = this._getHandleOffset(state, swipeOffset);\r\n this._$switchInner.css(\"transform\", \" translateX(\".concat(innerOffset, \")\"));\r\n this._$handle.css(\"transform\", \" translateX(\".concat(handleOffset, \")\"))\r\n },\r\n _validateValue() {\r\n var check = this.option(\"value\");\r\n if (\"boolean\" !== typeof check) {\r\n this._options.silent(\"value\", !!check)\r\n }\r\n },\r\n _renderClick() {\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n var $element = this.$element();\r\n this._clickAction = this._createAction(this._clickHandler.bind(this));\r\n eventsEngine.off($element, eventName);\r\n eventsEngine.on($element, eventName, e => {\r\n this._clickAction({\r\n event: e\r\n })\r\n })\r\n },\r\n _clickHandler(args) {\r\n var e = args.event;\r\n this._saveValueChangeEvent(e);\r\n if (this._animating || this._swiping) {\r\n return\r\n }\r\n this._animateValue(!this.option(\"value\"))\r\n },\r\n _animateValue(value) {\r\n var startValue = this.option(\"value\");\r\n var endValue = value;\r\n if (startValue === endValue) {\r\n return\r\n }\r\n this._animating = true;\r\n var fromInnerOffset = this._getInnerOffset(startValue, 0);\r\n var toInnerOffset = this._getInnerOffset(endValue, 0);\r\n var fromHandleOffset = this._getHandleOffset(startValue, 0);\r\n var toHandleOffset = this._getHandleOffset(endValue, 0);\r\n var that = this;\r\n var fromInnerConfig = {};\r\n var toInnerConfig = {};\r\n var fromHandleConfig = {};\r\n var toHandlerConfig = {};\r\n fromInnerConfig.transform = \" translateX(\".concat(fromInnerOffset, \")\");\r\n toInnerConfig.transform = \" translateX(\".concat(toInnerOffset, \")\");\r\n fromHandleConfig.transform = \" translateX(\".concat(fromHandleOffset, \")\");\r\n toHandlerConfig.transform = \" translateX(\".concat(toHandleOffset, \")\");\r\n this.$element().toggleClass(SWITCH_ON_VALUE_CLASS, endValue);\r\n fx.animate(this._$handle, {\r\n from: fromHandleConfig,\r\n to: toHandlerConfig,\r\n duration: SWITCH_ANIMATION_DURATION\r\n });\r\n fx.animate(this._$switchInner, {\r\n from: fromInnerConfig,\r\n to: toInnerConfig,\r\n duration: SWITCH_ANIMATION_DURATION,\r\n complete() {\r\n that._animating = false;\r\n that.option(\"value\", endValue)\r\n }\r\n })\r\n },\r\n _swipeStartHandler(e) {\r\n var state = this.option(\"value\");\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var maxOffOffset = rtlEnabled ? 0 : 1;\r\n var maxOnOffset = rtlEnabled ? 1 : 0;\r\n e.event.maxLeftOffset = state ? maxOffOffset : maxOnOffset;\r\n e.event.maxRightOffset = state ? maxOnOffset : maxOffOffset;\r\n this._swiping = true;\r\n this._feedbackDeferred = Deferred();\r\n lock(this._feedbackDeferred);\r\n this._toggleActiveState(this.$element(), this.option(\"activeStateEnabled\"))\r\n },\r\n _swipeUpdateHandler(e) {\r\n this._renderPosition(this.option(\"value\"), e.event.offset)\r\n },\r\n _swipeEndHandler(e) {\r\n var that = this;\r\n var offsetDirection = this._offsetDirection();\r\n var toInnerConfig = {};\r\n var toHandleConfig = {};\r\n var innerOffset = this._getInnerOffset(that.option(\"value\"), e.event.targetOffset);\r\n var handleOffset = this._getHandleOffset(that.option(\"value\"), e.event.targetOffset);\r\n toInnerConfig.transform = \" translateX(\".concat(innerOffset, \")\");\r\n toHandleConfig.transform = \" translateX(\".concat(handleOffset, \")\");\r\n fx.animate(this._$handle, {\r\n to: toHandleConfig,\r\n duration: SWITCH_ANIMATION_DURATION\r\n });\r\n fx.animate(this._$switchInner, {\r\n to: toInnerConfig,\r\n duration: SWITCH_ANIMATION_DURATION,\r\n complete() {\r\n that._swiping = false;\r\n var pos = that.option(\"value\") + offsetDirection * e.event.targetOffset;\r\n that._saveValueChangeEvent(e.event);\r\n that.option(\"value\", Boolean(pos));\r\n that._feedbackDeferred.resolve();\r\n that._toggleActiveState(that.$element(), false)\r\n }\r\n })\r\n },\r\n _renderValue() {\r\n this._validateValue();\r\n var value = this.option(\"value\");\r\n this._renderPosition(value, 0);\r\n this.$element().toggleClass(SWITCH_ON_VALUE_CLASS, value);\r\n this._getSubmitElement().val(value);\r\n this.setAria({\r\n pressed: value,\r\n label: value ? this.option(\"switchedOnText\") : this.option(\"switchedOffText\")\r\n })\r\n },\r\n _setLabelsText() {\r\n this._$labelOn && this._$labelOn.text(this.option(\"switchedOnText\"));\r\n this._$labelOff && this._$labelOff.text(this.option(\"switchedOffText\"))\r\n },\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this.repaint()\r\n }\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"width\":\r\n delete this._marginBound;\r\n this._refresh();\r\n break;\r\n case \"switchedOnText\":\r\n case \"switchedOffText\":\r\n this._setLabelsText();\r\n break;\r\n case \"value\":\r\n this._renderValue();\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxSwitch\", Switch);\r\nexport default Switch;\r\n","/**\r\n * DevExtreme (esm/data/data_source.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n DataSource\r\n} from \"./data_source/data_source\";\r\nexport default DataSource;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/semaphore/index.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport class Semaphore {\r\n constructor() {\r\n this.counter = 0\r\n }\r\n isFree() {\r\n return 0 === this.counter\r\n }\r\n take() {\r\n this.counter += 1\r\n }\r\n release() {\r\n this.counter -= 1;\r\n if (this.counter < 0) {\r\n this.counter = 0\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointment_popup/m_form.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport \"../m_recurrence_editor\";\r\nimport \"../../../ui/text_area\";\r\nimport \"../../../ui/tag_box\";\r\nimport \"../../../ui/switch\";\r\nimport \"../../../ui/select_box\";\r\nimport devices from \"../../../core/devices\";\r\nimport $ from \"../../../core/renderer\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport dateSerialization from \"../../../core/utils/date_serialization\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport DataSource from \"../../../data/data_source\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport Form from \"../../../ui/form\";\r\nimport {\r\n current,\r\n isFluent\r\n} from \"../../../ui/themes\";\r\nimport {\r\n ExpressionUtils\r\n} from \"../../scheduler/m_expression_utils\";\r\nimport {\r\n Semaphore\r\n} from \"../../scheduler/r1/semaphore/index\";\r\nimport {\r\n createAppointmentAdapter\r\n} from \"../m_appointment_adapter\";\r\nimport timeZoneDataUtils from \"../timezones/m_utils_timezones_data\";\r\nvar SCREEN_SIZE_OF_SINGLE_COLUMN = 600;\r\nexport var APPOINTMENT_FORM_GROUP_NAMES = {\r\n Main: \"mainGroup\",\r\n Recurrence: \"recurrenceGroup\"\r\n};\r\nvar E2E_TEST_CLASSES = {\r\n form: \"e2e-dx-scheduler-form\",\r\n textEditor: \"e2e-dx-scheduler-form-text\",\r\n descriptionEditor: \"e2e-dx-scheduler-form-description\",\r\n startDateEditor: \"e2e-dx-scheduler-form-start-date\",\r\n endDateEditor: \"e2e-dx-scheduler-form-end-date\",\r\n startDateTimeZoneEditor: \"e2e-dx-scheduler-form-start-date-timezone\",\r\n endDateTimeZoneEditor: \"e2e-dx-scheduler-form-end-date-timezone\",\r\n allDaySwitch: \"e2e-dx-scheduler-form-all-day-switch\",\r\n recurrenceSwitch: \"e2e-dx-scheduler-form-recurrence-switch\"\r\n};\r\nvar getStylingModeFunc = () => isFluent(current()) ? \"filled\" : void 0;\r\nvar getStartDateWithStartHour = (startDate, startDayHour) => new Date(new Date(startDate).setHours(startDayHour));\r\nvar validateAppointmentFormDate = (editor, value, previousValue) => {\r\n var isCurrentDateCorrect = null === value || !!value;\r\n var isPreviousDateCorrect = null === previousValue || !!previousValue;\r\n if (!isCurrentDateCorrect && isPreviousDateCorrect) {\r\n editor.option(\"value\", previousValue)\r\n }\r\n};\r\nvar updateRecurrenceItemVisibility = (recurrenceRuleExpr, value, form) => {\r\n var _a;\r\n form.itemOption(APPOINTMENT_FORM_GROUP_NAMES.Recurrence, \"visible\", value);\r\n null === (_a = form.getEditor(recurrenceRuleExpr)) || void 0 === _a ? void 0 : _a.changeValueByVisibility(value)\r\n};\r\nexport class AppointmentForm {\r\n constructor(scheduler) {\r\n this.scheduler = scheduler;\r\n this.form = null;\r\n this.semaphore = new Semaphore\r\n }\r\n get dxForm() {\r\n return this.form\r\n }\r\n set readOnly(value) {\r\n this.form.option(\"readOnly\", value);\r\n var {\r\n recurrenceRuleExpr: recurrenceRuleExpr\r\n } = this.scheduler.getDataAccessors().expr;\r\n var recurrenceEditor = this.form.getEditor(recurrenceRuleExpr);\r\n null === recurrenceEditor || void 0 === recurrenceEditor ? void 0 : recurrenceEditor.option(\"readOnly\", value)\r\n }\r\n get formData() {\r\n return this.form.option(\"formData\")\r\n }\r\n set formData(value) {\r\n this.form.option(\"formData\", value)\r\n }\r\n create(triggerResize, changeSize, formData) {\r\n var {\r\n allowTimeZoneEditing: allowTimeZoneEditing\r\n } = this.scheduler.getEditingConfig();\r\n var dataAccessors = this.scheduler.getDataAccessors();\r\n var {\r\n expr: expr\r\n } = dataAccessors;\r\n var isRecurrence = !!ExpressionUtils.getField(dataAccessors, \"recurrenceRule\", formData);\r\n var colSpan = isRecurrence ? 1 : 2;\r\n var mainItems = [...this._createMainItems(expr, triggerResize, changeSize, allowTimeZoneEditing), ...this.scheduler.createResourceEditorModel()];\r\n changeSize(isRecurrence);\r\n var items = [{\r\n itemType: \"group\",\r\n name: APPOINTMENT_FORM_GROUP_NAMES.Main,\r\n colCountByScreen: {\r\n lg: 2,\r\n xs: 1\r\n },\r\n colSpan: colSpan,\r\n items: mainItems\r\n }, {\r\n itemType: \"group\",\r\n name: APPOINTMENT_FORM_GROUP_NAMES.Recurrence,\r\n visible: isRecurrence,\r\n colSpan: colSpan,\r\n items: this._createRecurrenceEditor(expr)\r\n }];\r\n var element = $(\"<div>\");\r\n this.scheduler.createComponent(element, Form, {\r\n items: items,\r\n showValidationSummary: true,\r\n scrollingEnabled: true,\r\n colCount: \"auto\",\r\n colCountByScreen: {\r\n lg: 2,\r\n xs: 1\r\n },\r\n formData: formData,\r\n showColonAfterLabel: false,\r\n labelLocation: \"top\",\r\n onInitialized: e => {\r\n this.form = e.component\r\n },\r\n customizeItem: e => {\r\n if (this.form && \"group\" === e.itemType) {\r\n var dataExprs = this.scheduler.getDataAccessors().expr;\r\n var startDate = new Date(this.formData[dataExprs.startDateExpr]);\r\n var endDate = new Date(this.formData[dataExprs.endDateExpr]);\r\n var startTimeZoneEditor = e.items.find(i => i.dataField === dataExprs.startDateTimeZoneExpr);\r\n var endTimeZoneEditor = e.items.find(i => i.dataField === dataExprs.endDateTimeZoneExpr);\r\n if (startTimeZoneEditor) {\r\n startTimeZoneEditor.editorOptions.dataSource = this.createTimeZoneDataSource(startDate)\r\n }\r\n if (endTimeZoneEditor) {\r\n endTimeZoneEditor.editorOptions.dataSource = this.createTimeZoneDataSource(endDate)\r\n }\r\n }\r\n },\r\n screenByWidth: width => width < SCREEN_SIZE_OF_SINGLE_COLUMN || \"desktop\" !== devices.current().deviceType ? \"xs\" : \"lg\",\r\n elementAttr: {\r\n class: E2E_TEST_CLASSES.form\r\n }\r\n })\r\n }\r\n createTimeZoneDataSource(date) {\r\n return new DataSource({\r\n store: timeZoneDataUtils.getDisplayedTimeZones(date),\r\n paginate: true,\r\n pageSize: 10\r\n })\r\n }\r\n _createAppointmentAdapter(rawAppointment) {\r\n return createAppointmentAdapter(rawAppointment, this.scheduler.getDataAccessors())\r\n }\r\n _dateBoxValueChanged(args, dateExpr, isNeedCorrect) {\r\n validateAppointmentFormDate(args.component, args.value, args.previousValue);\r\n var value = dateSerialization.deserializeDate(args.value);\r\n var previousValue = dateSerialization.deserializeDate(args.previousValue);\r\n var dateEditor = this.form.getEditor(dateExpr);\r\n var dateValue = dateSerialization.deserializeDate(dateEditor.option(\"value\"));\r\n if (this.semaphore.isFree() && dateValue && value && isNeedCorrect(dateValue, value)) {\r\n var duration = previousValue ? dateValue.getTime() - previousValue.getTime() : 0;\r\n dateEditor.option(\"value\", new Date(value.getTime() + duration))\r\n }\r\n }\r\n _createTimezoneEditor(timeZoneExpr, secondTimeZoneExpr, visibleIndex, colSpan, isMainTimeZone, cssClass) {\r\n var visible = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : false;\r\n var noTzTitle = messageLocalization.format(\"dxScheduler-noTimezoneTitle\");\r\n return {\r\n name: this.normalizeEditorName(timeZoneExpr),\r\n dataField: timeZoneExpr,\r\n editorType: \"dxSelectBox\",\r\n visibleIndex: visibleIndex,\r\n colSpan: colSpan,\r\n cssClass: cssClass,\r\n label: {\r\n text: \" \"\r\n },\r\n editorOptions: {\r\n displayExpr: \"title\",\r\n valueExpr: \"id\",\r\n placeholder: noTzTitle,\r\n searchEnabled: true,\r\n onValueChanged: args => {\r\n var {\r\n form: form\r\n } = this;\r\n var secondTimezoneEditor = form.getEditor(secondTimeZoneExpr);\r\n if (isMainTimeZone) {\r\n secondTimezoneEditor.option(\"value\", args.value)\r\n }\r\n }\r\n },\r\n visible: visible\r\n }\r\n }\r\n _createDateBoxItems(dataExprs, allowTimeZoneEditing) {\r\n var colSpan = allowTimeZoneEditing ? 2 : 1;\r\n var firstDayOfWeek = this.scheduler.getFirstDayOfWeek();\r\n return [this.createDateBoxEditor(dataExprs.startDateExpr, colSpan, firstDayOfWeek, \"dxScheduler-editorLabelStartDate\", E2E_TEST_CLASSES.startDateEditor, args => {\r\n this._dateBoxValueChanged(args, dataExprs.endDateExpr, (endValue, startValue) => endValue < startValue)\r\n }), this._createTimezoneEditor(dataExprs.startDateTimeZoneExpr, dataExprs.endDateTimeZoneExpr, 1, colSpan, true, E2E_TEST_CLASSES.startDateTimeZoneEditor, allowTimeZoneEditing), this.createDateBoxEditor(dataExprs.endDateExpr, colSpan, firstDayOfWeek, \"dxScheduler-editorLabelEndDate\", E2E_TEST_CLASSES.endDateEditor, args => {\r\n this._dateBoxValueChanged(args, dataExprs.startDateExpr, (startValue, endValue) => endValue < startValue)\r\n }), this._createTimezoneEditor(dataExprs.endDateTimeZoneExpr, dataExprs.startDateTimeZoneExpr, 3, colSpan, false, E2E_TEST_CLASSES.endDateTimeZoneEditor, allowTimeZoneEditing)]\r\n }\r\n _changeFormItemDateType(name, groupName, isAllDay) {\r\n var editorPath = this.getEditorPath(name, groupName);\r\n var itemEditorOptions = this.form.itemOption(editorPath).editorOptions;\r\n var type = isAllDay ? \"date\" : \"datetime\";\r\n var newEditorOption = _extends(_extends({}, itemEditorOptions), {\r\n type: type\r\n });\r\n this.form.itemOption(editorPath, \"editorOptions\", newEditorOption)\r\n }\r\n _createMainItems(dataExprs, triggerResize, changeSize, allowTimeZoneEditing) {\r\n return [{\r\n name: this.normalizeEditorName(dataExprs.textExpr),\r\n dataField: dataExprs.textExpr,\r\n cssClass: E2E_TEST_CLASSES.textEditor,\r\n editorType: \"dxTextBox\",\r\n colSpan: 2,\r\n label: {\r\n text: messageLocalization.format(\"dxScheduler-editorLabelTitle\")\r\n },\r\n editorOptions: {\r\n stylingMode: getStylingModeFunc()\r\n }\r\n }, {\r\n itemType: \"group\",\r\n colSpan: 2,\r\n colCountByScreen: {\r\n lg: 2,\r\n xs: 1\r\n },\r\n items: this._createDateBoxItems(dataExprs, allowTimeZoneEditing)\r\n }, {\r\n itemType: \"group\",\r\n colSpan: 2,\r\n colCountByScreen: {\r\n lg: 2,\r\n xs: 2\r\n },\r\n items: [{\r\n name: this.normalizeEditorName(dataExprs.allDayExpr),\r\n dataField: dataExprs.allDayExpr,\r\n cssClass: \"dx-appointment-form-switch \".concat(E2E_TEST_CLASSES.allDaySwitch),\r\n editorType: \"dxSwitch\",\r\n label: {\r\n text: messageLocalization.format(\"dxScheduler-allDay\"),\r\n location: \"right\"\r\n },\r\n editorOptions: {\r\n onValueChanged: args => {\r\n var {\r\n value: value\r\n } = args;\r\n var startDateEditor = this.form.getEditor(dataExprs.startDateExpr);\r\n var endDateEditor = this.form.getEditor(dataExprs.endDateExpr);\r\n var startDate = dateSerialization.deserializeDate(startDateEditor.option(\"value\"));\r\n if (this.semaphore.isFree() && startDate) {\r\n if (value) {\r\n var allDayStartDate = dateUtils.trimTime(startDate);\r\n startDateEditor.option(\"value\", new Date(allDayStartDate));\r\n endDateEditor.option(\"value\", new Date(allDayStartDate))\r\n } else {\r\n var startDateWithStartHour = getStartDateWithStartHour(startDate, this.scheduler.getStartDayHour());\r\n var endDate = this.scheduler.getCalculatedEndDate(startDateWithStartHour);\r\n startDateEditor.option(\"value\", startDateWithStartHour);\r\n endDateEditor.option(\"value\", endDate)\r\n }\r\n }\r\n this._changeFormItemDateType(dataExprs.startDateExpr, \"Main\", value);\r\n this._changeFormItemDateType(dataExprs.endDateExpr, \"Main\", value)\r\n }\r\n }\r\n }, {\r\n editorType: \"dxSwitch\",\r\n dataField: \"repeat\",\r\n cssClass: \"dx-appointment-form-switch \".concat(E2E_TEST_CLASSES.recurrenceSwitch),\r\n name: \"visibilityChanged\",\r\n label: {\r\n text: messageLocalization.format(\"dxScheduler-editorLabelRecurrence\"),\r\n location: \"right\"\r\n },\r\n editorOptions: {\r\n onValueChanged: args => {\r\n var {\r\n form: form\r\n } = this;\r\n var colSpan = args.value ? 1 : 2;\r\n form.itemOption(APPOINTMENT_FORM_GROUP_NAMES.Main, \"colSpan\", colSpan);\r\n form.itemOption(APPOINTMENT_FORM_GROUP_NAMES.Recurrence, \"colSpan\", colSpan);\r\n updateRecurrenceItemVisibility(dataExprs.recurrenceRuleExpr, args.value, form);\r\n changeSize(args.value);\r\n triggerResize()\r\n }\r\n }\r\n }]\r\n }, {\r\n itemType: \"empty\",\r\n colSpan: 2\r\n }, {\r\n name: this.normalizeEditorName(dataExprs.descriptionExpr),\r\n dataField: dataExprs.descriptionExpr,\r\n cssClass: E2E_TEST_CLASSES.descriptionEditor,\r\n editorType: \"dxTextArea\",\r\n colSpan: 2,\r\n label: {\r\n text: messageLocalization.format(\"dxScheduler-editorLabelDescription\")\r\n },\r\n editorOptions: {\r\n stylingMode: getStylingModeFunc()\r\n }\r\n }, {\r\n itemType: \"empty\",\r\n colSpan: 2\r\n }]\r\n }\r\n _createRecurrenceEditor(dataExprs) {\r\n return [{\r\n name: this.normalizeEditorName(dataExprs.recurrenceRuleExpr),\r\n dataField: dataExprs.recurrenceRuleExpr,\r\n editorType: \"dxRecurrenceEditor\",\r\n editorOptions: {\r\n firstDayOfWeek: this.scheduler.getFirstDayOfWeek(),\r\n timeZoneCalculator: this.scheduler.getTimeZoneCalculator(),\r\n getStartDateTimeZone: () => this._createAppointmentAdapter(this.formData).startDateTimeZone\r\n },\r\n label: {\r\n text: \" \",\r\n visible: false\r\n }\r\n }]\r\n }\r\n setEditorsType(allDay) {\r\n var {\r\n startDateExpr: startDateExpr,\r\n endDateExpr: endDateExpr\r\n } = this.scheduler.getDataAccessors().expr;\r\n var startDateItemPath = this.getEditorPath(startDateExpr, \"Main\");\r\n var endDateItemPath = this.getEditorPath(endDateExpr, \"Main\");\r\n var startDateFormItem = this.form.itemOption(startDateItemPath);\r\n var endDateFormItem = this.form.itemOption(endDateItemPath);\r\n if (startDateFormItem && endDateFormItem) {\r\n var startDateEditorOptions = startDateFormItem.editorOptions;\r\n var endDateEditorOptions = endDateFormItem.editorOptions;\r\n startDateEditorOptions.type = endDateEditorOptions.type = allDay ? \"date\" : \"datetime\";\r\n this.form.itemOption(startDateItemPath, \"editorOptions\", startDateEditorOptions);\r\n this.form.itemOption(endDateItemPath, \"editorOptions\", endDateEditorOptions)\r\n }\r\n }\r\n updateRecurrenceEditorStartDate(date, expression) {\r\n var options = {\r\n startDate: date\r\n };\r\n this.setEditorOptions(expression, \"Recurrence\", options)\r\n }\r\n setEditorOptions(name, groupName, options) {\r\n var editorPath = this.getEditorPath(name, groupName);\r\n var editor = this.form.itemOption(editorPath);\r\n editor && this.form.itemOption(editorPath, \"editorOptions\", extend({}, editor.editorOptions, options))\r\n }\r\n setTimeZoneEditorDataSource(date, name) {\r\n var dataSource = this.createTimeZoneDataSource(date);\r\n this.setEditorOptions(name, \"Main\", {\r\n dataSource: dataSource\r\n })\r\n }\r\n updateFormData(formData) {\r\n this.semaphore.take();\r\n this.form.option(\"formData\", formData);\r\n var dataAccessors = this.scheduler.getDataAccessors();\r\n var {\r\n expr: expr\r\n } = dataAccessors;\r\n var rawStartDate = ExpressionUtils.getField(dataAccessors, \"startDate\", formData);\r\n var rawEndDate = ExpressionUtils.getField(dataAccessors, \"endDate\", formData);\r\n var allDay = ExpressionUtils.getField(dataAccessors, \"allDay\", formData);\r\n var startDate = new Date(rawStartDate);\r\n var endDate = new Date(rawEndDate);\r\n this.setTimeZoneEditorDataSource(startDate, expr.startDateTimeZoneExpr);\r\n this.setTimeZoneEditorDataSource(endDate, expr.endDateTimeZoneExpr);\r\n this.updateRecurrenceEditorStartDate(startDate, expr.recurrenceRuleExpr);\r\n this.setEditorsType(allDay);\r\n this.semaphore.release()\r\n }\r\n createDateBoxEditor(dataField, colSpan, firstDayOfWeek, label, cssClass, onValueChanged) {\r\n return {\r\n editorType: \"dxDateBox\",\r\n name: this.normalizeEditorName(dataField),\r\n dataField: dataField,\r\n colSpan: colSpan,\r\n cssClass: cssClass,\r\n label: {\r\n text: messageLocalization.format(label)\r\n },\r\n validationRules: [{\r\n type: \"required\"\r\n }],\r\n editorOptions: {\r\n stylingMode: getStylingModeFunc(),\r\n width: \"100%\",\r\n calendarOptions: {\r\n firstDayOfWeek: firstDayOfWeek\r\n },\r\n onValueChanged: onValueChanged,\r\n useMaskBehavior: true\r\n }\r\n }\r\n }\r\n getEditorPath(name, groupName) {\r\n var normalizedName = this.normalizeEditorName(name);\r\n return \"\".concat(APPOINTMENT_FORM_GROUP_NAMES[groupName], \".\").concat(normalizedName)\r\n }\r\n normalizeEditorName(name) {\r\n return name ? name.replace(/\\./g, \"_\") : name\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/appointment_popup/config.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport devices from \"../../../../core/devices\";\r\nimport {\r\n getWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n getWindow\r\n} from \"../../../../core/utils/window\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nexport var POPUP_WIDTH = {\r\n DEFAULT: 485,\r\n RECURRENCE: 970,\r\n FULLSCREEN: 1e3,\r\n MOBILE: {\r\n DEFAULT: 350,\r\n FULLSCREEN: 500\r\n }\r\n};\r\nexport var defaultAnimation = {\r\n show: {\r\n type: \"pop\",\r\n duration: 300,\r\n from: {\r\n scale: .55\r\n }\r\n },\r\n hide: {\r\n type: \"pop\",\r\n duration: 300,\r\n to: {\r\n opacity: 0,\r\n scale: .55\r\n },\r\n from: {\r\n opacity: 1,\r\n scale: 1\r\n }\r\n }\r\n};\r\nvar isMobile = () => \"desktop\" !== devices.current().deviceType;\r\nvar isIOSPlatform = () => \"ios\" === devices.current().platform;\r\nvar TOOLBAR_LOCATION = {\r\n AFTER: \"after\",\r\n BEFORE: \"before\"\r\n};\r\nvar getButtonsConfig = () => ({\r\n doneButton: {\r\n shortcut: \"done\",\r\n options: {\r\n text: messageLocalization.format(\"Done\")\r\n },\r\n location: TOOLBAR_LOCATION.AFTER\r\n },\r\n cancelButton: {\r\n shortcut: \"cancel\",\r\n location: isIOSPlatform() ? TOOLBAR_LOCATION.BEFORE : TOOLBAR_LOCATION.AFTER\r\n }\r\n});\r\nexport var getPopupToolbarItems = (allowUpdating, doneClick) => {\r\n var result = [];\r\n var buttonsConfig = getButtonsConfig();\r\n if (allowUpdating) {\r\n result.push(_extends(_extends({}, buttonsConfig.doneButton), {\r\n onClick: doneClick\r\n }))\r\n }\r\n result.push(buttonsConfig.cancelButton);\r\n return result\r\n};\r\nexport var isPopupFullScreenNeeded = () => {\r\n var window = getWindow();\r\n var width = window && getWidth(window);\r\n if (width) {\r\n return isMobile() ? width < POPUP_WIDTH.MOBILE.FULLSCREEN : width < POPUP_WIDTH.FULLSCREEN\r\n }\r\n return false\r\n};\r\nexport var getMaxWidth = isRecurrence => {\r\n if (isMobile()) {\r\n return POPUP_WIDTH.MOBILE.DEFAULT\r\n }\r\n return isRecurrence ? POPUP_WIDTH.RECURRENCE : POPUP_WIDTH.DEFAULT\r\n};\r\nexport var getPopupSize = isRecurrence => ({\r\n fullScreen: isPopupFullScreenNeeded(),\r\n maxWidth: getMaxWidth(isRecurrence)\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/m_loading.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n value as viewPort\r\n} from \"../../core/utils/view_port\";\r\nimport LoadPanel from \"../../ui/load_panel\";\r\nvar loading = null;\r\nvar createLoadPanel = function(options) {\r\n return new LoadPanel($(\"<div>\").appendTo(options && options.container || viewPort()), options)\r\n};\r\nvar removeLoadPanel = function() {\r\n if (!loading) {\r\n return\r\n }\r\n loading.$element().remove();\r\n loading = null\r\n};\r\nexport function show(options) {\r\n removeLoadPanel();\r\n loading = createLoadPanel(options);\r\n return loading.show()\r\n}\r\nexport function hide() {\r\n if (!loading) {\r\n return (new Deferred).resolve()\r\n }\r\n return loading.hide().done(removeLoadPanel).promise()\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/resources/m_utils.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n wrapToArray\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 {\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 deepExtendArraySafe\r\n} from \"../../../core/utils/object\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\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 {\r\n current,\r\n isFluent\r\n} from \"../../../ui/themes\";\r\nimport {\r\n getGroupCount,\r\n hasResourceValue\r\n} from \"../../scheduler/r1/utils/index\";\r\nexport var getValueExpr = resource => resource.valueExpr || \"id\";\r\nexport var getDisplayExpr = resource => resource.displayExpr || \"text\";\r\nexport var getFieldExpr = resource => resource.fieldExpr || resource.field;\r\nexport var getWrappedDataSource = dataSource => {\r\n if (dataSource instanceof DataSource) {\r\n return dataSource\r\n }\r\n var result = _extends(_extends({}, normalizeDataSourceOptions(dataSource)), {\r\n pageSize: 0\r\n });\r\n if (!Array.isArray(dataSource)) {\r\n result.filter = dataSource.filter\r\n }\r\n return new DataSource(result)\r\n};\r\nexport var createResourcesTree = groups => {\r\n var leafIndex = 0;\r\n var make = (group, groupIndex, result, parent) => {\r\n var _a;\r\n result = result || [];\r\n for (var itemIndex = 0; itemIndex < group.items.length; itemIndex++) {\r\n var currentGroupItem = group.items[itemIndex];\r\n var resultItem = {\r\n name: group.name,\r\n value: currentGroupItem.id,\r\n title: currentGroupItem.text,\r\n data: null === (_a = group.data) || void 0 === _a ? void 0 : _a[itemIndex],\r\n children: [],\r\n parent: parent || null\r\n };\r\n var nextGroupIndex = groupIndex + 1;\r\n if (groups[nextGroupIndex]) {\r\n make(groups[nextGroupIndex], nextGroupIndex, resultItem.children, resultItem)\r\n }\r\n if (!resultItem.children.length) {\r\n resultItem.leafIndex = leafIndex;\r\n leafIndex++\r\n }\r\n result.push(resultItem)\r\n }\r\n return result\r\n };\r\n return make(groups[0], 0)\r\n};\r\nexport var getPathToLeaf = (leafIndex, groups) => {\r\n var tree = createResourcesTree(groups);\r\n var findLeafByIndex = (data, index) => {\r\n for (var i = 0; i < data.length; i++) {\r\n if (data[i].leafIndex === index) {\r\n return data[i]\r\n }\r\n var _leaf = findLeafByIndex(data[i].children, index);\r\n if (_leaf) {\r\n return _leaf\r\n }\r\n }\r\n };\r\n var makeBranch = (leaf, result) => {\r\n result = result || [];\r\n result.push(leaf.value);\r\n if (leaf.parent) {\r\n makeBranch(leaf.parent, result)\r\n }\r\n return result\r\n };\r\n var leaf = findLeafByIndex(tree, leafIndex);\r\n return makeBranch(leaf).reverse()\r\n};\r\nexport var getCellGroups = (groupIndex, groups) => {\r\n var result = [];\r\n if (getGroupCount(groups)) {\r\n if (groupIndex < 0) {\r\n return\r\n }\r\n var path = getPathToLeaf(groupIndex, groups);\r\n for (var i = 0; i < groups.length; i++) {\r\n result.push({\r\n name: groups[i].name,\r\n id: path[i]\r\n })\r\n }\r\n }\r\n return result\r\n};\r\nexport var getGroupsObjectFromGroupsArray = groupsArray => groupsArray.reduce((currentGroups, _ref) => {\r\n var {\r\n name: name,\r\n id: id\r\n } = _ref;\r\n return _extends(_extends({}, currentGroups), {\r\n [name]: id\r\n })\r\n}, {});\r\nexport var getAllGroups = groups => {\r\n var groupCount = getGroupCount(groups);\r\n return [...new Array(groupCount)].map((_, groupIndex) => {\r\n var groupsArray = getCellGroups(groupIndex, groups);\r\n return getGroupsObjectFromGroupsArray(groupsArray)\r\n })\r\n};\r\nexport var getResourceByField = (fieldName, loadedResources) => {\r\n for (var i = 0; i < loadedResources.length; i++) {\r\n var resource = loadedResources[i];\r\n if (resource.name === fieldName) {\r\n return resource.data\r\n }\r\n }\r\n return []\r\n};\r\nexport var createResourceEditorModel = (resources, loadedResources) => resources.map(resource => {\r\n var dataField = getFieldExpr(resource);\r\n var dataSource = getResourceByField(dataField, loadedResources);\r\n return {\r\n editorOptions: {\r\n dataSource: dataSource.length ? dataSource : getWrappedDataSource(resource.dataSource),\r\n displayExpr: getDisplayExpr(resource),\r\n valueExpr: getValueExpr(resource),\r\n stylingMode: isFluent(current()) ? \"filled\" : \"outlined\"\r\n },\r\n dataField: dataField,\r\n editorType: resource.allowMultiple ? \"dxTagBox\" : \"dxSelectBox\",\r\n label: {\r\n text: resource.label || dataField\r\n }\r\n }\r\n});\r\nexport var isResourceMultiple = (resources, resourceField) => {\r\n var resource = resources.find(resource => {\r\n var field = getFieldExpr(resource);\r\n return field === resourceField\r\n });\r\n return !!(null === resource || void 0 === resource ? void 0 : resource.allowMultiple)\r\n};\r\nexport var filterResources = (resources, fields) => resources.filter(resource => {\r\n var field = getFieldExpr(resource);\r\n return fields.indexOf(field) > -1\r\n});\r\nexport var getPaintedResources = (resources, groups) => {\r\n var newGroups = groups || [];\r\n var result = resources.find(resource => resource.useColorAsDefault);\r\n if (result) {\r\n return result\r\n }\r\n var newResources = newGroups.length ? filterResources(resources, newGroups) : resources;\r\n return newResources[newResources.length - 1]\r\n};\r\nexport var getOrLoadResourceItem = (resources, resourceLoaderMap, field, value) => {\r\n var result = new Deferred;\r\n resources.filter(resource => getFieldExpr(resource) === field && isDefined(resource.dataSource)).forEach(resource => {\r\n var wrappedDataSource = getWrappedDataSource(resource.dataSource);\r\n var valueExpr = getValueExpr(resource);\r\n if (!resourceLoaderMap.has(field)) {\r\n resourceLoaderMap.set(field, wrappedDataSource.load())\r\n }\r\n resourceLoaderMap.get(field).done(data => {\r\n var getter = compileGetter(valueExpr);\r\n var filteredData = data.filter(resource => equalByValue(getter(resource), value));\r\n result.resolve(filteredData[0])\r\n }).fail(() => {\r\n resourceLoaderMap.delete(field);\r\n result.reject()\r\n })\r\n });\r\n return result.promise()\r\n};\r\nexport var getDataAccessors = (dataAccessors, fieldName, type) => {\r\n var actions = dataAccessors[type];\r\n return actions[fieldName]\r\n};\r\nexport var groupAppointmentsByResources = function(config, appointments) {\r\n var groups = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : [];\r\n var result = {\r\n 0: appointments\r\n };\r\n if (groups.length && config.loadedResources.length) {\r\n result = groupAppointmentsByResourcesCore(config, appointments, config.loadedResources)\r\n }\r\n var totalResourceCount = 0;\r\n config.loadedResources.forEach((resource, index) => {\r\n if (!index) {\r\n totalResourceCount = resource.items.length\r\n } else {\r\n totalResourceCount *= resource.items.length\r\n }\r\n });\r\n for (var index = 0; index < totalResourceCount; index++) {\r\n var key = index.toString();\r\n if (result[key]) {\r\n continue\r\n }\r\n result[key] = []\r\n }\r\n return result\r\n};\r\nexport var groupAppointmentsByResourcesCore = (config, appointments, resources) => {\r\n var tree = createResourcesTree(resources);\r\n var result = {};\r\n appointments.forEach(appointment => {\r\n var treeLeaves = getResourceTreeLeaves((field, action) => getDataAccessors(config.dataAccessors, field, action), tree, appointment);\r\n for (var i = 0; i < treeLeaves.length; i++) {\r\n if (!result[treeLeaves[i]]) {\r\n result[treeLeaves[i]] = []\r\n }\r\n result[treeLeaves[i]].push(deepExtendArraySafe({}, appointment, true))\r\n }\r\n });\r\n return result\r\n};\r\nexport var getResourceTreeLeaves = (getDataAccessors, tree, rawAppointment, result) => {\r\n result = result || [];\r\n for (var i = 0; i < tree.length; i++) {\r\n if (!hasGroupItem(getDataAccessors, rawAppointment, tree[i].name, tree[i].value)) {\r\n continue\r\n }\r\n if (isDefined(tree[i].leafIndex)) {\r\n result.push(tree[i].leafIndex)\r\n }\r\n if (tree[i].children) {\r\n getResourceTreeLeaves(getDataAccessors, tree[i].children, rawAppointment, result)\r\n }\r\n }\r\n return result\r\n};\r\nvar hasGroupItem = (getDataAccessors, rawAppointment, groupName, itemValue) => {\r\n var resourceValue = getDataAccessors(groupName, \"getter\")(rawAppointment);\r\n return hasResourceValue(wrapToArray(resourceValue), itemValue)\r\n};\r\nexport var createReducedResourcesTree = (loadedResources, getDataAccessors, appointments) => {\r\n var tree = createResourcesTree(loadedResources);\r\n return reduceResourcesTree(getDataAccessors, tree, appointments)\r\n};\r\nexport var reduceResourcesTree = (getDataAccessors, tree, existingAppointments, _result) => {\r\n _result = _result ? _result.children : [];\r\n tree.forEach((node, index) => {\r\n var ok = false;\r\n var resourceName = node.name;\r\n var resourceValue = node.value;\r\n var resourceTitle = node.title;\r\n var resourceData = node.data;\r\n var resourceGetter = getDataAccessors(resourceName, \"getter\");\r\n existingAppointments.forEach(appointment => {\r\n if (!ok) {\r\n var resourceFromAppointment = resourceGetter(appointment);\r\n if (Array.isArray(resourceFromAppointment)) {\r\n if (resourceFromAppointment.includes(resourceValue)) {\r\n _result.push({\r\n name: resourceName,\r\n value: resourceValue,\r\n title: resourceTitle,\r\n data: resourceData,\r\n children: []\r\n });\r\n ok = true\r\n }\r\n } else if (resourceFromAppointment === resourceValue) {\r\n _result.push({\r\n name: resourceName,\r\n value: resourceValue,\r\n title: resourceTitle,\r\n data: resourceData,\r\n children: []\r\n });\r\n ok = true\r\n }\r\n }\r\n });\r\n if (ok && node.children && node.children.length) {\r\n reduceResourcesTree(getDataAccessors, node.children, existingAppointments, _result[index])\r\n }\r\n });\r\n return _result\r\n};\r\nexport var getResourcesDataByGroups = (loadedResources, resources, groups) => {\r\n if (!groups || !groups.length) {\r\n return loadedResources\r\n }\r\n var fieldNames = {};\r\n var currentResourcesData = [];\r\n groups.forEach(group => {\r\n each(group, (name, value) => {\r\n fieldNames[name] = value\r\n })\r\n });\r\n var resourceData = loadedResources.filter(_ref2 => {\r\n var {\r\n name: name\r\n } = _ref2;\r\n return isDefined(fieldNames[name])\r\n });\r\n resourceData.forEach(data => currentResourcesData.push(extend({}, data)));\r\n currentResourcesData.forEach(currentResource => {\r\n var {\r\n items: items,\r\n data: data,\r\n name: resourceName\r\n } = currentResource;\r\n var resource = filterResources(resources, [resourceName])[0] || {};\r\n var valueExpr = getValueExpr(resource);\r\n var filteredItems = [];\r\n var filteredData = [];\r\n groups.filter(group => isDefined(group[resourceName])).forEach(group => {\r\n each(group, (name, value) => {\r\n if (!filteredItems.filter(item => item.id === value && item[valueExpr] === name).length) {\r\n var currentItems = items.filter(item => item.id === value);\r\n var currentData = data.filter(item => item[valueExpr] === value);\r\n filteredItems.push(...currentItems);\r\n filteredData.push(...currentData)\r\n }\r\n })\r\n });\r\n currentResource.items = filteredItems;\r\n currentResource.data = filteredData\r\n });\r\n return currentResourcesData\r\n};\r\nexport var setResourceToAppointment = (resources, dataAccessors, appointment, groups) => {\r\n var resourcesSetter = dataAccessors.setter;\r\n for (var name in groups) {\r\n var resourceData = groups[name];\r\n var value = isResourceMultiple(resources, name) ? wrapToArray(resourceData) : resourceData;\r\n resourcesSetter[name](appointment, value)\r\n }\r\n};\r\nexport var getResourceColor = (resources, resourceLoaderMap, field, value) => {\r\n var result = new Deferred;\r\n var resource = filterResources(resources, [field])[0] || {};\r\n var colorExpr = resource.colorExpr || \"color\";\r\n var colorGetter = compileGetter(colorExpr);\r\n getOrLoadResourceItem(resources, resourceLoaderMap, field, value).done(resource => result.resolve(colorGetter(resource))).fail(() => result.reject());\r\n return result.promise()\r\n};\r\nexport var getAppointmentColor = (resourceConfig, appointmentConfig) => {\r\n var {\r\n resources: resources,\r\n dataAccessors: dataAccessors,\r\n loadedResources: loadedResources,\r\n resourceLoaderMap: resourceLoaderMap\r\n } = resourceConfig;\r\n var {\r\n groupIndex: groupIndex,\r\n groups: groups,\r\n itemData: itemData\r\n } = appointmentConfig;\r\n var paintedResources = getPaintedResources(resources || [], groups);\r\n if (paintedResources) {\r\n var field = getFieldExpr(paintedResources);\r\n var cellGroups = getCellGroups(groupIndex, loadedResources);\r\n var resourcesDataAccessors = getDataAccessors(dataAccessors, field, \"getter\");\r\n var resourceValues = wrapToArray(resourcesDataAccessors(itemData));\r\n var groupId = resourceValues[0];\r\n for (var i = 0; i < cellGroups.length; i++) {\r\n if (cellGroups[i].name === field) {\r\n groupId = cellGroups[i].id;\r\n break\r\n }\r\n }\r\n return getResourceColor(resources, resourceLoaderMap, field, groupId)\r\n }\r\n return (new Deferred).resolve().promise()\r\n};\r\nexport var createExpressions = function() {\r\n var resources = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\r\n var result = {\r\n getter: {},\r\n setter: {}\r\n };\r\n resources.forEach(resource => {\r\n var field = getFieldExpr(resource);\r\n result.getter[field] = compileGetter(field);\r\n result.setter[field] = compileSetter(field)\r\n });\r\n return result\r\n};\r\nvar getTransformedResourceData = (resource, data) => {\r\n var valueGetter = compileGetter(getValueExpr(resource));\r\n var displayGetter = compileGetter(getDisplayExpr(resource));\r\n return data.map(item => {\r\n var result = {\r\n id: valueGetter(item),\r\n text: displayGetter(item)\r\n };\r\n if (item.color) {\r\n result.color = item.color\r\n }\r\n return result\r\n })\r\n};\r\nexport var loadResources = (groups, resources, resourceLoaderMap) => {\r\n var result = new Deferred;\r\n var deferreds = [];\r\n var newGroups = groups || [];\r\n var newResources = resources || [];\r\n var loadedResources = [];\r\n filterResources(newResources, newGroups).forEach(resource => {\r\n var deferred = new Deferred;\r\n var name = getFieldExpr(resource);\r\n deferreds.push(deferred);\r\n var dataSourcePromise = getWrappedDataSource(resource.dataSource).load();\r\n resourceLoaderMap.set(name, dataSourcePromise);\r\n dataSourcePromise.done(data => {\r\n var items = getTransformedResourceData(resource, data);\r\n deferred.resolve({\r\n name: name,\r\n items: items,\r\n data: data\r\n })\r\n }).fail(() => deferred.reject())\r\n });\r\n if (!deferreds.length) {\r\n return result.resolve(loadedResources)\r\n }\r\n when.apply(null, deferreds).done((function() {\r\n for (var _len = arguments.length, resources = new Array(_len), _key = 0; _key < _len; _key++) {\r\n resources[_key] = arguments[_key]\r\n }\r\n var hasEmpty = resources.some(r => 0 === r.items.length);\r\n loadedResources = hasEmpty ? [] : resources;\r\n result.resolve(loadedResources)\r\n })).fail(() => result.reject());\r\n return result.promise()\r\n};\r\nexport var getNormalizedResources = (rawAppointment, dataAccessors, resources) => {\r\n var result = {};\r\n each(dataAccessors.resources.getter, fieldName => {\r\n var value = dataAccessors.resources.getter[fieldName](rawAppointment);\r\n if (isDefined(value)) {\r\n var isMultiple = isResourceMultiple(resources, fieldName);\r\n var resourceValue = isMultiple ? wrapToArray(value) : value;\r\n result[fieldName] = resourceValue\r\n }\r\n });\r\n return result\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointment_popup/m_popup.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport devices from \"../../../core/devices\";\r\nimport $ from \"../../../core/renderer\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n triggerResizeEvent\r\n} from \"../../../events/visibility_change\";\r\nimport Popup from \"../../../ui/popup/ui.popup\";\r\nimport {\r\n ExpressionUtils\r\n} from \"../../scheduler/m_expression_utils\";\r\nimport {\r\n getMaxWidth,\r\n getPopupToolbarItems,\r\n isPopupFullScreenNeeded\r\n} from \"../../scheduler/r1/appointment_popup/index\";\r\nimport {\r\n createAppointmentAdapter\r\n} from \"../m_appointment_adapter\";\r\nimport {\r\n hide as hideLoading,\r\n show as showLoading\r\n} from \"../m_loading\";\r\nimport {\r\n getNormalizedResources\r\n} from \"../resources/m_utils\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nvar APPOINTMENT_POPUP_CLASS = \"dx-scheduler-appointment-popup\";\r\nvar DAY_IN_MS = toMs(\"day\");\r\nvar POPUP_CONFIG = {\r\n height: \"auto\",\r\n maxHeight: \"100%\",\r\n showCloseButton: false,\r\n showTitle: false,\r\n preventScrollEvents: false,\r\n enableBodyScroll: false,\r\n defaultOptionsRules: [{\r\n device: () => devices.current().android,\r\n options: {\r\n showTitle: false\r\n }\r\n }],\r\n _ignorePreventScrollEventsDeprecation: true\r\n};\r\nexport var ACTION_TO_APPOINTMENT = {\r\n CREATE: 0,\r\n UPDATE: 1,\r\n EXCLUDE_FROM_SERIES: 2\r\n};\r\nexport class AppointmentPopup {\r\n constructor(scheduler, form) {\r\n this.scheduler = scheduler;\r\n this.form = form;\r\n this.popup = null;\r\n this.state = {\r\n action: null,\r\n lastEditData: null,\r\n saveChangesLocker: false,\r\n appointment: {\r\n data: null\r\n }\r\n }\r\n }\r\n get visible() {\r\n return this.popup ? this.popup.option(\"visible\") : false\r\n }\r\n show(appointment, config) {\r\n this.state.appointment.data = appointment;\r\n this.state.action = config.action;\r\n this.state.excludeInfo = config.excludeInfo;\r\n if (!this.popup) {\r\n var popupConfig = this._createPopupConfig();\r\n this.popup = this._createPopup(popupConfig)\r\n }\r\n this.popup.option(\"toolbarItems\", getPopupToolbarItems(config.isToolbarVisible, e => this._doneButtonClickHandler(e)));\r\n this.popup.show()\r\n }\r\n hide() {\r\n this.popup.hide()\r\n }\r\n dispose() {\r\n var _a;\r\n null === (_a = this.popup) || void 0 === _a ? void 0 : _a.$element().remove()\r\n }\r\n _createPopup(options) {\r\n var popupElement = $(\"<div>\").addClass(APPOINTMENT_POPUP_CLASS).appendTo(this.scheduler.getElement());\r\n return this.scheduler.createComponent(popupElement, Popup, options)\r\n }\r\n _createPopupConfig() {\r\n return _extends(_extends({}, POPUP_CONFIG), {\r\n onHiding: () => this.scheduler.focus(),\r\n contentTemplate: () => this._createPopupContent(),\r\n onShowing: e => this._onShowing(e),\r\n wrapperAttr: {\r\n class: APPOINTMENT_POPUP_CLASS\r\n }\r\n })\r\n }\r\n _onShowing(e) {\r\n this._updateForm();\r\n var arg = {\r\n form: this.form.dxForm,\r\n popup: this.popup,\r\n appointmentData: this.state.appointment.data,\r\n cancel: false\r\n };\r\n this.scheduler.getAppointmentFormOpening()(arg);\r\n this.scheduler.processActionResult(arg, canceled => {\r\n if (canceled) {\r\n e.cancel = true\r\n } else {\r\n this.updatePopupFullScreenMode()\r\n }\r\n })\r\n }\r\n _createPopupContent() {\r\n this._createForm();\r\n return this.form.dxForm.$element()\r\n }\r\n _createFormData(rawAppointment) {\r\n var appointment = this._createAppointmentAdapter(rawAppointment);\r\n var dataAccessors = this.scheduler.getDataAccessors();\r\n var resources = this.scheduler.getResources();\r\n var normalizedResources = getNormalizedResources(rawAppointment, dataAccessors, resources);\r\n return _extends(_extends(_extends({}, rawAppointment), normalizedResources), {\r\n repeat: !!appointment.recurrenceRule\r\n })\r\n }\r\n _createForm() {\r\n var rawAppointment = this.state.appointment.data;\r\n var formData = this._createFormData(rawAppointment);\r\n this.form.create(this.triggerResize.bind(this), this.changeSize.bind(this), formData)\r\n }\r\n _isReadOnly(rawAppointment) {\r\n var appointment = this._createAppointmentAdapter(rawAppointment);\r\n if (rawAppointment && appointment.disabled) {\r\n return true\r\n }\r\n if (this.state.action === ACTION_TO_APPOINTMENT.CREATE) {\r\n return false\r\n }\r\n return !this.scheduler.getEditingConfig().allowUpdating\r\n }\r\n _createAppointmentAdapter(rawAppointment) {\r\n return createAppointmentAdapter(rawAppointment, this.scheduler.getDataAccessors(), this.scheduler.getTimeZoneCalculator())\r\n }\r\n _updateForm() {\r\n var {\r\n data: data\r\n } = this.state.appointment;\r\n var appointment = this._createAppointmentAdapter(this._createFormData(data));\r\n if (appointment.startDate) {\r\n appointment.startDate = appointment.calculateStartDate(\"toAppointment\")\r\n }\r\n if (appointment.endDate) {\r\n appointment.endDate = appointment.calculateEndDate(\"toAppointment\")\r\n }\r\n var formData = appointment.clone().source();\r\n this.form.readOnly = this._isReadOnly(formData);\r\n this.form.updateFormData(formData)\r\n }\r\n triggerResize() {\r\n if (this.popup) {\r\n triggerResizeEvent(this.popup.$element())\r\n }\r\n }\r\n changeSize(isRecurrence) {\r\n if (this.popup) {\r\n var isFullScreen = isPopupFullScreenNeeded();\r\n var maxWidth = isFullScreen ? \"100%\" : getMaxWidth(isRecurrence);\r\n this.popup.option(\"fullScreen\", isFullScreen);\r\n this.popup.option(\"maxWidth\", maxWidth)\r\n }\r\n }\r\n updatePopupFullScreenMode() {\r\n if (this.form.dxForm && this.visible) {\r\n var {\r\n formData: formData\r\n } = this.form;\r\n var dataAccessors = this.scheduler.getDataAccessors();\r\n var isRecurrence = ExpressionUtils.getField(dataAccessors, \"recurrenceRule\", formData);\r\n this.changeSize(isRecurrence)\r\n }\r\n }\r\n saveChangesAsync(isShowLoadPanel) {\r\n var deferred = new Deferred;\r\n var validation = this.form.dxForm.validate();\r\n isShowLoadPanel && this._showLoadPanel();\r\n when(validation && validation.complete || validation).done(validation => {\r\n if (validation && !validation.isValid) {\r\n hideLoading();\r\n deferred.resolve(false);\r\n return\r\n }\r\n var {\r\n repeat: repeat\r\n } = this.form.formData;\r\n var adapter = this._createAppointmentAdapter(this.form.formData);\r\n var clonedAdapter = adapter.clone({\r\n pathTimeZone: \"fromAppointment\"\r\n });\r\n var shouldClearRecurrenceRule = !repeat && !!clonedAdapter.recurrenceRule;\r\n this._addMissingDSTTime(adapter, clonedAdapter);\r\n if (shouldClearRecurrenceRule) {\r\n clonedAdapter.recurrenceRule = \"\"\r\n }\r\n var appointment = clonedAdapter.source();\r\n delete appointment.repeat;\r\n switch (this.state.action) {\r\n case ACTION_TO_APPOINTMENT.CREATE:\r\n this.scheduler.addAppointment(appointment).done(deferred.resolve);\r\n break;\r\n case ACTION_TO_APPOINTMENT.UPDATE:\r\n this.scheduler.updateAppointment(this.state.appointment.data, appointment).done(deferred.resolve);\r\n break;\r\n case ACTION_TO_APPOINTMENT.EXCLUDE_FROM_SERIES:\r\n this.scheduler.updateAppointment(this.state.excludeInfo.sourceAppointment, this.state.excludeInfo.updatedAppointment);\r\n this.scheduler.addAppointment(appointment).done(deferred.resolve)\r\n }\r\n deferred.done(() => {\r\n hideLoading();\r\n this.state.lastEditData = appointment\r\n })\r\n });\r\n return deferred.promise()\r\n }\r\n _doneButtonClickHandler(e) {\r\n e.cancel = true;\r\n this.saveEditDataAsync()\r\n }\r\n saveEditDataAsync() {\r\n var deferred = new Deferred;\r\n if (this._tryLockSaveChanges()) {\r\n when(this.saveChangesAsync(true)).done(() => {\r\n if (this.state.lastEditData) {\r\n var adapter = this._createAppointmentAdapter(this.state.lastEditData);\r\n var {\r\n startDate: startDate,\r\n endDate: endDate,\r\n allDay: allDay\r\n } = adapter;\r\n var startTime = startDate.getTime();\r\n var endTime = endDate.getTime();\r\n var inAllDayRow = allDay || endTime - startTime >= DAY_IN_MS;\r\n var dataAccessors = this.scheduler.getDataAccessors();\r\n var resourceList = this.scheduler.getResources();\r\n var normalizedResources = getNormalizedResources(this.state.lastEditData, dataAccessors, resourceList);\r\n this.scheduler.updateScrollPosition(startDate, normalizedResources, inAllDayRow);\r\n this.state.lastEditData = null\r\n }\r\n this._unlockSaveChanges();\r\n deferred.resolve()\r\n })\r\n }\r\n return deferred.promise()\r\n }\r\n _showLoadPanel() {\r\n var container = this.popup.$overlayContent();\r\n showLoading({\r\n container: container,\r\n position: {\r\n of: container\r\n }\r\n })\r\n }\r\n _tryLockSaveChanges() {\r\n if (false === this.state.saveChangesLocker) {\r\n this.state.saveChangesLocker = true;\r\n return true\r\n }\r\n return false\r\n }\r\n _unlockSaveChanges() {\r\n this.state.saveChangesLocker = false\r\n }\r\n _addMissingDSTTime(formAppointmentAdapter, clonedAppointmentAdapter) {\r\n var timeZoneCalculator = this.scheduler.getTimeZoneCalculator();\r\n clonedAppointmentAdapter.startDate = this._addMissingDSTShiftToDate(timeZoneCalculator, formAppointmentAdapter.startDate, clonedAppointmentAdapter.startDate);\r\n if (clonedAppointmentAdapter.endDate) {\r\n clonedAppointmentAdapter.endDate = this._addMissingDSTShiftToDate(timeZoneCalculator, formAppointmentAdapter.endDate, clonedAppointmentAdapter.endDate)\r\n }\r\n }\r\n _addMissingDSTShiftToDate(timeZoneCalculator, originFormDate, clonedDate) {\r\n var _a, _b;\r\n var originTimezoneShift = null === (_a = timeZoneCalculator.getOffsets(originFormDate)) || void 0 === _a ? void 0 : _a.common;\r\n var clonedTimezoneShift = null === (_b = timeZoneCalculator.getOffsets(clonedDate)) || void 0 === _b ? void 0 : _b.common;\r\n var shiftDifference = originTimezoneShift - clonedTimezoneShift;\r\n return shiftDifference ? new Date(clonedDate.getTime() + shiftDifference * toMs(\"hour\")) : clonedDate\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/filterting/remote.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n equalByValue\r\n} from \"../../../../core/utils/common\";\r\nimport dateSerialization from \"../../../../core/utils/date_serialization\";\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 {\r\n getDatesWithoutTime\r\n} from \"../utils/index\";\r\nvar FilterPosition = {\r\n dateFilter: 0,\r\n userFilter: 1\r\n};\r\nclass RemoteFilterCombiner {\r\n constructor(options) {\r\n this.options = options\r\n }\r\n get dataAccessors() {\r\n return this.options.dataAccessors\r\n }\r\n get dataSourceFilter() {\r\n return this.options.dataSourceFilter\r\n }\r\n get dateSerializationFormat() {\r\n return this.options.dateSerializationFormat\r\n }\r\n get forceIsoDateParsing() {\r\n return isDefined(this.options.forceIsoDateParsing) ? this.options.forceIsoDateParsing : true\r\n }\r\n makeDateFilter(min, max) {\r\n var {\r\n startDateExpr: startDateExpr,\r\n endDateExpr: endDateExpr,\r\n recurrenceRuleExpr: recurrenceRuleExpr\r\n } = this.dataAccessors.expr;\r\n var dateFilter = [\r\n [\r\n [endDateExpr, \">=\", min],\r\n [startDateExpr, \"<\", max]\r\n ], \"or\", [recurrenceRuleExpr, \"startswith\", \"freq\"], \"or\", [\r\n [endDateExpr, min],\r\n [startDateExpr, min]\r\n ]\r\n ];\r\n if (!recurrenceRuleExpr) {\r\n dateFilter.splice(1, 2)\r\n }\r\n return dateFilter\r\n }\r\n combineFilters(dateFilter, userFilter) {\r\n var combinedFilter = [];\r\n if (dateFilter) {\r\n combinedFilter.push(dateFilter)\r\n }\r\n if (userFilter) {\r\n combinedFilter.push(userFilter)\r\n }\r\n return this.serializeRemoteFilter(combinedFilter)\r\n }\r\n serializeRemoteFilter(combinedFilter) {\r\n if (!Array.isArray(combinedFilter)) {\r\n return combinedFilter\r\n }\r\n var {\r\n startDateExpr: startDateExpr,\r\n endDateExpr: endDateExpr\r\n } = this.dataAccessors.expr;\r\n var filter = extend([], combinedFilter);\r\n if (isString(filter[0])) {\r\n if (this.forceIsoDateParsing && filter.length > 1) {\r\n if (filter[0] === startDateExpr || filter[0] === endDateExpr) {\r\n var lastFilterValue = filter[filter.length - 1];\r\n filter[filter.length - 1] = dateSerialization.serializeDate(new Date(lastFilterValue), this.dateSerializationFormat)\r\n }\r\n }\r\n }\r\n for (var i = 0; i < filter.length; i += 1) {\r\n filter[i] = this.serializeRemoteFilter(filter[i])\r\n }\r\n return filter\r\n }\r\n getUserFilter(dateFilter) {\r\n if (!this.dataSourceFilter || equalByValue(this.dataSourceFilter, dateFilter)) {\r\n return\r\n }\r\n var containsDateFilter = this.dataSourceFilter.length > 0 && equalByValue(this.dataSourceFilter[FilterPosition.dateFilter], dateFilter);\r\n var userFilter = containsDateFilter ? this.dataSourceFilter[FilterPosition.userFilter] : this.dataSourceFilter;\r\n return userFilter\r\n }\r\n combine(min, max) {\r\n var [trimMin, trimMax] = getDatesWithoutTime(min, max);\r\n var dateFilter = this.makeDateFilter(trimMin, trimMax);\r\n var userFilter = this.getUserFilter(dateFilter);\r\n var combinedFilter = this.combineFilters(dateFilter, userFilter);\r\n return combinedFilter\r\n }\r\n}\r\nexport var combineRemoteFilter = options => new RemoteFilterCombiner(options).combine(options.min, options.max);\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/data_provider/m_appointment_data_source.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n Deferred\r\n} from \"../../../../core/utils/deferred\";\r\nvar STORE_EVENTS = {\r\n updating: \"updating\",\r\n push: \"push\"\r\n};\r\nexport class AppointmentDataSource {\r\n constructor(dataSource) {\r\n this.setDataSource(dataSource);\r\n this._updatedAppointmentKeys = []\r\n }\r\n get keyName() {\r\n var store = this._dataSource.store();\r\n return store.key()\r\n }\r\n get isDataSourceInit() {\r\n return !!this._dataSource\r\n }\r\n _getStoreKey(target) {\r\n var store = this._dataSource.store();\r\n return store.keyOf(target)\r\n }\r\n setDataSource(dataSource) {\r\n this._dataSource = dataSource;\r\n this.cleanState();\r\n this._initStoreChangeHandlers()\r\n }\r\n _initStoreChangeHandlers() {\r\n var dataSource = this._dataSource;\r\n var store = null === dataSource || void 0 === dataSource ? void 0 : dataSource.store();\r\n if (store) {\r\n store.on(STORE_EVENTS.updating, key => {\r\n var keyName = store.key();\r\n if (keyName) {\r\n this._updatedAppointmentKeys.push({\r\n key: keyName,\r\n value: key\r\n })\r\n } else {\r\n this._updatedAppointment = key\r\n }\r\n });\r\n store.on(STORE_EVENTS.push, pushItems => {\r\n var items = dataSource.items();\r\n var keyName = store.key();\r\n pushItems.forEach(pushItem => {\r\n var itemExists = 0 !== items.filter(item => item[keyName] === pushItem.key).length;\r\n if (itemExists) {\r\n this._updatedAppointmentKeys.push({\r\n key: keyName,\r\n value: pushItem.key\r\n })\r\n } else {\r\n var {\r\n data: data\r\n } = pushItem;\r\n data && items.push(data)\r\n }\r\n });\r\n dataSource.load()\r\n })\r\n }\r\n }\r\n getUpdatedAppointment() {\r\n return this._updatedAppointment\r\n }\r\n getUpdatedAppointmentKeys() {\r\n return this._updatedAppointmentKeys\r\n }\r\n cleanState() {\r\n this._updatedAppointment = null;\r\n this._updatedAppointmentKeys = []\r\n }\r\n add(rawAppointment) {\r\n return this._dataSource.store().insert(rawAppointment).done(() => this._dataSource.load())\r\n }\r\n update(target, data) {\r\n var key = this._getStoreKey(target);\r\n var d = new Deferred;\r\n this._dataSource.store().update(key, data).done(result => this._dataSource.load().done(() => d.resolve(result)).fail(d.reject)).fail(d.reject);\r\n return d.promise()\r\n }\r\n remove(rawAppointment) {\r\n var key = this._getStoreKey(rawAppointment);\r\n return this._dataSource.store().remove(key).done(() => this._dataSource.load())\r\n }\r\n destroy() {\r\n var _a;\r\n var store = null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.store();\r\n if (store) {\r\n store.off(STORE_EVENTS.updating);\r\n store.off(STORE_EVENTS.push)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/data_provider/m_appointment_filter.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n wrapToArray\r\n} from \"../../../../core/utils/array\";\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isFunction\r\n} from \"../../../../core/utils/type\";\r\nimport query from \"../../../../data/query\";\r\nimport {\r\n dateUtilsTs\r\n} from \"../../../core/utils/date\";\r\nimport {\r\n getAppointmentTakesAllDay,\r\n getDatesWithoutTime,\r\n hasResourceValue,\r\n isDateAndTimeView,\r\n isTimelineView\r\n} from \"../../../scheduler/r1/utils/index\";\r\nimport {\r\n createAppointmentAdapter\r\n} from \"../../m_appointment_adapter\";\r\nimport {\r\n getRecurrenceProcessor\r\n} from \"../../m_recurrence\";\r\nimport {\r\n getResourcesDataByGroups\r\n} from \"../../resources/m_utils\";\r\nimport {\r\n _appointmentPartInInterval,\r\n compareDateWithEndDayHour,\r\n compareDateWithStartDayHour,\r\n getAppointmentTakesSeveralDays,\r\n getRecurrenceException\r\n} from \"./m_utils\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nvar FilterStrategies = {\r\n virtual: \"virtual\",\r\n standard: \"standard\"\r\n};\r\nexport class AppointmentFilterBaseStrategy {\r\n constructor(options) {\r\n this.options = options;\r\n this.dataAccessors = this.options.dataAccessors;\r\n this._init()\r\n }\r\n get strategyName() {\r\n return FilterStrategies.standard\r\n }\r\n get timeZoneCalculator() {\r\n return this.options.timeZoneCalculator\r\n }\r\n get viewStartDayHour() {\r\n return this.options.startDayHour\r\n }\r\n get viewEndDayHour() {\r\n return this.options.endDayHour\r\n }\r\n get timezone() {\r\n return this.options.timezone\r\n }\r\n get firstDayOfWeek() {\r\n return this.options.firstDayOfWeek\r\n }\r\n get showAllDayPanel() {\r\n return this.options.showAllDayPanel\r\n }\r\n get loadedResources() {\r\n return this._resolveOption(\"loadedResources\")\r\n }\r\n get supportAllDayRow() {\r\n return this._resolveOption(\"supportAllDayRow\")\r\n }\r\n get viewType() {\r\n return this._resolveOption(\"viewType\")\r\n }\r\n get viewDirection() {\r\n return this._resolveOption(\"viewDirection\")\r\n }\r\n get dateRange() {\r\n return this._resolveOption(\"dateRange\")\r\n }\r\n get groupCount() {\r\n return this._resolveOption(\"groupCount\")\r\n }\r\n get viewDataProvider() {\r\n return this._resolveOption(\"viewDataProvider\")\r\n }\r\n get allDayPanelMode() {\r\n return this._resolveOption(\"allDayPanelMode\")\r\n }\r\n _resolveOption(name) {\r\n var result = this.options[name];\r\n return \"function\" === typeof result ? result() : result\r\n }\r\n _init() {\r\n this.setDataAccessors(this.dataAccessors)\r\n }\r\n filter(preparedItems) {\r\n var [min, max] = this.dateRange;\r\n var {\r\n viewOffset: viewOffset\r\n } = this.options;\r\n var allDay = !this.showAllDayPanel && this.supportAllDayRow ? false : void 0;\r\n return this.filterLoadedAppointments({\r\n startDayHour: this.viewStartDayHour,\r\n endDayHour: this.viewEndDayHour,\r\n viewOffset: viewOffset,\r\n viewStartDayHour: this.viewStartDayHour,\r\n viewEndDayHour: this.viewEndDayHour,\r\n min: min,\r\n max: max,\r\n resources: this.loadedResources,\r\n allDay: allDay,\r\n supportMultiDayAppointments: isTimelineView(this.viewType),\r\n firstDayOfWeek: this.firstDayOfWeek\r\n }, preparedItems)\r\n }\r\n hasAllDayAppointments(filteredItems, preparedItems) {\r\n var adapters = filteredItems.map(item => createAppointmentAdapter(item, this.dataAccessors, this.timeZoneCalculator));\r\n var result = false;\r\n each(adapters, (_, item) => {\r\n if (getAppointmentTakesAllDay(item, this.allDayPanelMode)) {\r\n result = true;\r\n return false\r\n }\r\n });\r\n return result\r\n }\r\n setDataAccessors(dataAccessors) {\r\n this.dataAccessors = dataAccessors\r\n }\r\n _createAllDayAppointmentFilter() {\r\n return [\r\n [appointment => getAppointmentTakesAllDay(appointment, this.allDayPanelMode)]\r\n ]\r\n }\r\n _createCombinedFilter(filterOptions) {\r\n var min = new Date(filterOptions.min);\r\n var max = new Date(filterOptions.max);\r\n var {\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour,\r\n viewOffset: viewOffset,\r\n viewStartDayHour: viewStartDayHour,\r\n viewEndDayHour: viewEndDayHour,\r\n resources: resources,\r\n firstDayOfWeek: firstDayOfWeek,\r\n checkIntersectViewport: checkIntersectViewport,\r\n supportMultiDayAppointments: supportMultiDayAppointments\r\n } = filterOptions;\r\n var [trimMin, trimMax] = getDatesWithoutTime(min, max);\r\n var useRecurrence = isDefined(this.dataAccessors.getter.recurrenceRule);\r\n return [\r\n [appointment => {\r\n var _a;\r\n var appointmentVisible = null !== (_a = appointment.visible) && void 0 !== _a ? _a : true;\r\n if (!appointmentVisible) {\r\n return false\r\n }\r\n var {\r\n allDay: isAllDay,\r\n hasRecurrenceRule: hasRecurrenceRule\r\n } = appointment;\r\n var startDate = dateUtilsTs.addOffsets(appointment.startDate, [-viewOffset]);\r\n var endDate = dateUtilsTs.addOffsets(appointment.endDate, [-viewOffset]);\r\n var appointmentTakesAllDay = getAppointmentTakesAllDay(appointment, this.allDayPanelMode);\r\n if (!hasRecurrenceRule) {\r\n if (!(endDate >= trimMin && startDate < trimMax || dateUtils.sameDate(endDate, trimMin) && dateUtils.sameDate(startDate, trimMin))) {\r\n return false\r\n }\r\n }\r\n var appointmentTakesSeveralDays = getAppointmentTakesSeveralDays(appointment);\r\n var isLongAppointment = appointmentTakesSeveralDays || appointmentTakesAllDay;\r\n if ((null === resources || void 0 === resources ? void 0 : resources.length) && !this._filterAppointmentByResources(appointment.rawAppointment, resources)) {\r\n return false\r\n }\r\n if (appointmentTakesAllDay && false === filterOptions.allDay) {\r\n return false\r\n }\r\n if (hasRecurrenceRule) {\r\n var recurrenceException = getRecurrenceException(appointment, this.timeZoneCalculator, this.timezone);\r\n if (!this._filterAppointmentByRRule(_extends(_extends({}, appointment), {\r\n recurrenceException: recurrenceException,\r\n allDay: appointmentTakesAllDay\r\n }), min, max, startDayHour, endDayHour, firstDayOfWeek)) {\r\n return false\r\n }\r\n }\r\n if (!isAllDay && supportMultiDayAppointments && isLongAppointment) {\r\n if (endDate < min && (!useRecurrence || useRecurrence && !hasRecurrenceRule)) {\r\n return false\r\n }\r\n }\r\n if (!isAllDay && isDefined(startDayHour) && (!useRecurrence || !filterOptions.isVirtualScrolling)) {\r\n if (!compareDateWithStartDayHour(startDate, endDate, startDayHour, appointmentTakesAllDay, appointmentTakesSeveralDays)) {\r\n return false\r\n }\r\n }\r\n if (!isAllDay && isDefined(endDayHour)) {\r\n if (!compareDateWithEndDayHour({\r\n startDate: startDate,\r\n endDate: endDate,\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour,\r\n viewOffset: viewOffset,\r\n viewStartDayHour: viewStartDayHour,\r\n viewEndDayHour: viewEndDayHour,\r\n allDay: appointmentTakesAllDay,\r\n severalDays: appointmentTakesSeveralDays,\r\n min: min,\r\n max: max,\r\n checkIntersectViewport: checkIntersectViewport\r\n })) {\r\n return false\r\n }\r\n }\r\n if (!isAllDay && (!isLongAppointment || supportMultiDayAppointments)) {\r\n if (endDate < min && useRecurrence && !hasRecurrenceRule) {\r\n return false\r\n }\r\n }\r\n return true\r\n }]\r\n ]\r\n }\r\n _createAppointmentFilter(filterOptions) {\r\n return this._createCombinedFilter(filterOptions)\r\n }\r\n _filterAppointmentByResources(appointment, resources) {\r\n var checkAppointmentResourceValues = (resourceName, resourceIndex) => {\r\n var resourceGetter = this.dataAccessors.resources.getter[resourceName];\r\n var resource;\r\n if (isFunction(resourceGetter)) {\r\n resource = resourceGetter(appointment)\r\n }\r\n var appointmentResourceValues = wrapToArray(resource);\r\n var resourceData = map(resources[resourceIndex].items, _ref => {\r\n var {\r\n id: id\r\n } = _ref;\r\n return id\r\n });\r\n for (var i = 0; i < appointmentResourceValues.length; i++) {\r\n if (hasResourceValue(resourceData, appointmentResourceValues[i])) {\r\n return true\r\n }\r\n }\r\n return false\r\n };\r\n var result = false;\r\n for (var i = 0; i < resources.length; i++) {\r\n var resourceName = resources[i].name;\r\n result = checkAppointmentResourceValues(resourceName, i);\r\n if (!result) {\r\n return false\r\n }\r\n }\r\n return result\r\n }\r\n _filterAppointmentByRRule(appointment, min, max, startDayHour, endDayHour, firstDayOfWeek) {\r\n var {\r\n recurrenceRule: recurrenceRule\r\n } = appointment;\r\n var {\r\n recurrenceException: recurrenceException\r\n } = appointment;\r\n var {\r\n allDay: allDay\r\n } = appointment;\r\n var result = true;\r\n var appointmentStartDate = appointment.startDate;\r\n var appointmentEndDate = appointment.endDate;\r\n var recurrenceProcessor = getRecurrenceProcessor();\r\n if (allDay || _appointmentPartInInterval(appointmentStartDate, appointmentEndDate, startDayHour, endDayHour)) {\r\n var [trimMin, trimMax] = getDatesWithoutTime(min, max);\r\n min = trimMin;\r\n max = new Date(trimMax.getTime() - toMs(\"minute\"))\r\n }\r\n if (recurrenceRule && !recurrenceProcessor.isValidRecurrenceRule(recurrenceRule)) {\r\n result = appointmentEndDate > min && appointmentStartDate <= max\r\n }\r\n if (result && recurrenceProcessor.isValidRecurrenceRule(recurrenceRule)) {\r\n var {\r\n viewOffset: viewOffset\r\n } = this.options;\r\n result = recurrenceProcessor.hasRecurrence({\r\n rule: recurrenceRule,\r\n exception: recurrenceException,\r\n start: appointmentStartDate,\r\n end: appointmentEndDate,\r\n min: dateUtilsTs.addOffsets(min, [viewOffset]),\r\n max: dateUtilsTs.addOffsets(max, [viewOffset]),\r\n firstDayOfWeek: firstDayOfWeek,\r\n appointmentTimezoneOffset: this.timeZoneCalculator.getOriginStartDateOffsetInMs(appointmentStartDate, appointment.startDateTimeZone, false)\r\n })\r\n }\r\n return result\r\n }\r\n filterLoadedAppointments(filterOptions, preparedItems) {\r\n var filteredItems = this.filterPreparedItems(filterOptions, preparedItems);\r\n return filteredItems.map(_ref2 => {\r\n var {\r\n rawAppointment: rawAppointment\r\n } = _ref2;\r\n return rawAppointment\r\n })\r\n }\r\n filterPreparedItems(filterOptions, preparedItems) {\r\n var combinedFilter = this._createAppointmentFilter(filterOptions);\r\n return query(preparedItems).filter(combinedFilter).toArray()\r\n }\r\n filterAllDayAppointments(preparedItems) {\r\n var combinedFilter = this._createAllDayAppointmentFilter();\r\n return query(preparedItems).filter(combinedFilter).toArray().map(_ref3 => {\r\n var {\r\n rawAppointment: rawAppointment\r\n } = _ref3;\r\n return rawAppointment\r\n })\r\n }\r\n}\r\nexport class AppointmentFilterVirtualStrategy extends AppointmentFilterBaseStrategy {\r\n get strategyName() {\r\n return FilterStrategies.virtual\r\n }\r\n get resources() {\r\n return this.options.resources\r\n }\r\n filter(preparedItems) {\r\n var {\r\n viewOffset: viewOffset\r\n } = this.options;\r\n var hourMs = toMs(\"hour\");\r\n var isCalculateStartAndEndDayHour = isDateAndTimeView(this.viewType);\r\n var checkIntersectViewport = isCalculateStartAndEndDayHour && \"horizontal\" === this.viewDirection;\r\n var isAllDayWorkspace = !this.supportAllDayRow;\r\n var showAllDayAppointments = this.showAllDayPanel || isAllDayWorkspace;\r\n var endViewDate = this.viewDataProvider.getLastViewDateByEndDayHour(this.viewEndDayHour);\r\n var shiftedEndViewDate = dateUtilsTs.addOffsets(endViewDate, [viewOffset]);\r\n var filterOptions = [];\r\n var groupsInfo = this.viewDataProvider.getCompletedGroupsInfo();\r\n groupsInfo.forEach(item => {\r\n var {\r\n groupIndex: groupIndex\r\n } = item;\r\n var groupStartDate = item.startDate;\r\n var groupEndDate = new Date(Math.min(item.endDate.getTime(), shiftedEndViewDate.getTime()));\r\n var startDayHour = isCalculateStartAndEndDayHour ? groupStartDate.getHours() : this.viewStartDayHour;\r\n var endDayHour = isCalculateStartAndEndDayHour ? startDayHour + groupStartDate.getMinutes() / 60 + (groupEndDate.getTime() - groupStartDate.getTime()) / hourMs : this.viewEndDayHour;\r\n var resources = this._getPrerenderFilterResources(groupIndex);\r\n var hasAllDayPanel = this.viewDataProvider.hasGroupAllDayPanel(groupIndex);\r\n var supportAllDayAppointment = isAllDayWorkspace || !!showAllDayAppointments && hasAllDayPanel;\r\n filterOptions.push({\r\n isVirtualScrolling: true,\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour,\r\n viewOffset: viewOffset,\r\n viewStartDayHour: this.viewStartDayHour,\r\n viewEndDayHour: this.viewEndDayHour,\r\n min: dateUtilsTs.addOffsets(groupStartDate, [-viewOffset]),\r\n max: dateUtilsTs.addOffsets(groupEndDate, [-viewOffset]),\r\n supportMultiDayAppointments: isTimelineView(this.viewType),\r\n allDay: supportAllDayAppointment,\r\n resources: resources,\r\n firstDayOfWeek: this.firstDayOfWeek,\r\n checkIntersectViewport: checkIntersectViewport\r\n })\r\n });\r\n return this.filterLoadedAppointments({\r\n filterOptions: filterOptions,\r\n groupCount: this.groupCount\r\n }, preparedItems)\r\n }\r\n filterPreparedItems(_ref4, preparedItems) {\r\n var {\r\n filterOptions: filterOptions,\r\n groupCount: groupCount\r\n } = _ref4;\r\n var combinedFilters = [];\r\n var itemsToFilter = preparedItems;\r\n var needPreFilter = groupCount > 0;\r\n if (needPreFilter) {\r\n itemsToFilter = itemsToFilter.filter(_ref5 => {\r\n var {\r\n rawAppointment: rawAppointment\r\n } = _ref5;\r\n for (var i = 0; i < filterOptions.length; ++i) {\r\n var {\r\n resources: resources\r\n } = filterOptions[i];\r\n if (this._filterAppointmentByResources(rawAppointment, resources)) {\r\n return true\r\n }\r\n }\r\n })\r\n }\r\n filterOptions.forEach(option => {\r\n combinedFilters.length && combinedFilters.push(\"or\");\r\n var filter = this._createAppointmentFilter(option);\r\n combinedFilters.push(filter)\r\n });\r\n return query(itemsToFilter).filter(combinedFilters).toArray()\r\n }\r\n hasAllDayAppointments(filteredItems, preparedItems) {\r\n return this.filterAllDayAppointments(preparedItems).length > 0\r\n }\r\n _getPrerenderFilterResources(groupIndex) {\r\n var cellGroup = this.viewDataProvider.getCellsGroup(groupIndex);\r\n return getResourcesDataByGroups(this.loadedResources, this.resources, [cellGroup])\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/data_provider/m_appointment_data_provider.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport config from \"../../../../core/config\";\r\nimport {\r\n combineRemoteFilter\r\n} from \"../../../scheduler/r1/filterting/index\";\r\nimport {\r\n AppointmentDataSource\r\n} from \"./m_appointment_data_source\";\r\nimport {\r\n AppointmentFilterBaseStrategy,\r\n AppointmentFilterVirtualStrategy\r\n} from \"./m_appointment_filter\";\r\nvar FilterStrategies = {\r\n virtual: \"virtual\",\r\n standard: \"standard\"\r\n};\r\nexport class AppointmentDataProvider {\r\n constructor(options) {\r\n this.options = options;\r\n this.dataSource = this.options.dataSource;\r\n this.dataAccessors = this.options.dataAccessors;\r\n this.timeZoneCalculator = this.options.timeZoneCalculator;\r\n this.appointmentDataSource = new AppointmentDataSource(this.dataSource);\r\n this.initFilterStrategy()\r\n }\r\n get keyName() {\r\n return this.appointmentDataSource.keyName\r\n }\r\n get isDataSourceInit() {\r\n return !!this.dataSource\r\n }\r\n get filterStrategyName() {\r\n return this.options.getIsVirtualScrolling() ? FilterStrategies.virtual : FilterStrategies.standard\r\n }\r\n getFilterStrategy() {\r\n if (!this.filterStrategy || this.filterStrategy.strategyName !== this.filterStrategyName) {\r\n this.initFilterStrategy()\r\n }\r\n return this.filterStrategy\r\n }\r\n initFilterStrategy() {\r\n var filterOptions = {\r\n resources: this.options.resources,\r\n dataAccessors: this.dataAccessors,\r\n startDayHour: this.options.startDayHour,\r\n endDayHour: this.options.endDayHour,\r\n viewOffset: this.options.viewOffset,\r\n showAllDayPanel: this.options.showAllDayPanel,\r\n timeZoneCalculator: this.options.timeZoneCalculator,\r\n loadedResources: this.options.getLoadedResources,\r\n supportAllDayRow: this.options.getSupportAllDayRow,\r\n viewType: this.options.getViewType,\r\n viewDirection: this.options.getViewDirection,\r\n dateRange: this.options.getDateRange,\r\n groupCount: this.options.getGroupCount,\r\n viewDataProvider: this.options.getViewDataProvider,\r\n allDayPanelMode: this.options.allDayPanelMode\r\n };\r\n this.filterStrategy = this.filterStrategyName === FilterStrategies.virtual ? new AppointmentFilterVirtualStrategy(filterOptions) : new AppointmentFilterBaseStrategy(filterOptions)\r\n }\r\n setDataSource(dataSource) {\r\n this.dataSource = dataSource;\r\n this.initFilterStrategy();\r\n this.appointmentDataSource.setDataSource(this.dataSource)\r\n }\r\n updateDataAccessors(dataAccessors) {\r\n this.dataAccessors = dataAccessors;\r\n this.initFilterStrategy()\r\n }\r\n filter(preparedItems) {\r\n return this.getFilterStrategy().filter(preparedItems)\r\n }\r\n filterByDate(min, max, remoteFiltering, dateSerializationFormat) {\r\n if (!this.dataSource || !remoteFiltering) {\r\n return\r\n }\r\n var dataSourceFilter = this.dataSource.filter();\r\n var filter = combineRemoteFilter({\r\n dataSourceFilter: dataSourceFilter,\r\n dataAccessors: this.dataAccessors,\r\n min: min,\r\n max: max,\r\n dateSerializationFormat: dateSerializationFormat,\r\n forceIsoDateParsing: config().forceIsoDateParsing\r\n });\r\n this.dataSource.filter(filter)\r\n }\r\n hasAllDayAppointments(filteredItems, preparedItems) {\r\n return this.getFilterStrategy().hasAllDayAppointments(filteredItems, preparedItems)\r\n }\r\n filterLoadedAppointments(filterOption, preparedItems) {\r\n return this.getFilterStrategy().filterLoadedAppointments(filterOption, preparedItems)\r\n }\r\n calculateAppointmentEndDate(isAllDay, startDate) {\r\n return this.getFilterStrategy().calculateAppointmentEndDate(isAllDay, startDate)\r\n }\r\n cleanState() {\r\n this.appointmentDataSource.cleanState()\r\n }\r\n getUpdatedAppointment() {\r\n return this.appointmentDataSource._updatedAppointment\r\n }\r\n getUpdatedAppointmentKeys() {\r\n return this.appointmentDataSource._updatedAppointmentKeys\r\n }\r\n add(rawAppointment) {\r\n return this.appointmentDataSource.add(rawAppointment)\r\n }\r\n update(target, rawAppointment) {\r\n return this.appointmentDataSource.update(target, rawAppointment)\r\n }\r\n remove(rawAppointment) {\r\n return this.appointmentDataSource.remove(rawAppointment)\r\n }\r\n destroy() {\r\n this.appointmentDataSource.destroy()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/resizable/utils.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isWindow\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n getOuterWidth,\r\n getInnerWidth,\r\n getOuterHeight,\r\n getInnerHeight,\r\n getOffset\r\n} from \"../../../core/utils/size\";\r\nexport var borderWidthStyles = {\r\n left: \"borderLeftWidth\",\r\n top: \"borderTopWidth\",\r\n right: \"borderRightWidth\",\r\n bottom: \"borderBottomWidth\"\r\n};\r\n\r\nfunction getBorderWidth(el, direction) {\r\n if (!isWindow(el)) {\r\n var borderWidth = el.style[borderWidthStyles[direction]];\r\n return parseInt(borderWidth, 10) || 0\r\n }\r\n return 0\r\n}\r\nvar correctGeometry = function(area, mainEl) {\r\n var el = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : void 0;\r\n var {\r\n height: height,\r\n offset: offset,\r\n width: width\r\n } = area;\r\n var {\r\n left: left,\r\n top: top\r\n } = offset;\r\n var areaBorderLeft = el ? getBorderWidth(el, \"left\") : 0;\r\n var areaBorderTop = el ? getBorderWidth(el, \"top\") : 0;\r\n return {\r\n width: width - getOuterWidth(mainEl) - getInnerWidth(mainEl),\r\n height: height - getOuterHeight(mainEl) - getInnerHeight(mainEl),\r\n offset: {\r\n left: left + areaBorderLeft + getBorderWidth(mainEl, \"left\"),\r\n top: top + areaBorderTop + getBorderWidth(mainEl, \"top\")\r\n }\r\n }\r\n};\r\nexport var getAreaFromElement = (el, mainEl) => correctGeometry({\r\n width: getInnerWidth(el),\r\n height: getInnerHeight(el),\r\n offset: extend({\r\n top: 0,\r\n left: 0\r\n }, isWindow(el) ? {} : getOffset(el))\r\n}, mainEl, el);\r\nexport var getAreaFromObject = (_ref, mainEl) => {\r\n var {\r\n bottom: bottom,\r\n left: left,\r\n right: right,\r\n top: top\r\n } = _ref;\r\n return correctGeometry({\r\n width: right - left,\r\n height: bottom - top,\r\n offset: {\r\n left: left,\r\n top: top\r\n }\r\n }, mainEl)\r\n};\r\nexport var getMovingSides = el => {\r\n var {\r\n className: className\r\n } = el;\r\n var hasCornerTopLeftClass = className.includes(\"dx-resizable-handle-corner-top-left\");\r\n var hasCornerTopRightClass = className.includes(\"dx-resizable-handle-corner-top-right\");\r\n var hasCornerBottomLeftClass = className.includes(\"dx-resizable-handle-corner-bottom-left\");\r\n var hasCornerBottomRightClass = className.includes(\"dx-resizable-handle-corner-bottom-right\");\r\n return {\r\n top: className.includes(\"dx-resizable-handle-top\") || hasCornerTopLeftClass || hasCornerTopRightClass,\r\n left: className.includes(\"dx-resizable-handle-left\") || hasCornerTopLeftClass || hasCornerBottomLeftClass,\r\n bottom: className.includes(\"dx-resizable-handle-bottom\") || hasCornerBottomLeftClass || hasCornerBottomRightClass,\r\n right: className.includes(\"dx-resizable-handle-right\") || hasCornerTopRightClass || hasCornerBottomRightClass\r\n }\r\n};\r\nexport function getDragOffsets(area, handleEl, areaProp) {\r\n var hWidth = getOuterWidth(handleEl);\r\n var hHeight = getOuterHeight(handleEl);\r\n var hOffset = getOffset(handleEl);\r\n var areaOffset = area.offset;\r\n var isAreaWindow = isWindow(areaProp);\r\n var scrollOffset_scrollX = isAreaWindow ? areaProp.pageXOffset : 0,\r\n scrollOffset_scrollY = isAreaWindow ? areaProp.pageYOffset : 0;\r\n return {\r\n maxLeftOffset: hOffset.left - areaOffset.left - scrollOffset_scrollX,\r\n maxRightOffset: areaOffset.left + area.width - hOffset.left - hWidth + scrollOffset_scrollX,\r\n maxTopOffset: hOffset.top - areaOffset.top - scrollOffset_scrollY,\r\n maxBottomOffset: areaOffset.top + area.height - hOffset.top - hHeight + scrollOffset_scrollY\r\n }\r\n}\r\nexport var filterOffsets = (offset, handleEl) => {\r\n var sides = getMovingSides(handleEl);\r\n var offsetX = !sides.left && !sides.right ? 0 : offset.x;\r\n var offsetY = !sides.top && !sides.bottom ? 0 : offset.y;\r\n return {\r\n x: offsetX,\r\n y: offsetY\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/ui/popover/m_popover_position_controller.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar __rest = this && this.__rest || function(s, e) {\r\n var t = {};\r\n for (var p in s) {\r\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) {\r\n t[p] = s[p]\r\n }\r\n }\r\n if (null != s && \"function\" === typeof Object.getOwnPropertySymbols) {\r\n var i = 0;\r\n for (p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) {\r\n t[p[i]] = s[p[i]]\r\n }\r\n }\r\n }\r\n return t\r\n};\r\nimport positionUtils from \"../../../animation/position\";\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 getHeight,\r\n getWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n borderWidthStyles\r\n} from \"../../../renovation/ui/resizable/utils\";\r\nimport {\r\n OverlayPositionController\r\n} from \"../../ui/overlay/m_overlay_position_controller\";\r\nvar WEIGHT_OF_SIDES = {\r\n left: -1,\r\n top: -1,\r\n center: 0,\r\n right: 1,\r\n bottom: 1\r\n};\r\nvar POPOVER_POSITION_ALIASES = {\r\n top: {\r\n my: \"bottom center\",\r\n at: \"top center\",\r\n collision: \"fit flip\"\r\n },\r\n bottom: {\r\n my: \"top center\",\r\n at: \"bottom center\",\r\n collision: \"fit flip\"\r\n },\r\n right: {\r\n my: \"left center\",\r\n at: \"right center\",\r\n collision: \"flip fit\"\r\n },\r\n left: {\r\n my: \"right center\",\r\n at: \"left center\",\r\n collision: \"flip fit\"\r\n }\r\n};\r\nvar POPOVER_DEFAULT_BOUNDARY_OFFSET = {\r\n h: 10,\r\n v: 10\r\n};\r\nclass PopoverPositionController extends OverlayPositionController {\r\n constructor(_a) {\r\n var {\r\n shading: shading,\r\n target: target,\r\n $arrow: $arrow\r\n } = _a, args = __rest(_a, [\"shading\", \"target\", \"$arrow\"]);\r\n super(args);\r\n this._props = _extends(_extends({}, this._props), {\r\n shading: shading,\r\n target: target\r\n });\r\n this._$arrow = $arrow;\r\n this._positionSide = void 0;\r\n this.updatePosition(this._props.position)\r\n }\r\n positionWrapper() {\r\n if (this._props.shading) {\r\n this._$wrapper.css({\r\n top: 0,\r\n left: 0\r\n })\r\n }\r\n }\r\n updateTarget(target) {\r\n this._props.target = target;\r\n this.updatePosition(this._props.position)\r\n }\r\n _renderBoundaryOffset() {}\r\n _getContainerPosition() {\r\n var offset = pairToObject(this._position.offset || \"\");\r\n var {\r\n h: hOffset,\r\n v: vOffset\r\n } = offset;\r\n var isVerticalSide = this._isVerticalSide();\r\n var isHorizontalSide = this._isHorizontalSide();\r\n if (isVerticalSide || isHorizontalSide) {\r\n var isPopoverInside = this._isPopoverInside();\r\n var sign = (isPopoverInside ? -1 : 1) * WEIGHT_OF_SIDES[this._positionSide];\r\n var arrowSize = isVerticalSide ? getHeight(this._$arrow) : getWidth(this._$arrow);\r\n var arrowSizeCorrection = this._getContentBorderWidth(this._positionSide);\r\n var arrowOffset = sign * (arrowSize - arrowSizeCorrection);\r\n isVerticalSide ? vOffset += arrowOffset : hOffset += arrowOffset\r\n }\r\n return extend({}, this._position, {\r\n offset: \"\".concat(hOffset, \" \").concat(vOffset)\r\n })\r\n }\r\n _getContentBorderWidth(side) {\r\n var borderWidth = this._$content.css(borderWidthStyles[side]);\r\n return parseInt(borderWidth) || 0\r\n }\r\n _isPopoverInside() {\r\n var my = positionUtils.setup.normalizeAlign(this._position.my);\r\n var at = positionUtils.setup.normalizeAlign(this._position.at);\r\n return my.h === at.h && my.v === at.v\r\n }\r\n _isVerticalSide() {\r\n var side = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._positionSide;\r\n return \"top\" === side || \"bottom\" === side\r\n }\r\n _isHorizontalSide() {\r\n var side = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._positionSide;\r\n return \"left\" === side || \"right\" === side\r\n }\r\n _getDisplaySide(position) {\r\n var my = positionUtils.setup.normalizeAlign(position.my);\r\n var at = positionUtils.setup.normalizeAlign(position.at);\r\n var weightSign = WEIGHT_OF_SIDES[my.h] === WEIGHT_OF_SIDES[at.h] && WEIGHT_OF_SIDES[my.v] === WEIGHT_OF_SIDES[at.v] ? -1 : 1;\r\n var horizontalWeight = Math.abs(WEIGHT_OF_SIDES[my.h] - weightSign * WEIGHT_OF_SIDES[at.h]);\r\n var verticalWeight = Math.abs(WEIGHT_OF_SIDES[my.v] - weightSign * WEIGHT_OF_SIDES[at.v]);\r\n return horizontalWeight > verticalWeight ? at.h : at.v\r\n }\r\n _normalizePosition(positionProp) {\r\n var defaultPositionConfig = {\r\n of: this._props.target,\r\n boundaryOffset: POPOVER_DEFAULT_BOUNDARY_OFFSET\r\n };\r\n var resultPosition;\r\n if (isDefined(positionProp)) {\r\n resultPosition = extend(true, {}, defaultPositionConfig, this._positionToObject(positionProp))\r\n } else {\r\n resultPosition = defaultPositionConfig\r\n }\r\n this._positionSide = this._getDisplaySide(resultPosition);\r\n return resultPosition\r\n }\r\n _positionToObject(positionProp) {\r\n if (isString(positionProp)) {\r\n return extend({}, POPOVER_POSITION_ALIASES[positionProp])\r\n }\r\n return positionProp\r\n }\r\n}\r\nexport {\r\n POPOVER_POSITION_ALIASES,\r\n PopoverPositionController\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/ui/popover/m_popover.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport positionUtils from \"../../../animation/position\";\r\nimport {\r\n move\r\n} from \"../../../animation/translator\";\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n fitIntoRange\r\n} from \"../../../core/utils/math\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../core/utils/position\";\r\nimport {\r\n getHeight,\r\n getWidth,\r\n setHeight,\r\n setWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n isObject,\r\n isString\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nimport Popup from \"../../../ui/popup/ui.popup\";\r\nimport {\r\n isMaterial,\r\n isMaterialBased\r\n} from \"../../../ui/themes\";\r\nimport errors from \"../../../ui/widget/ui.errors\";\r\nimport {\r\n POPOVER_POSITION_ALIASES,\r\n PopoverPositionController\r\n} from \"./m_popover_position_controller\";\r\nvar POPOVER_CLASS = \"dx-popover\";\r\nvar POPOVER_WRAPPER_CLASS = \"dx-popover-wrapper\";\r\nvar POPOVER_ARROW_CLASS = \"dx-popover-arrow\";\r\nvar POPOVER_WITHOUT_TITLE_CLASS = \"dx-popover-without-title\";\r\nvar POSITION_FLIP_MAP = {\r\n left: \"right\",\r\n top: \"bottom\",\r\n right: \"left\",\r\n bottom: \"top\",\r\n center: \"center\"\r\n};\r\nvar getEventNameByOption = function(optionValue) {\r\n return isObject(optionValue) ? optionValue.name : optionValue\r\n};\r\nvar getEventName = function(that, optionName) {\r\n var optionValue = that.option(optionName);\r\n return getEventNameByOption(optionValue)\r\n};\r\nvar getEventDelay = function(that, optionName) {\r\n var optionValue = that.option(optionName);\r\n return isObject(optionValue) && optionValue.delay\r\n};\r\nvar attachEvent = function(that, name) {\r\n var {\r\n target: target,\r\n shading: shading,\r\n disabled: disabled,\r\n hideEvent: hideEvent\r\n } = that.option();\r\n var isSelector = isString(target);\r\n var shouldIgnoreHideEvent = shading && \"hide\" === name;\r\n var event = shouldIgnoreHideEvent ? null : getEventName(that, \"\".concat(name, \"Event\"));\r\n if (shouldIgnoreHideEvent && hideEvent) {\r\n errors.log(\"W1020\")\r\n }\r\n if (!event || disabled) {\r\n return\r\n }\r\n var eventName = addNamespace(event, that.NAME);\r\n var action = that._createAction(function() {\r\n var delay = getEventDelay(that, \"\".concat(name, \"Event\"));\r\n this._clearEventsTimeouts();\r\n if (delay) {\r\n this._timeouts[name] = setTimeout(() => {\r\n that[name]()\r\n }, delay)\r\n } else {\r\n that[name]()\r\n }\r\n }.bind(that), {\r\n validatingTargetName: \"target\"\r\n });\r\n var handler = function(e) {\r\n action({\r\n event: e,\r\n target: $(e.currentTarget)\r\n })\r\n };\r\n var EVENT_HANDLER_NAME = \"_\".concat(name, \"EventHandler\");\r\n if (isSelector) {\r\n that[EVENT_HANDLER_NAME] = handler;\r\n eventsEngine.on(domAdapter.getDocument(), eventName, target, handler)\r\n } else {\r\n var targetElement = getPublicElement($(target));\r\n that[EVENT_HANDLER_NAME] = void 0;\r\n eventsEngine.on(targetElement, eventName, handler)\r\n }\r\n};\r\nvar detachEvent = function(that, target, name, event) {\r\n var eventName = event || getEventName(that, \"\".concat(name, \"Event\"));\r\n if (!eventName) {\r\n return\r\n }\r\n eventName = addNamespace(eventName, that.NAME);\r\n var EVENT_HANDLER_NAME = \"_\".concat(name, \"EventHandler\");\r\n if (that[EVENT_HANDLER_NAME]) {\r\n eventsEngine.off(domAdapter.getDocument(), eventName, target, that[EVENT_HANDLER_NAME])\r\n } else {\r\n eventsEngine.off(getPublicElement($(target)), eventName)\r\n }\r\n};\r\nvar Popover = Popup.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n target: void 0,\r\n shading: false,\r\n position: extend({}, POPOVER_POSITION_ALIASES.bottom),\r\n hideOnOutsideClick: true,\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 from: 1,\r\n to: 0\r\n }\r\n },\r\n showTitle: false,\r\n width: \"auto\",\r\n height: \"auto\",\r\n dragEnabled: false,\r\n resizeEnabled: false,\r\n fullScreen: false,\r\n hideOnParentScroll: true,\r\n arrowPosition: \"\",\r\n arrowOffset: 0,\r\n _fixWrapperPosition: true\r\n })\r\n },\r\n _defaultOptionsRules: () => [{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n arrowPosition: {\r\n boundaryOffset: {\r\n h: 20,\r\n v: -10\r\n },\r\n collision: \"fit\"\r\n }\r\n }\r\n }, {\r\n device: () => !hasWindow(),\r\n options: {\r\n animation: null\r\n }\r\n }, {\r\n device: () => isMaterialBased(),\r\n options: {\r\n useFlatToolbarButtons: true\r\n }\r\n }, {\r\n device: () => isMaterial(),\r\n options: {\r\n useDefaultToolbarButtons: true,\r\n showCloseButton: false\r\n }\r\n }],\r\n _init() {\r\n var _a;\r\n this.callBase();\r\n this._renderArrow();\r\n this._timeouts = {};\r\n this.$element().addClass(POPOVER_CLASS);\r\n this.$wrapper().addClass(POPOVER_WRAPPER_CLASS);\r\n var isInteractive = null === (_a = this.option(\"toolbarItems\")) || void 0 === _a ? void 0 : _a.length;\r\n this.setAria(\"role\", isInteractive ? \"dialog\" : \"tooltip\")\r\n },\r\n _render() {\r\n this.callBase.apply(this, arguments);\r\n this._detachEvents(this.option(\"target\"));\r\n this._attachEvents()\r\n },\r\n _detachEvents(target) {\r\n detachEvent(this, target, \"show\");\r\n detachEvent(this, target, \"hide\")\r\n },\r\n _attachEvents() {\r\n attachEvent(this, \"show\");\r\n attachEvent(this, \"hide\")\r\n },\r\n _renderArrow() {\r\n this._$arrow = $(\"<div>\").addClass(POPOVER_ARROW_CLASS).prependTo(this.$overlayContent())\r\n },\r\n _documentDownHandler(e) {\r\n if (this._isOutsideClick(e)) {\r\n return this.callBase(e)\r\n }\r\n return true\r\n },\r\n _isOutsideClick(e) {\r\n return !$(e.target).closest(this.option(\"target\")).length\r\n },\r\n _animate(animation) {\r\n if (animation && animation.to && \"object\" === typeof animation.to) {\r\n extend(animation.to, {\r\n position: this._getContainerPosition()\r\n })\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _stopAnimation() {\r\n this.callBase.apply(this, arguments)\r\n },\r\n _renderTitle() {\r\n this.$wrapper().toggleClass(POPOVER_WITHOUT_TITLE_CLASS, !this.option(\"showTitle\"));\r\n this.callBase()\r\n },\r\n _renderPosition() {\r\n var shouldUpdateDimensions = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : true;\r\n this.callBase();\r\n this._renderOverlayPosition(shouldUpdateDimensions);\r\n this._actions.onPositioned()\r\n },\r\n _renderOverlayPosition(shouldUpdateDimensions) {\r\n this._resetOverlayPosition(shouldUpdateDimensions);\r\n this._updateContentSize(shouldUpdateDimensions);\r\n var contentPosition = this._getContainerPosition();\r\n var resultLocation = positionUtils.setup(this.$overlayContent(), contentPosition);\r\n var positionSide = this._getSideByLocation(resultLocation);\r\n this._togglePositionClass(\"dx-position-\".concat(positionSide));\r\n this._toggleFlippedClass(resultLocation.h.flip, resultLocation.v.flip);\r\n var isArrowVisible = this._isHorizontalSide() || this._isVerticalSide();\r\n if (isArrowVisible) {\r\n this._renderArrowPosition(positionSide)\r\n }\r\n },\r\n _resetOverlayPosition(shouldUpdateDimensions) {\r\n this._setContentHeight(shouldUpdateDimensions);\r\n this._togglePositionClass(\"dx-position-\".concat(this._positionController._positionSide));\r\n move(this.$overlayContent(), {\r\n left: 0,\r\n top: 0\r\n });\r\n this._$arrow.css({\r\n top: \"auto\",\r\n right: \"auto\",\r\n bottom: \"auto\",\r\n left: \"auto\"\r\n })\r\n },\r\n _updateContentSize(shouldUpdateDimensions) {\r\n if (!this.$content() || !shouldUpdateDimensions) {\r\n return\r\n }\r\n var containerLocation = positionUtils.calculate(this.$overlayContent(), this._getContainerPosition());\r\n if (containerLocation.h.oversize > 0 && this._isHorizontalSide() && !containerLocation.h.fit) {\r\n var newContainerWidth = getWidth(this.$overlayContent()) - containerLocation.h.oversize;\r\n setWidth(this.$overlayContent(), newContainerWidth)\r\n }\r\n if (containerLocation.v.oversize > 0 && this._isVerticalSide() && !containerLocation.v.fit) {\r\n var newOverlayContentHeight = getHeight(this.$overlayContent()) - containerLocation.v.oversize;\r\n var newPopupContentHeight = getHeight(this.$content()) - containerLocation.v.oversize;\r\n setHeight(this.$overlayContent(), newOverlayContentHeight);\r\n setHeight(this.$content(), newPopupContentHeight)\r\n }\r\n },\r\n _getContainerPosition() {\r\n return this._positionController._getContainerPosition()\r\n },\r\n _getHideOnParentScrollTarget() {\r\n return $(this._positionController._position.of || this.callBase())\r\n },\r\n _getSideByLocation(location) {\r\n var isFlippedByVertical = location.v.flip;\r\n var isFlippedByHorizontal = location.h.flip;\r\n return this._isVerticalSide() && isFlippedByVertical || this._isHorizontalSide() && isFlippedByHorizontal || this._isPopoverInside() ? POSITION_FLIP_MAP[this._positionController._positionSide] : this._positionController._positionSide\r\n },\r\n _togglePositionClass(positionClass) {\r\n this.$wrapper().removeClass(\"dx-position-left dx-position-right dx-position-top dx-position-bottom\").addClass(positionClass)\r\n },\r\n _toggleFlippedClass(isFlippedHorizontal, isFlippedVertical) {\r\n this.$wrapper().toggleClass(\"dx-popover-flipped-horizontal\", isFlippedHorizontal).toggleClass(\"dx-popover-flipped-vertical\", isFlippedVertical)\r\n },\r\n _renderArrowPosition(side) {\r\n var arrowRect = getBoundingRect(this._$arrow.get(0));\r\n var arrowFlip = -(this._isVerticalSide(side) ? arrowRect.height : arrowRect.width);\r\n this._$arrow.css(POSITION_FLIP_MAP[side], arrowFlip);\r\n var axis = this._isVerticalSide(side) ? \"left\" : \"top\";\r\n var sizeProperty = this._isVerticalSide(side) ? \"width\" : \"height\";\r\n var $target = $(this._positionController._position.of);\r\n var targetOffset = positionUtils.offset($target) || {\r\n top: 0,\r\n left: 0\r\n };\r\n var contentOffset = positionUtils.offset(this.$overlayContent());\r\n var arrowSize = arrowRect[sizeProperty];\r\n var contentLocation = contentOffset[axis];\r\n var contentSize = getBoundingRect(this.$overlayContent().get(0))[sizeProperty];\r\n var targetLocation = targetOffset[axis];\r\n var targetElement = $target.get(0);\r\n var targetSize = targetElement && !targetElement.preventDefault ? getBoundingRect(targetElement)[sizeProperty] : 0;\r\n var min = Math.max(contentLocation, targetLocation);\r\n var max = Math.min(contentLocation + contentSize, targetLocation + targetSize);\r\n var arrowLocation;\r\n if (\"start\" === this.option(\"arrowPosition\")) {\r\n arrowLocation = min - contentLocation\r\n } else if (\"end\" === this.option(\"arrowPosition\")) {\r\n arrowLocation = max - contentLocation - arrowSize\r\n } else {\r\n arrowLocation = (min + max) / 2 - contentLocation - arrowSize / 2\r\n }\r\n var borderWidth = this._positionController._getContentBorderWidth(side);\r\n var finalArrowLocation = fitIntoRange(arrowLocation - borderWidth + this.option(\"arrowOffset\"), borderWidth, contentSize - arrowSize - 2 * borderWidth);\r\n this._$arrow.css(axis, finalArrowLocation)\r\n },\r\n _isPopoverInside() {\r\n return this._positionController._isPopoverInside()\r\n },\r\n _setContentHeight(fullUpdate) {\r\n if (fullUpdate) {\r\n this.callBase()\r\n }\r\n },\r\n _getPositionControllerConfig() {\r\n var {\r\n shading: shading,\r\n target: target\r\n } = this.option();\r\n return extend({}, this.callBase(), {\r\n target: target,\r\n shading: shading,\r\n $arrow: this._$arrow\r\n })\r\n },\r\n _initPositionController() {\r\n this._positionController = new PopoverPositionController(this._getPositionControllerConfig())\r\n },\r\n _renderWrapperDimensions() {\r\n if (this.option(\"shading\")) {\r\n this.$wrapper().css({\r\n width: \"100%\",\r\n height: \"100%\"\r\n })\r\n }\r\n },\r\n _isVerticalSide(side) {\r\n return this._positionController._isVerticalSide(side)\r\n },\r\n _isHorizontalSide(side) {\r\n return this._positionController._isHorizontalSide(side)\r\n },\r\n _clearEventTimeout(name) {\r\n clearTimeout(this._timeouts[name])\r\n },\r\n _clearEventsTimeouts() {\r\n this._clearEventTimeout(\"show\");\r\n this._clearEventTimeout(\"hide\")\r\n },\r\n _clean() {\r\n this._detachEvents(this.option(\"target\"));\r\n this.callBase.apply(this, arguments)\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"arrowPosition\":\r\n case \"arrowOffset\":\r\n this._renderGeometry();\r\n break;\r\n case \"fullScreen\":\r\n if (args.value) {\r\n this.option(\"fullScreen\", false)\r\n }\r\n break;\r\n case \"target\":\r\n args.previousValue && this._detachEvents(args.previousValue);\r\n this._positionController.updateTarget(args.value);\r\n this._invalidate();\r\n break;\r\n case \"showEvent\":\r\n case \"hideEvent\":\r\n var name = args.name.substring(0, 4);\r\n var event = getEventNameByOption(args.previousValue);\r\n this.hide();\r\n detachEvent(this, this.option(\"target\"), name, event);\r\n attachEvent(this, name);\r\n break;\r\n case \"visible\":\r\n this._clearEventTimeout(args.value ? \"show\" : \"hide\");\r\n this.callBase(args);\r\n break;\r\n case \"disabled\":\r\n this._detachEvents(this.option(\"target\"));\r\n this._attachEvents();\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n show(target) {\r\n if (target) {\r\n this.option(\"target\", target)\r\n }\r\n return this.callBase()\r\n }\r\n});\r\nregisterComponent(\"dxPopover\", Popover);\r\nexport default Popover;\r\n","/**\r\n * DevExtreme (esm/ui/popover/ui.popover.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Popover from \"../../__internal/ui/popover/m_popover\";\r\nexport default Popover;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/m_tooltip.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport Guid from \"../../core/guid\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isWindow\r\n} from \"../../core/utils/type\";\r\nimport Popover from \"../../ui/popover/ui.popover\";\r\nvar TOOLTIP_CLASS = \"dx-tooltip\";\r\nvar TOOLTIP_WRAPPER_CLASS = \"dx-tooltip-wrapper\";\r\nvar Tooltip = Popover.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n toolbarItems: [],\r\n showCloseButton: false,\r\n enableBodyScroll: true,\r\n showTitle: false,\r\n title: null,\r\n titleTemplate: null,\r\n onTitleRendered: null,\r\n bottomTemplate: null,\r\n preventScrollEvents: false,\r\n propagateOutsideClick: true\r\n })\r\n },\r\n _render() {\r\n this.$element().addClass(TOOLTIP_CLASS);\r\n this.$wrapper().addClass(TOOLTIP_WRAPPER_CLASS);\r\n this.callBase()\r\n },\r\n _renderContent() {\r\n this.callBase();\r\n this._toggleAriaAttributes()\r\n },\r\n _toggleAriaDescription(showing) {\r\n var $target = $(this.option(\"target\"));\r\n var label = showing ? this._contentId : void 0;\r\n if (!isWindow($target.get(0))) {\r\n this.setAria(\"describedby\", label, $target)\r\n }\r\n },\r\n _toggleAriaAttributes() {\r\n this._contentId = \"dx-\".concat(new Guid);\r\n this.$overlayContent().attr({\r\n id: this._contentId\r\n });\r\n this._toggleAriaDescription(true)\r\n }\r\n});\r\nregisterComponent(\"dxTooltip\", Tooltip);\r\nexport default Tooltip;\r\n","/**\r\n * DevExtreme (esm/ui/tooltip.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Tooltip from \"../__internal/ui/m_tooltip\";\r\nexport default Tooltip;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/tooltip/m_tooltip.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n Deferred\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n value as viewPort\r\n} from \"../../../core/utils/view_port\";\r\nimport Tooltip from \"../../../ui/tooltip\";\r\nvar tooltip = null;\r\nvar removeTooltipElement = null;\r\nvar createTooltip = function(options) {\r\n options = extend({\r\n position: \"top\"\r\n }, options);\r\n var {\r\n content: content\r\n } = options;\r\n delete options.content;\r\n var $tooltip = $(\"<div>\").html(content).appendTo(viewPort());\r\n removeTooltipElement = function() {\r\n $tooltip.remove()\r\n };\r\n tooltip = new Tooltip($tooltip, options)\r\n};\r\nvar removeTooltip = function() {\r\n if (!tooltip) {\r\n return\r\n }\r\n removeTooltipElement();\r\n tooltip = null\r\n};\r\nexport function show(options) {\r\n removeTooltip();\r\n createTooltip(options);\r\n return tooltip.show()\r\n}\r\nexport function hide() {\r\n if (!tooltip) {\r\n return Deferred().resolve()\r\n }\r\n return tooltip.hide().done(removeTooltip).promise()\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/m_appointment.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n 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 Deferred\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport pointerEvents from \"../../../events/pointer\";\r\nimport {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nimport dateLocalization from \"../../../localization/date\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport Resizable from \"../../../ui/resizable\";\r\nimport {\r\n hide,\r\n show\r\n} from \"../../ui/tooltip/m_tooltip\";\r\nimport {\r\n ALL_DAY_APPOINTMENT_CLASS,\r\n APPOINTMENT_CONTENT_CLASSES,\r\n APPOINTMENT_DRAG_SOURCE_CLASS,\r\n APPOINTMENT_HAS_RESOURCE_COLOR_CLASS,\r\n DIRECTION_APPOINTMENT_CLASSES,\r\n EMPTY_APPOINTMENT_CLASS,\r\n RECURRENCE_APPOINTMENT_CLASS,\r\n REDUCED_APPOINTMENT_CLASS,\r\n REDUCED_APPOINTMENT_ICON,\r\n REDUCED_APPOINTMENT_PARTS_CLASSES\r\n} from \"../m_classes\";\r\nimport {\r\n ExpressionUtils\r\n} from \"../m_expression_utils\";\r\nimport {\r\n getRecurrenceProcessor\r\n} from \"../m_recurrence\";\r\nvar DEFAULT_HORIZONTAL_HANDLES = \"left right\";\r\nvar DEFAULT_VERTICAL_HANDLES = \"top bottom\";\r\nvar REDUCED_APPOINTMENT_POINTERENTER_EVENT_NAME = addNamespace(pointerEvents.enter, \"dxSchedulerAppointment\");\r\nvar REDUCED_APPOINTMENT_POINTERLEAVE_EVENT_NAME = addNamespace(pointerEvents.leave, \"dxSchedulerAppointment\");\r\nexport class Appointment extends DOMComponent {\r\n get coloredElement() {\r\n return this.$element()\r\n }\r\n get rawAppointment() {\r\n return this.option(\"data\")\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n data: {},\r\n groupIndex: -1,\r\n groups: [],\r\n geometry: {\r\n top: 0,\r\n left: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n allowDrag: true,\r\n allowResize: true,\r\n reduced: null,\r\n isCompact: false,\r\n direction: \"vertical\",\r\n resizableConfig: {\r\n keepAspectRatio: false\r\n },\r\n cellHeight: 0,\r\n cellWidth: 0,\r\n isDragSource: false\r\n })\r\n }\r\n notifyObserver(subject, args) {\r\n var observer = this.option(\"observer\");\r\n if (observer) {\r\n observer.fire(subject, args)\r\n }\r\n }\r\n invoke(funcName) {\r\n var observer = this.option(\"observer\");\r\n if (observer) {\r\n return observer.fire.apply(observer, arguments)\r\n }\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"data\":\r\n case \"groupIndex\":\r\n case \"geometry\":\r\n case \"allowDrag\":\r\n case \"allowResize\":\r\n case \"reduced\":\r\n case \"sortedIndex\":\r\n case \"isCompact\":\r\n case \"direction\":\r\n case \"resizableConfig\":\r\n case \"cellHeight\":\r\n case \"cellWidth\":\r\n this._invalidate();\r\n break;\r\n case \"isDragSource\":\r\n this._renderDragSourceClass();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _getHorizontalResizingRule() {\r\n var reducedHandles = {\r\n head: this.option(\"rtlEnabled\") ? \"right\" : \"left\",\r\n body: \"\",\r\n tail: this.option(\"rtlEnabled\") ? \"left\" : \"right\"\r\n };\r\n var getResizableStep = this.option(\"getResizableStep\");\r\n var step = getResizableStep ? getResizableStep() : 0;\r\n return {\r\n handles: this.option(\"reduced\") ? reducedHandles[this.option(\"reduced\")] : DEFAULT_HORIZONTAL_HANDLES,\r\n minHeight: 0,\r\n minWidth: this.invoke(\"getCellWidth\"),\r\n step: step,\r\n roundStepValue: false\r\n }\r\n }\r\n _getVerticalResizingRule() {\r\n var height = Math.round(this.invoke(\"getCellHeight\"));\r\n return {\r\n handles: DEFAULT_VERTICAL_HANDLES,\r\n minWidth: 0,\r\n minHeight: height,\r\n step: height,\r\n roundStepValue: true\r\n }\r\n }\r\n _render() {\r\n super._render();\r\n this._renderAppointmentGeometry();\r\n this._renderEmptyClass();\r\n this._renderReducedAppointment();\r\n this._renderAllDayClass();\r\n this._renderDragSourceClass();\r\n this._renderDirection();\r\n this.$element().data(\"dxAppointmentStartDate\", this.option(\"startDate\"));\r\n var text = ExpressionUtils.getField(this.option(\"dataAccessors\"), \"text\", this.rawAppointment);\r\n this.$element().attr(\"title\", text);\r\n this.$element().attr(\"role\", \"button\");\r\n this._renderRecurrenceClass();\r\n this._renderResizable();\r\n this._setResourceColor()\r\n }\r\n _setResourceColor() {\r\n var appointmentConfig = {\r\n itemData: this.rawAppointment,\r\n groupIndex: this.option(\"groupIndex\"),\r\n groups: this.option(\"groups\")\r\n };\r\n var deferredColor = this.option(\"getAppointmentColor\")(appointmentConfig);\r\n deferredColor.done(color => {\r\n if (color) {\r\n this.coloredElement.css(\"backgroundColor\", color);\r\n this.coloredElement.addClass(APPOINTMENT_HAS_RESOURCE_COLOR_CLASS)\r\n }\r\n })\r\n }\r\n _renderAppointmentGeometry() {\r\n var geometry = this.option(\"geometry\");\r\n var $element = this.$element();\r\n move($element, {\r\n top: geometry.top,\r\n left: geometry.left\r\n });\r\n $element.css({\r\n width: geometry.width < 0 ? 0 : geometry.width,\r\n height: geometry.height < 0 ? 0 : geometry.height\r\n })\r\n }\r\n _renderEmptyClass() {\r\n var geometry = this.option(\"geometry\");\r\n if (geometry.empty || this.option(\"isCompact\")) {\r\n this.$element().addClass(EMPTY_APPOINTMENT_CLASS)\r\n }\r\n }\r\n _renderReducedAppointment() {\r\n var reducedPart = this.option(\"reduced\");\r\n if (!reducedPart) {\r\n return\r\n }\r\n this.$element().toggleClass(REDUCED_APPOINTMENT_CLASS, true).toggleClass(REDUCED_APPOINTMENT_PARTS_CLASSES[reducedPart], true);\r\n this._renderAppointmentReducedIcon()\r\n }\r\n _renderAppointmentReducedIcon() {\r\n var $icon = $(\"<div>\").addClass(REDUCED_APPOINTMENT_ICON).appendTo(this.$element());\r\n var endDate = this._getEndDate();\r\n var tooltipLabel = messageLocalization.format(\"dxScheduler-editorLabelEndDate\");\r\n var tooltipText = [tooltipLabel, \": \", dateLocalization.format(endDate, \"monthAndDay\"), \", \", dateLocalization.format(endDate, \"year\")].join(\"\");\r\n eventsEngine.off($icon, REDUCED_APPOINTMENT_POINTERENTER_EVENT_NAME);\r\n eventsEngine.on($icon, REDUCED_APPOINTMENT_POINTERENTER_EVENT_NAME, () => {\r\n show({\r\n target: $icon,\r\n content: tooltipText\r\n })\r\n });\r\n eventsEngine.off($icon, REDUCED_APPOINTMENT_POINTERLEAVE_EVENT_NAME);\r\n eventsEngine.on($icon, REDUCED_APPOINTMENT_POINTERLEAVE_EVENT_NAME, () => {\r\n hide()\r\n })\r\n }\r\n _getEndDate() {\r\n var result = ExpressionUtils.getField(this.option(\"dataAccessors\"), \"endDate\", this.rawAppointment);\r\n if (result) {\r\n return new Date(result)\r\n }\r\n return result\r\n }\r\n _renderAllDayClass() {\r\n this.$element().toggleClass(ALL_DAY_APPOINTMENT_CLASS, !!this.option(\"allDay\"))\r\n }\r\n _renderDragSourceClass() {\r\n this.$element().toggleClass(APPOINTMENT_DRAG_SOURCE_CLASS, !!this.option(\"isDragSource\"))\r\n }\r\n _renderRecurrenceClass() {\r\n var rule = ExpressionUtils.getField(this.option(\"dataAccessors\"), \"recurrenceRule\", this.rawAppointment);\r\n if (getRecurrenceProcessor().isValidRecurrenceRule(rule)) {\r\n this.$element().addClass(RECURRENCE_APPOINTMENT_CLASS)\r\n }\r\n }\r\n _renderDirection() {\r\n this.$element().addClass(DIRECTION_APPOINTMENT_CLASSES[this.option(\"direction\")])\r\n }\r\n _createResizingConfig() {\r\n var config = \"vertical\" === this.option(\"direction\") ? this._getVerticalResizingRule() : this._getHorizontalResizingRule();\r\n if (!this.invoke(\"isGroupedByDate\")) {\r\n config.stepPrecision = \"strict\"\r\n }\r\n return config\r\n }\r\n _renderResizable() {\r\n if (this.option(\"allowResize\")) {\r\n this._createComponent(this.$element(), Resizable, extend(this._createResizingConfig(), this.option(\"resizableConfig\")))\r\n }\r\n }\r\n _useTemplates() {\r\n return false\r\n }\r\n}\r\nregisterComponent(\"dxSchedulerAppointment\", Appointment);\r\nexport class AgendaAppointment extends Appointment {\r\n get coloredElement() {\r\n return this.$element().find(\".\".concat(APPOINTMENT_CONTENT_CLASSES.AGENDA_MARKER))\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n createPlainResourceListAsync: new Deferred\r\n })\r\n }\r\n _renderResourceList(container, list) {\r\n list.forEach(item => {\r\n var itemContainer = $(\"<div>\").addClass(APPOINTMENT_CONTENT_CLASSES.AGENDA_RESOURCE_LIST_ITEM).appendTo(container);\r\n $(\"<div>\").text(\"\".concat(item.label, \":\")).appendTo(itemContainer);\r\n $(\"<div>\").addClass(APPOINTMENT_CONTENT_CLASSES.AGENDA_RESOURCE_LIST_ITEM_VALUE).text(item.values.join(\", \")).appendTo(itemContainer)\r\n })\r\n }\r\n _render() {\r\n super._render();\r\n var createPlainResourceListAsync = this.option(\"createPlainResourceListAsync\");\r\n createPlainResourceListAsync(this.rawAppointment).done(list => {\r\n var parent = this.$element().find(\".\".concat(APPOINTMENT_CONTENT_CLASSES.APPOINTMENT_CONTENT_DETAILS));\r\n var container = $(\"<div>\").addClass(APPOINTMENT_CONTENT_CLASSES.AGENDA_RESOURCE_LIST).appendTo(parent);\r\n this._renderResourceList(container, list)\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/m_appointment_layout.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport $ from \"../../../core/renderer\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport {\r\n APPOINTMENT_CONTENT_CLASSES\r\n} from \"../m_classes\";\r\nvar allDayText = \" \".concat(messageLocalization.format(\"dxScheduler-allDay\"), \": \");\r\nexport var createAppointmentLayout = (formatText, config) => {\r\n var result = $(domAdapter.createDocumentFragment());\r\n $(\"<div>\").text(formatText.text).addClass(APPOINTMENT_CONTENT_CLASSES.APPOINTMENT_TITLE).appendTo(result);\r\n if (config.html) {\r\n result.html(config.html)\r\n }\r\n var $contentDetails = $(\"<div>\").addClass(APPOINTMENT_CONTENT_CLASSES.APPOINTMENT_CONTENT_DETAILS).appendTo(result);\r\n $(\"<div>\").addClass(APPOINTMENT_CONTENT_CLASSES.APPOINTMENT_DATE).text(formatText.formatDate).appendTo($contentDetails);\r\n config.isRecurrence && $(\"<span>\").addClass(\"\".concat(APPOINTMENT_CONTENT_CLASSES.RECURRING_ICON, \" dx-icon-repeat\")).appendTo(result);\r\n config.isAllDay && $(\"<div>\").text(allDayText).addClass(APPOINTMENT_CONTENT_CLASSES.ALL_DAY_CONTENT).prependTo($contentDetails);\r\n return result\r\n};\r\nexport var createAgendaAppointmentLayout = (formatText, config) => {\r\n var result = $(domAdapter.createDocumentFragment());\r\n var leftLayoutContainer = $(\"<div>\").addClass(\"dx-scheduler-agenda-appointment-left-layout\").appendTo(result);\r\n var rightLayoutContainer = $(\"<div>\").addClass(\"dx-scheduler-agenda-appointment-right-layout\").appendTo(result);\r\n var marker = $(\"<div>\").addClass(APPOINTMENT_CONTENT_CLASSES.AGENDA_MARKER).appendTo(leftLayoutContainer);\r\n config.isRecurrence && $(\"<span>\").addClass(\"\".concat(APPOINTMENT_CONTENT_CLASSES.RECURRING_ICON, \" dx-icon-repeat\")).appendTo(marker);\r\n $(\"<div>\").addClass(APPOINTMENT_CONTENT_CLASSES.APPOINTMENT_TITLE).text(formatText.text).appendTo(rightLayoutContainer);\r\n var additionalContainer = $(\"<div>\").addClass(APPOINTMENT_CONTENT_CLASSES.APPOINTMENT_CONTENT_DETAILS).appendTo(rightLayoutContainer);\r\n $(\"<div>\").addClass(APPOINTMENT_CONTENT_CLASSES.APPOINTMENT_DATE).text(formatText.formatDate).appendTo(additionalContainer);\r\n if (config.isAllDay) {\r\n $(\"<div>\").text(allDayText).addClass(APPOINTMENT_CONTENT_CLASSES.ALL_DAY_CONTENT).prependTo(additionalContainer)\r\n }\r\n return result\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/resizing/m_core.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar getAppointmentLeftCell = options => {\r\n var {\r\n cellHeight: cellHeight,\r\n cellWidth: cellWidth,\r\n viewDataProvider: viewDataProvider,\r\n relativeAppointmentRect: relativeAppointmentRect,\r\n appointmentSettings: appointmentSettings,\r\n rtlEnabled: rtlEnabled\r\n } = options;\r\n var cellRowIndex = Math.floor(relativeAppointmentRect.top / cellHeight);\r\n var cellColumnIndex = Math.round(relativeAppointmentRect.left / cellWidth);\r\n var leftCell = viewDataProvider.getCellData(cellRowIndex, cellColumnIndex, appointmentSettings.allDay, rtlEnabled);\r\n return leftCell\r\n};\r\nvar getDateRangeHorizontal = options => {\r\n var {\r\n cellWidth: cellWidth,\r\n cellCountInRow: cellCountInRow,\r\n relativeAppointmentRect: relativeAppointmentRect,\r\n viewDataProvider: viewDataProvider,\r\n appointmentSettings: appointmentSettings,\r\n handles: handles\r\n } = options;\r\n var appointmentFirstCell = getAppointmentLeftCell(options);\r\n var appointmentCellsAmount = Math.round(relativeAppointmentRect.width / cellWidth);\r\n var appointmentLastCellIndex = appointmentFirstCell.index + (appointmentCellsAmount - 1);\r\n var {\r\n sourceAppointment: sourceAppointment\r\n } = appointmentSettings.info;\r\n var {\r\n allDay: allDay\r\n } = appointmentSettings.info.appointment;\r\n if (handles.left) {\r\n return {\r\n startDate: appointmentFirstCell.startDate,\r\n endDate: appointmentFirstCell.startDate > sourceAppointment.endDate ? appointmentFirstCell.startDate : sourceAppointment.endDate\r\n }\r\n }\r\n var appointmentRowIndex = Math.floor(appointmentLastCellIndex / cellCountInRow);\r\n var appointmentColumnIndex = appointmentLastCellIndex % cellCountInRow;\r\n var appointmentLastCell = viewDataProvider.getCellData(appointmentRowIndex, appointmentColumnIndex, allDay);\r\n var endDate = !options.considerTime ? appointmentLastCell.endDate : appointmentLastCell.startDate;\r\n return {\r\n startDate: endDate < sourceAppointment.startDate ? endDate : sourceAppointment.startDate,\r\n endDate: endDate\r\n }\r\n};\r\nvar getDateRangeHorizontalRTL = options => {\r\n var {\r\n viewDataProvider: viewDataProvider,\r\n cellCountInRow: cellCountInRow,\r\n appointmentSettings: appointmentSettings,\r\n handles: handles,\r\n cellWidth: cellWidth,\r\n relativeAppointmentRect: relativeAppointmentRect\r\n } = options;\r\n var appointmentLastCell = getAppointmentLeftCell(options);\r\n var {\r\n sourceAppointment: sourceAppointment\r\n } = appointmentSettings.info;\r\n var {\r\n allDay: allDay\r\n } = appointmentSettings.info.appointment;\r\n if (handles.right) {\r\n var appointmentLastCellIndex = appointmentLastCell.index;\r\n var appointmentCellsAmount = Math.round(relativeAppointmentRect.width / cellWidth);\r\n var appointmentFirstCellIndex = appointmentLastCellIndex - appointmentCellsAmount + 1;\r\n var appointmentRowIndex = Math.floor(appointmentLastCellIndex / cellCountInRow);\r\n var appointmentFirstCell = viewDataProvider.getCellData(appointmentRowIndex, appointmentFirstCellIndex, allDay, true);\r\n return {\r\n startDate: appointmentFirstCell.startDate,\r\n endDate: appointmentFirstCell.startDate > sourceAppointment.endDate ? appointmentFirstCell.startDate : sourceAppointment.endDate\r\n }\r\n }\r\n var endDate = !options.considerTime ? appointmentLastCell.endDate : appointmentLastCell.startDate;\r\n return {\r\n startDate: endDate < sourceAppointment.startDate ? endDate : sourceAppointment.startDate,\r\n endDate: endDate\r\n }\r\n};\r\nvar getRelativeAppointmentRect = (appointmentRect, parentAppointmentRect) => {\r\n var left = appointmentRect.left - parentAppointmentRect.left;\r\n var top = appointmentRect.top - parentAppointmentRect.top;\r\n var width = left < 0 ? appointmentRect.width + left : appointmentRect.width;\r\n var height = top < 0 ? appointmentRect.height + top : appointmentRect.height;\r\n return {\r\n left: Math.max(0, left),\r\n top: Math.max(0, top),\r\n width: width,\r\n height: height\r\n }\r\n};\r\nvar getAppointmentCellsInfo = options => {\r\n var {\r\n appointmentSettings: appointmentSettings,\r\n isVerticalGroupedWorkSpace: isVerticalGroupedWorkSpace,\r\n DOMMetaData: DOMMetaData\r\n } = options;\r\n var DOMMetaTable = appointmentSettings.allDay && !isVerticalGroupedWorkSpace ? [DOMMetaData.allDayPanelCellsMeta] : DOMMetaData.dateTableCellsMeta;\r\n var {\r\n positionByMap: positionByMap\r\n } = appointmentSettings;\r\n var {\r\n height: cellHeight,\r\n width: cellWidth\r\n } = DOMMetaTable[positionByMap.rowIndex][positionByMap.columnIndex];\r\n var cellCountInRow = DOMMetaTable[positionByMap.rowIndex].length;\r\n return {\r\n cellWidth: cellWidth,\r\n cellHeight: cellHeight,\r\n cellCountInRow: cellCountInRow\r\n }\r\n};\r\nexport var getAppointmentDateRange = options => {\r\n var {\r\n appointmentSettings: appointmentSettings\r\n } = options;\r\n var relativeAppointmentRect = getRelativeAppointmentRect(options.appointmentRect, options.parentAppointmentRect);\r\n var cellInfo = getAppointmentCellsInfo(options);\r\n var considerTime = !options.isDateAndTimeView || appointmentSettings.allDay;\r\n var extendedOptions = _extends(_extends(_extends({}, options), cellInfo), {\r\n considerTime: considerTime,\r\n relativeAppointmentRect: relativeAppointmentRect\r\n });\r\n return !options.rtlEnabled ? getDateRangeHorizontal(extendedOptions) : getDateRangeHorizontalRTL(extendedOptions)\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/m_appointment_collection.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n locate,\r\n move\r\n} from \"../../../animation/translator\";\r\nimport registerComponent from \"../../../core/component_registrator\";\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 {\r\n wrapToArray\r\n} from \"../../../core/utils/array\";\r\nimport {\r\n grep,\r\n normalizeKey\r\n} from \"../../../core/utils/common\";\r\nimport dateUtils from \"../../../core/utils/date\";\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 deepExtendArraySafe\r\n} from \"../../../core/utils/object\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../core/utils/position\";\r\nimport {\r\n setOuterHeight,\r\n setOuterWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n isDeferred,\r\n isDefined,\r\n isPlainObject,\r\n isString\r\n} from \"../../../core/utils/type\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n name as dblclickEvent\r\n} from \"../../../events/double_click\";\r\nimport {\r\n addNamespace,\r\n isFakeClickEvent\r\n} from \"../../../events/utils/index\";\r\nimport CollectionWidget from \"../../../ui/collection/ui.collection_widget.edit\";\r\nimport timeZoneUtils from \"../../../ui/scheduler/utils.timeZone\";\r\nimport {\r\n dateUtilsTs\r\n} from \"../../core/utils/date\";\r\nimport {\r\n createAppointmentAdapter\r\n} from \"../m_appointment_adapter\";\r\nimport {\r\n APPOINTMENT_CONTENT_CLASSES,\r\n APPOINTMENT_DRAG_SOURCE_CLASS,\r\n APPOINTMENT_ITEM_CLASS\r\n} from \"../m_classes\";\r\nimport {\r\n APPOINTMENT_SETTINGS_KEY\r\n} from \"../m_constants\";\r\nimport {\r\n ExpressionUtils\r\n} from \"../m_expression_utils\";\r\nimport {\r\n getRecurrenceProcessor\r\n} from \"../m_recurrence\";\r\nimport {\r\n getAppointmentTakesSeveralDays,\r\n sortAppointmentsByStartDate\r\n} from \"./data_provider/m_utils\";\r\nimport {\r\n AgendaAppointment,\r\n Appointment\r\n} from \"./m_appointment\";\r\nimport {\r\n createAgendaAppointmentLayout,\r\n createAppointmentLayout\r\n} from \"./m_appointment_layout\";\r\nimport {\r\n getAppointmentDateRange\r\n} from \"./resizing/m_core\";\r\nvar COMPONENT_CLASS = \"dx-scheduler-scrollable-appointments\";\r\nvar DBLCLICK_EVENT_NAME = addNamespace(dblclickEvent, \"dxSchedulerAppointment\");\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nclass SchedulerAppointments extends CollectionWidget {\r\n constructor(element, options) {\r\n super(element, options);\r\n this._virtualAppointments = {}\r\n }\r\n get isAgendaView() {\r\n return this.invoke(\"isCurrentViewAgenda\")\r\n }\r\n get isVirtualScrolling() {\r\n return this.invoke(\"isVirtualScrolling\")\r\n }\r\n get appointmentDataProvider() {\r\n return this.option(\"getAppointmentDataProvider\")()\r\n }\r\n option(optionName, value) {\r\n return super.option(...arguments)\r\n }\r\n notifyObserver(subject, args) {\r\n var observer = this.option(\"observer\");\r\n if (observer) {\r\n observer.fire(subject, args)\r\n }\r\n }\r\n invoke(funcName) {\r\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\r\n args[_key - 1] = arguments[_key]\r\n }\r\n var observer = this.option(\"observer\");\r\n if (observer) {\r\n return observer.fire.apply(observer, arguments)\r\n }\r\n }\r\n _dispose() {\r\n clearTimeout(this._appointmentClickTimeout);\r\n super._dispose()\r\n }\r\n _supportedKeys() {\r\n var parent = super._supportedKeys();\r\n var currentAppointment = this._$currentAppointment;\r\n return extend(parent, {\r\n escape: function() {\r\n var _a, _b, _c;\r\n if (this.resizeOccur) {\r\n this.moveAppointmentBack();\r\n this.resizeOccur = false;\r\n null === (_a = currentAppointment.dxResizable(\"instance\")) || void 0 === _a ? void 0 : _a._detachEventHandlers();\r\n null === (_b = currentAppointment.dxResizable(\"instance\")) || void 0 === _b ? void 0 : _b._attachEventHandlers();\r\n null === (_c = currentAppointment.dxResizable(\"instance\")) || void 0 === _c ? void 0 : _c._toggleResizingClass(false)\r\n }\r\n }.bind(this),\r\n del: function(e) {\r\n if (this.option(\"allowDelete\")) {\r\n e.preventDefault();\r\n var data = this._getItemData(e.target);\r\n this.notifyObserver(\"onDeleteButtonPress\", {\r\n data: data,\r\n target: e.target\r\n })\r\n }\r\n }.bind(this),\r\n tab: function(e) {\r\n var appointments = this._getAccessAppointments();\r\n var focusedAppointment = appointments.filter(\".dx-state-focused\");\r\n var index = focusedAppointment.data(APPOINTMENT_SETTINGS_KEY).sortedIndex;\r\n var lastIndex = appointments.length - 1;\r\n if (index > 0 && e.shiftKey || index < lastIndex && !e.shiftKey) {\r\n e.preventDefault();\r\n e.shiftKey ? index-- : index++;\r\n var $nextAppointment = this._getAppointmentByIndex(index);\r\n this._resetTabIndex($nextAppointment);\r\n eventsEngine.trigger($nextAppointment, \"focus\")\r\n }\r\n }\r\n })\r\n }\r\n _getAppointmentByIndex(sortedIndex) {\r\n var appointments = this._getAccessAppointments();\r\n return appointments.filter((_, $item) => elementData($item, APPOINTMENT_SETTINGS_KEY).sortedIndex === sortedIndex).eq(0)\r\n }\r\n _getAccessAppointments() {\r\n return this._itemElements().filter(\":visible\").not(\".dx-state-disabled\")\r\n }\r\n _resetTabIndex($appointment) {\r\n this._focusTarget().attr(\"tabIndex\", -1);\r\n $appointment.attr(\"tabIndex\", this.option(\"tabIndex\"))\r\n }\r\n _moveFocus() {}\r\n _focusTarget() {\r\n return this._itemElements()\r\n }\r\n _renderFocusTarget() {\r\n var $appointment = this._getAppointmentByIndex(0);\r\n this._resetTabIndex($appointment)\r\n }\r\n _focusInHandler(e) {\r\n super._focusInHandler(e);\r\n this._$currentAppointment = $(e.target);\r\n this.option(\"focusedElement\", getPublicElement($(e.target)))\r\n }\r\n _focusOutHandler(e) {\r\n var $appointment = this._getAppointmentByIndex(0);\r\n this.option(\"focusedElement\", getPublicElement($appointment));\r\n super._focusOutHandler(e)\r\n }\r\n _eventBindingTarget() {\r\n return this._itemContainer()\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n noDataText: null,\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true,\r\n tabIndex: 0,\r\n fixedContainer: null,\r\n allDayContainer: null,\r\n allowDrag: true,\r\n allowResize: true,\r\n allowAllDayResize: true,\r\n onAppointmentDblClick: null,\r\n _collectorOffset: 0,\r\n groups: [],\r\n resources: []\r\n })\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"items\":\r\n this._cleanFocusState();\r\n this._clearDropDownItems();\r\n this._clearDropDownItemsElements();\r\n this._repaintAppointments(args.value);\r\n this._renderDropDownAppointments();\r\n this._attachAppointmentsEvents();\r\n break;\r\n case \"fixedContainer\":\r\n case \"allDayContainer\":\r\n case \"onAppointmentDblClick\":\r\n break;\r\n case \"allowDrag\":\r\n case \"allowResize\":\r\n case \"allowAllDayResize\":\r\n this._invalidate();\r\n break;\r\n case \"focusedElement\":\r\n this._resetTabIndex($(args.value));\r\n super._optionChanged(args);\r\n break;\r\n case \"allowDelete\":\r\n break;\r\n case \"focusStateEnabled\":\r\n this._clearDropDownItemsElements();\r\n this._renderDropDownAppointments();\r\n super._optionChanged(args);\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _isAllDayAppointment(appointment) {\r\n return appointment.settings.length && appointment.settings[0].allDay || false\r\n }\r\n _isRepaintAppointment(appointment) {\r\n return !isDefined(appointment.needRepaint) || true === appointment.needRepaint\r\n }\r\n _isRepaintAll(appointments) {\r\n if (this.isAgendaView) {\r\n return true\r\n }\r\n for (var i = 0; i < appointments.length; i++) {\r\n if (!this._isRepaintAppointment(appointments[i])) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n _applyFragment(fragment, allDay) {\r\n if (fragment.children().length > 0) {\r\n this._getAppointmentContainer(allDay).append(fragment)\r\n }\r\n }\r\n _onEachAppointment(appointment, index, container, isRepaintAll) {\r\n if (true === (null === appointment || void 0 === appointment ? void 0 : appointment.needRemove)) {\r\n this._clearItem(appointment)\r\n } else if (isRepaintAll || this._isRepaintAppointment(appointment)) {\r\n (() => {\r\n appointment.needRepaint = false;\r\n this._clearItem(appointment);\r\n this._renderItem(index, appointment, container)\r\n })()\r\n }\r\n }\r\n _repaintAppointments(appointments) {\r\n this._renderByFragments(($commonFragment, $allDayFragment) => {\r\n var isRepaintAll = this._isRepaintAll(appointments);\r\n if (isRepaintAll) {\r\n this._getAppointmentContainer(true).html(\"\");\r\n this._getAppointmentContainer(false).html(\"\")\r\n }!appointments.length && this._cleanItemContainer();\r\n appointments.forEach((appointment, index) => {\r\n var container = this._isAllDayAppointment(appointment) ? $allDayFragment : $commonFragment;\r\n this._onEachAppointment(appointment, index, container, isRepaintAll)\r\n })\r\n })\r\n }\r\n _renderByFragments(renderFunction) {\r\n if (this.isVirtualScrolling) {\r\n var $commonFragment = $(domAdapter.createDocumentFragment());\r\n var $allDayFragment = $(domAdapter.createDocumentFragment());\r\n renderFunction($commonFragment, $allDayFragment);\r\n this._applyFragment($commonFragment, false);\r\n this._applyFragment($allDayFragment, true)\r\n } else {\r\n renderFunction(this._getAppointmentContainer(false), this._getAppointmentContainer(true))\r\n }\r\n }\r\n _attachAppointmentsEvents() {\r\n this._attachClickEvent();\r\n this._attachHoldEvent();\r\n this._attachContextMenuEvent();\r\n this._attachAppointmentDblClick();\r\n this._renderFocusState();\r\n this._attachFeedbackEvents();\r\n this._attachHoverEvents()\r\n }\r\n _clearItem(item) {\r\n var $items = this._findItemElementByItem(item.itemData);\r\n if (!$items.length) {\r\n return\r\n }\r\n each($items, (_, $item) => {\r\n $item.detach();\r\n $item.remove()\r\n })\r\n }\r\n _clearDropDownItems() {\r\n this._virtualAppointments = {}\r\n }\r\n _clearDropDownItemsElements() {\r\n this.invoke(\"clearCompactAppointments\")\r\n }\r\n _findItemElementByItem(item) {\r\n var result = [];\r\n var that = this;\r\n this.itemElements().each((function() {\r\n var $item = $(this);\r\n if ($item.data(that._itemDataKey()) === item) {\r\n result.push($item)\r\n }\r\n }));\r\n return result\r\n }\r\n _itemClass() {\r\n return APPOINTMENT_ITEM_CLASS\r\n }\r\n _itemContainer() {\r\n var $container = super._itemContainer();\r\n var $result = $container;\r\n var $allDayContainer = this.option(\"allDayContainer\");\r\n if ($allDayContainer) {\r\n $result = $container.add($allDayContainer)\r\n }\r\n return $result\r\n }\r\n _cleanItemContainer() {\r\n super._cleanItemContainer();\r\n var $allDayContainer = this.option(\"allDayContainer\");\r\n if ($allDayContainer) {\r\n $allDayContainer.empty()\r\n }\r\n this._virtualAppointments = {}\r\n }\r\n _clean() {\r\n super._clean();\r\n delete this._$currentAppointment;\r\n delete this._initialSize;\r\n delete this._initialCoordinates\r\n }\r\n _init() {\r\n super._init();\r\n this.$element().addClass(COMPONENT_CLASS);\r\n this._preventSingleAppointmentClick = false\r\n }\r\n _renderAppointmentTemplate($container, appointment, model) {\r\n var _a;\r\n var config = {\r\n isAllDay: appointment.allDay,\r\n isRecurrence: appointment.recurrenceRule,\r\n html: isPlainObject(appointment) && appointment.html ? appointment.html : void 0\r\n };\r\n var formatText = this.invoke(\"getTextAndFormatDate\", model.appointmentData, (null === (_a = this._currentAppointmentSettings) || void 0 === _a ? void 0 : _a.agendaSettings) || model.targetedAppointmentData, \"TIME\");\r\n $container.append(this.isAgendaView ? createAgendaAppointmentLayout(formatText, config) : createAppointmentLayout(formatText, config));\r\n if (!this.isAgendaView) {\r\n $container.parent().prepend($(\"<div>\").addClass(APPOINTMENT_CONTENT_CLASSES.STRIP))\r\n }\r\n }\r\n _executeItemRenderAction(index, itemData, itemElement) {\r\n var action = this._getItemRenderAction();\r\n if (action) {\r\n action(this.invoke(\"mapAppointmentFields\", {\r\n itemData: itemData,\r\n itemElement: itemElement\r\n }))\r\n }\r\n delete this._currentAppointmentSettings\r\n }\r\n _itemClickHandler(e) {\r\n super._itemClickHandler(e, {}, {\r\n afterExecute: function(e) {\r\n this._processItemClick(e.args[0].event)\r\n }.bind(this)\r\n })\r\n }\r\n _processItemClick(e) {\r\n var $target = $(e.currentTarget);\r\n var data = this._getItemData($target);\r\n if (\"keydown\" === e.type || isFakeClickEvent(e)) {\r\n this.notifyObserver(\"showEditAppointmentPopup\", {\r\n data: data,\r\n target: $target\r\n });\r\n return\r\n }\r\n this._appointmentClickTimeout = setTimeout(() => {\r\n if (!this._preventSingleAppointmentClick && domAdapter.getBody().contains($target[0])) {\r\n this.notifyObserver(\"showAppointmentTooltip\", {\r\n data: data,\r\n target: $target\r\n })\r\n }\r\n this._preventSingleAppointmentClick = false\r\n }, 300)\r\n }\r\n _extendActionArgs($itemElement) {\r\n var args = super._extendActionArgs($itemElement);\r\n return this.invoke(\"mapAppointmentFields\", args)\r\n }\r\n _render() {\r\n super._render();\r\n this._attachAppointmentDblClick()\r\n }\r\n _attachAppointmentDblClick() {\r\n var that = this;\r\n var itemSelector = that._itemSelector();\r\n var itemContainer = this._itemContainer();\r\n eventsEngine.off(itemContainer, DBLCLICK_EVENT_NAME, itemSelector);\r\n eventsEngine.on(itemContainer, DBLCLICK_EVENT_NAME, itemSelector, e => {\r\n that._itemDXEventHandler(e, \"onAppointmentDblClick\", {}, {\r\n afterExecute(e) {\r\n that._dblClickHandler(e.args[0].event)\r\n }\r\n })\r\n })\r\n }\r\n _dblClickHandler(e) {\r\n var $targetAppointment = $(e.currentTarget);\r\n var appointmentData = this._getItemData($targetAppointment);\r\n clearTimeout(this._appointmentClickTimeout);\r\n this._preventSingleAppointmentClick = true;\r\n this.notifyObserver(\"showEditAppointmentPopup\", {\r\n data: appointmentData,\r\n target: $targetAppointment\r\n })\r\n }\r\n _renderItem(index, item, container) {\r\n var {\r\n itemData: itemData\r\n } = item;\r\n var $items = [];\r\n for (var i = 0; i < item.settings.length; i++) {\r\n var setting = item.settings[i];\r\n this._currentAppointmentSettings = setting;\r\n var $item = super._renderItem(index, itemData, container);\r\n $item.data(APPOINTMENT_SETTINGS_KEY, setting);\r\n $items.push($item)\r\n }\r\n return $items\r\n }\r\n _getItemContent($itemFrame) {\r\n $itemFrame.data(APPOINTMENT_SETTINGS_KEY, this._currentAppointmentSettings);\r\n var $itemContent = super._getItemContent($itemFrame);\r\n return $itemContent\r\n }\r\n _createItemByTemplate(itemTemplate, renderArgs) {\r\n var {\r\n itemData: itemData,\r\n container: container,\r\n index: index\r\n } = renderArgs;\r\n return itemTemplate.render({\r\n model: {\r\n appointmentData: itemData,\r\n targetedAppointmentData: this.invoke(\"getTargetedAppointmentData\", itemData, $(container).parent())\r\n },\r\n container: container,\r\n index: index\r\n })\r\n }\r\n _getAppointmentContainer(allDay) {\r\n var $allDayContainer = this.option(\"allDayContainer\");\r\n var $container = this.itemsContainer().not($allDayContainer);\r\n if (allDay && $allDayContainer) {\r\n $container = $allDayContainer\r\n }\r\n return $container\r\n }\r\n _postprocessRenderItem(args) {\r\n this._renderAppointment(args.itemElement, this._currentAppointmentSettings)\r\n }\r\n _renderAppointment(element, settings) {\r\n var _a;\r\n element.data(APPOINTMENT_SETTINGS_KEY, settings);\r\n this._applyResourceDataAttr(element);\r\n var rawAppointment = this._getItemData(element);\r\n var geometry = this.invoke(\"getAppointmentGeometry\", settings);\r\n var allowResize = this.option(\"allowResize\") && (!isDefined(settings.skipResizing) || isString(settings.skipResizing));\r\n var allowDrag = this.option(\"allowDrag\");\r\n var {\r\n allDay: allDay\r\n } = settings;\r\n this.invoke(\"setCellDataCacheAlias\", this._currentAppointmentSettings, geometry);\r\n if (settings.virtual) {\r\n var appointmentConfig = {\r\n itemData: rawAppointment,\r\n groupIndex: settings.groupIndex,\r\n groups: this.option(\"groups\")\r\n };\r\n var deferredColor = this.option(\"getAppointmentColor\")(appointmentConfig);\r\n this._processVirtualAppointment(settings, element, rawAppointment, deferredColor)\r\n } else {\r\n var config = {\r\n data: rawAppointment,\r\n groupIndex: settings.groupIndex,\r\n observer: this.option(\"observer\"),\r\n geometry: geometry,\r\n direction: settings.direction || \"vertical\",\r\n allowResize: allowResize,\r\n allowDrag: allowDrag,\r\n allDay: allDay,\r\n reduced: settings.appointmentReduced,\r\n isCompact: settings.isCompact,\r\n startDate: new Date(null === (_a = settings.info) || void 0 === _a ? void 0 : _a.appointment.startDate),\r\n cellWidth: this.invoke(\"getCellWidth\"),\r\n cellHeight: this.invoke(\"getCellHeight\"),\r\n resizableConfig: this._resizableConfig(rawAppointment, settings),\r\n groups: this.option(\"groups\"),\r\n getAppointmentColor: this.option(\"getAppointmentColor\"),\r\n getResourceDataAccessors: this.option(\"getResourceDataAccessors\")\r\n };\r\n if (this.isAgendaView) {\r\n var agendaResourceProcessor = this.option(\"getAgendaResourceProcessor\")();\r\n config.createPlainResourceListAsync = rawAppointment => agendaResourceProcessor.createListAsync(rawAppointment)\r\n }\r\n this._createComponent(element, this.isAgendaView ? AgendaAppointment : Appointment, _extends(_extends({}, config), {\r\n dataAccessors: this.option(\"dataAccessors\"),\r\n getResizableStep: this.option(\"getResizableStep\")\r\n }))\r\n }\r\n }\r\n _applyResourceDataAttr($appointment) {\r\n var dataAccessors = this.option(\"getResourceDataAccessors\")();\r\n var rawAppointment = this._getItemData($appointment);\r\n each(dataAccessors.getter, key => {\r\n var value = dataAccessors.getter[key](rawAppointment);\r\n if (isDefined(value)) {\r\n var prefix = \"data-\".concat(normalizeKey(key.toLowerCase()), \"-\");\r\n wrapToArray(value).forEach(value => $appointment.attr(prefix + normalizeKey(value), true))\r\n }\r\n })\r\n }\r\n _resizableConfig(appointmentData, itemSetting) {\r\n return {\r\n area: this._calculateResizableArea(itemSetting, appointmentData),\r\n onResizeStart: function(e) {\r\n this.resizeOccur = true;\r\n this._$currentAppointment = $(e.element);\r\n if (this.invoke(\"needRecalculateResizableArea\")) {\r\n var updatedArea = this._calculateResizableArea(this._$currentAppointment.data(APPOINTMENT_SETTINGS_KEY), this._$currentAppointment.data(\"dxItemData\"));\r\n e.component.option(\"area\", updatedArea);\r\n e.component._renderDragOffsets(e.event)\r\n }\r\n this._initialSize = {\r\n width: e.width,\r\n height: e.height\r\n };\r\n this._initialCoordinates = locate(this._$currentAppointment)\r\n }.bind(this),\r\n onResizeEnd: function(e) {\r\n this.resizeOccur = false;\r\n this._resizeEndHandler(e)\r\n }.bind(this)\r\n }\r\n }\r\n _calculateResizableArea(itemSetting, appointmentData) {\r\n var area = this.$element().closest(\".dx-scrollable-content\");\r\n return this.invoke(\"getResizableAppointmentArea\", {\r\n coordinates: {\r\n left: itemSetting.left,\r\n top: 0,\r\n groupIndex: itemSetting.groupIndex\r\n },\r\n allDay: itemSetting.allDay\r\n }) || area\r\n }\r\n _resizeEndHandler(e) {\r\n var $element = $(e.element);\r\n var {\r\n allDay: allDay,\r\n info: info\r\n } = $element.data(\"dxAppointmentSettings\");\r\n var sourceAppointment = this._getItemData($element);\r\n var viewOffset = this.invoke(\"getViewOffsetMs\");\r\n var dateRange;\r\n if (allDay) {\r\n dateRange = this.resizeAllDay(e)\r\n } else {\r\n var startDate = this._getEndResizeAppointmentStartDate(e, sourceAppointment, info.appointment);\r\n var {\r\n endDate: endDate\r\n } = info.appointment;\r\n var shiftedStartDate = dateUtilsTs.addOffsets(startDate, [-viewOffset]);\r\n var shiftedEndDate = dateUtilsTs.addOffsets(endDate, [-viewOffset]);\r\n dateRange = this._getDateRange(e, shiftedStartDate, shiftedEndDate);\r\n dateRange.startDate = dateUtilsTs.addOffsets(dateRange.startDate, [viewOffset]);\r\n dateRange.endDate = dateUtilsTs.addOffsets(dateRange.endDate, [viewOffset])\r\n }\r\n this.updateResizedAppointment($element, dateRange, this.option(\"dataAccessors\"), this.option(\"timeZoneCalculator\"))\r\n }\r\n resizeAllDay(e) {\r\n var $element = $(e.element);\r\n var timeZoneCalculator = this.option(\"timeZoneCalculator\");\r\n var dataAccessors = this.option(\"dataAccessors\");\r\n return getAppointmentDateRange({\r\n handles: e.handles,\r\n appointmentSettings: $element.data(\"dxAppointmentSettings\"),\r\n isVerticalViewDirection: this.option(\"isVerticalViewDirection\")(),\r\n isVerticalGroupedWorkSpace: this.option(\"isVerticalGroupedWorkSpace\")(),\r\n appointmentRect: getBoundingRect($element[0]),\r\n parentAppointmentRect: getBoundingRect($element.parent()[0]),\r\n viewDataProvider: this.option(\"getViewDataProvider\")(),\r\n isDateAndTimeView: this.option(\"isDateAndTimeView\")(),\r\n startDayHour: this.invoke(\"getStartDayHour\"),\r\n endDayHour: this.invoke(\"getEndDayHour\"),\r\n timeZoneCalculator: timeZoneCalculator,\r\n dataAccessors: dataAccessors,\r\n rtlEnabled: this.option(\"rtlEnabled\"),\r\n DOMMetaData: this.option(\"getDOMElementsMetaData\")(),\r\n viewOffset: this.invoke(\"getViewOffsetMs\")\r\n })\r\n }\r\n updateResizedAppointment($element, dateRange, dataAccessors, timeZoneCalculator) {\r\n var sourceAppointment = this._getItemData($element);\r\n var modifiedAppointmentAdapter = createAppointmentAdapter(sourceAppointment, dataAccessors, timeZoneCalculator).clone();\r\n modifiedAppointmentAdapter.startDate = new Date(dateRange.startDate);\r\n modifiedAppointmentAdapter.endDate = new Date(dateRange.endDate);\r\n this.notifyObserver(\"updateAppointmentAfterResize\", {\r\n target: sourceAppointment,\r\n data: modifiedAppointmentAdapter.clone({\r\n pathTimeZone: \"fromGrid\"\r\n }).source(),\r\n $appointment: $element\r\n })\r\n }\r\n _getEndResizeAppointmentStartDate(e, rawAppointment, appointmentInfo) {\r\n var timeZoneCalculator = this.option(\"timeZoneCalculator\");\r\n var appointmentAdapter = createAppointmentAdapter(rawAppointment, this.option(\"dataAccessors\"), timeZoneCalculator);\r\n var {\r\n startDate: startDate\r\n } = appointmentInfo;\r\n var recurrenceProcessor = getRecurrenceProcessor();\r\n var {\r\n recurrenceRule: recurrenceRule,\r\n startDateTimeZone: startDateTimeZone\r\n } = appointmentAdapter;\r\n var isAllDay = this.invoke(\"isAllDay\", rawAppointment);\r\n var isRecurrent = recurrenceProcessor.isValidRecurrenceRule(recurrenceRule);\r\n if (!e.handles.top && !isRecurrent && !isAllDay) {\r\n startDate = timeZoneCalculator.createDate(appointmentAdapter.startDate, {\r\n appointmentTimeZone: startDateTimeZone,\r\n path: \"toGrid\"\r\n })\r\n }\r\n return startDate\r\n }\r\n _getDateRange(e, startDate, endDate) {\r\n var itemData = this._getItemData(e.element);\r\n var deltaTime = this.invoke(\"getDeltaTime\", e, this._initialSize, itemData);\r\n var renderingStrategyDirection = this.invoke(\"getRenderingStrategyDirection\");\r\n var isStartDateChanged = false;\r\n var isAllDay = this.invoke(\"isAllDay\", itemData);\r\n var needCorrectDates = this.invoke(\"needCorrectAppointmentDates\") && !isAllDay;\r\n var startTime;\r\n var endTime;\r\n if (\"vertical\" !== renderingStrategyDirection || isAllDay) {\r\n isStartDateChanged = this.option(\"rtlEnabled\") ? e.handles.right : e.handles.left\r\n } else {\r\n isStartDateChanged = e.handles.top\r\n }\r\n if (isStartDateChanged) {\r\n startTime = needCorrectDates ? this._correctStartDateByDelta(startDate, deltaTime) : startDate.getTime() - deltaTime;\r\n startTime += timeZoneUtils.getTimezoneOffsetChangeInMs(startDate, endDate, startTime, endDate);\r\n endTime = endDate.getTime()\r\n } else {\r\n startTime = startDate.getTime();\r\n endTime = needCorrectDates ? this._correctEndDateByDelta(endDate, deltaTime) : endDate.getTime() + deltaTime;\r\n endTime -= timeZoneUtils.getTimezoneOffsetChangeInMs(startDate, endDate, startDate, endTime)\r\n }\r\n return {\r\n startDate: new Date(startTime),\r\n endDate: new Date(endTime)\r\n }\r\n }\r\n _correctEndDateByDelta(endDate, deltaTime) {\r\n var endDayHour = this.invoke(\"getEndDayHour\");\r\n var startDayHour = this.invoke(\"getStartDayHour\");\r\n var maxDate = new Date(endDate);\r\n var minDate = new Date(endDate);\r\n var correctEndDate = new Date(endDate);\r\n minDate.setHours(startDayHour, 0, 0, 0);\r\n maxDate.setHours(endDayHour, 0, 0, 0);\r\n if (correctEndDate > maxDate) {\r\n correctEndDate.setHours(endDayHour, 0, 0, 0)\r\n }\r\n var result = correctEndDate.getTime() + deltaTime;\r\n var visibleDayDuration = (endDayHour - startDayHour) * toMs(\"hour\");\r\n var daysCount = deltaTime > 0 ? Math.ceil(deltaTime / visibleDayDuration) : Math.floor(deltaTime / visibleDayDuration);\r\n if (result > maxDate.getTime() || result <= minDate.getTime()) {\r\n var tailOfCurrentDay = maxDate.getTime() - correctEndDate.getTime();\r\n var tailOfPrevDays = deltaTime - tailOfCurrentDay;\r\n var correctedEndDate = new Date(correctEndDate).setDate(correctEndDate.getDate() + daysCount);\r\n var lastDay = new Date(correctedEndDate);\r\n lastDay.setHours(startDayHour, 0, 0, 0);\r\n result = lastDay.getTime() + tailOfPrevDays - visibleDayDuration * (daysCount - 1)\r\n }\r\n return result\r\n }\r\n _correctStartDateByDelta(startDate, deltaTime) {\r\n var endDayHour = this.invoke(\"getEndDayHour\");\r\n var startDayHour = this.invoke(\"getStartDayHour\");\r\n var maxDate = new Date(startDate);\r\n var minDate = new Date(startDate);\r\n var correctStartDate = new Date(startDate);\r\n minDate.setHours(startDayHour, 0, 0, 0);\r\n maxDate.setHours(endDayHour, 0, 0, 0);\r\n if (correctStartDate < minDate) {\r\n correctStartDate.setHours(startDayHour, 0, 0, 0)\r\n }\r\n var result = correctStartDate.getTime() - deltaTime;\r\n var visibleDayDuration = (endDayHour - startDayHour) * toMs(\"hour\");\r\n var daysCount = deltaTime > 0 ? Math.ceil(deltaTime / visibleDayDuration) : Math.floor(deltaTime / visibleDayDuration);\r\n if (result < minDate.getTime() || result >= maxDate.getTime()) {\r\n var tailOfCurrentDay = correctStartDate.getTime() - minDate.getTime();\r\n var tailOfPrevDays = deltaTime - tailOfCurrentDay;\r\n var firstDay = new Date(correctStartDate.setDate(correctStartDate.getDate() - daysCount));\r\n firstDay.setHours(endDayHour, 0, 0, 0);\r\n result = firstDay.getTime() - tailOfPrevDays + visibleDayDuration * (daysCount - 1)\r\n }\r\n return result\r\n }\r\n _processVirtualAppointment(appointmentSetting, $appointment, appointmentData, color) {\r\n var virtualAppointment = appointmentSetting.virtual;\r\n var virtualGroupIndex = virtualAppointment.index;\r\n if (!isDefined(this._virtualAppointments[virtualGroupIndex])) {\r\n this._virtualAppointments[virtualGroupIndex] = {\r\n coordinates: {\r\n top: virtualAppointment.top,\r\n left: virtualAppointment.left\r\n },\r\n items: {\r\n data: [],\r\n colors: [],\r\n settings: []\r\n },\r\n isAllDay: !!virtualAppointment.isAllDay,\r\n buttonColor: color\r\n }\r\n }\r\n appointmentSetting.targetedAppointmentData = this.invoke(\"getTargetedAppointmentData\", appointmentData, $appointment);\r\n this._virtualAppointments[virtualGroupIndex].items.settings.push(appointmentSetting);\r\n this._virtualAppointments[virtualGroupIndex].items.data.push(appointmentData);\r\n this._virtualAppointments[virtualGroupIndex].items.colors.push(color);\r\n $appointment.remove()\r\n }\r\n _renderContentImpl() {\r\n super._renderContentImpl();\r\n this._renderDropDownAppointments()\r\n }\r\n _renderDropDownAppointments() {\r\n this._renderByFragments(($commonFragment, $allDayFragment) => {\r\n each(this._virtualAppointments, groupIndex => {\r\n var virtualGroup = this._virtualAppointments[groupIndex];\r\n var virtualItems = virtualGroup.items;\r\n var virtualCoordinates = virtualGroup.coordinates;\r\n var $fragment = virtualGroup.isAllDay ? $allDayFragment : $commonFragment;\r\n var {\r\n left: left\r\n } = virtualCoordinates;\r\n var buttonWidth = this.invoke(\"getDropDownAppointmentWidth\", virtualGroup.isAllDay);\r\n var buttonHeight = this.invoke(\"getDropDownAppointmentHeight\");\r\n var rtlOffset = this.option(\"rtlEnabled\") ? buttonWidth : 0;\r\n this.notifyObserver(\"renderCompactAppointments\", {\r\n $container: $fragment,\r\n coordinates: {\r\n top: virtualCoordinates.top,\r\n left: left + rtlOffset\r\n },\r\n items: virtualItems,\r\n buttonColor: virtualGroup.buttonColor,\r\n width: buttonWidth - this.option(\"_collectorOffset\"),\r\n height: buttonHeight,\r\n onAppointmentClick: this.option(\"onItemClick\"),\r\n allowDrag: this.option(\"allowDrag\"),\r\n cellWidth: this.invoke(\"getCellWidth\"),\r\n isCompact: this.invoke(\"isAdaptive\") || this._isGroupCompact(virtualGroup)\r\n })\r\n })\r\n })\r\n }\r\n _isGroupCompact(virtualGroup) {\r\n return !virtualGroup.isAllDay && this.invoke(\"supportCompactDropDownAppointments\")\r\n }\r\n _sortAppointmentsByStartDate(appointments) {\r\n return sortAppointmentsByStartDate(appointments, this.option(\"dataAccessors\"))\r\n }\r\n _processRecurrenceAppointment(appointment, index, skipLongAppointments) {\r\n var recurrenceRule = ExpressionUtils.getField(this.option(\"dataAccessors\"), \"recurrenceRule\", appointment);\r\n var result = {\r\n parts: [],\r\n indexes: []\r\n };\r\n if (recurrenceRule) {\r\n var dates = appointment.settings || appointment;\r\n var startDate = new Date(ExpressionUtils.getField(this.option(\"dataAccessors\"), \"startDate\", dates));\r\n var startDateTimeZone = ExpressionUtils.getField(this.option(\"dataAccessors\"), \"startDateTimeZone\", appointment);\r\n var endDate = new Date(ExpressionUtils.getField(this.option(\"dataAccessors\"), \"endDate\", dates));\r\n var appointmentDuration = endDate.getTime() - startDate.getTime();\r\n var recurrenceException = ExpressionUtils.getField(this.option(\"dataAccessors\"), \"recurrenceException\", appointment);\r\n var startViewDate = this.invoke(\"getStartViewDate\");\r\n var endViewDate = this.invoke(\"getEndViewDate\");\r\n var timezoneCalculator = this.option(\"timeZoneCalculator\");\r\n var recurrentDates = getRecurrenceProcessor().generateDates({\r\n rule: recurrenceRule,\r\n exception: recurrenceException,\r\n start: startDate,\r\n end: endDate,\r\n min: startViewDate,\r\n max: endViewDate,\r\n appointmentTimezoneOffset: timezoneCalculator.getOriginStartDateOffsetInMs(startDate, startDateTimeZone, false)\r\n });\r\n var recurrentDateCount = appointment.settings ? 1 : recurrentDates.length;\r\n for (var i = 0; i < recurrentDateCount; i++) {\r\n var appointmentPart = extend({}, appointment, true);\r\n if (recurrentDates[i]) {\r\n var appointmentSettings = this._applyStartDateToObj(recurrentDates[i], {});\r\n this._applyEndDateToObj(new Date(recurrentDates[i].getTime() + appointmentDuration), appointmentSettings);\r\n appointmentPart.settings = appointmentSettings\r\n } else {\r\n appointmentPart.settings = dates\r\n }\r\n result.parts.push(appointmentPart);\r\n if (!skipLongAppointments) {\r\n this._processLongAppointment(appointmentPart, result)\r\n }\r\n }\r\n result.indexes.push(index)\r\n }\r\n return result\r\n }\r\n _processLongAppointment(appointment, result) {\r\n var parts = this.splitAppointmentByDay(appointment);\r\n var partCount = parts.length;\r\n var endViewDate = this.invoke(\"getEndViewDate\").getTime();\r\n var startViewDate = this.invoke(\"getStartViewDate\").getTime();\r\n var timeZoneCalculator = this.option(\"timeZoneCalculator\");\r\n result = result || {\r\n parts: []\r\n };\r\n if (partCount > 1) {\r\n extend(appointment, parts[0]);\r\n for (var i = 1; i < partCount; i++) {\r\n var startDate = ExpressionUtils.getField(this.option(\"dataAccessors\"), \"startDate\", parts[i].settings).getTime();\r\n startDate = timeZoneCalculator.createDate(startDate, {\r\n path: \"toGrid\"\r\n });\r\n if (startDate < endViewDate && startDate > startViewDate) {\r\n result.parts.push(parts[i])\r\n }\r\n }\r\n }\r\n return result\r\n }\r\n _reduceRecurrenceAppointments(recurrenceIndexes, appointments) {\r\n each(recurrenceIndexes, (i, index) => {\r\n appointments.splice(index - i, 1)\r\n })\r\n }\r\n _combineAppointments(appointments, additionalAppointments) {\r\n if (additionalAppointments.length) {\r\n appointments.push(...additionalAppointments)\r\n }\r\n this._sortAppointmentsByStartDate(appointments)\r\n }\r\n _applyStartDateToObj(startDate, obj) {\r\n ExpressionUtils.setField(this.option(\"dataAccessors\"), \"startDate\", obj, startDate);\r\n return obj\r\n }\r\n _applyEndDateToObj(endDate, obj) {\r\n ExpressionUtils.setField(this.option(\"dataAccessors\"), \"endDate\", obj, endDate);\r\n return obj\r\n }\r\n moveAppointmentBack(dragEvent) {\r\n var $appointment = this._$currentAppointment;\r\n var size = this._initialSize;\r\n var coords = this._initialCoordinates;\r\n if (dragEvent) {\r\n this._removeDragSourceClassFromDraggedAppointment();\r\n if (isDeferred(dragEvent.cancel)) {\r\n dragEvent.cancel.resolve(true)\r\n } else {\r\n dragEvent.cancel = true\r\n }\r\n }\r\n if ($appointment && !dragEvent) {\r\n if (coords) {\r\n move($appointment, coords);\r\n delete this._initialSize\r\n }\r\n if (size) {\r\n setOuterWidth($appointment, size.width);\r\n setOuterHeight($appointment, size.height);\r\n delete this._initialCoordinates\r\n }\r\n }\r\n }\r\n focus() {\r\n if (this._$currentAppointment) {\r\n var focusedElement = getPublicElement(this._$currentAppointment);\r\n this.option(\"focusedElement\", focusedElement);\r\n eventsEngine.trigger(focusedElement, \"focus\")\r\n }\r\n }\r\n splitAppointmentByDay(appointment) {\r\n var dates = appointment.settings || appointment;\r\n var dataAccessors = this.option(\"dataAccessors\");\r\n var originalStartDate = new Date(ExpressionUtils.getField(dataAccessors, \"startDate\", dates));\r\n var startDate = dateUtils.makeDate(originalStartDate);\r\n var endDate = dateUtils.makeDate(ExpressionUtils.getField(dataAccessors, \"endDate\", dates));\r\n var maxAllowedDate = this.invoke(\"getEndViewDate\");\r\n var startDayHour = this.invoke(\"getStartDayHour\");\r\n var endDayHour = this.invoke(\"getEndDayHour\");\r\n var timeZoneCalculator = this.option(\"timeZoneCalculator\");\r\n var adapter = createAppointmentAdapter(appointment, dataAccessors, timeZoneCalculator);\r\n var appointmentIsLong = getAppointmentTakesSeveralDays(adapter);\r\n var result = [];\r\n startDate = timeZoneCalculator.createDate(startDate, {\r\n path: \"toGrid\"\r\n });\r\n endDate = timeZoneCalculator.createDate(endDate, {\r\n path: \"toGrid\"\r\n });\r\n if (startDate.getHours() <= endDayHour && startDate.getHours() >= startDayHour && !appointmentIsLong) {\r\n result.push(this._applyStartDateToObj(new Date(startDate), {\r\n appointmentData: appointment\r\n }));\r\n startDate.setDate(startDate.getDate() + 1)\r\n }\r\n while (appointmentIsLong && startDate.getTime() < endDate.getTime() && startDate < maxAllowedDate) {\r\n var currentStartDate = new Date(startDate);\r\n var currentEndDate = new Date(startDate);\r\n this._checkStartDate(currentStartDate, originalStartDate, startDayHour);\r\n this._checkEndDate(currentEndDate, endDate, endDayHour);\r\n var appointmentData = deepExtendArraySafe({}, appointment, true);\r\n var appointmentSettings = {};\r\n this._applyStartDateToObj(currentStartDate, appointmentSettings);\r\n this._applyEndDateToObj(currentEndDate, appointmentSettings);\r\n appointmentData.settings = appointmentSettings;\r\n result.push(appointmentData);\r\n startDate = dateUtils.trimTime(startDate);\r\n startDate.setDate(startDate.getDate() + 1);\r\n startDate.setHours(startDayHour)\r\n }\r\n return result\r\n }\r\n _checkStartDate(currentDate, originalDate, startDayHour) {\r\n if (!dateUtils.sameDate(currentDate, originalDate) || currentDate.getHours() <= startDayHour) {\r\n currentDate.setHours(startDayHour, 0, 0, 0)\r\n } else {\r\n currentDate.setHours(originalDate.getHours(), originalDate.getMinutes(), originalDate.getSeconds(), originalDate.getMilliseconds())\r\n }\r\n }\r\n _checkEndDate(currentDate, originalDate, endDayHour) {\r\n if (!dateUtils.sameDate(currentDate, originalDate) || currentDate.getHours() > endDayHour) {\r\n currentDate.setHours(endDayHour, 0, 0, 0)\r\n } else {\r\n currentDate.setHours(originalDate.getHours(), originalDate.getMinutes(), originalDate.getSeconds(), originalDate.getMilliseconds())\r\n }\r\n }\r\n _removeDragSourceClassFromDraggedAppointment() {\r\n var $appointments = this._itemElements().filter(\".\".concat(APPOINTMENT_DRAG_SOURCE_CLASS));\r\n $appointments.each((_, element) => {\r\n var appointmentInstance = $(element).dxSchedulerAppointment(\"instance\");\r\n appointmentInstance.option(\"isDragSource\", false)\r\n })\r\n }\r\n _setDragSourceAppointment(appointment, settings) {\r\n var $appointments = this._findItemElementByItem(appointment);\r\n var {\r\n startDate: startDate,\r\n endDate: endDate\r\n } = settings.info.sourceAppointment;\r\n var {\r\n groupIndex: groupIndex\r\n } = settings;\r\n $appointments.forEach($item => {\r\n var {\r\n info: itemInfo,\r\n groupIndex: itemGroupIndex\r\n } = $item.data(APPOINTMENT_SETTINGS_KEY);\r\n var {\r\n startDate: itemStartDate,\r\n endDate: itemEndDate\r\n } = itemInfo.sourceAppointment;\r\n var appointmentInstance = $item.dxSchedulerAppointment(\"instance\");\r\n var isDragSource = startDate.getTime() === itemStartDate.getTime() && endDate.getTime() === itemEndDate.getTime() && groupIndex === itemGroupIndex;\r\n appointmentInstance.option(\"isDragSource\", isDragSource)\r\n })\r\n }\r\n updateResizableArea() {\r\n var $allResizableElements = this.$element().find(\".dx-scheduler-appointment.dx-resizable\");\r\n var horizontalResizables = grep($allResizableElements, el => {\r\n var $el = $(el);\r\n var resizableInst = $el.dxResizable(\"instance\");\r\n var {\r\n area: area,\r\n handles: handles\r\n } = resizableInst.option();\r\n return (\"right left\" === handles || \"left right\" === handles) && isPlainObject(area)\r\n });\r\n each(horizontalResizables, (_, el) => {\r\n var $el = $(el);\r\n var position = locate($el);\r\n var appointmentData = this._getItemData($el);\r\n var area = this._calculateResizableArea({\r\n left: position.left\r\n }, appointmentData);\r\n $el.dxResizable(\"instance\").option(\"area\", area)\r\n })\r\n }\r\n}\r\nregisterComponent(\"dxSchedulerAppointments\", SchedulerAppointments);\r\nexport default SchedulerAppointments;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/m_drop_down_button.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport Guid from \"../../core/guid\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n FunctionTemplate\r\n} from \"../../core/templates/function_template\";\r\nimport {\r\n ensureDefined,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\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 getImageContainer\r\n} from \"../../core/utils/icon\";\r\nimport {\r\n isDefined,\r\n isObject,\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport ArrayStore from \"../../data/array_store\";\r\nimport {\r\n DataSource\r\n} from \"../../data/data_source/data_source\";\r\nimport DataHelperMixin from \"../../data_helper\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport ButtonGroup from \"../../ui/button_group\";\r\nimport List from \"../../ui/list_light\";\r\nimport Popup from \"../../ui/popup/ui.popup\";\r\nimport Widget from \"../../ui/widget/ui.widget\";\r\nimport {\r\n getElementWidth,\r\n getSizeValue\r\n} from \"../ui/drop_down_editor/m_utils\";\r\nvar DROP_DOWN_BUTTON_CLASS = \"dx-dropdownbutton\";\r\nvar DROP_DOWN_BUTTON_CONTENT = \"dx-dropdownbutton-content\";\r\nvar DROP_DOWN_BUTTON_ACTION_CLASS = \"dx-dropdownbutton-action\";\r\nvar DROP_DOWN_BUTTON_TOGGLE_CLASS = \"dx-dropdownbutton-toggle\";\r\nvar DROP_DOWN_BUTTON_HAS_ARROW_CLASS = \"dx-dropdownbutton-has-arrow\";\r\nvar DROP_DOWN_BUTTON_POPUP_WRAPPER_CLASS = \"dx-dropdownbutton-popup-wrapper\";\r\nvar DROP_DOWN_EDITOR_OVERLAY_CLASS = \"dx-dropdowneditor-overlay\";\r\nvar DX_BUTTON_CLASS = \"dx-button\";\r\nvar DX_BUTTON_TEXT_CLASS = \"dx-button-text\";\r\nvar DX_ICON_RIGHT_CLASS = \"dx-icon-right\";\r\nvar DropDownButton = Widget.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n itemTemplate: \"item\",\r\n keyExpr: \"this\",\r\n displayExpr: void 0,\r\n selectedItem: null,\r\n selectedItemKey: null,\r\n stylingMode: \"outlined\",\r\n deferRendering: true,\r\n noDataText: messageLocalization.format(\"dxCollectionWidget-noDataText\"),\r\n useSelectMode: false,\r\n splitButton: false,\r\n showArrowIcon: true,\r\n text: \"\",\r\n type: \"normal\",\r\n icon: void 0,\r\n onButtonClick: null,\r\n onSelectionChanged: null,\r\n onItemClick: null,\r\n opened: false,\r\n items: null,\r\n dataSource: null,\r\n focusStateEnabled: true,\r\n hoverStateEnabled: true,\r\n dropDownOptions: {},\r\n dropDownContentTemplate: \"content\",\r\n wrapItemText: false,\r\n useItemTextAsTitle: true,\r\n grouped: false,\r\n groupTemplate: \"group\",\r\n buttonGroupOptions: {}\r\n })\r\n },\r\n _setOptionsByReference() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n selectedItem: true\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._createItemClickAction();\r\n this._createActionClickAction();\r\n this._createSelectionChangedAction();\r\n this._initDataSource();\r\n this._compileKeyGetter();\r\n this._compileDisplayGetter();\r\n this._itemsToDataSource(this.option(\"items\"));\r\n this._options.cache(\"buttonGroupOptions\", this.option(\"buttonGroupOptions\"));\r\n this._options.cache(\"dropDownOptions\", this.option(\"dropDownOptions\"))\r\n },\r\n _initTemplates() {\r\n this._templateManager.addDefaultTemplates({\r\n content: new FunctionTemplate(options => {\r\n var $popupContent = $(options.container);\r\n var $listContainer = $(\"<div>\").appendTo($popupContent);\r\n this._list = this._createComponent($listContainer, List, this._listOptions());\r\n this._list.registerKeyHandler(\"escape\", this._escHandler.bind(this));\r\n this._list.registerKeyHandler(\"tab\", this._escHandler.bind(this));\r\n this._list.registerKeyHandler(\"leftArrow\", this._escHandler.bind(this));\r\n this._list.registerKeyHandler(\"rightArrow\", this._escHandler.bind(this))\r\n })\r\n });\r\n this.callBase()\r\n },\r\n _itemsToDataSource(value) {\r\n if (!this._dataSource) {\r\n this._dataSource = new DataSource({\r\n store: new ArrayStore({\r\n key: this._getKey(),\r\n data: value\r\n }),\r\n pageSize: 0\r\n })\r\n }\r\n },\r\n _getKey() {\r\n var _a;\r\n var keyExpr = this.option(\"keyExpr\");\r\n var storeKey = null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.key();\r\n return isDefined(storeKey) && (!isDefined(keyExpr) || \"this\" === keyExpr) ? storeKey : keyExpr\r\n },\r\n _compileKeyGetter() {\r\n this._keyGetter = compileGetter(this._getKey())\r\n },\r\n _compileDisplayGetter() {\r\n this._displayGetter = compileGetter(this.option(\"displayExpr\"))\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this.$element().addClass(DROP_DOWN_BUTTON_CLASS);\r\n this._renderButtonGroup();\r\n this._updateArrowClass();\r\n if (isDefined(this.option(\"selectedItemKey\"))) {\r\n this._loadSelectedItem().done(this._updateActionButton.bind(this))\r\n }\r\n },\r\n _renderFocusTarget: noop,\r\n _render() {\r\n if (!this.option(\"deferRendering\") || this.option(\"opened\")) {\r\n this._renderPopup()\r\n }\r\n this.callBase()\r\n },\r\n _renderContentImpl() {\r\n if (this._popup) {\r\n this._renderPopupContent()\r\n }\r\n return this.callBase()\r\n },\r\n _loadSelectedItem() {\r\n var _a;\r\n null === (_a = this._loadSingleDeferred) || void 0 === _a ? void 0 : _a.reject();\r\n var d = Deferred();\r\n if (this._list && void 0 !== this._lastSelectedItemData) {\r\n var cachedResult = this.option(\"useSelectMode\") ? this._list.option(\"selectedItem\") : this._lastSelectedItemData;\r\n return d.resolve(cachedResult)\r\n }\r\n this._lastSelectedItemData = void 0;\r\n var selectedItemKey = this.option(\"selectedItemKey\");\r\n this._loadSingle(this._getKey(), selectedItemKey).done(d.resolve).fail(() => {\r\n d.resolve(null)\r\n });\r\n this._loadSingleDeferred = d;\r\n return d.promise()\r\n },\r\n _createActionClickAction() {\r\n this._actionClickAction = this._createActionByOption(\"onButtonClick\")\r\n },\r\n _createSelectionChangedAction() {\r\n this._selectionChangedAction = this._createActionByOption(\"onSelectionChanged\")\r\n },\r\n _createItemClickAction() {\r\n this._itemClickAction = this._createActionByOption(\"onItemClick\")\r\n },\r\n _fireSelectionChangedAction(_ref) {\r\n var {\r\n previousValue: previousValue,\r\n value: value\r\n } = _ref;\r\n this._selectionChangedAction({\r\n item: value,\r\n previousItem: previousValue\r\n })\r\n },\r\n _fireItemClickAction(_ref2) {\r\n var {\r\n event: event,\r\n itemElement: itemElement,\r\n itemData: itemData\r\n } = _ref2;\r\n return this._itemClickAction({\r\n event: event,\r\n itemElement: itemElement,\r\n itemData: this._actionItem || itemData\r\n })\r\n },\r\n _actionButtonConfig() {\r\n var {\r\n icon: icon,\r\n text: text,\r\n type: type\r\n } = this.option();\r\n return {\r\n text: text,\r\n icon: icon,\r\n type: type,\r\n elementAttr: {\r\n class: DROP_DOWN_BUTTON_ACTION_CLASS\r\n }\r\n }\r\n },\r\n _getButtonGroupItems() {\r\n var {\r\n splitButton: splitButton,\r\n type: type\r\n } = this.option();\r\n var items = [];\r\n items.push(this._actionButtonConfig());\r\n if (splitButton) {\r\n items.push({\r\n icon: \"spindown\",\r\n type: type,\r\n elementAttr: {\r\n class: DROP_DOWN_BUTTON_TOGGLE_CLASS\r\n }\r\n })\r\n }\r\n return items\r\n },\r\n _buttonGroupItemClick(_ref3) {\r\n var {\r\n event: event,\r\n itemData: itemData\r\n } = _ref3;\r\n var isActionButton = itemData.elementAttr.class === DROP_DOWN_BUTTON_ACTION_CLASS;\r\n var isToggleButton = itemData.elementAttr.class === DROP_DOWN_BUTTON_TOGGLE_CLASS;\r\n if (isToggleButton) {\r\n this.toggle()\r\n } else if (isActionButton) {\r\n this._actionClickAction({\r\n event: event,\r\n selectedItem: this.option(\"selectedItem\")\r\n });\r\n if (!this.option(\"splitButton\")) {\r\n this.toggle()\r\n }\r\n }\r\n },\r\n _buttonGroupOptions() {\r\n var {\r\n splitButton: splitButton,\r\n showArrowIcon: showArrowIcon,\r\n focusStateEnabled: focusStateEnabled,\r\n hoverStateEnabled: hoverStateEnabled,\r\n stylingMode: stylingMode,\r\n accessKey: accessKey,\r\n tabIndex: tabIndex\r\n } = this.option();\r\n var buttonTemplate = splitButton || !showArrowIcon ? \"content\" : (_ref4, buttonContent) => {\r\n var {\r\n text: text,\r\n icon: icon\r\n } = _ref4;\r\n var $firstIcon = getImageContainer(icon);\r\n var $textContainer = text ? $(\"<span>\").text(text).addClass(DX_BUTTON_TEXT_CLASS) : void 0;\r\n var $secondIcon = getImageContainer(\"spindown\").addClass(DX_ICON_RIGHT_CLASS);\r\n $(buttonContent).append($firstIcon, $textContainer, $secondIcon)\r\n };\r\n return extend({\r\n items: this._getButtonGroupItems(),\r\n onItemClick: this._buttonGroupItemClick.bind(this),\r\n width: \"100%\",\r\n height: \"100%\",\r\n selectionMode: \"none\",\r\n onKeyboardHandled: e => this._keyboardHandler(e),\r\n buttonTemplate: buttonTemplate,\r\n focusStateEnabled: focusStateEnabled,\r\n hoverStateEnabled: hoverStateEnabled,\r\n stylingMode: stylingMode,\r\n accessKey: accessKey,\r\n tabIndex: tabIndex\r\n }, this._options.cache(\"buttonGroupOptions\"))\r\n },\r\n _renderPopupContent() {\r\n var $content = this._popup.$content();\r\n var template = this._getTemplateByOption(\"dropDownContentTemplate\");\r\n $content.empty();\r\n this._popupContentId = \"dx-\".concat(new Guid);\r\n this.setAria(\"id\", this._popupContentId, $content);\r\n return template.render({\r\n container: getPublicElement($content),\r\n model: this.option(\"items\") || this._dataSource\r\n })\r\n },\r\n _popupOptions() {\r\n var horizontalAlignment = this.option(\"rtlEnabled\") ? \"right\" : \"left\";\r\n return extend({\r\n dragEnabled: false,\r\n focusStateEnabled: false,\r\n deferRendering: this.option(\"deferRendering\"),\r\n hideOnOutsideClick: e => {\r\n var $element = this.$element();\r\n var $buttonClicked = $(e.target).closest(\".\".concat(DROP_DOWN_BUTTON_CLASS));\r\n return !$buttonClicked.is($element)\r\n },\r\n showTitle: false,\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n duration: 0,\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 _ignoreFunctionValueDeprecation: true,\r\n width: () => getElementWidth(this.$element()),\r\n height: \"auto\",\r\n shading: false,\r\n position: {\r\n of: this.$element(),\r\n collision: \"flipfit\",\r\n my: \"\".concat(horizontalAlignment, \" top\"),\r\n at: \"\".concat(horizontalAlignment, \" bottom\")\r\n },\r\n _wrapperClassExternal: DROP_DOWN_EDITOR_OVERLAY_CLASS\r\n }, this._options.cache(\"dropDownOptions\"), {\r\n visible: this.option(\"opened\")\r\n })\r\n },\r\n _listOptions() {\r\n var selectedItemKey = this.option(\"selectedItemKey\");\r\n var useSelectMode = this.option(\"useSelectMode\");\r\n return {\r\n selectionMode: useSelectMode ? \"single\" : \"none\",\r\n wrapItemText: this.option(\"wrapItemText\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n useItemTextAsTitle: this.option(\"useItemTextAsTitle\"),\r\n onContentReady: () => this._fireContentReadyAction(),\r\n selectedItemKeys: isDefined(selectedItemKey) && useSelectMode ? [selectedItemKey] : [],\r\n grouped: this.option(\"grouped\"),\r\n groupTemplate: this.option(\"groupTemplate\"),\r\n keyExpr: this._getKey(),\r\n noDataText: this.option(\"noDataText\"),\r\n displayExpr: this.option(\"displayExpr\"),\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n items: this.option(\"items\"),\r\n dataSource: this._dataSource,\r\n onItemClick: e => {\r\n if (!this.option(\"useSelectMode\")) {\r\n this._lastSelectedItemData = e.itemData\r\n }\r\n this.option(\"selectedItemKey\", this._keyGetter(e.itemData));\r\n var actionResult = this._fireItemClickAction(e);\r\n if (false !== actionResult) {\r\n this.toggle(false);\r\n this._buttonGroup.focus()\r\n }\r\n }\r\n }\r\n },\r\n _upDownKeyHandler() {\r\n if (this._popup && this._popup.option(\"visible\") && this._list) {\r\n this._list.focus()\r\n } else {\r\n this.open()\r\n }\r\n return true\r\n },\r\n _escHandler() {\r\n this.close();\r\n this._buttonGroup.focus();\r\n return true\r\n },\r\n _tabHandler() {\r\n this.close();\r\n return true\r\n },\r\n _renderPopup() {\r\n var $popup = $(\"<div>\");\r\n this.$element().append($popup);\r\n this._popup = this._createComponent($popup, Popup, this._popupOptions());\r\n this._popup.$content().addClass(DROP_DOWN_BUTTON_CONTENT);\r\n this._popup.$wrapper().addClass(DROP_DOWN_BUTTON_POPUP_WRAPPER_CLASS);\r\n this._popup.on(\"hiding\", this._popupHidingHandler.bind(this));\r\n this._popup.on(\"showing\", this._popupShowingHandler.bind(this));\r\n this._bindInnerWidgetOptions(this._popup, \"dropDownOptions\")\r\n },\r\n _popupHidingHandler() {\r\n this.option(\"opened\", false);\r\n this._updateAriaAttributes(false)\r\n },\r\n _popupOptionChanged(args) {\r\n var options = Widget.getOptionsFromContainer(args);\r\n this._setPopupOption(options);\r\n var optionsKeys = Object.keys(options);\r\n if (optionsKeys.includes(\"width\") || optionsKeys.includes(\"height\")) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _dimensionChanged() {\r\n var popupWidth = getSizeValue(this.option(\"dropDownOptions.width\"));\r\n if (void 0 === popupWidth) {\r\n this._setPopupOption(\"width\", () => getElementWidth(this.$element()))\r\n }\r\n },\r\n _setPopupOption(optionName, value) {\r\n this._setWidgetOption(\"_popup\", arguments)\r\n },\r\n _popupShowingHandler() {\r\n this.option(\"opened\", true);\r\n this._updateAriaAttributes(true)\r\n },\r\n _setElementAria(value) {\r\n var elementAria = {\r\n owns: value ? this._popupContentId : void 0\r\n };\r\n this.setAria(elementAria, this.$element())\r\n },\r\n _setButtonsAria(value) {\r\n var commonButtonAria = {\r\n expanded: value,\r\n haspopup: \"listbox\"\r\n };\r\n var firstButtonAria = {};\r\n if (!this.option(\"text\")) {\r\n firstButtonAria.label = \"dropdownbutton\"\r\n }\r\n this._getButtons().each((index, $button) => {\r\n if (0 === index) {\r\n this.setAria(_extends(_extends({}, firstButtonAria), commonButtonAria), $($button))\r\n } else {\r\n this.setAria(commonButtonAria, $($button))\r\n }\r\n })\r\n },\r\n _updateAriaAttributes(value) {\r\n this._setElementAria(value);\r\n this._setButtonsAria(value)\r\n },\r\n _getButtons() {\r\n return this._buttonGroup.$element().find(\".\".concat(DX_BUTTON_CLASS))\r\n },\r\n _renderButtonGroup() {\r\n var $buttonGroup = this._buttonGroup && this._buttonGroup.$element() || $(\"<div>\");\r\n if (!this._buttonGroup) {\r\n this.$element().append($buttonGroup)\r\n }\r\n this._buttonGroup = this._createComponent($buttonGroup, ButtonGroup, this._buttonGroupOptions());\r\n this._buttonGroup.registerKeyHandler(\"downArrow\", this._upDownKeyHandler.bind(this));\r\n this._buttonGroup.registerKeyHandler(\"tab\", this._tabHandler.bind(this));\r\n this._buttonGroup.registerKeyHandler(\"upArrow\", this._upDownKeyHandler.bind(this));\r\n this._buttonGroup.registerKeyHandler(\"escape\", this._escHandler.bind(this));\r\n this._bindInnerWidgetOptions(this._buttonGroup, \"buttonGroupOptions\");\r\n this._updateAriaAttributes(this.option(\"opened\"))\r\n },\r\n _updateArrowClass() {\r\n var hasArrow = this.option(\"splitButton\") || this.option(\"showArrowIcon\");\r\n this.$element().toggleClass(DROP_DOWN_BUTTON_HAS_ARROW_CLASS, hasArrow)\r\n },\r\n toggle(visible) {\r\n if (!this._popup) {\r\n this._renderPopup();\r\n this._renderContent()\r\n }\r\n return this._popup.toggle(visible)\r\n },\r\n open() {\r\n return this.toggle(true)\r\n },\r\n close() {\r\n return this.toggle(false)\r\n },\r\n _setListOption(name, value) {\r\n this._list && this._list.option(name, value)\r\n },\r\n _getDisplayValue(item) {\r\n var isPrimitiveItem = !isObject(item);\r\n var displayValue = isPrimitiveItem ? item : this._displayGetter(item);\r\n return !isObject(displayValue) ? String(ensureDefined(displayValue, \"\")) : \"\"\r\n },\r\n _updateActionButton(selectedItem) {\r\n if (this.option(\"useSelectMode\")) {\r\n this.option({\r\n text: this._getDisplayValue(selectedItem),\r\n icon: isPlainObject(selectedItem) ? selectedItem.icon : void 0\r\n })\r\n }\r\n this._setOptionWithoutOptionChange(\"selectedItem\", selectedItem);\r\n this._setOptionWithoutOptionChange(\"selectedItemKey\", this._keyGetter(selectedItem))\r\n },\r\n _clean() {\r\n this._list && this._list.$element().remove();\r\n this._popup && this._popup.$element().remove()\r\n },\r\n _selectedItemKeyChanged(value) {\r\n this._setListOption(\"selectedItemKeys\", this.option(\"useSelectMode\") && isDefined(value) ? [value] : []);\r\n var previousItem = this.option(\"selectedItem\");\r\n this._loadSelectedItem().done(selectedItem => {\r\n this._updateActionButton(selectedItem);\r\n if (this._displayGetter(previousItem) !== this._displayGetter(selectedItem)) {\r\n this._fireSelectionChangedAction({\r\n previousValue: previousItem,\r\n value: selectedItem\r\n })\r\n }\r\n })\r\n },\r\n _updateButtonGroup(name, value) {\r\n this._buttonGroup.option(name, value);\r\n this._updateAriaAttributes(this.option(\"opened\"))\r\n },\r\n _actionButtonOptionChanged(_ref5) {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref5;\r\n var newConfig = {};\r\n newConfig[name] = value;\r\n this._updateButtonGroup(\"items[0]\", extend({}, this._actionButtonConfig(), newConfig));\r\n this._popup && this._popup.repaint()\r\n },\r\n _selectModeChanged(value) {\r\n if (value) {\r\n this._setListOption(\"selectionMode\", \"single\");\r\n var selectedItemKey = this.option(\"selectedItemKey\");\r\n this._setListOption(\"selectedItemKeys\", isDefined(selectedItemKey) ? [selectedItemKey] : []);\r\n this._selectedItemKeyChanged(this.option(\"selectedItemKey\"))\r\n } else {\r\n this._setListOption(\"selectionMode\", \"none\");\r\n this.option({\r\n selectedItemKey: void 0,\r\n selectedItem: void 0\r\n });\r\n this._actionButtonOptionChanged({\r\n text: this.option(\"text\")\r\n })\r\n }\r\n },\r\n _updateItemCollection(optionName) {\r\n var selectedItemKey = this.option(\"selectedItemKey\");\r\n this._setListOption(\"selectedItem\", null);\r\n this._setWidgetOption(\"_list\", [optionName]);\r\n if (isDefined(selectedItemKey)) {\r\n this._loadSelectedItem().done(selectedItem => {\r\n this._setListOption(\"selectedItemKeys\", [selectedItemKey]);\r\n this._setListOption(\"selectedItem\", selectedItem)\r\n }).fail(error => {\r\n this._setListOption(\"selectedItemKeys\", [])\r\n }).always(this._updateActionButton.bind(this))\r\n }\r\n },\r\n _updateDataSource() {\r\n var items = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._dataSource.items();\r\n this._dataSource = void 0;\r\n this._itemsToDataSource(items);\r\n this._updateKeyExpr()\r\n },\r\n _updateKeyExpr() {\r\n this._compileKeyGetter();\r\n this._setListOption(\"keyExpr\", this._getKey())\r\n },\r\n focus() {\r\n this._buttonGroup.focus()\r\n },\r\n _optionChanged(args) {\r\n var _a;\r\n var {\r\n name: name,\r\n value: value\r\n } = args;\r\n switch (name) {\r\n case \"useSelectMode\":\r\n this._selectModeChanged(value);\r\n break;\r\n case \"splitButton\":\r\n this._updateArrowClass();\r\n this._renderButtonGroup();\r\n break;\r\n case \"displayExpr\":\r\n this._compileDisplayGetter();\r\n this._setListOption(name, value);\r\n this._updateActionButton(this.option(\"selectedItem\"));\r\n break;\r\n case \"keyExpr\":\r\n this._updateDataSource();\r\n break;\r\n case \"buttonGroupOptions\":\r\n this._innerWidgetOptionChanged(this._buttonGroup, args);\r\n break;\r\n case \"dropDownOptions\":\r\n if (\"dropDownOptions.visible\" === args.fullName) {\r\n break\r\n }\r\n if (void 0 !== args.value.visible) {\r\n delete args.value.visible\r\n }\r\n this._popupOptionChanged(args);\r\n this._innerWidgetOptionChanged(this._popup, args);\r\n break;\r\n case \"opened\":\r\n this.toggle(value);\r\n break;\r\n case \"focusStateEnabled\":\r\n case \"hoverStateEnabled\":\r\n this._setListOption(name, value);\r\n this._updateButtonGroup(name, value);\r\n this.callBase(args);\r\n break;\r\n case \"items\":\r\n this._updateDataSource(this.option(\"items\"));\r\n this._updateItemCollection(name);\r\n break;\r\n case \"dataSource\":\r\n if (Array.isArray(value)) {\r\n this._updateDataSource(this.option(\"dataSource\"))\r\n } else {\r\n this._initDataSource();\r\n this._updateKeyExpr()\r\n }\r\n this._updateItemCollection(name);\r\n break;\r\n case \"icon\":\r\n case \"text\":\r\n this._actionButtonOptionChanged(args);\r\n break;\r\n case \"showArrowIcon\":\r\n this._updateArrowClass();\r\n this._renderButtonGroup();\r\n this._popup && this._popup.repaint();\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n null === (_a = this._popup) || void 0 === _a ? void 0 : _a.repaint();\r\n break;\r\n case \"stylingMode\":\r\n this._updateButtonGroup(name, value);\r\n break;\r\n case \"type\":\r\n this._updateButtonGroup(\"items\", this._getButtonGroupItems());\r\n break;\r\n case \"itemTemplate\":\r\n case \"grouped\":\r\n case \"noDataText\":\r\n case \"groupTemplate\":\r\n case \"wrapItemText\":\r\n case \"useItemTextAsTitle\":\r\n this._setListOption(name, value);\r\n break;\r\n case \"dropDownContentTemplate\":\r\n this._renderContent();\r\n break;\r\n case \"selectedItemKey\":\r\n this._selectedItemKeyChanged(value);\r\n break;\r\n case \"selectedItem\":\r\n break;\r\n case \"onItemClick\":\r\n this._createItemClickAction();\r\n break;\r\n case \"onButtonClick\":\r\n this._createActionClickAction();\r\n break;\r\n case \"onSelectionChanged\":\r\n this._createSelectionChangedAction();\r\n break;\r\n case \"deferRendering\":\r\n this.toggle(this.option(\"opened\"));\r\n break;\r\n case \"tabIndex\":\r\n this._updateButtonGroup(name, value);\r\n break;\r\n case \"template\":\r\n this._renderButtonGroup();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n}).include(DataHelperMixin);\r\nregisterComponent(\"dxDropDownButton\", DropDownButton);\r\nexport default DropDownButton;\r\n","/**\r\n * DevExtreme (esm/__internal/ui/toolbar/m_toolbar.utils.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\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 _a, _b, _c;\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 === (_a = itemData.options) || void 0 === _a ? void 0 : _a.disabled) || itemData.disabled || context.option(\"disabled\"));\r\n var {\r\n widget: widget\r\n } = itemData;\r\n if (widget && TOOLBAR_ITEMS.includes(widget)) {\r\n var $widget = $item.find(widget.toLowerCase().replace(\"dx\", \".dx-\"));\r\n if ($widget.length) {\r\n var itemInstance = getItemInstance($widget);\r\n if (!itemInstance) {\r\n return\r\n }\r\n var $focusTarget = null === (_b = itemInstance._focusTarget) || void 0 === _b ? void 0 : _b.call(itemInstance);\r\n if (\"dxDropDownButton\" === widget) {\r\n $focusTarget = $focusTarget && $focusTarget.find(\".\".concat(BUTTON_GROUP_CLASS))\r\n } else {\r\n $focusTarget = null !== $focusTarget && void 0 !== $focusTarget ? $focusTarget : $(itemInstance.element())\r\n }\r\n var tabIndex = null === (_c = itemData.options) || void 0 === _c ? void 0 : _c.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/__internal/ui/toolbar/strategy/m_toolbar.multiline.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n getWidth\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 _a;\r\n return null !== (_a = this._toolbar.option(\"items\")) && void 0 !== _a ? _a : []\r\n }\r\n _getItemsWidth() {\r\n return this._toolbar._getSummaryItemsSize(\"width\", 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/__internal/ui/toolbar/internal/m_toolbar.menu.list.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n ListBase\r\n} from \"../../../ui/list/m_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] = $(\"<div>\").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 _a;\r\n var location = null !== (_a = item.location) && void 0 !== _a ? _a : \"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/__internal/ui/toolbar/internal/m_toolbar.menu.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport \"../../../../ui/popup/ui.popup\";\r\nimport devices from \"../../../../core/devices\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n ChildDefaultTemplate\r\n} from \"../../../../core/templates/child_default_template\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n getOuterHeight\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n getWindow\r\n} from \"../../../../core/utils/window\";\r\nimport Button from \"../../../../ui/button\";\r\nimport {\r\n isFluent,\r\n isMaterialBased\r\n} from \"../../../../ui/themes\";\r\nimport Widget from \"../../../ui/widget\";\r\nimport {\r\n toggleItemFocusableElementTabIndex\r\n} from \"../m_toolbar.utils\";\r\nimport ToolbarMenuList from \"./m_toolbar.menu.list\";\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 _a;\r\n var extension = {};\r\n if (!this.option(\"opened\") || !(null === (_a = this._list) || void 0 === _a ? void 0 : _a.option(\"focusedElement\"))) {\r\n extension = this._button._supportedKeys()\r\n }\r\n return extend(super._supportedKeys(), extension, {\r\n tab() {\r\n this._popup && this._popup.hide()\r\n }\r\n })\r\n }\r\n _getDefaultOptions() {\r\n return _extends(_extends({}, 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: () => \"desktop\" === devices.real().deviceType && !devices.isSimulator(),\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: () => isMaterialBased(),\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 stylingMode: isFluent() ? \"text\" : \"contained\",\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 _a, _b;\r\n var state = null !== opened && void 0 !== opened ? opened : !(null === (_a = this._popup) || void 0 === _a ? void 0 : _a.option(\"visible\"));\r\n if (opened) {\r\n this._renderPopup()\r\n }\r\n null === (_b = this._popup) || void 0 === _b ? void 0 : _b.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 = $(\"<div>\").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 preventScrollEvents: 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 _a;\r\n null === (_a = this._list) || void 0 === _a ? void 0 : _a._itemOptionChanged(item, property, value);\r\n toggleItemFocusableElementTabIndex(this._list, item)\r\n }\r\n _getListDataSource() {\r\n var _a;\r\n return null !== (_a = this.option(\"dataSource\")) && void 0 !== _a ? _a : this.option(\"items\")\r\n }\r\n _setListDataSource() {\r\n var _a;\r\n null === (_a = this._list) || void 0 === _a ? void 0 : _a.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 var _a;\r\n super._toggleVisibility(visible);\r\n null === (_a = this._button) || void 0 === _a ? void 0 : _a.option(\"visible\", visible)\r\n }\r\n _optionChanged(args) {\r\n var _a, _b, _c;\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 === (_a = this._list) || void 0 === _a ? void 0 : _a.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 === (_b = this._list) || void 0 === _b ? void 0 : _b.option(name, value);\r\n super._optionChanged(args);\r\n break;\r\n case \"onItemRendered\":\r\n null === (_c = this._list) || void 0 === _c ? void 0 : _c.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/__internal/ui/toolbar/strategy/m_toolbar.singleline.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n deferRender,\r\n grep\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 getWidth\r\n} from \"../../../../core/utils/size\";\r\nimport DropDownMenu from \"../internal/m_toolbar.menu\";\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 = $(\"<div>\").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 = $(\"<div>\").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 _a;\r\n return grep(null !== (_a = this._toolbar.option(\"items\")) && void 0 !== _a ? _a : [], 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 _a, _b;\r\n var menuItems = grep(null !== (_a = this._toolbar.option(\"items\")) && void 0 !== _a ? _a : [], item => this._toolbar._isMenuItem(item));\r\n var $hiddenItems = this._getHiddenItems();\r\n this._restoreItems = null !== (_b = this._restoreItems) && void 0 !== _b ? _b : [];\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 = $(\"<div>\").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, (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 _a;\r\n this._toolbar._$centerSection.css({\r\n margin: \"0 auto\",\r\n float: \"none\"\r\n });\r\n each(null !== (_a = this._restoreItems) && void 0 !== _a ? _a : [], (_, 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(width) {\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 var elementWidth = null !== width && void 0 !== width ? width : 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 $item.addClass(TOOLBAR_HIDDEN_ITEM);\r\n itemsWidth = this._getItemsWidth();\r\n overflowItems.splice(-1, 1)\r\n }\r\n }\r\n _getItemsWidth() {\r\n return this._toolbar._getSummaryItemsSize(\"width\", [this._toolbar._$beforeSection, this._toolbar._$centerSection, this._toolbar._$afterSection])\r\n }\r\n _itemOptionChanged(item, property, value) {\r\n var _a;\r\n if (\"disabled\" === property || \"options.disabled\" === property) {\r\n if (this._toolbar._isMenuItem(item)) {\r\n null === (_a = this._menu) || void 0 === _a ? void 0 : _a._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 _a, _b, _c, _d, _e;\r\n switch (name) {\r\n case \"disabled\":\r\n null === (_a = this._menu) || void 0 === _a ? void 0 : _a.option(name, value);\r\n break;\r\n case \"overflowMenuVisible\":\r\n null === (_b = this._menu) || void 0 === _b ? void 0 : _b.option(\"opened\", value);\r\n break;\r\n case \"onItemClick\":\r\n null === (_c = this._menu) || void 0 === _c ? void 0 : _c.option(name, value);\r\n break;\r\n case \"menuContainer\":\r\n null === (_d = this._menu) || void 0 === _d ? void 0 : _d.option(\"container\", value);\r\n break;\r\n case \"menuItemTemplate\":\r\n null === (_e = this._menu) || void 0 === _e ? void 0 : _e.option(\"itemTemplate\", value)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/ui/toolbar/m_toolbar.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport ToolbarBase from \"./m_toolbar.base\";\r\nimport {\r\n toggleItemFocusableElementTabIndex\r\n} from \"./m_toolbar.utils\";\r\nimport {\r\n MultiLineStrategy\r\n} from \"./strategy/m_toolbar.multiline\";\r\nimport {\r\n SingleLineStrategy\r\n} from \"./strategy/m_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 _extends(_extends({}, 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, prevValue) {\r\n if (!this._isMenuItem(item)) {\r\n super._itemOptionChanged(item, property, value, prevValue)\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(args) {\r\n var {\r\n name: name,\r\n value: value\r\n } = args;\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(args);\r\n this._updateFocusableItemsTabIndex();\r\n break;\r\n default:\r\n super._optionChanged(args)\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.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Toolbar from \"./toolbar/ui.toolbar\";\r\nexport default Toolbar;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/header/m_calendar.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport devices from \"../../../core/devices\";\r\nimport $ from \"../../../core/renderer\";\r\nimport Calendar from \"../../../ui/calendar\";\r\nimport Popover from \"../../../ui/popover/ui.popover\";\r\nimport Popup from \"../../../ui/popup/ui.popup\";\r\nimport Scrollable from \"../../../ui/scroll_view/ui.scrollable\";\r\nimport Widget from \"../../../ui/widget/ui.widget\";\r\nvar CALENDAR_CLASS = \"dx-scheduler-navigator-calendar\";\r\nvar CALENDAR_POPOVER_CLASS = \"dx-scheduler-navigator-calendar-popover\";\r\nexport default class SchedulerCalendar extends Widget {\r\n show(target) {\r\n if (!this._isMobileLayout()) {\r\n this._overlay.option(\"target\", target)\r\n }\r\n this._overlay.show()\r\n }\r\n hide() {\r\n this._overlay.hide()\r\n }\r\n _keyboardHandler(opts) {\r\n var _a;\r\n null === (_a = this._calendar) || void 0 === _a ? void 0 : _a._keyboardHandler(opts)\r\n }\r\n _init() {\r\n super._init();\r\n this.$element()\r\n }\r\n _render() {\r\n super._render();\r\n this._renderOverlay()\r\n }\r\n _renderOverlay() {\r\n this.$element().addClass(CALENDAR_POPOVER_CLASS);\r\n var isMobileLayout = this._isMobileLayout();\r\n var overlayType = isMobileLayout ? Popup : Popover;\r\n this._overlay = this._createComponent(this.$element(), overlayType, {\r\n contentTemplate: () => this._createOverlayContent(),\r\n onShown: () => this._calendar.focus(),\r\n defaultOptionsRules: [{\r\n device: () => isMobileLayout,\r\n options: {\r\n fullScreen: true,\r\n showCloseButton: false,\r\n toolbarItems: [{\r\n shortcut: \"cancel\"\r\n }],\r\n _ignorePreventScrollEventsDeprecation: true,\r\n preventScrollEvents: false,\r\n enableBodyScroll: false\r\n }\r\n }]\r\n })\r\n }\r\n _createOverlayContent() {\r\n var result = $(\"<div>\").addClass(CALENDAR_CLASS);\r\n this._calendar = this._createComponent(result, Calendar, this._getCalendarOptions());\r\n if (this._isMobileLayout()) {\r\n var scrollable = this._createScrollable(result);\r\n return scrollable.$element()\r\n }\r\n return result\r\n }\r\n _createScrollable(content) {\r\n var result = this._createComponent(\"<div>\", Scrollable, {\r\n height: \"auto\",\r\n direction: \"both\"\r\n });\r\n result.$content().append(content);\r\n return result\r\n }\r\n _optionChanged(_ref) {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n var _a;\r\n switch (name) {\r\n case \"value\":\r\n null === (_a = this._calendar) || void 0 === _a ? void 0 : _a.option(\"value\", value)\r\n }\r\n }\r\n _getCalendarOptions() {\r\n return {\r\n value: this.option(\"value\"),\r\n min: this.option(\"min\"),\r\n max: this.option(\"max\"),\r\n firstDayOfWeek: this.option(\"firstDayOfWeek\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n onValueChanged: this.option(\"onValueChanged\"),\r\n skipFocusCheck: true,\r\n tabIndex: this.option(\"tabIndex\")\r\n }\r\n }\r\n _isMobileLayout() {\r\n return !devices.current().generic\r\n }\r\n}\r\nregisterComponent(\"dxSchedulerCalendarPopup\", SchedulerCalendar);\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/header/m_date_navigator.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport {\r\n isMaterialBased\r\n} from \"../../../ui/themes\";\r\nvar {\r\n trimTime: trimTime\r\n} = dateUtils;\r\nvar DATE_NAVIGATOR_CLASS = \"dx-scheduler-navigator\";\r\nvar PREVIOUS_BUTTON_CLASS = \"dx-scheduler-navigator-previous\";\r\nvar CALENDAR_BUTTON_CLASS = \"dx-scheduler-navigator-caption\";\r\nvar NEXT_BUTTON_CLASS = \"dx-scheduler-navigator-next\";\r\nvar DIRECTION_LEFT = -1;\r\nvar DIRECTION_RIGHT = 1;\r\nexport var getDateNavigator = (header, item) => {\r\n var items = [getPreviousButtonOptions(header), getCalendarButtonOptions(header), getNextButtonOptions(header)];\r\n var stylingMode = isMaterialBased() ? \"text\" : \"contained\";\r\n return _extends({\r\n widget: \"dxButtonGroup\",\r\n cssClass: DATE_NAVIGATOR_CLASS,\r\n options: {\r\n items: items,\r\n stylingMode: stylingMode,\r\n selectionMode: \"none\",\r\n onItemClick: e => {\r\n e.itemData.clickHandler(e)\r\n }\r\n }\r\n }, item)\r\n};\r\nvar getPreviousButtonOptions = header => ({\r\n key: \"previous\",\r\n icon: \"chevronprev\",\r\n elementAttr: {\r\n class: PREVIOUS_BUTTON_CLASS\r\n },\r\n clickHandler: () => header._updateDateByDirection(DIRECTION_LEFT),\r\n onContentReady: e => {\r\n var previousButton = e.component;\r\n previousButton.option(\"disabled\", isPreviousButtonDisabled(header));\r\n header._addEvent(\"min\", () => {\r\n previousButton.option(\"disabled\", isPreviousButtonDisabled(header))\r\n });\r\n header._addEvent(\"currentDate\", () => {\r\n previousButton.option(\"disabled\", isPreviousButtonDisabled(header))\r\n });\r\n header._addEvent(\"startViewDate\", () => {\r\n previousButton.option(\"disabled\", isPreviousButtonDisabled(header))\r\n })\r\n }\r\n});\r\nvar getCalendarButtonOptions = header => ({\r\n key: \"calendar\",\r\n text: header.captionText,\r\n elementAttr: {\r\n class: CALENDAR_BUTTON_CLASS\r\n },\r\n clickHandler: e => header._showCalendar(e),\r\n onContentReady: e => {\r\n var calendarButton = e.component;\r\n header._addEvent(\"currentView\", () => {\r\n calendarButton.option(\"text\", header.captionText)\r\n });\r\n header._addEvent(\"currentDate\", () => {\r\n calendarButton.option(\"text\", header.captionText)\r\n });\r\n header._addEvent(\"startViewDate\", () => {\r\n calendarButton.option(\"text\", header.captionText)\r\n });\r\n header._addEvent(\"views\", () => {\r\n calendarButton.option(\"text\", header.captionText)\r\n });\r\n header._addEvent(\"firstDayOfWeek\", () => {\r\n calendarButton.option(\"text\", header.captionText)\r\n })\r\n }\r\n});\r\nvar getNextButtonOptions = header => ({\r\n key: \"next\",\r\n icon: \"chevronnext\",\r\n elementAttr: {\r\n class: NEXT_BUTTON_CLASS\r\n },\r\n clickHandler: () => header._updateDateByDirection(DIRECTION_RIGHT),\r\n onContentReady: e => {\r\n var nextButton = e.component;\r\n nextButton.option(\"disabled\", isNextButtonDisabled(header));\r\n header._addEvent(\"min\", () => {\r\n nextButton.option(\"disabled\", isNextButtonDisabled(header))\r\n });\r\n header._addEvent(\"currentDate\", () => {\r\n nextButton.option(\"disabled\", isNextButtonDisabled(header))\r\n });\r\n header._addEvent(\"startViewDate\", () => {\r\n nextButton.option(\"disabled\", isNextButtonDisabled(header))\r\n })\r\n }\r\n});\r\nvar isPreviousButtonDisabled = header => {\r\n var min = header.option(\"min\");\r\n if (!min) {\r\n return false\r\n }\r\n min = new Date(min);\r\n var caption = header._getCaption();\r\n min = trimTime(min);\r\n var previousDate = header._getNextDate(-1, caption.endDate);\r\n return previousDate < min\r\n};\r\nvar isNextButtonDisabled = header => {\r\n var max = header.option(\"max\");\r\n if (!max) {\r\n return false\r\n }\r\n max = new Date(max);\r\n var caption = header._getCaption();\r\n max = max.setHours(23, 59, 59);\r\n var nextDate = header._getNextDate(1, caption.startDate);\r\n return nextDate > max\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/header/m_utils.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errors from \"../../../core/errors\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport {\r\n camelize\r\n} from \"../../../core/utils/inflector\";\r\nimport {\r\n isFunction,\r\n isObject\r\n} from \"../../../core/utils/type\";\r\nimport dateLocalization from \"../../../localization/date\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport {\r\n VIEWS\r\n} from \"../m_constants\";\r\nvar DAY_FORMAT = \"d\";\r\nvar DAYS_IN_WORK_WEEK = 5;\r\nvar {\r\n correctDateWithUnitBeginning: getPeriodStart,\r\n getFirstWeekDate: getWeekStart,\r\n getLastMonthDay: getLastMonthDay,\r\n addDateInterval: addDateInterval\r\n} = dateUtils;\r\nvar {\r\n format: formatDate\r\n} = dateLocalization;\r\nvar MS_DURATION = {\r\n milliseconds: 1\r\n};\r\nvar DAY_DURATION = {\r\n days: 1\r\n};\r\nvar WEEK_DURATION = {\r\n days: 7\r\n};\r\nvar SATURDAY_INDEX = 6;\r\nvar SUNDAY_INDEX = 0;\r\nvar subMS = date => addDateInterval(date, MS_DURATION, -1);\r\nvar addMS = date => addDateInterval(date, MS_DURATION, 1);\r\nvar nextDay = date => addDateInterval(date, DAY_DURATION, 1);\r\nexport var nextWeek = date => addDateInterval(date, WEEK_DURATION, 1);\r\nvar nextMonth = date => {\r\n var days = getLastMonthDay(date);\r\n return addDateInterval(date, {\r\n days: days\r\n }, 1)\r\n};\r\nvar isWeekend = date => date.getDay() === SATURDAY_INDEX || date.getDay() === SUNDAY_INDEX;\r\nvar getWorkWeekStart = firstDayOfWeek => {\r\n var date = new Date(firstDayOfWeek);\r\n while (isWeekend(date)) {\r\n date = nextDay(date)\r\n }\r\n return date\r\n};\r\nvar getDateAfterWorkWeek = workWeekStart => {\r\n var date = new Date(workWeekStart);\r\n var workDaysCount = 0;\r\n while (workDaysCount < DAYS_IN_WORK_WEEK) {\r\n if (!isWeekend(date)) {\r\n workDaysCount++\r\n }\r\n date = nextDay(date)\r\n }\r\n return date\r\n};\r\nvar nextAgendaStart = (date, agendaDuration) => addDateInterval(date, {\r\n days: agendaDuration\r\n}, 1);\r\nvar getInterval = options => {\r\n var startDate = getIntervalStartDate(options);\r\n var endDate = getIntervalEndDate(startDate, options);\r\n return {\r\n startDate: startDate,\r\n endDate: endDate\r\n }\r\n};\r\nvar getIntervalStartDate = options => {\r\n var {\r\n date: date,\r\n step: step,\r\n firstDayOfWeek: firstDayOfWeek\r\n } = options;\r\n switch (step) {\r\n case \"day\":\r\n case \"week\":\r\n case \"month\":\r\n return getPeriodStart(date, step, false, firstDayOfWeek);\r\n case \"workWeek\":\r\n var firstWeekDay = getWeekStart(date, firstDayOfWeek);\r\n return getWorkWeekStart(firstWeekDay);\r\n case \"agenda\":\r\n return new Date(date)\r\n }\r\n};\r\nvar getIntervalEndDate = (startDate, options) => {\r\n var {\r\n intervalCount: intervalCount,\r\n step: step,\r\n agendaDuration: agendaDuration\r\n } = options;\r\n var periodStartDate;\r\n var periodEndDate;\r\n var nextPeriodStartDate = new Date(startDate);\r\n for (var i = 0; i < intervalCount; i++) {\r\n periodStartDate = nextPeriodStartDate;\r\n periodEndDate = getPeriodEndDate(periodStartDate, step, agendaDuration);\r\n nextPeriodStartDate = getNextPeriodStartDate(periodEndDate, step)\r\n }\r\n return periodEndDate\r\n};\r\nvar getPeriodEndDate = (currentPeriodStartDate, step, agendaDuration) => {\r\n var date;\r\n switch (step) {\r\n case \"day\":\r\n date = nextDay(currentPeriodStartDate);\r\n break;\r\n case \"week\":\r\n date = nextWeek(currentPeriodStartDate);\r\n break;\r\n case \"month\":\r\n date = nextMonth(currentPeriodStartDate);\r\n break;\r\n case \"workWeek\":\r\n date = getDateAfterWorkWeek(currentPeriodStartDate);\r\n break;\r\n case \"agenda\":\r\n date = nextAgendaStart(currentPeriodStartDate, agendaDuration)\r\n }\r\n return subMS(date)\r\n};\r\nvar getNextPeriodStartDate = (currentPeriodEndDate, step) => {\r\n var date = addMS(currentPeriodEndDate);\r\n if (\"workWeek\" === step) {\r\n while (isWeekend(date)) {\r\n date = nextDay(date)\r\n }\r\n }\r\n return date\r\n};\r\nexport var getNextIntervalDate = (options, direction) => {\r\n var {\r\n date: date,\r\n step: step,\r\n intervalCount: intervalCount,\r\n agendaDuration: agendaDuration\r\n } = options;\r\n var dayDuration;\r\n switch (step) {\r\n case \"day\":\r\n dayDuration = 1 * intervalCount;\r\n break;\r\n case \"week\":\r\n case \"workWeek\":\r\n dayDuration = 7 * intervalCount;\r\n break;\r\n case \"agenda\":\r\n dayDuration = agendaDuration;\r\n break;\r\n case \"month\":\r\n return getNextMonthDate(date, intervalCount, direction)\r\n }\r\n return addDateInterval(date, {\r\n days: dayDuration\r\n }, direction)\r\n};\r\nvar getNextMonthDate = (date, intervalCount, direction) => {\r\n var currentDate = date.getDate();\r\n var currentMonthFirstDate = new Date(new Date(date.getTime()).setDate(1));\r\n var thatMonthFirstDate = new Date(currentMonthFirstDate.setMonth(currentMonthFirstDate.getMonth() + intervalCount * direction));\r\n var thatMonthDuration = getLastMonthDay(thatMonthFirstDate);\r\n var minDate = currentDate < thatMonthDuration ? currentDate : thatMonthDuration;\r\n var currentMonthMinDate = new Date(new Date(date.getTime()).setDate(minDate));\r\n var thatMonthMinDate = new Date(currentMonthMinDate.setMonth(currentMonthMinDate.getMonth() + intervalCount * direction));\r\n return thatMonthMinDate\r\n};\r\nvar getDateMonthFormatter = isShort => {\r\n var monthType = isShort ? \"abbreviated\" : \"wide\";\r\n var months = dateLocalization.getMonthNames(monthType);\r\n return date => {\r\n var day = formatDate(date, \"day\");\r\n var month = months[date.getMonth()];\r\n return \"\".concat(day, \" \").concat(month)\r\n }\r\n};\r\nvar formatMonthYear = date => {\r\n var months = dateLocalization.getMonthNames(\"abbreviated\");\r\n var month = months[date.getMonth()];\r\n var year = formatDate(date, \"year\");\r\n return \"\".concat(month, \" \").concat(year)\r\n};\r\nvar getDateMonthYearFormatter = isShort => date => {\r\n var dateMonthFormat = getDateMonthFormatter(isShort);\r\n var dateMonth = dateMonthFormat(date);\r\n var year = formatDate(date, \"year\");\r\n return \"\".concat(dateMonth, \" \").concat(year)\r\n};\r\nvar getDifferentYearCaption = (startDate, endDate) => {\r\n var firstDateText = formatDate(startDate, getDateMonthYearFormatter(true));\r\n var lastDateDateText = formatDate(endDate, getDateMonthYearFormatter(true));\r\n return \"\".concat(firstDateText, \"-\").concat(lastDateDateText)\r\n};\r\nvar getSameYearCaption = (startDate, endDate, isShort) => {\r\n var isDifferentMonthDates = startDate.getMonth() !== endDate.getMonth();\r\n var useShortFormat = isDifferentMonthDates || isShort;\r\n var firstDateFormat = isDifferentMonthDates ? getDateMonthFormatter(useShortFormat) : DAY_FORMAT;\r\n var firstDateText = formatDate(startDate, firstDateFormat);\r\n var lastDateText = formatDate(endDate, getDateMonthYearFormatter(useShortFormat));\r\n return \"\".concat(firstDateText, \"-\").concat(lastDateText)\r\n};\r\nvar getSameDateCaption = (date, step, isShort) => {\r\n var useShortFormat = \"agenda\" === step ? isShort : false;\r\n var dateMonthFormat = getDateMonthFormatter(useShortFormat);\r\n var dateMonth = dateMonthFormat(date);\r\n var year = formatDate(date, \"year\");\r\n return \"\".concat(dateMonth, \" \").concat(year)\r\n};\r\nvar formatCaptionByMonths = (startDate, endDate, isShort) => {\r\n var isDifferentYears = startDate.getFullYear() !== endDate.getFullYear();\r\n if (isDifferentYears) {\r\n return getDifferentYearCaption(startDate, endDate)\r\n }\r\n return getSameYearCaption(startDate, endDate, isShort)\r\n};\r\nvar formatMonthViewCaption = (startDate, endDate) => {\r\n if (dateUtils.sameMonth(startDate, endDate)) {\r\n return formatDate(startDate, \"monthandyear\")\r\n }\r\n var isSameYear = dateUtils.sameYear(startDate, endDate);\r\n var firstDateText = isSameYear ? dateLocalization.getMonthNames(\"abbreviated\")[startDate.getMonth()] : formatMonthYear(startDate);\r\n var lastDateText = formatMonthYear(endDate);\r\n return \"\".concat(firstDateText, \"-\").concat(lastDateText)\r\n};\r\nvar getCaptionText = (startDate, endDate, isShort, step) => {\r\n if (dateUtils.sameDate(startDate, endDate)) {\r\n return getSameDateCaption(startDate, step, isShort)\r\n }\r\n if (\"month\" === step) {\r\n return formatMonthViewCaption(startDate, endDate)\r\n }\r\n return formatCaptionByMonths(startDate, endDate, isShort)\r\n};\r\nexport var getCaption = (options, isShort, customizationFunction) => {\r\n var {\r\n startDate: startDate,\r\n endDate: endDate\r\n } = getInterval(options);\r\n var text = getCaptionText(startDate, endDate, isShort, options.step);\r\n if (isFunction(customizationFunction)) {\r\n text = customizationFunction({\r\n startDate: startDate,\r\n endDate: endDate,\r\n text: text\r\n })\r\n }\r\n return {\r\n startDate: startDate,\r\n endDate: endDate,\r\n text: text\r\n }\r\n};\r\nvar STEP_MAP = {\r\n day: \"day\",\r\n week: \"week\",\r\n workWeek: \"workWeek\",\r\n month: \"month\",\r\n timelineDay: \"day\",\r\n timelineWeek: \"week\",\r\n timelineWorkWeek: \"workWeek\",\r\n timelineMonth: \"month\",\r\n agenda: \"agenda\"\r\n};\r\nexport var getStep = view => STEP_MAP[getViewType(view)];\r\nexport var getViewType = view => {\r\n if (isObject(view) && view.type) {\r\n return view.type\r\n }\r\n return view\r\n};\r\nexport var getViewName = view => {\r\n if (isObject(view)) {\r\n return view.name ? view.name : view.type\r\n }\r\n return view\r\n};\r\nexport var getViewText = view => {\r\n if (view.name) {\r\n return view.name\r\n }\r\n var viewName = camelize(view.type || view, true);\r\n return messageLocalization.format(\"dxScheduler-switcher\".concat(viewName))\r\n};\r\nvar isValidView = view => Object.values(VIEWS).includes(view);\r\nexport var validateViews = views => {\r\n views.forEach(view => {\r\n var viewType = getViewType(view);\r\n if (!isValidView(viewType)) {\r\n errors.log(\"W0008\", viewType)\r\n }\r\n })\r\n};\r\nexport var formatViews = views => {\r\n validateViews(views);\r\n return views.map(view => {\r\n var text = getViewText(view);\r\n var type = getViewType(view);\r\n var name = getViewName(view);\r\n return {\r\n text: text,\r\n name: name,\r\n view: {\r\n text: text,\r\n type: type,\r\n name: name\r\n }\r\n }\r\n })\r\n};\r\nexport var isOneView = (views, selectedView) => 1 === views.length && views[0].name === selectedView;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/header/m_view_switcher.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n isFluent\r\n} from \"../../../ui/themes\";\r\nimport {\r\n formatViews,\r\n getViewName,\r\n isOneView\r\n} from \"./m_utils\";\r\nvar VIEW_SWITCHER_CLASS = \"dx-scheduler-view-switcher\";\r\nvar VIEW_SWITCHER_DROP_DOWN_BUTTON_CLASS = \"dx-scheduler-view-switcher-dropdown-button\";\r\nvar VIEW_SWITCHER_DROP_DOWN_BUTTON_CONTENT_CLASS = \"dx-scheduler-view-switcher-dropdown-button-content\";\r\nvar getViewsAndSelectedView = header => {\r\n var views = formatViews(header.views);\r\n var selectedView = getViewName(header.currentView);\r\n var isSelectedViewInViews = views.some(view => view.name === selectedView);\r\n selectedView = isSelectedViewInViews ? selectedView : void 0;\r\n return {\r\n selectedView: selectedView,\r\n views: views\r\n }\r\n};\r\nexport var getViewSwitcher = (header, item) => {\r\n var {\r\n selectedView: selectedView,\r\n views: views\r\n } = getViewsAndSelectedView(header);\r\n var stylingMode = isFluent() ? \"outlined\" : \"contained\";\r\n return _extends({\r\n widget: \"dxButtonGroup\",\r\n locateInMenu: \"auto\",\r\n cssClass: VIEW_SWITCHER_CLASS,\r\n options: {\r\n items: views,\r\n keyExpr: \"name\",\r\n selectedItemKeys: [selectedView],\r\n stylingMode: stylingMode,\r\n onItemClick: e => {\r\n var {\r\n view: view\r\n } = e.itemData;\r\n header._updateCurrentView(view)\r\n },\r\n onContentReady: e => {\r\n var viewSwitcher = e.component;\r\n header._addEvent(\"currentView\", view => {\r\n viewSwitcher.option(\"selectedItemKeys\", [getViewName(view)])\r\n })\r\n }\r\n }\r\n }, item)\r\n};\r\nexport var getDropDownViewSwitcher = (header, item) => {\r\n var {\r\n selectedView: selectedView,\r\n views: views\r\n } = getViewsAndSelectedView(header);\r\n var oneView = isOneView(views, selectedView);\r\n return _extends({\r\n widget: \"dxDropDownButton\",\r\n locateInMenu: \"never\",\r\n cssClass: VIEW_SWITCHER_CLASS,\r\n options: {\r\n items: views,\r\n useSelectMode: true,\r\n keyExpr: \"name\",\r\n selectedItemKey: selectedView,\r\n displayExpr: \"text\",\r\n showArrowIcon: !oneView,\r\n elementAttr: {\r\n class: VIEW_SWITCHER_DROP_DOWN_BUTTON_CLASS\r\n },\r\n onItemClick: e => {\r\n var {\r\n view: view\r\n } = e.itemData;\r\n header._updateCurrentView(view)\r\n },\r\n onContentReady: e => {\r\n var viewSwitcher = e.component;\r\n header._addEvent(\"currentView\", view => {\r\n var views = formatViews(header.views);\r\n if (isOneView(views, view)) {\r\n header.repaint()\r\n }\r\n viewSwitcher.option(\"selectedItemKey\", getViewName(view))\r\n })\r\n },\r\n dropDownOptions: {\r\n onShowing: e => {\r\n if (oneView) {\r\n e.cancel = true\r\n }\r\n },\r\n width: \"max-content\",\r\n _wrapperClassExternal: VIEW_SWITCHER_DROP_DOWN_BUTTON_CONTENT_CLASS\r\n }\r\n }\r\n }, item)\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/header/m_header.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport \"../../../ui/button_group\";\r\nimport \"../../../ui/drop_down_button\";\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport devices from \"../../../core/devices\";\r\nimport errors from \"../../../core/errors\";\r\nimport $ from \"../../../core/renderer\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport Toolbar from \"../../../ui/toolbar\";\r\nimport Widget from \"../../../ui/widget/ui.widget\";\r\nimport {\r\n viewsUtils\r\n} from \"../../scheduler/r1/utils/index\";\r\nimport SchedulerCalendar from \"./m_calendar\";\r\nimport {\r\n getDateNavigator\r\n} from \"./m_date_navigator\";\r\nimport {\r\n getCaption,\r\n getNextIntervalDate,\r\n getStep,\r\n getViewName,\r\n getViewType,\r\n nextWeek,\r\n validateViews\r\n} from \"./m_utils\";\r\nimport {\r\n getDropDownViewSwitcher,\r\n getViewSwitcher\r\n} from \"./m_view_switcher\";\r\nvar DEFAULT_ELEMENT = \"defaultElement\";\r\nvar VIEW_SWITCHER = \"viewSwitcher\";\r\nvar DATE_NAVIGATOR = \"dateNavigator\";\r\nvar COMPONENT_CLASS = \"dx-scheduler-header\";\r\nexport class SchedulerHeader extends Widget {\r\n get views() {\r\n return this.option(\"views\")\r\n }\r\n get captionText() {\r\n return this._getCaption().text\r\n }\r\n get intervalOptions() {\r\n var step = getStep(this.currentView);\r\n var intervalCount = this.option(\"intervalCount\");\r\n var firstDayOfWeek = this.option(\"firstDayOfWeek\");\r\n var agendaDuration = this.option(\"agendaDuration\");\r\n return {\r\n step: step,\r\n intervalCount: intervalCount,\r\n firstDayOfWeek: firstDayOfWeek,\r\n agendaDuration: agendaDuration\r\n }\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n _useShortDateFormat: !devices.real().generic || devices.isSimulator()\r\n })\r\n }\r\n _createEventMap() {\r\n this.eventMap = new Map([\r\n [\"currentView\", [view => {\r\n this.currentView = viewsUtils.getCurrentView(getViewName(view), this.option(\"views\"))\r\n }]],\r\n [\"items\", [this.repaint.bind(this)]],\r\n [\"views\", [validateViews]],\r\n [\"currentDate\", [this._getCalendarOptionUpdater(\"value\")]],\r\n [\"min\", [this._getCalendarOptionUpdater(\"min\")]],\r\n [\"max\", [this._getCalendarOptionUpdater(\"max\")]],\r\n [\"tabIndex\", [this.repaint.bind(this)]],\r\n [\"focusStateEnabled\", [this.repaint.bind(this)]],\r\n [\"useDropDownViewSwitcher\", [this.repaint.bind(this)]]\r\n ])\r\n }\r\n _addEvent(name, event) {\r\n if (!this.eventMap.has(name)) {\r\n this.eventMap.set(name, [])\r\n }\r\n var events = this.eventMap.get(name);\r\n this.eventMap.set(name, [...events, event])\r\n }\r\n _optionChanged(args) {\r\n var {\r\n name: name,\r\n value: value\r\n } = args;\r\n if (this.eventMap.has(name)) {\r\n var events = this.eventMap.get(name);\r\n events.forEach(event => {\r\n event(value)\r\n })\r\n }\r\n }\r\n _init() {\r\n super._init();\r\n this._createEventMap();\r\n this.$element().addClass(COMPONENT_CLASS);\r\n this.currentView = viewsUtils.getCurrentView(getViewName(this.option(\"currentView\")), this.option(\"views\"))\r\n }\r\n _render() {\r\n super._render();\r\n this._createEventMap();\r\n this._renderToolbar()\r\n }\r\n _renderToolbar() {\r\n var config = this._createToolbarConfig();\r\n var toolbarElement = $(\"<div>\");\r\n toolbarElement.appendTo(this.$element());\r\n this._toolbar = this._createComponent(toolbarElement, Toolbar, config)\r\n }\r\n _createToolbarConfig() {\r\n var items = this.option(\"items\");\r\n var parsedItems = items.map(element => this._parseItem(element));\r\n return {\r\n items: parsedItems\r\n }\r\n }\r\n _parseItem(item) {\r\n var isDefaultElement = this._isDefaultItem(item);\r\n if (isDefaultElement) {\r\n var defaultElementType = item[DEFAULT_ELEMENT];\r\n switch (defaultElementType) {\r\n case VIEW_SWITCHER:\r\n if (this.option(\"useDropDownViewSwitcher\")) {\r\n return getDropDownViewSwitcher(this, item)\r\n }\r\n return getViewSwitcher(this, item);\r\n case DATE_NAVIGATOR:\r\n this._renderCalendar();\r\n return getDateNavigator(this, item);\r\n default:\r\n errors.log(\"Unknown default element type: \".concat(defaultElementType))\r\n }\r\n }\r\n return item\r\n }\r\n _callEvent(event, arg) {\r\n if (this.eventMap.has(event)) {\r\n var events = this.eventMap.get(event);\r\n events.forEach(event => event(arg))\r\n }\r\n }\r\n _updateCurrentView(view) {\r\n var onCurrentViewChange = this.option(\"onCurrentViewChange\");\r\n onCurrentViewChange(view.name);\r\n this._callEvent(\"currentView\", view)\r\n }\r\n _updateCalendarValueAndCurrentDate(date) {\r\n this._updateCurrentDate(date);\r\n this._calendar.option(\"value\", date)\r\n }\r\n _updateCurrentDate(date) {\r\n var onCurrentDateChange = this.option(\"onCurrentDateChange\");\r\n onCurrentDateChange(date);\r\n this._callEvent(\"currentDate\", date)\r\n }\r\n _renderCalendar() {\r\n this._calendar = this._createComponent(\"<div>\", SchedulerCalendar, {\r\n value: this.option(\"currentDate\"),\r\n min: this.option(\"min\"),\r\n max: this.option(\"max\"),\r\n firstDayOfWeek: this.option(\"firstDayOfWeek\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n tabIndex: this.option(\"tabIndex\"),\r\n onValueChanged: e => {\r\n this._updateCurrentDate(e.value);\r\n this._calendar.hide()\r\n }\r\n });\r\n this._calendar.$element().appendTo(this.$element())\r\n }\r\n _getCalendarOptionUpdater(name) {\r\n return value => {\r\n if (this._calendar) {\r\n this._calendar.option(name, value)\r\n }\r\n }\r\n }\r\n _getNextDate(direction) {\r\n var initialDate = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null;\r\n var date = null !== initialDate && void 0 !== initialDate ? initialDate : this.option(\"currentDate\");\r\n var options = _extends(_extends({}, this.intervalOptions), {\r\n date: date\r\n });\r\n return getNextIntervalDate(options, direction)\r\n }\r\n _isMonth() {\r\n var {\r\n currentView: currentView\r\n } = this;\r\n return \"month\" === getViewType(currentView)\r\n }\r\n _getDisplayedDate() {\r\n var startViewDate = this.option(\"startViewDate\");\r\n if (this._isMonth()) {\r\n return nextWeek(startViewDate)\r\n }\r\n return new Date(startViewDate)\r\n }\r\n _getCaption() {\r\n var date = this.option(\"currentDate\");\r\n if (this.option(\"startViewDate\")) {\r\n date = this._getDisplayedDate()\r\n }\r\n date = dateUtils.trimTime(date);\r\n var options = _extends(_extends({}, this.intervalOptions), {\r\n date: date\r\n });\r\n var customizationFunction = this.option(\"customizeDateNavigatorText\");\r\n var useShortDateFormat = this.option(\"_useShortDateFormat\");\r\n return getCaption(options, useShortDateFormat, customizationFunction)\r\n }\r\n _updateDateByDirection(direction) {\r\n var date = this._getNextDate(direction);\r\n this._updateCalendarValueAndCurrentDate(date)\r\n }\r\n _showCalendar(e) {\r\n this._calendar.show(e.element)\r\n }\r\n _hideCalendar() {\r\n this._calendar.hide()\r\n }\r\n _isDefaultItem(item) {\r\n return Object.prototype.hasOwnProperty.call(item, DEFAULT_ELEMENT)\r\n }\r\n}\r\nregisterComponent(\"dxSchedulerHeader\", SchedulerHeader);\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/m_cell_position_calculator.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n dateUtilsTs\r\n} from \"../../core/utils/date\";\r\nclass BaseStrategy {\r\n constructor(options) {\r\n this.isVirtualScrolling = false;\r\n this.options = options\r\n }\r\n get DOMMetaData() {\r\n return this.options.DOMMetaData\r\n }\r\n get appointments() {\r\n return this.options.dateSettings\r\n }\r\n get viewDataProvider() {\r\n return this.options.viewDataProvider\r\n }\r\n get positionHelper() {\r\n return this.options.positionHelper\r\n }\r\n get startViewDate() {\r\n return this.options.startViewDate\r\n }\r\n get viewStartDayHour() {\r\n return this.options.viewStartDayHour\r\n }\r\n get viewEndDayHour() {\r\n return this.options.viewEndDayHour\r\n }\r\n get cellDuration() {\r\n return this.options.cellDuration\r\n }\r\n get getPositionShift() {\r\n return this.options.getPositionShiftCallback\r\n }\r\n get groupCount() {\r\n return this.options.groupCount\r\n }\r\n get rtlEnabled() {\r\n return this.options.rtlEnabled\r\n }\r\n get isVerticalGrouping() {\r\n return this.options.isVerticalGroupOrientation\r\n }\r\n get showAllDayPanel() {\r\n return this.options.showAllDayPanel\r\n }\r\n get supportAllDayRow() {\r\n return this.options.supportAllDayRow\r\n }\r\n get isGroupedAllDayPanel() {\r\n return this.options.isGroupedAllDayPanel\r\n }\r\n calculateCellPositions(groupIndices, isAllDayRowAppointment, isRecurrentAppointment) {\r\n var result = [];\r\n this.appointments.forEach((dateSetting, index) => {\r\n var coordinates = this.getCoordinateInfos({\r\n appointment: dateSetting,\r\n groupIndices: groupIndices,\r\n isAllDayRowAppointment: isAllDayRowAppointment,\r\n isRecurrentAppointment: isRecurrentAppointment\r\n });\r\n coordinates.forEach(item => {\r\n !!item && result.push(this._prepareObject(item, index))\r\n })\r\n });\r\n return result\r\n }\r\n getCoordinateInfos(options) {\r\n var {\r\n appointment: appointment,\r\n isAllDayRowAppointment: isAllDayRowAppointment,\r\n groupIndices: groupIndices,\r\n recurrent: recurrent\r\n } = options;\r\n var {\r\n startDate: startDate\r\n } = appointment;\r\n var groupIndex = !recurrent ? appointment.source.groupIndex : void 0;\r\n return this.getCoordinatesByDateInGroup(startDate, groupIndices, isAllDayRowAppointment, groupIndex)\r\n }\r\n _prepareObject(position, dateSettingIndex) {\r\n position.dateSettingIndex = dateSettingIndex;\r\n return {\r\n coordinates: position,\r\n dateSettingIndex: dateSettingIndex\r\n }\r\n }\r\n getCoordinatesByDate(date, groupIndex, inAllDayRow) {\r\n var validGroupIndex = groupIndex || 0;\r\n var cellInfo = {\r\n groupIndex: validGroupIndex,\r\n startDate: date,\r\n isAllDay: inAllDayRow\r\n };\r\n var positionByMap = this.viewDataProvider.findCellPositionInMap(cellInfo, true);\r\n if (!positionByMap) {\r\n return\r\n }\r\n var position = this.getCellPosition(positionByMap, inAllDayRow && !this.isVerticalGrouping);\r\n var groupEdgeIndices = this.viewDataProvider.getGroupEdgeIndices(validGroupIndex);\r\n var {\r\n top: vMin\r\n } = this.getCellPosition({\r\n columnIndex: positionByMap.columnIndex,\r\n rowIndex: groupEdgeIndices.firstRowIndex\r\n }, inAllDayRow && !this.isVerticalGrouping);\r\n var timeShift = inAllDayRow ? 0 : this.getTimeShiftRatio(positionByMap, date);\r\n var shift = this.getPositionShift(timeShift, inAllDayRow);\r\n var horizontalHMax = this.positionHelper.getHorizontalMax(validGroupIndex, date);\r\n var verticalMax = this.positionHelper.getVerticalMax({\r\n groupIndex: validGroupIndex,\r\n isVirtualScrolling: this.isVirtualScrolling,\r\n showAllDayPanel: this.showAllDayPanel,\r\n supportAllDayRow: this.supportAllDayRow,\r\n isGroupedAllDayPanel: this.isGroupedAllDayPanel,\r\n isVerticalGrouping: this.isVerticalGrouping\r\n });\r\n return {\r\n positionByMap: positionByMap,\r\n cellPosition: position.left + shift.cellPosition,\r\n top: position.top + shift.top,\r\n left: position.left + shift.left,\r\n rowIndex: position.rowIndex,\r\n columnIndex: position.columnIndex,\r\n hMax: horizontalHMax,\r\n vMax: verticalMax,\r\n vMin: vMin,\r\n groupIndex: validGroupIndex\r\n }\r\n }\r\n getCoordinatesByDateInGroup(startDate, groupIndices, inAllDayRow, groupIndex) {\r\n var result = [];\r\n if (this.viewDataProvider.isSkippedDate(startDate)) {\r\n return result\r\n }\r\n var validGroupIndices = [groupIndex];\r\n if (!isDefined(groupIndex)) {\r\n validGroupIndices = this.groupCount ? groupIndices : [0]\r\n }\r\n validGroupIndices.forEach(groupIndex => {\r\n var coordinates = this.getCoordinatesByDate(startDate, groupIndex, inAllDayRow);\r\n if (coordinates) {\r\n result.push(coordinates)\r\n }\r\n });\r\n return result\r\n }\r\n getCellPosition(cellCoordinates, isAllDayPanel) {\r\n var {\r\n dateTableCellsMeta: dateTableCellsMeta,\r\n allDayPanelCellsMeta: allDayPanelCellsMeta\r\n } = this.DOMMetaData;\r\n var {\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex\r\n } = cellCoordinates;\r\n var position = isAllDayPanel ? allDayPanelCellsMeta[columnIndex] : dateTableCellsMeta[rowIndex][columnIndex];\r\n var validPosition = _extends({}, position);\r\n if (this.rtlEnabled) {\r\n validPosition.left += position.width\r\n }\r\n if (validPosition) {\r\n validPosition.rowIndex = cellCoordinates.rowIndex;\r\n validPosition.columnIndex = cellCoordinates.columnIndex\r\n }\r\n return validPosition\r\n }\r\n getTimeShiftRatio(positionByMap, appointmentDate) {\r\n var {\r\n cellDuration: cellDuration,\r\n viewOffset: viewOffset\r\n } = this.options;\r\n var {\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex\r\n } = positionByMap;\r\n var matchedCell = this.viewDataProvider.viewDataMap.dateTableMap[rowIndex][columnIndex];\r\n var matchedCellStartDate = dateUtilsTs.addOffsets(matchedCell.cellData.startDate, [-viewOffset]);\r\n var result = (appointmentDate.getTime() - matchedCellStartDate.getTime()) / cellDuration;\r\n return result % 1\r\n }\r\n}\r\nclass VirtualStrategy extends BaseStrategy {\r\n constructor() {\r\n super(...arguments);\r\n this.isVirtualScrolling = true\r\n }\r\n calculateCellPositions(groupIndices, isAllDayRowAppointment, isRecurrentAppointment) {\r\n var appointments = isAllDayRowAppointment ? this.appointments : this.appointments.filter(_ref => {\r\n var {\r\n source: source,\r\n startDate: startDate,\r\n endDate: endDate\r\n } = _ref;\r\n return this.viewDataProvider.isGroupIntersectDateInterval(source.groupIndex, startDate, endDate)\r\n });\r\n if (isRecurrentAppointment) {\r\n return this.createRecurrentAppointmentInfos(appointments, isAllDayRowAppointment)\r\n }\r\n return super.calculateCellPositions(groupIndices, isAllDayRowAppointment, isRecurrentAppointment)\r\n }\r\n createRecurrentAppointmentInfos(dateSettings, isAllDayRowAppointment) {\r\n var result = [];\r\n dateSettings.forEach((_ref2, index) => {\r\n var {\r\n source: source,\r\n startDate: startDate\r\n } = _ref2;\r\n var coordinate = this.getCoordinatesByDate(startDate, source.groupIndex, isAllDayRowAppointment);\r\n if (coordinate) {\r\n result.push(this._prepareObject(coordinate, index))\r\n }\r\n });\r\n return result\r\n }\r\n}\r\nexport class CellPositionCalculator {\r\n constructor(options) {\r\n this.options = options\r\n }\r\n calculateCellPositions(groupIndices, isAllDayRowAppointment, isRecurrentAppointment) {\r\n var strategy = this.options.isVirtualScrolling ? new VirtualStrategy(this.options) : new BaseStrategy(this.options);\r\n return strategy.calculateCellPositions(groupIndices, isAllDayRowAppointment, isRecurrentAppointment)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/m_text_utils.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport dateLocalization from \"../../../localization/date\";\r\nexport var createFormattedDateText = options => {\r\n var {\r\n startDate: startDate,\r\n endDate: endDate,\r\n allDay: allDay,\r\n format: format\r\n } = options;\r\n var formatType = format || getFormatType(startDate, endDate, allDay);\r\n return formatDates(startDate, endDate, formatType)\r\n};\r\nexport var getFormatType = (startDate, endDate, isAllDay, isDateAndTimeView) => {\r\n if (isAllDay) {\r\n return \"DATE\"\r\n }\r\n if (isDateAndTimeView && dateUtils.sameDate(startDate, endDate)) {\r\n return \"TIME\"\r\n }\r\n return \"DATETIME\"\r\n};\r\nexport var formatDates = (startDate, endDate, formatType) => {\r\n var isSameDate = startDate.getDate() === endDate.getDate();\r\n switch (formatType) {\r\n case \"DATETIME\":\r\n return [dateLocalization.format(startDate, \"monthandday\"), \" \", dateLocalization.format(startDate, \"shorttime\"), \" - \", isSameDate ? \"\" : \"\".concat(dateLocalization.format(endDate, \"monthandday\"), \" \"), dateLocalization.format(endDate, \"shorttime\")].join(\"\");\r\n case \"TIME\":\r\n return \"\".concat(dateLocalization.format(startDate, \"shorttime\"), \" - \").concat(dateLocalization.format(endDate, \"shorttime\"));\r\n case \"DATE\":\r\n return \"\".concat(dateLocalization.format(startDate, \"monthandday\")).concat(isSameDate ? \"\" : \" - \".concat(dateLocalization.format(endDate, \"monthandday\")))\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/m_settings_generator.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n isEmptyObject\r\n} from \"../../../core/utils/type\";\r\nimport timeZoneUtils from \"../../../ui/scheduler/utils.timeZone\";\r\nimport {\r\n dateUtilsTs\r\n} from \"../../core/utils/date\";\r\nimport {\r\n getGroupCount,\r\n isDateAndTimeView\r\n} from \"../../scheduler/r1/utils/index\";\r\nimport {\r\n createAppointmentAdapter\r\n} from \"../m_appointment_adapter\";\r\nimport {\r\n ExpressionUtils\r\n} from \"../m_expression_utils\";\r\nimport {\r\n getRecurrenceProcessor\r\n} from \"../m_recurrence\";\r\nimport {\r\n createResourcesTree,\r\n getDataAccessors,\r\n getResourceTreeLeaves\r\n} from \"../resources/m_utils\";\r\nimport {\r\n CellPositionCalculator\r\n} from \"./m_cell_position_calculator\";\r\nimport {\r\n createFormattedDateText\r\n} from \"./m_text_utils\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nvar APPOINTMENT_DATE_TEXT_FORMAT = \"TIME\";\r\nexport class DateGeneratorBaseStrategy {\r\n constructor(options) {\r\n this.options = options\r\n }\r\n get rawAppointment() {\r\n return this.options.rawAppointment\r\n }\r\n get timeZoneCalculator() {\r\n return this.options.timeZoneCalculator\r\n }\r\n get viewDataProvider() {\r\n return this.options.viewDataProvider\r\n }\r\n get appointmentTakesAllDay() {\r\n return this.options.appointmentTakesAllDay\r\n }\r\n get supportAllDayRow() {\r\n return this.options.supportAllDayRow\r\n }\r\n get isAllDayRowAppointment() {\r\n return this.options.isAllDayRowAppointment\r\n }\r\n get timeZone() {\r\n return this.options.timeZone\r\n }\r\n get dateRange() {\r\n return this.options.dateRange\r\n }\r\n get firstDayOfWeek() {\r\n return this.options.firstDayOfWeek\r\n }\r\n get viewStartDayHour() {\r\n return this.options.viewStartDayHour\r\n }\r\n get viewEndDayHour() {\r\n return this.options.viewEndDayHour\r\n }\r\n get endViewDate() {\r\n return this.options.endViewDate\r\n }\r\n get viewType() {\r\n return this.options.viewType\r\n }\r\n get isGroupedByDate() {\r\n return this.options.isGroupedByDate\r\n }\r\n get isVerticalOrientation() {\r\n return this.options.isVerticalGroupOrientation\r\n }\r\n get dataAccessors() {\r\n return this.options.dataAccessors\r\n }\r\n get loadedResources() {\r\n return this.options.loadedResources\r\n }\r\n get isDateAppointment() {\r\n return !isDateAndTimeView(this.viewType) && this.appointmentTakesAllDay\r\n }\r\n getIntervalDuration() {\r\n return this.appointmentTakesAllDay ? this.options.allDayIntervalDuration : this.options.intervalDuration\r\n }\r\n generate(appointmentAdapter) {\r\n var {\r\n isRecurrent: isRecurrent\r\n } = appointmentAdapter;\r\n var itemGroupIndices = this._getGroupIndices(this.rawAppointment);\r\n var appointmentList = this._createAppointments(appointmentAdapter, itemGroupIndices);\r\n appointmentList = this._getProcessedByAppointmentTimeZone(appointmentList, appointmentAdapter);\r\n if (this._canProcessNotNativeTimezoneDates(appointmentAdapter)) {\r\n appointmentList = this._getProcessedNotNativeTimezoneDates(appointmentList, appointmentAdapter)\r\n }\r\n var dateSettings = this._createGridAppointmentList(appointmentList, appointmentAdapter);\r\n var firstViewDates = this._getAppointmentsFirstViewDate(dateSettings);\r\n dateSettings = this._fillNormalizedStartDate(dateSettings, firstViewDates);\r\n dateSettings = this._cropAppointmentsByStartDayHour(dateSettings, firstViewDates);\r\n dateSettings = this._fillNormalizedEndDate(dateSettings, this.rawAppointment);\r\n if (this._needSeparateLongParts()) {\r\n dateSettings = this._separateLongParts(dateSettings, appointmentAdapter)\r\n }\r\n dateSettings = this.shiftSourceAppointmentDates(dateSettings);\r\n return {\r\n dateSettings: dateSettings,\r\n itemGroupIndices: itemGroupIndices,\r\n isRecurrent: isRecurrent\r\n }\r\n }\r\n shiftSourceAppointmentDates(dateSettings) {\r\n var {\r\n viewOffset: viewOffset\r\n } = this.options;\r\n return dateSettings.map(item => _extends(_extends({}, item), {\r\n source: _extends(_extends({}, item.source), {\r\n startDate: dateUtilsTs.addOffsets(item.source.startDate, [viewOffset]),\r\n endDate: dateUtilsTs.addOffsets(item.source.endDate, [viewOffset])\r\n })\r\n }))\r\n }\r\n _getProcessedByAppointmentTimeZone(appointmentList, appointment) {\r\n var hasAppointmentTimeZone = !isEmptyObject(appointment.startDateTimeZone) || !isEmptyObject(appointment.endDateTimeZone);\r\n if (hasAppointmentTimeZone) {\r\n var appointmentOffsets = {\r\n startDate: this.timeZoneCalculator.getOffsets(appointment.startDate, appointment.startDateTimeZone),\r\n endDate: this.timeZoneCalculator.getOffsets(appointment.endDate, appointment.endDateTimeZone)\r\n };\r\n appointmentList.forEach(a => {\r\n var sourceOffsets_startDate = this.timeZoneCalculator.getOffsets(a.startDate, appointment.startDateTimeZone),\r\n sourceOffsets_endDate = this.timeZoneCalculator.getOffsets(a.endDate, appointment.endDateTimeZone);\r\n var startDateOffsetDiff = appointmentOffsets.startDate.appointment - sourceOffsets_startDate.appointment;\r\n var endDateOffsetDiff = appointmentOffsets.endDate.appointment - sourceOffsets_endDate.appointment;\r\n if (sourceOffsets_startDate.appointment !== sourceOffsets_startDate.common) {\r\n a.startDate = new Date(a.startDate.getTime() + startDateOffsetDiff * toMs(\"hour\"))\r\n }\r\n if (sourceOffsets_endDate.appointment !== sourceOffsets_endDate.common) {\r\n a.endDate = new Date(a.endDate.getTime() + endDateOffsetDiff * toMs(\"hour\"))\r\n }\r\n })\r\n }\r\n return appointmentList\r\n }\r\n _createAppointments(appointment, groupIndices) {\r\n var appointments = this._createRecurrenceAppointments(appointment, groupIndices);\r\n if (!appointment.isRecurrent && 0 === appointments.length) {\r\n appointments.push({\r\n startDate: appointment.startDate,\r\n endDate: appointment.endDate\r\n })\r\n }\r\n appointments = appointments.map(item => {\r\n var _a;\r\n var resultEndTime = null === (_a = item.endDate) || void 0 === _a ? void 0 : _a.getTime();\r\n if (item.startDate.getTime() === resultEndTime) {\r\n item.endDate.setTime(resultEndTime + toMs(\"minute\"))\r\n }\r\n return _extends(_extends({}, item), {\r\n exceptionDate: new Date(item.startDate)\r\n })\r\n });\r\n return appointments\r\n }\r\n _canProcessNotNativeTimezoneDates(appointment) {\r\n var isTimeZoneSet = !isEmptyObject(this.timeZone);\r\n if (!isTimeZoneSet) {\r\n return false\r\n }\r\n if (!appointment.isRecurrent) {\r\n return false\r\n }\r\n return !timeZoneUtils.isEqualLocalTimeZone(this.timeZone, appointment.startDate)\r\n }\r\n _getProcessedNotNativeDateIfCrossDST(date, offset) {\r\n if (offset < 0) {\r\n var newDate = new Date(date);\r\n var newDateMinusOneHour = new Date(newDate);\r\n newDateMinusOneHour.setHours(newDateMinusOneHour.getHours() - 1);\r\n var newDateOffset = this.timeZoneCalculator.getOffsets(newDate).common;\r\n var newDateMinusOneHourOffset = this.timeZoneCalculator.getOffsets(newDateMinusOneHour).common;\r\n if (newDateOffset !== newDateMinusOneHourOffset) {\r\n return 0\r\n }\r\n }\r\n return offset\r\n }\r\n _getCommonOffset(date) {\r\n return this.timeZoneCalculator.getOffsets(date).common\r\n }\r\n _getProcessedNotNativeTimezoneDates(appointmentList, appointment) {\r\n return appointmentList.map(item => {\r\n var diffStartDateOffset = this._getCommonOffset(appointment.startDate) - this._getCommonOffset(item.startDate);\r\n var diffEndDateOffset = this._getCommonOffset(appointment.endDate) - this._getCommonOffset(item.endDate);\r\n if (0 === diffStartDateOffset && 0 === diffEndDateOffset) {\r\n return item\r\n }\r\n diffStartDateOffset = this._getProcessedNotNativeDateIfCrossDST(item.startDate, diffStartDateOffset);\r\n diffEndDateOffset = this._getProcessedNotNativeDateIfCrossDST(item.endDate, diffEndDateOffset);\r\n var newStartDate = new Date(item.startDate.getTime() + diffStartDateOffset * toMs(\"hour\"));\r\n var newEndDate = new Date(item.endDate.getTime() + diffEndDateOffset * toMs(\"hour\"));\r\n var testNewStartDate = this.timeZoneCalculator.createDate(newStartDate, {\r\n path: \"toGrid\"\r\n });\r\n var testNewEndDate = this.timeZoneCalculator.createDate(newEndDate, {\r\n path: \"toGrid\"\r\n });\r\n if (appointment.duration > testNewEndDate.getTime() - testNewStartDate.getTime()) {\r\n newEndDate = new Date(newStartDate.getTime() + appointment.duration)\r\n }\r\n return _extends(_extends({}, item), {\r\n startDate: newStartDate,\r\n endDate: newEndDate,\r\n exceptionDate: new Date(newStartDate)\r\n })\r\n })\r\n }\r\n _needSeparateLongParts() {\r\n return this.isVerticalOrientation ? this.isGroupedByDate : this.isGroupedByDate && this.appointmentTakesAllDay\r\n }\r\n normalizeEndDateByViewEnd(rawAppointment, endDate) {\r\n var result = new Date(endDate.getTime());\r\n var isAllDay = isDateAndTimeView(this.viewType) && this.appointmentTakesAllDay;\r\n if (!isAllDay) {\r\n var roundedEndViewDate = dateUtils.roundToHour(this.endViewDate);\r\n if (result > roundedEndViewDate) {\r\n result = roundedEndViewDate\r\n }\r\n }\r\n var endDayHour = this.viewEndDayHour;\r\n var allDay = ExpressionUtils.getField(this.dataAccessors, \"allDay\", rawAppointment);\r\n var currentViewEndTime = new Date(new Date(endDate.getTime()).setHours(endDayHour, 0, 0, 0));\r\n if (result.getTime() > currentViewEndTime.getTime() || allDay && result.getHours() < endDayHour) {\r\n result = currentViewEndTime\r\n }\r\n return result\r\n }\r\n _fillNormalizedEndDate(dateSettings, rawAppointment) {\r\n return dateSettings.map(item => _extends(_extends({}, item), {\r\n normalizedEndDate: this.normalizeEndDateByViewEnd(rawAppointment, item.endDate)\r\n }))\r\n }\r\n _separateLongParts(gridAppointmentList, appointmentAdapter) {\r\n var result = [];\r\n gridAppointmentList.forEach(gridAppointment => {\r\n var maxDate = new Date(this.dateRange[1]);\r\n var {\r\n startDate: startDate,\r\n normalizedEndDate: endDateOfPart\r\n } = gridAppointment;\r\n var longStartDateParts = dateUtils.getDatesOfInterval(startDate, endDateOfPart, {\r\n milliseconds: this.getIntervalDuration()\r\n });\r\n var list = longStartDateParts.filter(startDatePart => new Date(startDatePart) < maxDate).map(date => {\r\n var endDate = new Date(new Date(date).setMilliseconds(appointmentAdapter.duration));\r\n var normalizedEndDate = this.normalizeEndDateByViewEnd(this.rawAppointment, endDate);\r\n return {\r\n startDate: date,\r\n endDate: endDate,\r\n normalizedEndDate: normalizedEndDate,\r\n source: gridAppointment.source\r\n }\r\n });\r\n result = result.concat(list)\r\n });\r\n return result\r\n }\r\n _createGridAppointmentList(appointmentList, appointmentAdapter) {\r\n return appointmentList.map(source => {\r\n var offsetDifference = appointmentAdapter.startDate.getTimezoneOffset() - source.startDate.getTimezoneOffset();\r\n if (0 !== offsetDifference && this._canProcessNotNativeTimezoneDates(appointmentAdapter)) {\r\n source.startDate = dateUtilsTs.addOffsets(source.startDate, [offsetDifference * toMs(\"minute\")]);\r\n source.endDate = dateUtilsTs.addOffsets(source.endDate, [offsetDifference * toMs(\"minute\")]);\r\n source.exceptionDate = new Date(source.startDate)\r\n }\r\n var duration = source.endDate.getTime() - source.startDate.getTime();\r\n var startDate = this.timeZoneCalculator.createDate(source.startDate, {\r\n path: \"toGrid\"\r\n });\r\n var endDate = dateUtilsTs.addOffsets(startDate, [duration]);\r\n return {\r\n startDate: startDate,\r\n endDate: endDate,\r\n allDay: appointmentAdapter.allDay || false,\r\n source: source\r\n }\r\n })\r\n }\r\n _createExtremeRecurrenceDates(groupIndex) {\r\n var startViewDate = this.appointmentTakesAllDay ? dateUtils.trimTime(this.dateRange[0]) : this.dateRange[0];\r\n var endViewDateByEndDayHour = this.dateRange[1];\r\n if (this.timeZone) {\r\n startViewDate = this.timeZoneCalculator.createDate(startViewDate, {\r\n path: \"fromGrid\"\r\n });\r\n endViewDateByEndDayHour = this.timeZoneCalculator.createDate(endViewDateByEndDayHour, {\r\n path: \"fromGrid\"\r\n });\r\n var daylightOffset = timeZoneUtils.getDaylightOffsetInMs(startViewDate, endViewDateByEndDayHour);\r\n if (daylightOffset) {\r\n endViewDateByEndDayHour = new Date(endViewDateByEndDayHour.getTime() + daylightOffset)\r\n }\r\n }\r\n return [startViewDate, endViewDateByEndDayHour]\r\n }\r\n _createRecurrenceOptions(appointment, groupIndex) {\r\n var {\r\n viewOffset: viewOffset\r\n } = this.options;\r\n var originalAppointmentStartDate = dateUtilsTs.addOffsets(appointment.startDate, [viewOffset]);\r\n var originalAppointmentEndDate = dateUtilsTs.addOffsets(appointment.endDate, [viewOffset]);\r\n var [minRecurrenceDate, maxRecurrenceDate] = this._createExtremeRecurrenceDates(groupIndex);\r\n var shiftedMinRecurrenceDate = dateUtilsTs.addOffsets(minRecurrenceDate, [viewOffset]);\r\n var shiftedMaxRecurrenceDate = dateUtilsTs.addOffsets(maxRecurrenceDate, [viewOffset]);\r\n return {\r\n rule: appointment.recurrenceRule,\r\n exception: appointment.recurrenceException,\r\n min: shiftedMinRecurrenceDate,\r\n max: shiftedMaxRecurrenceDate,\r\n firstDayOfWeek: this.firstDayOfWeek,\r\n start: originalAppointmentStartDate,\r\n end: originalAppointmentEndDate,\r\n appointmentTimezoneOffset: this.timeZoneCalculator.getOriginStartDateOffsetInMs(originalAppointmentStartDate, appointment.rawAppointment.startDateTimeZone, true),\r\n getPostProcessedException: date => {\r\n if (isEmptyObject(this.timeZone) || timeZoneUtils.isEqualLocalTimeZone(this.timeZone, date)) {\r\n return date\r\n }\r\n var appointmentOffset = this.timeZoneCalculator.getOffsets(originalAppointmentStartDate).common;\r\n var exceptionAppointmentOffset = this.timeZoneCalculator.getOffsets(date).common;\r\n var diff = appointmentOffset - exceptionAppointmentOffset;\r\n diff = this._getProcessedNotNativeDateIfCrossDST(date, diff);\r\n return new Date(date.getTime() - diff * dateUtils.dateToMilliseconds(\"hour\"))\r\n }\r\n }\r\n }\r\n _createRecurrenceAppointments(appointment, groupIndices) {\r\n var {\r\n duration: duration\r\n } = appointment;\r\n var {\r\n viewOffset: viewOffset\r\n } = this.options;\r\n var option = this._createRecurrenceOptions(appointment);\r\n var generatedStartDates = getRecurrenceProcessor().generateDates(option);\r\n return generatedStartDates.map(date => {\r\n var utcDate = timeZoneUtils.createUTCDateWithLocalOffset(date);\r\n utcDate.setTime(utcDate.getTime() + duration);\r\n var endDate = timeZoneUtils.createDateFromUTCWithLocalOffset(utcDate);\r\n return {\r\n startDate: new Date(date),\r\n endDate: endDate\r\n }\r\n }).map(_ref => {\r\n var {\r\n startDate: startDate,\r\n endDate: endDate\r\n } = _ref;\r\n return {\r\n startDate: dateUtilsTs.addOffsets(startDate, [-viewOffset]),\r\n endDate: dateUtilsTs.addOffsets(endDate, [-viewOffset])\r\n }\r\n })\r\n }\r\n _getAppointmentsFirstViewDate(appointments) {\r\n var {\r\n viewOffset: viewOffset\r\n } = this.options;\r\n return appointments.map(appointment => {\r\n var tableFirstDate = this._getAppointmentFirstViewDate(_extends(_extends({}, appointment), {\r\n startDate: dateUtilsTs.addOffsets(appointment.startDate, [viewOffset]),\r\n endDate: dateUtilsTs.addOffsets(appointment.endDate, [viewOffset])\r\n }));\r\n if (!tableFirstDate) {\r\n return appointment.startDate\r\n }\r\n var firstDate = dateUtilsTs.addOffsets(tableFirstDate, [-viewOffset]);\r\n return firstDate > appointment.startDate ? firstDate : appointment.startDate\r\n })\r\n }\r\n _fillNormalizedStartDate(appointments, firstViewDates, rawAppointment) {\r\n return appointments.map((item, idx) => _extends(_extends({}, item), {\r\n startDate: this._getAppointmentResultDate({\r\n appointment: item,\r\n rawAppointment: rawAppointment,\r\n startDate: new Date(item.startDate),\r\n startDayHour: this.viewStartDayHour,\r\n firstViewDate: firstViewDates[idx]\r\n })\r\n }))\r\n }\r\n _cropAppointmentsByStartDayHour(appointments, firstViewDates) {\r\n return appointments.filter((appointment, idx) => {\r\n if (!firstViewDates[idx]) {\r\n return false\r\n }\r\n if (this.appointmentTakesAllDay) {\r\n return true\r\n }\r\n return appointment.endDate > appointment.startDate\r\n })\r\n }\r\n _getAppointmentResultDate(options) {\r\n var {\r\n appointment: appointment,\r\n startDayHour: startDayHour,\r\n firstViewDate: firstViewDate\r\n } = options;\r\n var {\r\n startDate: startDate\r\n } = options;\r\n var resultDate;\r\n if (this.appointmentTakesAllDay) {\r\n resultDate = dateUtils.normalizeDate(startDate, firstViewDate)\r\n } else {\r\n if (startDate < firstViewDate) {\r\n startDate = firstViewDate\r\n }\r\n resultDate = dateUtils.normalizeDate(appointment.startDate, startDate)\r\n }\r\n return !this.isDateAppointment ? dateUtils.roundDateByStartDayHour(resultDate, startDayHour) : resultDate\r\n }\r\n _getAppointmentFirstViewDate(appointment) {\r\n var groupIndex = appointment.source.groupIndex || 0;\r\n var {\r\n startDate: startDate,\r\n endDate: endDate\r\n } = appointment;\r\n if (this.isAllDayRowAppointment || appointment.allDay) {\r\n return this.viewDataProvider.findAllDayGroupCellStartDate(groupIndex)\r\n }\r\n return this.viewDataProvider.findGroupCellStartDate(groupIndex, startDate, endDate, this.isDateAppointment)\r\n }\r\n _getGroupIndices(rawAppointment) {\r\n var result = [];\r\n if (rawAppointment && this.loadedResources.length) {\r\n var tree = createResourcesTree(this.loadedResources);\r\n result = getResourceTreeLeaves((field, action) => getDataAccessors(this.options.dataAccessors.resources, field, action), tree, rawAppointment)\r\n }\r\n return result\r\n }\r\n}\r\nexport class DateGeneratorVirtualStrategy extends DateGeneratorBaseStrategy {\r\n get groupCount() {\r\n return getGroupCount(this.loadedResources)\r\n }\r\n _createRecurrenceAppointments(appointment, groupIndices) {\r\n var {\r\n duration: duration\r\n } = appointment;\r\n var result = [];\r\n var validGroupIndices = this.groupCount ? groupIndices : [0];\r\n validGroupIndices.forEach(groupIndex => {\r\n var option = this._createRecurrenceOptions(appointment, groupIndex);\r\n var generatedStartDates = getRecurrenceProcessor().generateDates(option);\r\n var recurrentInfo = generatedStartDates.map(date => {\r\n var startDate = new Date(date);\r\n var utcDate = timeZoneUtils.createUTCDateWithLocalOffset(date);\r\n utcDate.setTime(utcDate.getTime() + duration);\r\n var endDate = timeZoneUtils.createDateFromUTCWithLocalOffset(utcDate);\r\n return {\r\n startDate: startDate,\r\n endDate: endDate,\r\n groupIndex: groupIndex\r\n }\r\n });\r\n result.push(...recurrentInfo)\r\n });\r\n return result\r\n }\r\n _updateGroupIndices(appointments, groupIndices) {\r\n var result = [];\r\n groupIndices.forEach(groupIndex => {\r\n var groupStartDate = this.viewDataProvider.getGroupStartDate(groupIndex);\r\n if (groupStartDate) {\r\n appointments.forEach(appointment => {\r\n var appointmentCopy = extend({}, appointment);\r\n appointmentCopy.groupIndex = groupIndex;\r\n result.push(appointmentCopy)\r\n })\r\n }\r\n });\r\n return result\r\n }\r\n _getGroupIndices(resources) {\r\n var groupIndices = super._getGroupIndices(resources);\r\n var viewDataGroupIndices = this.viewDataProvider.getGroupIndices();\r\n if (!(null === groupIndices || void 0 === groupIndices ? void 0 : groupIndices.length)) {\r\n groupIndices = [0]\r\n }\r\n return groupIndices.filter(groupIndex => -1 !== viewDataGroupIndices.indexOf(groupIndex))\r\n }\r\n _createAppointments(appointment, groupIndices) {\r\n var appointments = super._createAppointments(appointment, groupIndices);\r\n return !appointment.isRecurrent ? this._updateGroupIndices(appointments, groupIndices) : appointments\r\n }\r\n}\r\nexport class AppointmentSettingsGenerator {\r\n constructor(options) {\r\n this.options = options;\r\n this.appointmentAdapter = createAppointmentAdapter(this.rawAppointment, this.dataAccessors, this.timeZoneCalculator)\r\n }\r\n get rawAppointment() {\r\n return this.options.rawAppointment\r\n }\r\n get dataAccessors() {\r\n return this.options.dataAccessors\r\n }\r\n get timeZoneCalculator() {\r\n return this.options.timeZoneCalculator\r\n }\r\n get isAllDayRowAppointment() {\r\n return this.options.appointmentTakesAllDay && this.options.supportAllDayRow\r\n }\r\n get groups() {\r\n return this.options.groups\r\n }\r\n get dateSettingsStrategy() {\r\n var options = _extends(_extends({}, this.options), {\r\n isAllDayRowAppointment: this.isAllDayRowAppointment\r\n });\r\n return this.options.isVirtualScrolling ? new DateGeneratorVirtualStrategy(options) : new DateGeneratorBaseStrategy(options)\r\n }\r\n create() {\r\n var {\r\n dateSettings: dateSettings,\r\n itemGroupIndices: itemGroupIndices,\r\n isRecurrent: isRecurrent\r\n } = this._generateDateSettings();\r\n var cellPositions = this._calculateCellPositions(dateSettings, itemGroupIndices);\r\n var result = this._prepareAppointmentInfos(dateSettings, cellPositions, isRecurrent);\r\n return result\r\n }\r\n _generateDateSettings() {\r\n return this.dateSettingsStrategy.generate(this.appointmentAdapter)\r\n }\r\n _calculateCellPositions(dateSettings, itemGroupIndices) {\r\n var cellPositionCalculator = new CellPositionCalculator(_extends(_extends({}, this.options), {\r\n dateSettings: dateSettings\r\n }));\r\n return cellPositionCalculator.calculateCellPositions(itemGroupIndices, this.isAllDayRowAppointment, this.appointmentAdapter.isRecurrent)\r\n }\r\n _prepareAppointmentInfos(dateSettings, cellPositions, isRecurrent) {\r\n var infos = [];\r\n cellPositions.forEach(_ref2 => {\r\n var {\r\n coordinates: coordinates,\r\n dateSettingIndex: dateSettingIndex\r\n } = _ref2;\r\n var dateSetting = dateSettings[dateSettingIndex];\r\n var dateText = this._getAppointmentDateText(dateSetting);\r\n var info = {\r\n appointment: dateSetting,\r\n sourceAppointment: dateSetting.source,\r\n dateText: dateText,\r\n isRecurrent: isRecurrent\r\n };\r\n infos.push(_extends(_extends({}, coordinates), {\r\n info: info\r\n }))\r\n });\r\n return infos\r\n }\r\n _getAppointmentDateText(sourceAppointment) {\r\n var {\r\n startDate: startDate,\r\n endDate: endDate,\r\n allDay: allDay\r\n } = sourceAppointment;\r\n return createFormattedDateText({\r\n startDate: startDate,\r\n endDate: endDate,\r\n allDay: allDay,\r\n format: APPOINTMENT_DATE_TEXT_FORMAT\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/rendering_strategies/m_appointments_positioning_strategy_base.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nvar COLLECTOR_DEFAULT_WIDTH = 24;\r\nvar COLLECTOR_DEFAULT_OFFSET = 3;\r\nvar COMPACT_THEME_APPOINTMENT_DEFAULT_OFFSET = 22;\r\nvar APPOINTMENT_MIN_COUNT = 1;\r\nvar APPOINTMENT_DEFAULT_WIDTH = 40;\r\nvar COLLECTOR_WIDTH_IN_PERCENTS = 75;\r\nvar APPOINTMENT_INCREASED_WIDTH = 50;\r\nclass AppointmentPositioningStrategy {\r\n constructor(renderingStrategy) {\r\n this._renderingStrategy = renderingStrategy\r\n }\r\n getDropDownAppointmentWidth(intervalCount, isAllDay) {\r\n if (isAllDay || !isDefined(isAllDay)) {\r\n return COLLECTOR_WIDTH_IN_PERCENTS * this._renderingStrategy.cellWidth / 100\r\n }\r\n return COLLECTOR_DEFAULT_WIDTH\r\n }\r\n getCollectorTopOffset(allDay) {\r\n return COLLECTOR_DEFAULT_OFFSET\r\n }\r\n getCollectorLeftOffset() {\r\n return COLLECTOR_DEFAULT_OFFSET\r\n }\r\n getAppointmentDefaultOffset() {\r\n if (this._renderingStrategy._isCompactTheme()) {\r\n return COMPACT_THEME_APPOINTMENT_DEFAULT_OFFSET\r\n }\r\n return this._renderingStrategy.appointmentOffset\r\n }\r\n getDynamicAppointmentCountPerCell() {\r\n var renderingStrategy = this._renderingStrategy;\r\n var {\r\n cellHeight: cellHeight\r\n } = renderingStrategy;\r\n var allDayCount = Math.floor((cellHeight - renderingStrategy._getAppointmentDefaultOffset()) / renderingStrategy._getAppointmentDefaultHeight()) || this._getAppointmentMinCount();\r\n if (renderingStrategy.allDaySupported()) {\r\n return {\r\n allDay: \"vertical\" === renderingStrategy.groupOrientation ? allDayCount : this._renderingStrategy.appointmentCountPerCell,\r\n simple: this._calculateDynamicAppointmentCountPerCell() || this._getAppointmentMinCount()\r\n }\r\n }\r\n return allDayCount\r\n }\r\n getDropDownAppointmentHeight() {\r\n return\r\n }\r\n _getAppointmentMinCount() {\r\n return APPOINTMENT_MIN_COUNT\r\n }\r\n _calculateDynamicAppointmentCountPerCell() {\r\n return Math.floor(this._renderingStrategy._getAppointmentMaxWidth() / APPOINTMENT_INCREASED_WIDTH)\r\n }\r\n _getAppointmentDefaultWidth() {\r\n return APPOINTMENT_DEFAULT_WIDTH\r\n }\r\n}\r\nexport default AppointmentPositioningStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/rendering_strategies/m_appointments_positioning_strategy_adaptive.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport AppointmentPositioningStrategy from \"./m_appointments_positioning_strategy_base\";\r\nvar COLLECTOR_ADAPTIVE_SIZE = 28;\r\nvar COLLECTOR_ADAPTIVE_BOTTOM_OFFSET = 40;\r\nvar ADAPTIVE_APPOINTMENT_DEFAULT_OFFSET = 35;\r\nvar ADAPTIVE_APPOINTMENT_DEFAULT_WIDTH = 30;\r\nclass AdaptivePositioningStrategy extends AppointmentPositioningStrategy {\r\n getDropDownAppointmentWidth(intervalCount, isAllDay) {\r\n return this.getDropDownButtonAdaptiveSize()\r\n }\r\n getDropDownButtonAdaptiveSize() {\r\n return COLLECTOR_ADAPTIVE_SIZE\r\n }\r\n getCollectorTopOffset(allDay) {\r\n var renderingStrategy = this._renderingStrategy;\r\n if (renderingStrategy.allDaySupported() && allDay) {\r\n return (renderingStrategy.allDayHeight - renderingStrategy.getDropDownButtonAdaptiveSize()) / 2\r\n }\r\n return this._renderingStrategy.cellHeight - COLLECTOR_ADAPTIVE_BOTTOM_OFFSET\r\n }\r\n getCollectorLeftOffset() {\r\n var collectorWidth = this._renderingStrategy.getDropDownAppointmentWidth();\r\n return (this._renderingStrategy.cellWidth - collectorWidth) / 2\r\n }\r\n getAppointmentDefaultOffset() {\r\n return ADAPTIVE_APPOINTMENT_DEFAULT_OFFSET\r\n }\r\n getDynamicAppointmentCountPerCell() {\r\n var renderingStrategy = this._renderingStrategy;\r\n if (renderingStrategy.allDaySupported()) {\r\n return {\r\n allDay: 0,\r\n simple: this._calculateDynamicAppointmentCountPerCell() || this._getAppointmentMinCount()\r\n }\r\n }\r\n return 0\r\n }\r\n getDropDownAppointmentHeight() {\r\n return COLLECTOR_ADAPTIVE_SIZE\r\n }\r\n _getAppointmentMinCount() {\r\n return 0\r\n }\r\n _getAppointmentDefaultWidth() {\r\n var renderingStrategy = this._renderingStrategy;\r\n if (renderingStrategy.allDaySupported()) {\r\n return ADAPTIVE_APPOINTMENT_DEFAULT_WIDTH\r\n }\r\n return super._getAppointmentDefaultWidth()\r\n }\r\n _calculateDynamicAppointmentCountPerCell() {\r\n return Math.floor(this._renderingStrategy._getAppointmentMaxWidth() / this._renderingStrategy._getAppointmentDefaultWidth())\r\n }\r\n}\r\nexport default AdaptivePositioningStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/rendering_strategies/m_strategy_base.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n isNumeric,\r\n isObject\r\n} from \"../../../../core/utils/type\";\r\nimport timeZoneUtils from \"../../../../ui/scheduler/utils.timeZone\";\r\nimport {\r\n current as currentTheme\r\n} from \"../../../../ui/themes\";\r\nimport {\r\n dateUtilsTs\r\n} from \"../../../core/utils/date\";\r\nimport {\r\n ExpressionUtils\r\n} from \"../../../scheduler/m_expression_utils\";\r\nimport {\r\n getAppointmentTakesAllDay\r\n} from \"../../../scheduler/r1/utils/index\";\r\nimport {\r\n createAppointmentAdapter\r\n} from \"../../m_appointment_adapter\";\r\nimport {\r\n AppointmentSettingsGenerator\r\n} from \"../m_settings_generator\";\r\nimport AdaptivePositioningStrategy from \"./m_appointments_positioning_strategy_adaptive\";\r\nimport AppointmentPositioningStrategy from \"./m_appointments_positioning_strategy_base\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nvar APPOINTMENT_MIN_SIZE = 2;\r\nvar APPOINTMENT_DEFAULT_HEIGHT = 20;\r\nvar COMPACT_THEME_APPOINTMENT_DEFAULT_HEIGHT = 18;\r\nvar DROP_DOWN_BUTTON_ADAPTIVE_SIZE = 28;\r\nvar WEEK_VIEW_COLLECTOR_OFFSET = 5;\r\nvar COMPACT_THEME_WEEK_VIEW_COLLECTOR_OFFSET = 1;\r\nclass BaseRenderingStrategy {\r\n constructor(options) {\r\n this.options = options;\r\n this._initPositioningStrategy()\r\n }\r\n get isAdaptive() {\r\n return this.options.adaptivityEnabled\r\n }\r\n get rtlEnabled() {\r\n return this.options.rtlEnabled\r\n }\r\n get startDayHour() {\r\n return this.options.startDayHour\r\n }\r\n get endDayHour() {\r\n return this.options.endDayHour\r\n }\r\n get maxAppointmentsPerCell() {\r\n return this.options.maxAppointmentsPerCell\r\n }\r\n get cellWidth() {\r\n return this.options.cellWidth\r\n }\r\n get cellHeight() {\r\n return this.options.cellHeight\r\n }\r\n get allDayHeight() {\r\n return this.options.allDayHeight\r\n }\r\n get resizableStep() {\r\n return this.options.resizableStep\r\n }\r\n get isGroupedByDate() {\r\n return this.options.isGroupedByDate\r\n }\r\n get visibleDayDuration() {\r\n return this.options.visibleDayDuration\r\n }\r\n get viewStartDayHour() {\r\n return this.options.viewStartDayHour\r\n }\r\n get viewEndDayHour() {\r\n return this.options.viewEndDayHour\r\n }\r\n get cellDuration() {\r\n return this.options.cellDuration\r\n }\r\n get cellDurationInMinutes() {\r\n return this.options.cellDurationInMinutes\r\n }\r\n get leftVirtualCellCount() {\r\n return this.options.leftVirtualCellCount\r\n }\r\n get topVirtualCellCount() {\r\n return this.options.topVirtualCellCount\r\n }\r\n get positionHelper() {\r\n return this.options.positionHelper\r\n }\r\n get showAllDayPanel() {\r\n return this.options.showAllDayPanel\r\n }\r\n get isGroupedAllDayPanel() {\r\n return this.options.isGroupedAllDayPanel\r\n }\r\n get groupOrientation() {\r\n return this.options.groupOrientation\r\n }\r\n get rowCount() {\r\n return this.options.rowCount\r\n }\r\n get groupCount() {\r\n return this.options.groupCount\r\n }\r\n get currentDate() {\r\n return this.options.currentDate\r\n }\r\n get appointmentCountPerCell() {\r\n return this.options.appointmentCountPerCell\r\n }\r\n get appointmentOffset() {\r\n return this.options.appointmentOffset\r\n }\r\n get allowResizing() {\r\n return this.options.allowResizing\r\n }\r\n get allowAllDayResizing() {\r\n return this.options.allowAllDayResizing\r\n }\r\n get viewDataProvider() {\r\n return this.options.viewDataProvider\r\n }\r\n get dataAccessors() {\r\n return this.options.dataAccessors\r\n }\r\n get timeZoneCalculator() {\r\n return this.options.timeZoneCalculator\r\n }\r\n get intervalCount() {\r\n return this.options.intervalCount\r\n }\r\n get allDayPanelMode() {\r\n return this.options.allDayPanelMode\r\n }\r\n get isVirtualScrolling() {\r\n return this.options.isVirtualScrolling\r\n }\r\n _correctCollectorCoordinatesInAdaptive(coordinates, isAllDay) {\r\n coordinates.top += this.getCollectorTopOffset(isAllDay);\r\n coordinates.left += this.getCollectorLeftOffset()\r\n }\r\n _initPositioningStrategy() {\r\n this._positioningStrategy = this.isAdaptive ? new AdaptivePositioningStrategy(this) : new AppointmentPositioningStrategy(this)\r\n }\r\n getPositioningStrategy() {\r\n return this._positioningStrategy\r\n }\r\n getAppointmentMinSize() {\r\n return APPOINTMENT_MIN_SIZE\r\n }\r\n keepAppointmentSettings() {\r\n return false\r\n }\r\n getDeltaTime(args, initialSize, appointment) {}\r\n getAppointmentGeometry(coordinates) {\r\n return coordinates\r\n }\r\n needCorrectAppointmentDates() {\r\n return true\r\n }\r\n getDirection() {\r\n return \"horizontal\"\r\n }\r\n createTaskPositionMap(items, skipSorting) {\r\n delete this._maxAppointmentCountPerCell;\r\n var length = null === items || void 0 === items ? void 0 : items.length;\r\n if (!length) {\r\n return\r\n }\r\n var map = [];\r\n for (var i = 0; i < length; i++) {\r\n var coordinates = this._getItemPosition(items[i]);\r\n if (coordinates.length && this.rtlEnabled) {\r\n coordinates = this._correctRtlCoordinates(coordinates)\r\n }\r\n coordinates.forEach(item => {\r\n item.leftVirtualCellCount = this.leftVirtualCellCount;\r\n item.topVirtualCellCount = this.topVirtualCellCount;\r\n item.leftVirtualWidth = this.leftVirtualCellCount * this.cellWidth;\r\n item.topVirtualHeight = this.topVirtualCellCount * this.cellHeight\r\n });\r\n map.push(coordinates)\r\n }\r\n var positionArray = this._getSortedPositions(map);\r\n var resultPositions = this._getResultPositions(positionArray);\r\n return this._getExtendedPositionMap(map, resultPositions)\r\n }\r\n _getDeltaWidth(args, initialSize) {\r\n var intervalWidth = this.resizableStep || this.getAppointmentMinSize();\r\n var initialWidth = initialSize.width;\r\n return Math.round((args.width - initialWidth) / intervalWidth)\r\n }\r\n _correctRtlCoordinates(coordinates) {\r\n var width = coordinates[0].width || this._getAppointmentMaxWidth();\r\n coordinates.forEach(coordinate => {\r\n if (!coordinate.appointmentReduced) {\r\n coordinate.left -= width\r\n }\r\n });\r\n return coordinates\r\n }\r\n _getAppointmentMaxWidth() {\r\n return this.cellWidth\r\n }\r\n _getItemPosition(initialAppointment) {\r\n var appointment = this.shiftAppointmentByViewOffset(initialAppointment);\r\n var position = this.generateAppointmentSettings(appointment);\r\n var allDay = this.isAllDay(appointment);\r\n var result = [];\r\n for (var j = 0; j < position.length; j++) {\r\n var height = this.calculateAppointmentHeight(appointment, position[j]);\r\n var width = this.calculateAppointmentWidth(appointment, position[j]);\r\n var resultWidth = width;\r\n var appointmentReduced = null;\r\n var multiWeekAppointmentParts = [];\r\n var initialRowIndex = position[j].rowIndex;\r\n var initialColumnIndex = position[j].columnIndex;\r\n if (this._needVerifyItemSize() || allDay) {\r\n var currentMaxAllowedPosition = position[j].hMax;\r\n if (this.isAppointmentGreaterThan(currentMaxAllowedPosition, {\r\n left: position[j].left,\r\n width: width\r\n })) {\r\n appointmentReduced = \"head\";\r\n initialRowIndex = position[j].rowIndex;\r\n initialColumnIndex = position[j].columnIndex;\r\n resultWidth = this._reduceMultiWeekAppointment(width, {\r\n left: position[j].left,\r\n right: currentMaxAllowedPosition\r\n });\r\n multiWeekAppointmentParts = this._getAppointmentParts({\r\n sourceAppointmentWidth: width,\r\n reducedWidth: resultWidth,\r\n height: height\r\n }, position[j]);\r\n if (this.rtlEnabled) {\r\n position[j].left = currentMaxAllowedPosition\r\n }\r\n }\r\n }\r\n extend(position[j], {\r\n height: height,\r\n width: resultWidth,\r\n allDay: allDay,\r\n rowIndex: initialRowIndex,\r\n columnIndex: initialColumnIndex,\r\n appointmentReduced: appointmentReduced\r\n });\r\n result = this._getAppointmentPartsPosition(multiWeekAppointmentParts, position[j], result)\r\n }\r\n return result\r\n }\r\n _getAppointmentPartsPosition(appointmentParts, position, result) {\r\n if (appointmentParts.length) {\r\n appointmentParts.unshift(position);\r\n result = result.concat(appointmentParts)\r\n } else {\r\n result.push(position)\r\n }\r\n return result\r\n }\r\n getAppointmentSettingsGenerator(rawAppointment) {\r\n return new AppointmentSettingsGenerator(_extends({\r\n rawAppointment: rawAppointment,\r\n appointmentTakesAllDay: this.isAppointmentTakesAllDay(rawAppointment),\r\n getPositionShiftCallback: this.getPositionShift.bind(this)\r\n }, this.options))\r\n }\r\n generateAppointmentSettings(rawAppointment) {\r\n return this.getAppointmentSettingsGenerator(rawAppointment).create()\r\n }\r\n isAppointmentTakesAllDay(rawAppointment) {\r\n var adapter = createAppointmentAdapter(rawAppointment, this.dataAccessors, this.timeZoneCalculator);\r\n return getAppointmentTakesAllDay(adapter, this.allDayPanelMode)\r\n }\r\n _getAppointmentParts(geometry, settings) {\r\n return []\r\n }\r\n _getCompactAppointmentParts(appointmentWidth) {\r\n var cellWidth = this.cellWidth || this.getAppointmentMinSize();\r\n return Math.round(appointmentWidth / cellWidth)\r\n }\r\n _reduceMultiWeekAppointment(sourceAppointmentWidth, bound) {\r\n if (this.rtlEnabled) {\r\n sourceAppointmentWidth = Math.floor(bound.left - bound.right)\r\n } else {\r\n sourceAppointmentWidth = bound.right - Math.floor(bound.left)\r\n }\r\n return sourceAppointmentWidth\r\n }\r\n calculateAppointmentHeight(appointment, position) {\r\n return 0\r\n }\r\n calculateAppointmentWidth(appointment, position) {\r\n return 0\r\n }\r\n isAppointmentGreaterThan(etalon, comparisonParameters) {\r\n var result = comparisonParameters.left + comparisonParameters.width - etalon;\r\n if (this.rtlEnabled) {\r\n result = etalon + comparisonParameters.width - comparisonParameters.left\r\n }\r\n return result > this.cellWidth / 2\r\n }\r\n isAllDay(appointment) {\r\n return false\r\n }\r\n cropAppointmentWidth(width, cellWidth) {\r\n return this.isGroupedByDate ? cellWidth : width\r\n }\r\n _getSortedPositions(positionList, skipSorting) {\r\n var result = [];\r\n var round = value => Math.round(100 * value) / 100;\r\n var createItem = (rowIndex, columnIndex, top, left, bottom, right, position, allDay) => ({\r\n i: rowIndex,\r\n j: columnIndex,\r\n top: round(top),\r\n left: round(left),\r\n bottom: round(bottom),\r\n right: round(right),\r\n cellPosition: position,\r\n allDay: allDay\r\n });\r\n for (var rowIndex = 0, rowCount = positionList.length; rowIndex < rowCount; rowIndex++) {\r\n for (var columnIndex = 0, cellCount = positionList[rowIndex].length; columnIndex < cellCount; columnIndex++) {\r\n var {\r\n top: top,\r\n left: left,\r\n height: height,\r\n width: width,\r\n cellPosition: cellPosition,\r\n allDay: allDay\r\n } = positionList[rowIndex][columnIndex];\r\n result.push(createItem(rowIndex, columnIndex, top, left, top + height, left + width, cellPosition, allDay))\r\n }\r\n }\r\n return result.sort((a, b) => this._sortCondition(a, b))\r\n }\r\n _sortCondition(a, b) {}\r\n _getConditions(a, b) {\r\n var isSomeEdge = this._isSomeEdge(a, b);\r\n return {\r\n columnCondition: isSomeEdge || this._normalizeCondition(a.left, b.left),\r\n rowCondition: isSomeEdge || this._normalizeCondition(a.top, b.top),\r\n cellPositionCondition: isSomeEdge || this._normalizeCondition(a.cellPosition, b.cellPosition)\r\n }\r\n }\r\n _rowCondition(a, b) {\r\n var conditions = this._getConditions(a, b);\r\n return conditions.columnCondition || conditions.rowCondition\r\n }\r\n _columnCondition(a, b) {\r\n var conditions = this._getConditions(a, b);\r\n return conditions.rowCondition || conditions.columnCondition\r\n }\r\n _isSomeEdge(a, b) {\r\n return a.i === b.i && a.j === b.j\r\n }\r\n _normalizeCondition(first, second) {\r\n var result = first - second;\r\n return Math.abs(result) > 1 ? result : 0\r\n }\r\n _isItemsCross(firstItem, secondItem) {\r\n var areItemsInTheSameTable = !!firstItem.allDay === !!secondItem.allDay;\r\n var areItemsAllDay = firstItem.allDay && secondItem.allDay;\r\n if (areItemsInTheSameTable) {\r\n var orientation = this._getOrientation(areItemsAllDay);\r\n return this._checkItemsCrossing(firstItem, secondItem, orientation)\r\n }\r\n return false\r\n }\r\n _checkItemsCrossing(firstItem, secondItem, orientation) {\r\n var firstItemSide1 = Math.floor(firstItem[orientation[0]]);\r\n var firstItemSide2 = Math.floor(firstItem[orientation[1]]);\r\n var secondItemSide1 = Math.ceil(secondItem[orientation[0]]);\r\n var secondItemSide2 = Math.ceil(secondItem[orientation[1]]);\r\n var isItemCross = Math.abs(firstItem[orientation[2]] - secondItem[orientation[2]]) <= 1;\r\n return isItemCross && (firstItemSide1 <= secondItemSide1 && firstItemSide2 > secondItemSide1 || firstItemSide1 < secondItemSide2 && firstItemSide2 >= secondItemSide2 || firstItemSide1 === secondItemSide1 && firstItemSide2 === secondItemSide2)\r\n }\r\n _getOrientation(isAllDay) {\r\n return isAllDay ? [\"left\", \"right\", \"top\"] : [\"top\", \"bottom\", \"left\"]\r\n }\r\n _getResultPositions(sortedArray) {\r\n var result = [];\r\n var i;\r\n var sortedIndex = 0;\r\n var currentItem;\r\n var indexes;\r\n var itemIndex;\r\n var maxIndexInStack = 0;\r\n var stack = {};\r\n var findFreeIndex = (indexes, index) => {\r\n var isFind = indexes.some(item => item === index);\r\n if (isFind) {\r\n return findFreeIndex(indexes, ++index)\r\n }\r\n return index\r\n };\r\n var createItem = (currentItem, index) => {\r\n var currentIndex = index || 0;\r\n return {\r\n index: currentIndex,\r\n i: currentItem.i,\r\n j: currentItem.j,\r\n left: currentItem.left,\r\n right: currentItem.right,\r\n top: currentItem.top,\r\n bottom: currentItem.bottom,\r\n allDay: currentItem.allDay,\r\n sortedIndex: this._skipSortedIndex(currentIndex) ? null : sortedIndex++\r\n }\r\n };\r\n var startNewStack = currentItem => {\r\n stack.items = [createItem(currentItem)];\r\n stack.left = currentItem.left;\r\n stack.right = currentItem.right;\r\n stack.top = currentItem.top;\r\n stack.bottom = currentItem.bottom;\r\n stack.allDay = currentItem.allDay\r\n };\r\n var pushItemsInResult = items => {\r\n items.forEach(item => {\r\n result.push({\r\n index: item.index,\r\n count: maxIndexInStack + 1,\r\n i: item.i,\r\n j: item.j,\r\n sortedIndex: item.sortedIndex\r\n })\r\n })\r\n };\r\n for (i = 0; i < sortedArray.length; i++) {\r\n currentItem = sortedArray[i];\r\n indexes = [];\r\n if (!stack.items) {\r\n startNewStack(currentItem)\r\n } else if (this._isItemsCross(stack, currentItem)) {\r\n stack.items.forEach(item => {\r\n if (this._isItemsCross(item, currentItem)) {\r\n indexes.push(item.index)\r\n }\r\n });\r\n itemIndex = indexes.length ? findFreeIndex(indexes, 0) : 0;\r\n stack.items.push(createItem(currentItem, itemIndex));\r\n maxIndexInStack = Math.max(itemIndex, maxIndexInStack);\r\n stack.left = Math.min(stack.left, currentItem.left);\r\n stack.right = Math.max(stack.right, currentItem.right);\r\n stack.top = Math.min(stack.top, currentItem.top);\r\n stack.bottom = Math.max(stack.bottom, currentItem.bottom);\r\n stack.allDay = currentItem.allDay\r\n } else {\r\n pushItemsInResult(stack.items);\r\n stack = {};\r\n startNewStack(currentItem);\r\n maxIndexInStack = 0\r\n }\r\n }\r\n if (stack.items) {\r\n pushItemsInResult(stack.items)\r\n }\r\n return result.sort((a, b) => {\r\n var columnCondition = a.j - b.j;\r\n var rowCondition = a.i - b.i;\r\n return rowCondition || columnCondition\r\n })\r\n }\r\n _skipSortedIndex(index) {\r\n return index > this._getMaxAppointmentCountPerCell() - 1\r\n }\r\n _findIndexByKey(arr, iKey, jKey, iValue, jValue) {\r\n var result = 0;\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n if (arr[i][iKey] === iValue && arr[i][jKey] === jValue) {\r\n result = i;\r\n break\r\n }\r\n }\r\n return result\r\n }\r\n _getExtendedPositionMap(map, positions) {\r\n var positionCounter = 0;\r\n var result = [];\r\n for (var i = 0, mapLength = map.length; i < mapLength; i++) {\r\n var resultString = [];\r\n for (var j = 0, itemLength = map[i].length; j < itemLength; j++) {\r\n map[i][j].index = positions[positionCounter].index;\r\n map[i][j].sortedIndex = positions[positionCounter].sortedIndex;\r\n map[i][j].count = positions[positionCounter++].count;\r\n resultString.push(map[i][j]);\r\n this._checkLongCompactAppointment(map[i][j], resultString)\r\n }\r\n result.push(resultString)\r\n }\r\n return result\r\n }\r\n _checkLongCompactAppointment(item, result) {\r\n this._splitLongCompactAppointment(item, result);\r\n return result\r\n }\r\n _splitLongCompactAppointment(item, result) {\r\n var appointmentCountPerCell = this._getMaxAppointmentCountPerCellByType(item.allDay);\r\n var compactCount = 0;\r\n if (void 0 !== appointmentCountPerCell && item.index > appointmentCountPerCell - 1) {\r\n item.isCompact = true;\r\n compactCount = this._getCompactAppointmentParts(item.width);\r\n for (var k = 1; k < compactCount; k++) {\r\n var compactPart = extend(true, {}, item);\r\n compactPart.left = this._getCompactLeftCoordinate(item.left, k);\r\n compactPart.columnIndex += k;\r\n compactPart.sortedIndex = null;\r\n result.push(compactPart)\r\n }\r\n }\r\n return result\r\n }\r\n _adjustDurationByDaylightDiff(duration, startDate, endDate) {\r\n var {\r\n viewOffset: viewOffset\r\n } = this.options;\r\n var originalStartDate = dateUtilsTs.addOffsets(startDate, [viewOffset]);\r\n var originalEndDate = dateUtilsTs.addOffsets(endDate, [viewOffset]);\r\n var daylightDiff = timeZoneUtils.getDaylightOffset(originalStartDate, originalEndDate);\r\n var correctedDuration = this._needAdjustDuration(daylightDiff) ? this._calculateDurationByDaylightDiff(duration, daylightDiff) : duration;\r\n return correctedDuration <= Math.abs(daylightDiff) ? duration : correctedDuration\r\n }\r\n _needAdjustDuration(diff) {\r\n return 0 !== diff\r\n }\r\n _calculateDurationByDaylightDiff(duration, diff) {\r\n return duration + diff * toMs(\"minute\")\r\n }\r\n _getCollectorLeftOffset(isAllDay) {\r\n if (isAllDay || !this.isApplyCompactAppointmentOffset()) {\r\n return 0\r\n }\r\n var dropDownButtonWidth = this.getDropDownAppointmentWidth(this.intervalCount, isAllDay);\r\n var rightOffset = this._isCompactTheme() ? COMPACT_THEME_WEEK_VIEW_COLLECTOR_OFFSET : WEEK_VIEW_COLLECTOR_OFFSET;\r\n return this.cellWidth - dropDownButtonWidth - rightOffset\r\n }\r\n _markAppointmentAsVirtual(coordinates) {\r\n var isAllDay = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : false;\r\n var countFullWidthAppointmentInCell = this._getMaxAppointmentCountPerCellByType(isAllDay);\r\n if (coordinates.count - countFullWidthAppointmentInCell > 0) {\r\n var {\r\n top: top,\r\n left: left\r\n } = coordinates;\r\n var compactRender = this.isAdaptive || !isAllDay && this.supportCompactDropDownAppointments();\r\n coordinates.virtual = {\r\n left: left + this._getCollectorLeftOffset(isAllDay),\r\n top: top,\r\n width: this.getDropDownAppointmentWidth(this.intervalCount, isAllDay),\r\n height: this.getDropDownAppointmentHeight(),\r\n index: this._generateAppointmentCollectorIndex(coordinates, isAllDay),\r\n isAllDay: isAllDay,\r\n groupIndex: coordinates.groupIndex,\r\n isCompact: compactRender\r\n }\r\n }\r\n }\r\n isApplyCompactAppointmentOffset() {\r\n return this.supportCompactDropDownAppointments()\r\n }\r\n supportCompactDropDownAppointments() {\r\n return true\r\n }\r\n _generateAppointmentCollectorIndex(_ref, isAllDay) {\r\n var {\r\n groupIndex: groupIndex,\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex\r\n } = _ref;\r\n return \"\".concat(groupIndex, \"-\").concat(rowIndex, \"-\").concat(columnIndex, \"-\").concat(isAllDay)\r\n }\r\n _getMaxAppointmentCountPerCellByType(isAllDay) {\r\n var appointmentCountPerCell = this._getMaxAppointmentCountPerCell();\r\n if (isObject(appointmentCountPerCell)) {\r\n return isAllDay ? appointmentCountPerCell.allDay : appointmentCountPerCell.simple\r\n }\r\n return appointmentCountPerCell\r\n }\r\n getDropDownAppointmentWidth(intervalCount, isAllDay) {\r\n return this.getPositioningStrategy().getDropDownAppointmentWidth(intervalCount, isAllDay)\r\n }\r\n getDropDownAppointmentHeight() {\r\n return this.getPositioningStrategy().getDropDownAppointmentHeight()\r\n }\r\n getDropDownButtonAdaptiveSize() {\r\n return DROP_DOWN_BUTTON_ADAPTIVE_SIZE\r\n }\r\n getCollectorTopOffset(allDay) {\r\n return this.getPositioningStrategy().getCollectorTopOffset(allDay)\r\n }\r\n getCollectorLeftOffset() {\r\n return this.getPositioningStrategy().getCollectorLeftOffset()\r\n }\r\n getAppointmentDataCalculator() {}\r\n getVerticalAppointmentHeight(cellHeight, currentAppointmentCountInCell, maxAppointmentsPerCell) {\r\n var resultMaxAppointmentsPerCell = maxAppointmentsPerCell;\r\n if (isNumeric(this.maxAppointmentsPerCell)) {\r\n var dynamicAppointmentCountPerCell = this._getDynamicAppointmentCountPerCell();\r\n var maxAppointmentCountDisplayedInCell = dynamicAppointmentCountPerCell.allDay || dynamicAppointmentCountPerCell;\r\n var maxAppointmentsCount = Math.max(currentAppointmentCountInCell, maxAppointmentCountDisplayedInCell);\r\n resultMaxAppointmentsPerCell = Math.min(maxAppointmentsCount, maxAppointmentsPerCell)\r\n }\r\n return cellHeight / resultMaxAppointmentsPerCell\r\n }\r\n _customizeCoordinates(coordinates, cellHeight, appointmentCountPerCell, topOffset, isAllDay) {\r\n var {\r\n index: index,\r\n count: count\r\n } = coordinates;\r\n var appointmentHeight = this.getVerticalAppointmentHeight(cellHeight, count, appointmentCountPerCell);\r\n var appointmentTop = coordinates.top + index * appointmentHeight;\r\n var top = appointmentTop + topOffset;\r\n var {\r\n width: width\r\n } = coordinates;\r\n var {\r\n left: left\r\n } = coordinates;\r\n if (coordinates.isCompact) {\r\n this.isAdaptive && this._correctCollectorCoordinatesInAdaptive(coordinates, isAllDay);\r\n this._markAppointmentAsVirtual(coordinates, isAllDay)\r\n }\r\n return {\r\n height: appointmentHeight,\r\n width: width,\r\n top: top,\r\n left: left,\r\n empty: this._isAppointmentEmpty(cellHeight, width)\r\n }\r\n }\r\n _isAppointmentEmpty(height, width) {\r\n return height < this._getAppointmentMinHeight() || width < this._getAppointmentMinWidth()\r\n }\r\n _calculateGeometryConfig(coordinates) {\r\n var overlappingMode = this.maxAppointmentsPerCell;\r\n var offsets = this._getOffsets();\r\n var appointmentDefaultOffset = this._getAppointmentDefaultOffset();\r\n var appointmentCountPerCell = this._getAppointmentCount(overlappingMode, coordinates);\r\n var ratio = this._getDefaultRatio(coordinates, appointmentCountPerCell);\r\n var maxHeight = this._getMaxHeight();\r\n if (!isNumeric(appointmentCountPerCell)) {\r\n appointmentCountPerCell = coordinates.count;\r\n ratio = (maxHeight - offsets.unlimited) / maxHeight\r\n }\r\n var topOffset = (1 - ratio) * maxHeight;\r\n if (\"auto\" === overlappingMode || isNumeric(overlappingMode)) {\r\n ratio = 1;\r\n maxHeight -= appointmentDefaultOffset;\r\n topOffset = appointmentDefaultOffset\r\n }\r\n return {\r\n height: ratio * maxHeight,\r\n appointmentCountPerCell: appointmentCountPerCell,\r\n offset: topOffset\r\n }\r\n }\r\n _getAppointmentCount(overlappingMode, coordinates) {}\r\n _getDefaultRatio(coordinates, appointmentCountPerCell) {}\r\n _getOffsets() {}\r\n _getMaxHeight() {}\r\n _needVerifyItemSize() {\r\n return false\r\n }\r\n _getMaxAppointmentCountPerCell() {\r\n if (!this._maxAppointmentCountPerCell) {\r\n var overlappingMode = this.maxAppointmentsPerCell;\r\n var appointmentCountPerCell;\r\n if (isNumeric(overlappingMode)) {\r\n appointmentCountPerCell = overlappingMode\r\n }\r\n if (\"auto\" === overlappingMode) {\r\n appointmentCountPerCell = this._getDynamicAppointmentCountPerCell()\r\n }\r\n if (\"unlimited\" === overlappingMode) {\r\n appointmentCountPerCell = void 0\r\n }\r\n this._maxAppointmentCountPerCell = appointmentCountPerCell\r\n }\r\n return this._maxAppointmentCountPerCell\r\n }\r\n _getDynamicAppointmentCountPerCell() {\r\n return this.getPositioningStrategy().getDynamicAppointmentCountPerCell()\r\n }\r\n allDaySupported() {\r\n return false\r\n }\r\n _isCompactTheme() {\r\n return \"compact\" === (currentTheme() || \"\").split(\".\").pop()\r\n }\r\n _getAppointmentDefaultOffset() {\r\n return this.getPositioningStrategy().getAppointmentDefaultOffset()\r\n }\r\n _getAppointmentDefaultHeight() {\r\n return this._getAppointmentHeightByTheme()\r\n }\r\n _getAppointmentMinHeight() {\r\n return this._getAppointmentDefaultHeight()\r\n }\r\n _getAppointmentHeightByTheme() {\r\n return this._isCompactTheme() ? COMPACT_THEME_APPOINTMENT_DEFAULT_HEIGHT : APPOINTMENT_DEFAULT_HEIGHT\r\n }\r\n _getAppointmentDefaultWidth() {\r\n return this.getPositioningStrategy()._getAppointmentDefaultWidth()\r\n }\r\n _getAppointmentMinWidth() {\r\n return this._getAppointmentDefaultWidth()\r\n }\r\n _needVerticalGroupBounds(allDay) {\r\n return false\r\n }\r\n _needHorizontalGroupBounds() {\r\n return false\r\n }\r\n getAppointmentDurationInMs(apptStartDate, apptEndDate, allDay) {\r\n if (allDay) {\r\n var appointmentDuration = apptEndDate.getTime() - apptStartDate.getTime();\r\n var ceilQuantityOfDays = Math.ceil(appointmentDuration / toMs(\"day\"));\r\n return ceilQuantityOfDays * this.visibleDayDuration\r\n }\r\n var msInHour = toMs(\"hour\");\r\n var trimmedStartDate = dateUtils.trimTime(apptStartDate);\r\n var trimmedEndDate = dateUtils.trimTime(apptEndDate);\r\n var deltaDate = trimmedEndDate - trimmedStartDate;\r\n var quantityOfDays = deltaDate / toMs(\"day\") + 1;\r\n var dayVisibleHours = this.endDayHour - this.startDayHour;\r\n var appointmentDayHours = dayVisibleHours * quantityOfDays;\r\n var startHours = (apptStartDate - trimmedStartDate) / msInHour;\r\n var apptStartDelta = Math.max(0, startHours - this.startDayHour);\r\n var endHours = Math.max(0, (apptEndDate - trimmedEndDate) / msInHour - this.startDayHour);\r\n var apptEndDelta = Math.max(0, dayVisibleHours - endHours);\r\n var result = (appointmentDayHours - (apptStartDelta + apptEndDelta)) * msInHour;\r\n return result\r\n }\r\n getPositionShift(timeShift, isAllDay) {\r\n return {\r\n top: timeShift * this.cellHeight,\r\n left: 0,\r\n cellPosition: 0\r\n }\r\n }\r\n shiftAppointmentByViewOffset(appointment) {\r\n var {\r\n viewOffset: viewOffset\r\n } = this.options;\r\n var startDateField = this.dataAccessors.expr.startDateExpr;\r\n var endDateField = this.dataAccessors.expr.endDateExpr;\r\n var startDate = new Date(ExpressionUtils.getField(this.dataAccessors, \"startDate\", appointment));\r\n startDate = dateUtilsTs.addOffsets(startDate, [-viewOffset]);\r\n var endDate = new Date(ExpressionUtils.getField(this.dataAccessors, \"endDate\", appointment));\r\n endDate = dateUtilsTs.addOffsets(endDate, [-viewOffset]);\r\n return _extends(_extends({}, appointment), {\r\n [startDateField]: startDate,\r\n [endDateField]: endDate\r\n })\r\n }\r\n}\r\nexport default BaseRenderingStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/rendering_strategies/m_strategy_agenda.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n createAppointmentAdapter\r\n} from \"../../m_appointment_adapter\";\r\nimport {\r\n ExpressionUtils\r\n} from \"../../m_expression_utils\";\r\nimport {\r\n groupAppointmentsByResources\r\n} from \"../../resources/m_utils\";\r\nimport {\r\n getAppointmentTakesSeveralDays,\r\n replaceWrongEndDate\r\n} from \"../data_provider/m_utils\";\r\nimport BaseRenderingStrategy from \"./m_strategy_base\";\r\nclass AgendaRenderingStrategy extends BaseRenderingStrategy {\r\n get instance() {\r\n return this.options.instance\r\n }\r\n get agendaDuration() {\r\n return this.options.agendaDuration\r\n }\r\n getAppointmentMinSize() {}\r\n getDeltaTime() {}\r\n keepAppointmentSettings() {\r\n return true\r\n }\r\n getAppointmentGeometry(geometry) {\r\n return geometry\r\n }\r\n groupAppointmentByResources(appointments) {\r\n var groups = this.instance._getCurrentViewOption(\"groups\");\r\n var config = {\r\n loadedResources: this.options.loadedResources,\r\n resources: this.options.resources,\r\n dataAccessors: this.dataAccessors.resources\r\n };\r\n return groupAppointmentsByResources(config, appointments, groups)\r\n }\r\n createTaskPositionMap(appointments) {\r\n var height;\r\n var appointmentsByResources;\r\n this.calculateRows(appointments, this.agendaDuration, this.currentDate);\r\n if (appointments.length) {\r\n height = this.instance.fire(\"getAgendaVerticalStepHeight\");\r\n appointmentsByResources = this.groupAppointmentByResources(appointments);\r\n var groupedAppts = [];\r\n each(appointmentsByResources, (i, appts) => {\r\n var additionalAppointments = [];\r\n var recurrentIndexes = [];\r\n each(appts, (index, appointment) => {\r\n var recurrenceBatch = this.instance.getAppointmentsInstance()._processRecurrenceAppointment(appointment, index);\r\n var appointmentBatch = null;\r\n if (!recurrenceBatch.indexes.length) {\r\n appointmentBatch = this.instance.getAppointmentsInstance()._processLongAppointment(appointment);\r\n additionalAppointments = additionalAppointments.concat(appointmentBatch.parts)\r\n }\r\n additionalAppointments = additionalAppointments.concat(recurrenceBatch.parts);\r\n recurrentIndexes = recurrentIndexes.concat(recurrenceBatch.indexes)\r\n });\r\n this.instance.getAppointmentsInstance()._reduceRecurrenceAppointments(recurrentIndexes, appts);\r\n this.instance.getAppointmentsInstance()._combineAppointments(appts, additionalAppointments);\r\n groupedAppts = groupedAppts.concat(appts)\r\n });\r\n Array.prototype.splice.apply(appointments, [0, appointments.length].concat(groupedAppts))\r\n }\r\n var result = [];\r\n var sortedIndex = 0;\r\n appointments.forEach((appt, index) => {\r\n result.push([{\r\n height: height,\r\n width: \"100%\",\r\n sortedIndex: sortedIndex++,\r\n groupIndex: this._calculateGroupIndex(index, appointmentsByResources),\r\n agendaSettings: appt.settings\r\n }]);\r\n delete appt.settings\r\n });\r\n return result\r\n }\r\n _calculateGroupIndex(apptIndex, appointmentsByResources) {\r\n var resultInd;\r\n var counter = 0;\r\n for (var i in appointmentsByResources) {\r\n var countApptInGroup = appointmentsByResources[i].length;\r\n if (apptIndex >= counter && apptIndex < counter + countApptInGroup) {\r\n resultInd = Number(i);\r\n break\r\n }\r\n counter += countApptInGroup\r\n }\r\n return resultInd\r\n }\r\n _getDeltaWidth(args, initialSize) {}\r\n _getAppointmentMaxWidth() {\r\n return this.cellWidth\r\n }\r\n _needVerifyItemSize() {\r\n return false\r\n }\r\n _getAppointmentParts(geometry, settings) {}\r\n _reduceMultiWeekAppointment() {}\r\n calculateAppointmentHeight() {\r\n return 0\r\n }\r\n calculateAppointmentWidth() {\r\n return 0\r\n }\r\n isAppointmentGreaterThan(etalon, comparisonParameters) {}\r\n isAllDay() {\r\n return false\r\n }\r\n _sortCondition() {}\r\n _rowCondition(a, b) {}\r\n _columnCondition(a, b) {}\r\n _findIndexByKey(arr, iKey, jKey, iValue, jValue) {}\r\n _markAppointmentAsVirtual() {}\r\n getDropDownAppointmentWidth() {}\r\n getCollectorLeftOffset() {}\r\n getCollectorTopOffset() {}\r\n replaceWrongAppointmentEndDate(rawAppointment, startDate, endDate) {\r\n var adapter = createAppointmentAdapter(rawAppointment, this.dataAccessors, this.timeZoneCalculator);\r\n replaceWrongEndDate(adapter, startDate, endDate, this.cellDuration, this.dataAccessors)\r\n }\r\n calculateRows(appointments, agendaDuration, currentDate, needClearSettings) {\r\n this._rows = [];\r\n currentDate = dateUtils.trimTime(new Date(currentDate));\r\n var groupedAppointments = this.groupAppointmentByResources(appointments);\r\n each(groupedAppointments, (_, currentAppointments) => {\r\n var groupResult = [];\r\n var appts = {\r\n indexes: [],\r\n parts: []\r\n };\r\n if (!currentAppointments.length) {\r\n this._rows.push([]);\r\n return true\r\n }\r\n each(currentAppointments, (index, appointment) => {\r\n var startDate = ExpressionUtils.getField(this.dataAccessors, \"startDate\", appointment);\r\n var endDate = ExpressionUtils.getField(this.dataAccessors, \"endDate\", appointment);\r\n this.replaceWrongAppointmentEndDate(appointment, startDate, endDate);\r\n needClearSettings && delete appointment.settings;\r\n var result = this.instance.getAppointmentsInstance()._processRecurrenceAppointment(appointment, index, false);\r\n appts.parts = appts.parts.concat(result.parts);\r\n appts.indexes = appts.indexes.concat(result.indexes)\r\n });\r\n this.instance.getAppointmentsInstance()._reduceRecurrenceAppointments(appts.indexes, currentAppointments);\r\n currentAppointments.push(...appts.parts);\r\n var appointmentCount = currentAppointments.length;\r\n for (var i = 0; i < agendaDuration; i++) {\r\n var day = new Date(currentDate);\r\n day.setMilliseconds(day.getMilliseconds() + 864e5 * i);\r\n if (void 0 === groupResult[i]) {\r\n groupResult[i] = 0\r\n }\r\n for (var j = 0; j < appointmentCount; j++) {\r\n var appointmentData = currentAppointments[j].settings || currentAppointments[j];\r\n var adapter = createAppointmentAdapter(currentAppointments[j], this.dataAccessors, this.timeZoneCalculator);\r\n var appointmentIsLong = getAppointmentTakesSeveralDays(adapter);\r\n var appointmentIsRecurrence = ExpressionUtils.getField(this.dataAccessors, \"recurrenceRule\", currentAppointments[j]);\r\n if (this.instance.fire(\"dayHasAppointment\", day, appointmentData, true) || !appointmentIsRecurrence && appointmentIsLong && this.instance.fire(\"dayHasAppointment\", day, currentAppointments[j], true)) {\r\n groupResult[i] += 1\r\n }\r\n }\r\n }\r\n this._rows.push(groupResult)\r\n });\r\n return this._rows\r\n }\r\n _iterateRow(row, obj, index) {\r\n for (var i = 0; i < row.length; i++) {\r\n obj.counter += row[i];\r\n if (obj.counter >= index) {\r\n obj.indexInRow = i;\r\n break\r\n }\r\n }\r\n }\r\n getDateByIndex(index, rows, startViewDate) {\r\n var obj = {\r\n counter: 0,\r\n indexInRow: 0\r\n };\r\n index++;\r\n for (var i = 0; i < rows.length; i++) {\r\n this._iterateRow(rows[i], obj, index);\r\n if (obj.indexInRow) {\r\n break\r\n }\r\n }\r\n return new Date(new Date(startViewDate).setDate(startViewDate.getDate() + obj.indexInRow))\r\n }\r\n getAppointmentDataCalculator() {\r\n return ($appointment, originalStartDate) => {\r\n var apptIndex = $appointment.index();\r\n var startViewDate = this.instance.getStartViewDate();\r\n var calculatedStartDate = this.getDateByIndex(apptIndex, this._rows, startViewDate);\r\n var wrappedOriginalStartDate = new Date(originalStartDate);\r\n return {\r\n startDate: new Date(calculatedStartDate.setHours(wrappedOriginalStartDate.getHours(), wrappedOriginalStartDate.getMinutes(), wrappedOriginalStartDate.getSeconds(), wrappedOriginalStartDate.getMilliseconds()))\r\n }\r\n }\r\n }\r\n}\r\nexport default AgendaRenderingStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/rendering_strategies/m_strategy_horizontal.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport {\r\n getSkippedHoursInRange\r\n} from \"../../../scheduler/r1/utils/index\";\r\nimport {\r\n ExpressionUtils\r\n} from \"../../m_expression_utils\";\r\nimport BaseAppointmentsStrategy from \"./m_strategy_base\";\r\nvar DEFAULT_APPOINTMENT_HEIGHT = 60;\r\nvar MIN_APPOINTMENT_HEIGHT = 35;\r\nvar DROP_DOWN_BUTTON_OFFSET = 2;\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nclass HorizontalRenderingStrategy extends BaseAppointmentsStrategy {\r\n _needVerifyItemSize() {\r\n return true\r\n }\r\n calculateAppointmentWidth(appointment, position) {\r\n var cellWidth = this.cellWidth || this.getAppointmentMinSize();\r\n var allDay = ExpressionUtils.getField(this.dataAccessors, \"allDay\", appointment);\r\n var {\r\n startDate: startDate,\r\n endDate: endDate,\r\n normalizedEndDate: normalizedEndDate\r\n } = position.info.appointment;\r\n var duration = this.getAppointmentDurationInMs(startDate, normalizedEndDate, allDay);\r\n duration = this._adjustDurationByDaylightDiff(duration, startDate, normalizedEndDate);\r\n var cellDuration = this.cellDurationInMinutes * toMs(\"minute\");\r\n var skippedHours = getSkippedHoursInRange(startDate, endDate, appointment.allDay, this.viewDataProvider);\r\n var durationInCells = (duration - skippedHours * toMs(\"hour\")) / cellDuration;\r\n var width = this.cropAppointmentWidth(durationInCells * cellWidth, cellWidth);\r\n return width\r\n }\r\n _needAdjustDuration(diff) {\r\n return diff < 0\r\n }\r\n getAppointmentGeometry(coordinates) {\r\n var result = this._customizeAppointmentGeometry(coordinates);\r\n return super.getAppointmentGeometry(result)\r\n }\r\n _customizeAppointmentGeometry(coordinates) {\r\n var config = this._calculateGeometryConfig(coordinates);\r\n return this._customizeCoordinates(coordinates, config.height, config.appointmentCountPerCell, config.offset)\r\n }\r\n _getOffsets() {\r\n return {\r\n unlimited: 0,\r\n auto: 0\r\n }\r\n }\r\n _getCompactLeftCoordinate(itemLeft, index) {\r\n var cellWidth = this.cellWidth || this.getAppointmentMinSize();\r\n return itemLeft + cellWidth * index\r\n }\r\n _getMaxHeight() {\r\n return this.cellHeight || this.getAppointmentMinSize()\r\n }\r\n _getAppointmentCount(overlappingMode, coordinates) {\r\n return this._getMaxAppointmentCountPerCellByType(false)\r\n }\r\n _getAppointmentDefaultHeight() {\r\n return DEFAULT_APPOINTMENT_HEIGHT\r\n }\r\n _getAppointmentMinHeight() {\r\n return MIN_APPOINTMENT_HEIGHT\r\n }\r\n _sortCondition(a, b) {\r\n return this._columnCondition(a, b)\r\n }\r\n _getOrientation() {\r\n return [\"left\", \"right\", \"top\"]\r\n }\r\n getDropDownAppointmentWidth(intervalCount, isAllDay) {\r\n return this.cellWidth - 2 * DROP_DOWN_BUTTON_OFFSET\r\n }\r\n getDeltaTime(args, initialSize) {\r\n var deltaTime;\r\n var deltaWidth = args.width - initialSize.width;\r\n deltaTime = toMs(\"minute\") * Math.round(deltaWidth / this.cellWidth * this.cellDurationInMinutes);\r\n return deltaTime\r\n }\r\n isAllDay(appointmentData) {\r\n return ExpressionUtils.getField(this.dataAccessors, \"allDay\", appointmentData)\r\n }\r\n _isItemsCross(firstItem, secondItem) {\r\n var orientation = this._getOrientation();\r\n return this._checkItemsCrossing(firstItem, secondItem, orientation)\r\n }\r\n getPositionShift(timeShift) {\r\n var positionShift = super.getPositionShift(timeShift);\r\n var left = this.cellWidth * timeShift;\r\n if (this.rtlEnabled) {\r\n left *= -1\r\n }\r\n left += positionShift.left;\r\n return {\r\n top: 0,\r\n left: left,\r\n cellPosition: left\r\n }\r\n }\r\n supportCompactDropDownAppointments() {\r\n return false\r\n }\r\n}\r\nexport default HorizontalRenderingStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/helpers/m_position_helper.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar getCellSize = DOMMetaData => {\r\n var {\r\n dateTableCellsMeta: dateTableCellsMeta\r\n } = DOMMetaData;\r\n var length = null === dateTableCellsMeta || void 0 === dateTableCellsMeta ? void 0 : dateTableCellsMeta.length;\r\n if (!length) {\r\n return {\r\n width: 0,\r\n height: 0\r\n }\r\n }\r\n var cellIndex = length > 1 ? 1 : 0;\r\n var cellSize = dateTableCellsMeta[cellIndex][0];\r\n return {\r\n width: cellSize.width,\r\n height: cellSize.height\r\n }\r\n};\r\nvar getMaxAllowedHorizontalPosition = (groupIndex, viewDataProvider, rtlEnabled, DOMMetaData) => {\r\n var {\r\n dateTableCellsMeta: dateTableCellsMeta\r\n } = DOMMetaData;\r\n var firstRow = dateTableCellsMeta[0];\r\n if (!firstRow) {\r\n return 0\r\n }\r\n var {\r\n columnIndex: columnIndex\r\n } = viewDataProvider.getLastGroupCellPosition(groupIndex);\r\n var cellPosition = firstRow[columnIndex];\r\n if (!cellPosition) {\r\n return 0\r\n }\r\n return !rtlEnabled ? cellPosition.left + cellPosition.width : cellPosition.left\r\n};\r\nexport var getCellHeight = DOMMetaData => getCellSize(DOMMetaData).height;\r\nexport var getCellWidth = DOMMetaData => getCellSize(DOMMetaData).width;\r\nexport var getAllDayHeight = (showAllDayPanel, isVerticalGrouping, DOMMetaData) => {\r\n if (!showAllDayPanel) {\r\n return 0\r\n }\r\n if (isVerticalGrouping) {\r\n var {\r\n dateTableCellsMeta: dateTableCellsMeta\r\n } = DOMMetaData;\r\n var length = null === dateTableCellsMeta || void 0 === dateTableCellsMeta ? void 0 : dateTableCellsMeta.length;\r\n return length ? dateTableCellsMeta[0][0].height : 0\r\n }\r\n var {\r\n allDayPanelCellsMeta: allDayPanelCellsMeta\r\n } = DOMMetaData;\r\n return (null === allDayPanelCellsMeta || void 0 === allDayPanelCellsMeta ? void 0 : allDayPanelCellsMeta.length) ? allDayPanelCellsMeta[0].height : 0\r\n};\r\nexport var getMaxAllowedPosition = (groupIndex, viewDataProvider, rtlEnabled, DOMMetaData) => {\r\n var validGroupIndex = groupIndex || 0;\r\n return getMaxAllowedHorizontalPosition(validGroupIndex, viewDataProvider, rtlEnabled, DOMMetaData)\r\n};\r\nexport var getGroupWidth = (groupIndex, viewDataProvider, options) => {\r\n var {\r\n isVirtualScrolling: isVirtualScrolling,\r\n rtlEnabled: rtlEnabled,\r\n DOMMetaData: DOMMetaData\r\n } = options;\r\n var cellWidth = getCellWidth(DOMMetaData);\r\n var result = viewDataProvider.getCellCount(options) * cellWidth;\r\n if (isVirtualScrolling) {\r\n var groupedData = viewDataProvider.groupedDataMap.dateTableGroupedMap;\r\n var groupLength = groupedData[groupIndex][0].length;\r\n result = groupLength * cellWidth\r\n }\r\n var position = getMaxAllowedPosition(groupIndex, viewDataProvider, rtlEnabled, DOMMetaData);\r\n var currentPosition = position[groupIndex];\r\n if (currentPosition) {\r\n if (rtlEnabled) {\r\n result = currentPosition - position[groupIndex + 1]\r\n } else if (0 === groupIndex) {\r\n result = currentPosition\r\n } else {\r\n result = currentPosition - position[groupIndex - 1]\r\n }\r\n }\r\n return result\r\n};\r\nexport class PositionHelper {\r\n constructor(options) {\r\n this.options = options;\r\n this.groupStrategy = this.options.isVerticalGrouping ? new GroupStrategyBase(this.options) : new GroupStrategyHorizontal(this.options)\r\n }\r\n get viewDataProvider() {\r\n return this.options.viewDataProvider\r\n }\r\n get rtlEnabled() {\r\n return this.options.rtlEnabled\r\n }\r\n get isGroupedByDate() {\r\n return this.options.isGroupedByDate\r\n }\r\n get groupCount() {\r\n return this.options.groupCount\r\n }\r\n get DOMMetaData() {\r\n return this.options.getDOMMetaDataCallback()\r\n }\r\n getHorizontalMax(groupIndex) {\r\n var getMaxPosition = groupIndex => getMaxAllowedPosition(groupIndex, this.viewDataProvider, this.rtlEnabled, this.DOMMetaData);\r\n if (this.isGroupedByDate) {\r\n var viewPortGroupCount = this.viewDataProvider.getViewPortGroupCount();\r\n return Math.max(getMaxPosition(groupIndex), getMaxPosition(viewPortGroupCount - 1))\r\n }\r\n return getMaxPosition(groupIndex)\r\n }\r\n getResizableStep() {\r\n var cellWidth = getCellWidth(this.DOMMetaData);\r\n if (this.isGroupedByDate) {\r\n return this.groupCount * cellWidth\r\n }\r\n return cellWidth\r\n }\r\n getVerticalMax(options) {\r\n return this.groupStrategy.getVerticalMax(options)\r\n }\r\n getOffsetByAllDayPanel(options) {\r\n return this.groupStrategy.getOffsetByAllDayPanel(options)\r\n }\r\n getGroupTop(options) {\r\n return this.groupStrategy.getGroupTop(options)\r\n }\r\n}\r\nclass GroupStrategyBase {\r\n constructor(options) {\r\n this.options = options\r\n }\r\n get viewDataProvider() {\r\n return this.options.viewDataProvider\r\n }\r\n get isGroupedByDate() {\r\n return this.options.isGroupedByDate\r\n }\r\n get rtlEnabled() {\r\n return this.options.rtlEnabled\r\n }\r\n get groupCount() {\r\n return this.options.groupCount\r\n }\r\n get DOMMetaData() {\r\n return this.options.getDOMMetaDataCallback()\r\n }\r\n getOffsetByAllDayPanel(_ref) {\r\n var {\r\n groupIndex: groupIndex,\r\n supportAllDayRow: supportAllDayRow,\r\n showAllDayPanel: showAllDayPanel\r\n } = _ref;\r\n var result = 0;\r\n if (supportAllDayRow && showAllDayPanel) {\r\n var allDayPanelHeight = getAllDayHeight(showAllDayPanel, true, this.DOMMetaData);\r\n result = allDayPanelHeight * (groupIndex + 1)\r\n }\r\n return result\r\n }\r\n getVerticalMax(options) {\r\n var maxAllowedPosition = this._getMaxAllowedVerticalPosition(_extends(_extends({}, options), {\r\n viewDataProvider: this.viewDataProvider,\r\n rtlEnabled: this.rtlEnabled,\r\n DOMMetaData: this.DOMMetaData\r\n }));\r\n maxAllowedPosition += this.getOffsetByAllDayPanel(options);\r\n return maxAllowedPosition\r\n }\r\n getGroupTop(_ref2) {\r\n var {\r\n groupIndex: groupIndex,\r\n showAllDayPanel: showAllDayPanel,\r\n isGroupedAllDayPanel: isGroupedAllDayPanel\r\n } = _ref2;\r\n var rowCount = this.viewDataProvider.getRowCountInGroup(groupIndex);\r\n var maxVerticalPosition = this._getMaxAllowedVerticalPosition({\r\n groupIndex: groupIndex,\r\n viewDataProvider: this.viewDataProvider,\r\n showAllDayPanel: showAllDayPanel,\r\n isGroupedAllDayPanel: isGroupedAllDayPanel,\r\n isVerticalGrouping: true,\r\n DOMMetaData: this.DOMMetaData\r\n });\r\n return maxVerticalPosition - getCellHeight(this.DOMMetaData) * rowCount\r\n }\r\n _getAllDayHeight(showAllDayPanel) {\r\n return getAllDayHeight(showAllDayPanel, true, this.DOMMetaData)\r\n }\r\n _getMaxAllowedVerticalPosition(_ref3) {\r\n var {\r\n groupIndex: groupIndex,\r\n showAllDayPanel: showAllDayPanel,\r\n isGroupedAllDayPanel: isGroupedAllDayPanel\r\n } = _ref3;\r\n var {\r\n rowIndex: rowIndex\r\n } = this.viewDataProvider.getLastGroupCellPosition(groupIndex);\r\n var {\r\n dateTableCellsMeta: dateTableCellsMeta\r\n } = this.DOMMetaData;\r\n var lastGroupRow = dateTableCellsMeta[rowIndex];\r\n if (!lastGroupRow) {\r\n return 0\r\n }\r\n var result = lastGroupRow[0].top + lastGroupRow[0].height;\r\n if (isGroupedAllDayPanel) {\r\n result -= (groupIndex + 1) * this._getAllDayHeight(showAllDayPanel)\r\n }\r\n return result\r\n }\r\n}\r\nclass GroupStrategyHorizontal extends GroupStrategyBase {\r\n getOffsetByAllDayPanel() {\r\n return 0\r\n }\r\n getVerticalMax(options) {\r\n var {\r\n isVirtualScrolling: isVirtualScrolling,\r\n groupIndex: groupIndex\r\n } = options;\r\n var correctedGroupIndex = isVirtualScrolling ? groupIndex : 0;\r\n return this._getMaxAllowedVerticalPosition(_extends(_extends({}, options), {\r\n groupIndex: correctedGroupIndex\r\n }))\r\n }\r\n getGroupTop() {\r\n return 0\r\n }\r\n _getAllDayHeight(showAllDayPanel) {\r\n return getAllDayHeight(showAllDayPanel, false, this.DOMMetaData)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/rendering_strategies/m_strategy_horizontal_month_line.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport query from \"../../../../data/query\";\r\nimport {\r\n sortAppointmentsByStartDate\r\n} from \"../data_provider/m_utils\";\r\nimport HorizontalAppointmentsStrategy from \"./m_strategy_horizontal\";\r\nvar HOURS_IN_DAY = 24;\r\nvar MINUTES_IN_HOUR = 60;\r\nvar MILLISECONDS_IN_MINUTE = 6e4;\r\nvar ZERO_APPOINTMENT_DURATION_IN_DAYS = 1;\r\nclass HorizontalMonthLineRenderingStrategy extends HorizontalAppointmentsStrategy {\r\n calculateAppointmentWidth(_, position) {\r\n var {\r\n startDate: startDateWithTime,\r\n normalizedEndDate: normalizedEndDate\r\n } = position.info.appointment;\r\n var startDate = dateUtils.trimTime(startDateWithTime);\r\n var cellWidth = this.cellWidth || this.getAppointmentMinSize();\r\n var duration = Math.ceil(this._getDurationInDays(startDate, normalizedEndDate));\r\n var width = this.cropAppointmentWidth(duration * cellWidth, cellWidth);\r\n if (this.isVirtualScrolling) {\r\n var skippedDays = this.viewDataProvider.getSkippedDaysCount(position.groupIndex, startDate, normalizedEndDate, duration);\r\n width -= skippedDays * cellWidth\r\n }\r\n return width\r\n }\r\n _columnCondition(a, b) {\r\n var conditions = this._getConditions(a, b);\r\n return conditions.rowCondition || conditions.columnCondition || conditions.cellPositionCondition\r\n }\r\n _getDurationInDays(startDate, endDate) {\r\n var adjustedDuration = this._adjustDurationByDaylightDiff(endDate.getTime() - startDate.getTime(), startDate, endDate);\r\n return adjustedDuration / dateUtils.dateToMilliseconds(\"day\") || ZERO_APPOINTMENT_DURATION_IN_DAYS\r\n }\r\n getDeltaTime(args, initialSize) {\r\n return HOURS_IN_DAY * MINUTES_IN_HOUR * MILLISECONDS_IN_MINUTE * this._getDeltaWidth(args, initialSize)\r\n }\r\n isAllDay() {\r\n return false\r\n }\r\n createTaskPositionMap(items, skipSorting) {\r\n if (!skipSorting) {\r\n sortAppointmentsByStartDate(items, this.dataAccessors)\r\n }\r\n return super.createTaskPositionMap(items)\r\n }\r\n _getSortedPositions(map, skipSorting) {\r\n var result = super._getSortedPositions(map);\r\n if (!skipSorting) {\r\n result = query(result).sortBy(\"top\").thenBy(\"left\").thenBy(\"cellPosition\").thenBy(\"i\").toArray()\r\n }\r\n return result\r\n }\r\n needCorrectAppointmentDates() {\r\n return false\r\n }\r\n getPositionShift(timeShift) {\r\n return {\r\n top: 0,\r\n left: 0,\r\n cellPosition: timeShift * this.cellWidth\r\n }\r\n }\r\n}\r\nexport default HorizontalMonthLineRenderingStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/rendering_strategies/m_strategy_horizontal_month.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport {\r\n getGroupWidth\r\n} from \"../../workspaces/helpers/m_position_helper\";\r\nimport HorizontalMonthLineRenderingStrategy from \"./m_strategy_horizontal_month_line\";\r\nvar MONTH_APPOINTMENT_HEIGHT_RATIO = .6;\r\nvar MONTH_APPOINTMENT_MIN_OFFSET = 26;\r\nvar MONTH_APPOINTMENT_MAX_OFFSET = 30;\r\nvar MONTH_DROPDOWN_APPOINTMENT_MIN_RIGHT_OFFSET = 36;\r\nvar MONTH_DROPDOWN_APPOINTMENT_MAX_RIGHT_OFFSET = 60;\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nclass HorizontalMonthRenderingStrategy extends HorizontalMonthLineRenderingStrategy {\r\n get endViewDate() {\r\n return this.options.endViewDate\r\n }\r\n get adaptivityEnabled() {\r\n return this.options.adaptivityEnabled\r\n }\r\n get DOMMetaData() {\r\n return this.options.DOMMetaData\r\n }\r\n _getLeftPosition(settings) {\r\n var fullWeekAppointmentWidth = this.getGroupWidth(settings.groupIndex);\r\n return this._calculateMultiWeekAppointmentLeftOffset(settings.hMax, fullWeekAppointmentWidth)\r\n }\r\n _getChunkCount(fullChunksWidth, firstChunkWidth, weekWidth, settings) {\r\n var {\r\n groupIndex: groupIndex,\r\n info: {\r\n appointment: {\r\n startDate: startDate\r\n }\r\n }\r\n } = settings;\r\n var rawFullChunksWidth = fullChunksWidth - firstChunkWidth + weekWidth;\r\n var allChunksCount = Math.ceil(rawFullChunksWidth / weekWidth);\r\n var viewRowIndex = this._tryGetRowIndexInView(startDate);\r\n if (void 0 !== viewRowIndex) {\r\n var viewChunksCount = this.viewDataProvider.getRowCountInGroup(groupIndex);\r\n var allowedChunksCount = viewChunksCount - viewRowIndex;\r\n return allChunksCount <= allowedChunksCount ? allChunksCount : allowedChunksCount\r\n }\r\n return allChunksCount\r\n }\r\n _tryGetRowIndexInView(positionStartDate) {\r\n var _a;\r\n var columnsCount = this.viewDataProvider.getColumnsCount();\r\n if ((null === (_a = this.options.dataRange) || void 0 === _a ? void 0 : _a.length) < 1 || !columnsCount) {\r\n return\r\n }\r\n var [startViewDate] = this.options.dateRange;\r\n var dayDurationMs = toMs(\"day\");\r\n var timeFromStart = positionStartDate.getTime() - startViewDate.getTime();\r\n return Math.floor(timeFromStart / dayDurationMs / columnsCount)\r\n }\r\n _getChunkWidths(geometry, settings, weekWidth) {\r\n var firstChunkWidth = geometry.reducedWidth;\r\n var fullChunksWidth = Math.floor(geometry.sourceAppointmentWidth);\r\n var widthWithoutFirstChunk = fullChunksWidth - firstChunkWidth;\r\n return [firstChunkWidth, fullChunksWidth, widthWithoutFirstChunk]\r\n }\r\n _getTailChunkSettings(withoutFirstChunkWidth, weekWidth, leftPosition) {\r\n var tailChunkWidth = withoutFirstChunkWidth % weekWidth || weekWidth;\r\n var rtlPosition = leftPosition + (weekWidth - tailChunkWidth);\r\n var tailChunkLeftPosition = this.rtlEnabled ? rtlPosition : leftPosition;\r\n return [tailChunkWidth, tailChunkLeftPosition]\r\n }\r\n _getAppointmentParts(geometry, settings) {\r\n var result = [];\r\n var weekWidth = Math.round(this.getGroupWidth(settings.groupIndex));\r\n var [firstChunkWidth, fullChunksWidth, withoutFirstChunkWidth] = this._getChunkWidths(geometry, settings, weekWidth);\r\n var leftPosition = this._getLeftPosition(settings);\r\n var {\r\n endDate: endDate\r\n } = settings.info.appointment;\r\n var hasTailChunk = this.endViewDate > endDate;\r\n var chunkCount = this._getChunkCount(fullChunksWidth, firstChunkWidth, weekWidth, settings);\r\n var [tailChunkWidth, tailChunkLeftPosition] = this._getTailChunkSettings(withoutFirstChunkWidth, weekWidth, leftPosition);\r\n for (var chunkIndex = 1; chunkIndex < chunkCount; chunkIndex++) {\r\n var topPosition = settings.top + this.cellHeight * chunkIndex;\r\n var isTailChunk = hasTailChunk && chunkIndex === chunkCount - 1;\r\n result.push(_extends(_extends({}, settings), {\r\n top: topPosition,\r\n left: isTailChunk ? tailChunkLeftPosition : leftPosition,\r\n height: geometry.height,\r\n width: isTailChunk ? tailChunkWidth : weekWidth,\r\n appointmentReduced: isTailChunk ? \"tail\" : \"body\",\r\n rowIndex: ++settings.rowIndex,\r\n columnIndex: 0\r\n }))\r\n }\r\n return result\r\n }\r\n _calculateMultiWeekAppointmentLeftOffset(max, width) {\r\n return this.rtlEnabled ? max : max - width\r\n }\r\n getGroupWidth(groupIndex) {\r\n return getGroupWidth(groupIndex, this.viewDataProvider, {\r\n intervalCount: this.options.intervalCount,\r\n currentDate: this.options.currentDate,\r\n viewType: this.options.viewType,\r\n hoursInterval: this.options.hoursInterval,\r\n startDayHour: this.options.startDayHour,\r\n endDayHour: this.options.endDayHour,\r\n isVirtualScrolling: this.isVirtualScrolling,\r\n rtlEnabled: this.rtlEnabled,\r\n DOMMetaData: this.DOMMetaData\r\n })\r\n }\r\n _getAppointmentDefaultHeight() {\r\n return this._getAppointmentHeightByTheme()\r\n }\r\n _getAppointmentMinHeight() {\r\n return this._getAppointmentDefaultHeight()\r\n }\r\n createTaskPositionMap(items) {\r\n return super.createTaskPositionMap(items, true)\r\n }\r\n _getSortedPositions(map) {\r\n return super._getSortedPositions(map, true)\r\n }\r\n _getDefaultRatio() {\r\n return MONTH_APPOINTMENT_HEIGHT_RATIO\r\n }\r\n _getOffsets() {\r\n return {\r\n unlimited: MONTH_APPOINTMENT_MIN_OFFSET,\r\n auto: MONTH_APPOINTMENT_MAX_OFFSET\r\n }\r\n }\r\n getDropDownAppointmentWidth(intervalCount, isAllDay) {\r\n if (this.adaptivityEnabled) {\r\n return this.getDropDownButtonAdaptiveSize()\r\n }\r\n var offset = intervalCount > 1 ? MONTH_DROPDOWN_APPOINTMENT_MAX_RIGHT_OFFSET : MONTH_DROPDOWN_APPOINTMENT_MIN_RIGHT_OFFSET;\r\n return this.cellWidth - offset\r\n }\r\n needCorrectAppointmentDates() {\r\n return false\r\n }\r\n _needVerticalGroupBounds() {\r\n return false\r\n }\r\n _needHorizontalGroupBounds() {\r\n return true\r\n }\r\n}\r\nexport default HorizontalMonthRenderingStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/rendering_strategies/m_strategy_vertical.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n roundFloatPart\r\n} from \"../../../../core/utils/math\";\r\nimport {\r\n isNumeric\r\n} from \"../../../../core/utils/type\";\r\nimport timeZoneUtils from \"../../../../ui/scheduler/utils.timeZone\";\r\nimport {\r\n getAppointmentTakesAllDay,\r\n getSkippedHoursInRange\r\n} from \"../../../scheduler/r1/utils/index\";\r\nimport {\r\n createAppointmentAdapter\r\n} from \"../../m_appointment_adapter\";\r\nimport {\r\n ExpressionUtils\r\n} from \"../../m_expression_utils\";\r\nimport BaseAppointmentsStrategy from \"./m_strategy_base\";\r\nvar ALLDAY_APPOINTMENT_MIN_VERTICAL_OFFSET = 5;\r\nvar ALLDAY_APPOINTMENT_MAX_VERTICAL_OFFSET = 20;\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nclass VerticalRenderingStrategy extends BaseAppointmentsStrategy {\r\n getDeltaTime(args, initialSize, appointment) {\r\n var deltaTime = 0;\r\n if (this.isAllDay(appointment)) {\r\n deltaTime = this._getDeltaWidth(args, initialSize) * toMs(\"day\")\r\n } else {\r\n var deltaHeight = args.height - initialSize.height;\r\n deltaTime = toMs(\"minute\") * Math.round(deltaHeight / this.cellHeight * this.cellDurationInMinutes)\r\n }\r\n return deltaTime\r\n }\r\n _correctCollectorCoordinatesInAdaptive(coordinates, isAllDay) {\r\n if (isAllDay) {\r\n super._correctCollectorCoordinatesInAdaptive(coordinates, isAllDay)\r\n } else if (0 === this._getMaxAppointmentCountPerCellByType()) {\r\n var {\r\n cellHeight: cellHeight\r\n } = this;\r\n var {\r\n cellWidth: cellWidth\r\n } = this;\r\n coordinates.top += (cellHeight - this.getDropDownButtonAdaptiveSize()) / 2;\r\n coordinates.left += (cellWidth - this.getDropDownButtonAdaptiveSize()) / 2\r\n }\r\n }\r\n getAppointmentGeometry(coordinates) {\r\n var geometry = null;\r\n if (coordinates.allDay) {\r\n geometry = this._getAllDayAppointmentGeometry(coordinates)\r\n } else {\r\n geometry = this.isAdaptive && coordinates.isCompact ? this._getAdaptiveGeometry(coordinates) : this._getVerticalAppointmentGeometry(coordinates)\r\n }\r\n return super.getAppointmentGeometry(geometry)\r\n }\r\n _getAdaptiveGeometry(coordinates) {\r\n var config = this._calculateGeometryConfig(coordinates);\r\n return this._customizeCoordinates(coordinates, config.height, config.appointmentCountPerCell, config.offset)\r\n }\r\n _getItemPosition(initialAppointment) {\r\n var allDay = this.isAllDay(initialAppointment);\r\n if (allDay) {\r\n return super._getItemPosition(initialAppointment)\r\n }\r\n var appointment = super.shiftAppointmentByViewOffset(initialAppointment);\r\n var adapter = createAppointmentAdapter(appointment, this.dataAccessors, this.timeZoneCalculator);\r\n var isRecurring = !!adapter.recurrenceRule;\r\n var appointmentStartDate = adapter.calculateStartDate(\"toGrid\");\r\n var appointmentEndDate = adapter.calculateEndDate(\"toGrid\");\r\n var appointmentDuration = appointmentEndDate - appointmentStartDate;\r\n var appointmentBeginInCurrentView = this.options.startViewDate < appointmentStartDate;\r\n var isAppointmentTakesSeveralDays = !timeZoneUtils.isSameAppointmentDates(appointmentStartDate, appointmentEndDate);\r\n var settings = this.generateAppointmentSettings(appointment);\r\n var result = [];\r\n for (var j = 0; j < settings.length; j++) {\r\n var currentSetting = settings[j];\r\n var height = this.calculateAppointmentHeight(appointment, currentSetting);\r\n var width = this.calculateAppointmentWidth(appointment, currentSetting);\r\n var resultHeight = height;\r\n var appointmentReduced = null;\r\n var multiDaysAppointmentParts = [];\r\n var currentMaxAllowedPosition = currentSetting.vMax;\r\n if (this._isMultiViewAppointment(currentSetting, height) || isAppointmentTakesSeveralDays && !isRecurring) {\r\n var trimmedStartDate = dateUtils.trimTime(appointmentStartDate);\r\n var trimmedSettingStartDate = dateUtils.trimTime(currentSetting.info.appointment.startDate);\r\n var reduceHead = trimmedStartDate <= trimmedSettingStartDate || isRecurring;\r\n if (reduceHead) {\r\n resultHeight = this._reduceMultiDayAppointment(height, {\r\n top: currentSetting.top,\r\n bottom: currentMaxAllowedPosition\r\n });\r\n multiDaysAppointmentParts = this._getAppointmentParts({\r\n sourceAppointmentHeight: height,\r\n reducedHeight: resultHeight,\r\n width: width\r\n }, currentSetting)\r\n }\r\n var {\r\n startDate: currentSettingStartDate,\r\n normalizedEndDate: currentSettingNormalizedEndDate\r\n } = currentSetting.info.appointment;\r\n var currentSettingDuration = currentSettingNormalizedEndDate - currentSettingStartDate;\r\n var hasNextParts = currentSettingDuration < appointmentDuration;\r\n appointmentReduced = hasNextParts ? appointmentBeginInCurrentView ? \"head\" : \"body\" : appointmentBeginInCurrentView ? \"head\" : \"tail\"\r\n }\r\n extend(currentSetting, {\r\n height: resultHeight,\r\n width: width,\r\n allDay: allDay,\r\n appointmentReduced: appointmentReduced\r\n });\r\n result = this._getAppointmentPartsPosition(multiDaysAppointmentParts, currentSetting, result)\r\n }\r\n return result\r\n }\r\n _isMultiViewAppointment(_ref, height) {\r\n var {\r\n vMax: vMax,\r\n top: top\r\n } = _ref;\r\n var fullAppointmentHeight = roundFloatPart(height, 2);\r\n var remainingHeight = roundFloatPart(vMax - top, 2);\r\n return fullAppointmentHeight > remainingHeight\r\n }\r\n _reduceMultiDayAppointment(sourceAppointmentHeight, bound) {\r\n return Math.min(sourceAppointmentHeight, bound.bottom - Math.floor(bound.top))\r\n }\r\n _getGroupHeight() {\r\n return this.cellHeight * this.rowCount\r\n }\r\n _getGroupTopOffset(appointmentSettings) {\r\n var {\r\n groupIndex: groupIndex\r\n } = appointmentSettings;\r\n var groupTop = Math.max(0, this.positionHelper.getGroupTop({\r\n groupIndex: groupIndex,\r\n showAllDayPanel: this.showAllDayPanel,\r\n isGroupedAllDayPanel: this.isGroupedAllDayPanel\r\n }));\r\n var allDayPanelOffset = this.positionHelper.getOffsetByAllDayPanel({\r\n groupIndex: groupIndex,\r\n supportAllDayRow: this.allDaySupported(),\r\n showAllDayPanel: this.showAllDayPanel\r\n });\r\n var appointmentGroupTopOffset = appointmentSettings.top - groupTop - allDayPanelOffset;\r\n return appointmentGroupTopOffset\r\n }\r\n _getTailHeight(appointmentGeometry, appointmentSettings) {\r\n if (!this.isVirtualScrolling) {\r\n return appointmentGeometry.sourceAppointmentHeight - appointmentGeometry.reducedHeight\r\n }\r\n var appointmentGroupTopOffset = this._getGroupTopOffset(appointmentSettings);\r\n var {\r\n sourceAppointmentHeight: sourceAppointmentHeight\r\n } = appointmentGeometry;\r\n var groupHeight = this._getGroupHeight();\r\n var tailHeight = appointmentGroupTopOffset + sourceAppointmentHeight - groupHeight;\r\n return tailHeight\r\n }\r\n _getAppointmentParts(appointmentGeometry, appointmentSettings) {\r\n var {\r\n width: width\r\n } = appointmentGeometry;\r\n var result = [];\r\n var currentPartTop = Math.max(0, this.positionHelper.getGroupTop({\r\n groupIndex: appointmentSettings.groupIndex,\r\n showAllDayPanel: this.showAllDayPanel,\r\n isGroupedAllDayPanel: this.isGroupedAllDayPanel\r\n }));\r\n var cellsDiff = this.isGroupedByDate ? this.groupCount : 1;\r\n var offset = this.cellWidth * cellsDiff;\r\n var allDayPanelOffset = this.positionHelper.getOffsetByAllDayPanel({\r\n groupIndex: appointmentSettings.groupIndex,\r\n supportAllDayRow: this.allDaySupported(),\r\n showAllDayPanel: this.showAllDayPanel\r\n });\r\n currentPartTop += allDayPanelOffset;\r\n var minHeight = this.getAppointmentMinSize();\r\n var {\r\n hMax: hMax,\r\n vMax: vMax,\r\n vMin: vMin\r\n } = appointmentSettings;\r\n var maxHeight = this.isVirtualScrolling ? vMax : vMax - vMin;\r\n var hasTailPart = this.options.endViewDate > appointmentSettings.info.appointment.endDate;\r\n var left = Math.round(appointmentSettings.left + offset);\r\n var tailHeight = this._getTailHeight(appointmentGeometry, appointmentSettings);\r\n var {\r\n columnIndex: columnIndex\r\n } = appointmentSettings;\r\n while (tailHeight > 0 && left < hMax) {\r\n tailHeight = Math.max(minHeight, tailHeight);\r\n columnIndex += cellsDiff;\r\n var height = Math.min(tailHeight, maxHeight);\r\n result.push(_extends(_extends({}, appointmentSettings), {\r\n top: currentPartTop,\r\n left: left,\r\n height: height,\r\n width: width,\r\n appointmentReduced: \"body\",\r\n rowIndex: 0,\r\n columnIndex: columnIndex\r\n }));\r\n left += offset;\r\n tailHeight -= maxHeight\r\n }\r\n if (hasTailPart && result.length > 0) {\r\n result[result.length - 1].appointmentReduced = \"tail\"\r\n }\r\n return result\r\n }\r\n _getMinuteHeight() {\r\n return this.cellHeight / this.cellDurationInMinutes\r\n }\r\n _getCompactLeftCoordinate(itemLeft, index) {\r\n var cellWidth = this.cellWidth || this.getAppointmentMinSize();\r\n return itemLeft + (1 + cellWidth) * index\r\n }\r\n _getVerticalAppointmentGeometry(coordinates) {\r\n var config = this._calculateVerticalGeometryConfig(coordinates);\r\n return this._customizeVerticalCoordinates(coordinates, config.width, config.appointmentCountPerCell, config.offset)\r\n }\r\n _customizeVerticalCoordinates(coordinates, width, appointmentCountPerCell, topOffset, isAllDay) {\r\n var appointmentWidth = Math.max(width / appointmentCountPerCell, width / coordinates.count);\r\n var {\r\n height: height\r\n } = coordinates;\r\n var appointmentLeft = coordinates.left + coordinates.index * appointmentWidth;\r\n var {\r\n top: top\r\n } = coordinates;\r\n if (coordinates.isCompact) {\r\n this._markAppointmentAsVirtual(coordinates, isAllDay)\r\n }\r\n return {\r\n height: height,\r\n width: appointmentWidth,\r\n top: top,\r\n left: appointmentLeft,\r\n empty: this._isAppointmentEmpty(height, width)\r\n }\r\n }\r\n _calculateVerticalGeometryConfig(coordinates) {\r\n var overlappingMode = this.maxAppointmentsPerCell;\r\n var offsets = this._getOffsets();\r\n var appointmentDefaultOffset = this._getAppointmentDefaultOffset();\r\n var appointmentCountPerCell = this._getAppointmentCount(overlappingMode, coordinates);\r\n var ratio = this._getDefaultRatio(coordinates, appointmentCountPerCell);\r\n var maxWidth = this._getMaxWidth();\r\n if (!appointmentCountPerCell) {\r\n appointmentCountPerCell = coordinates.count;\r\n ratio = (maxWidth - offsets.unlimited) / maxWidth\r\n }\r\n var topOffset = (1 - ratio) * maxWidth;\r\n if (\"auto\" === overlappingMode || isNumeric(overlappingMode)) {\r\n ratio = 1;\r\n maxWidth -= appointmentDefaultOffset;\r\n topOffset = 0\r\n }\r\n return {\r\n width: ratio * maxWidth,\r\n appointmentCountPerCell: appointmentCountPerCell,\r\n offset: topOffset\r\n }\r\n }\r\n _getMaxWidth() {\r\n return this.cellWidth\r\n }\r\n isAllDay(appointmentData) {\r\n return getAppointmentTakesAllDay(createAppointmentAdapter(appointmentData, this.dataAccessors, this.timeZoneCalculator), this.allDayPanelMode)\r\n }\r\n _getAppointmentMaxWidth() {\r\n return this.cellWidth - this._getAppointmentDefaultOffset()\r\n }\r\n calculateAppointmentWidth(appointment, position) {\r\n if (!this.isAllDay(appointment)) {\r\n return 0\r\n }\r\n var {\r\n startDate: startDateWithTime,\r\n endDate: endDate,\r\n normalizedEndDate: normalizedEndDate\r\n } = position.info.appointment;\r\n var startDate = dateUtils.trimTime(startDateWithTime);\r\n var cellWidth = this.cellWidth || this.getAppointmentMinSize();\r\n var durationInHours = (normalizedEndDate.getTime() - startDate.getTime()) / toMs(\"hour\");\r\n var skippedHours = getSkippedHoursInRange(startDate, endDate, appointment.allDay, this.viewDataProvider);\r\n var width = Math.ceil((durationInHours - skippedHours) / 24) * cellWidth;\r\n width = this.cropAppointmentWidth(width, cellWidth);\r\n return width\r\n }\r\n calculateAppointmentHeight(appointment, position) {\r\n if (this.isAllDay(appointment)) {\r\n return 0\r\n }\r\n var {\r\n startDate: startDate,\r\n normalizedEndDate: normalizedEndDate\r\n } = position.info.appointment;\r\n var allDay = ExpressionUtils.getField(this.dataAccessors, \"allDay\", appointment);\r\n var duration = this.getAppointmentDurationInMs(startDate, normalizedEndDate, allDay);\r\n var skippedMinutes = 60 * getSkippedHoursInRange(startDate, normalizedEndDate, appointment.allDay, this.viewDataProvider);\r\n var durationInMinutes = this._adjustDurationByDaylightDiff(duration, startDate, normalizedEndDate) / toMs(\"minute\") - skippedMinutes;\r\n var height = durationInMinutes * this._getMinuteHeight();\r\n return height\r\n }\r\n getDirection() {\r\n return \"vertical\"\r\n }\r\n _sortCondition(a, b) {\r\n if (!!a.allDay !== !!b.allDay) {\r\n return a.allDay ? 1 : -1\r\n }\r\n var isAllDay = a.allDay && b.allDay;\r\n return \"vertical\" === this.groupOrientation && isAllDay ? this._columnCondition(a, b) : this._rowCondition(a, b)\r\n }\r\n allDaySupported() {\r\n return true\r\n }\r\n _getAllDayAppointmentGeometry(coordinates) {\r\n var config = this._calculateGeometryConfig(coordinates);\r\n return this._customizeCoordinates(coordinates, config.height, config.appointmentCountPerCell, config.offset, true)\r\n }\r\n _calculateGeometryConfig(coordinates) {\r\n if (!this.allowResizing || !this.allowAllDayResizing) {\r\n coordinates.skipResizing = true\r\n }\r\n var config = super._calculateGeometryConfig(coordinates);\r\n var minAppointmentCountPerCell = Math.min(config.appointmentCountPerCell, this._getDynamicAppointmentCountPerCell().allDay);\r\n if (coordinates.allDay && coordinates.count <= minAppointmentCountPerCell) {\r\n config.offset = 0\r\n }\r\n return config\r\n }\r\n _getAppointmentCount(overlappingMode, coordinates) {\r\n return \"auto\" !== overlappingMode && 1 === coordinates.count && !isNumeric(overlappingMode) ? coordinates.count : this._getMaxAppointmentCountPerCellByType(coordinates.allDay)\r\n }\r\n _getDefaultRatio(coordinates, appointmentCountPerCell) {\r\n return coordinates.count > this.appointmentCountPerCell ? .65 : 1\r\n }\r\n _getOffsets() {\r\n return {\r\n unlimited: ALLDAY_APPOINTMENT_MIN_VERTICAL_OFFSET,\r\n auto: ALLDAY_APPOINTMENT_MAX_VERTICAL_OFFSET\r\n }\r\n }\r\n _getMaxHeight() {\r\n return this.allDayHeight || this.getAppointmentMinSize()\r\n }\r\n _needVerticalGroupBounds(allDay) {\r\n return !allDay\r\n }\r\n _needHorizontalGroupBounds() {\r\n return false\r\n }\r\n getPositionShift(timeShift, isAllDay) {\r\n if (!isAllDay && this.isAdaptive && 0 === this._getMaxAppointmentCountPerCellByType(isAllDay)) {\r\n return {\r\n top: 0,\r\n left: 0,\r\n cellPosition: 0\r\n }\r\n }\r\n return super.getPositionShift(timeShift, isAllDay)\r\n }\r\n}\r\nexport default VerticalRenderingStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/m_view_model_generator.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n dateUtilsTs\r\n} from \"../../core/utils/date\";\r\nimport {\r\n getAppointmentKey\r\n} from \"../../scheduler/r1/utils/index\";\r\nimport AgendaAppointmentsStrategy from \"./rendering_strategies/m_strategy_agenda\";\r\nimport HorizontalAppointmentsStrategy from \"./rendering_strategies/m_strategy_horizontal\";\r\nimport HorizontalMonthAppointmentsStrategy from \"./rendering_strategies/m_strategy_horizontal_month\";\r\nimport HorizontalMonthLineAppointmentsStrategy from \"./rendering_strategies/m_strategy_horizontal_month_line\";\r\nimport VerticalAppointmentsStrategy from \"./rendering_strategies/m_strategy_vertical\";\r\nimport WeekAppointmentRenderingStrategy from \"./rendering_strategies/m_strategy_week\";\r\nvar RENDERING_STRATEGIES = {\r\n horizontal: HorizontalAppointmentsStrategy,\r\n horizontalMonth: HorizontalMonthAppointmentsStrategy,\r\n horizontalMonthLine: HorizontalMonthLineAppointmentsStrategy,\r\n vertical: VerticalAppointmentsStrategy,\r\n week: WeekAppointmentRenderingStrategy,\r\n agenda: AgendaAppointmentsStrategy\r\n};\r\nexport class AppointmentViewModelGenerator {\r\n initRenderingStrategy(options) {\r\n var RenderingStrategy = RENDERING_STRATEGIES[options.appointmentRenderingStrategyName];\r\n this.renderingStrategy = new RenderingStrategy(options)\r\n }\r\n generate(filteredItems, options) {\r\n var {\r\n viewOffset: viewOffset\r\n } = options;\r\n var appointments = filteredItems ? filteredItems.slice() : [];\r\n this.initRenderingStrategy(options);\r\n var renderingStrategy = this.getRenderingStrategy();\r\n var positionMap = renderingStrategy.createTaskPositionMap(appointments);\r\n var shiftedViewModel = this.postProcess(appointments, positionMap);\r\n var viewModel = this.unshiftViewModelAppointmentsByViewOffset(shiftedViewModel, viewOffset);\r\n return {\r\n positionMap: positionMap,\r\n viewModel: viewModel\r\n }\r\n }\r\n postProcess(filteredItems, positionMap) {\r\n var renderingStrategy = this.getRenderingStrategy();\r\n return filteredItems.map((data, index) => {\r\n if (!renderingStrategy.keepAppointmentSettings()) {\r\n delete data.settings\r\n }\r\n var appointmentSettings = positionMap[index];\r\n appointmentSettings.forEach(item => {\r\n item.direction = \"vertical\" === renderingStrategy.getDirection() && !item.allDay ? \"vertical\" : \"horizontal\"\r\n });\r\n var item = {\r\n itemData: data,\r\n settings: appointmentSettings\r\n };\r\n item.needRepaint = true;\r\n item.needRemove = false;\r\n return item\r\n })\r\n }\r\n makeRenovatedViewModels(viewModel, supportAllDayRow, isVerticalGrouping) {\r\n var strategy = this.getRenderingStrategy();\r\n var regularViewModels = [];\r\n var allDayViewModels = [];\r\n var compactOptions = [];\r\n var isAllDayPanel = supportAllDayRow && !isVerticalGrouping;\r\n viewModel.forEach(_ref => {\r\n var {\r\n itemData: itemData,\r\n settings: settings\r\n } = _ref;\r\n settings.forEach(options => {\r\n var item = this.prepareViewModel(options, strategy, itemData);\r\n if (options.isCompact) {\r\n compactOptions.push({\r\n compactViewModel: options.virtual,\r\n appointmentViewModel: item\r\n })\r\n } else if (options.allDay && isAllDayPanel) {\r\n allDayViewModels.push(item)\r\n } else {\r\n regularViewModels.push(item)\r\n }\r\n })\r\n });\r\n var compactViewModels = this.prepareCompactViewModels(compactOptions, supportAllDayRow);\r\n var result = _extends({\r\n allDay: allDayViewModels,\r\n regular: regularViewModels\r\n }, compactViewModels);\r\n return result\r\n }\r\n prepareViewModel(options, strategy, itemData) {\r\n var geometry = strategy.getAppointmentGeometry(options);\r\n var viewModel = {\r\n key: getAppointmentKey(geometry),\r\n appointment: itemData,\r\n geometry: _extends(_extends({}, geometry), {\r\n leftVirtualWidth: options.leftVirtualWidth,\r\n topVirtualHeight: options.topVirtualHeight\r\n }),\r\n info: _extends(_extends({}, options.info), {\r\n allDay: options.allDay,\r\n direction: options.direction,\r\n appointmentReduced: options.appointmentReduced,\r\n groupIndex: options.groupIndex\r\n })\r\n };\r\n return viewModel\r\n }\r\n getCompactViewModelFrame(compactViewModel) {\r\n return {\r\n isAllDay: !!compactViewModel.isAllDay,\r\n isCompact: compactViewModel.isCompact,\r\n groupIndex: compactViewModel.groupIndex,\r\n geometry: {\r\n left: compactViewModel.left,\r\n top: compactViewModel.top,\r\n width: compactViewModel.width,\r\n height: compactViewModel.height\r\n },\r\n items: {\r\n colors: [],\r\n data: [],\r\n settings: []\r\n }\r\n }\r\n }\r\n prepareCompactViewModels(compactOptions, supportAllDayRow) {\r\n var regularCompact = {};\r\n var allDayCompact = {};\r\n compactOptions.forEach(_ref2 => {\r\n var {\r\n compactViewModel: compactViewModel,\r\n appointmentViewModel: appointmentViewModel\r\n } = _ref2;\r\n var {\r\n index: index,\r\n isAllDay: isAllDay\r\n } = compactViewModel;\r\n var viewModel = isAllDay && supportAllDayRow ? allDayCompact : regularCompact;\r\n if (!viewModel[index]) {\r\n viewModel[index] = this.getCompactViewModelFrame(compactViewModel)\r\n }\r\n var {\r\n settings: settings,\r\n data: data,\r\n colors: colors\r\n } = viewModel[index].items;\r\n settings.push(appointmentViewModel);\r\n data.push(appointmentViewModel.appointment);\r\n colors.push(appointmentViewModel.info.resourceColor)\r\n });\r\n var toArray = items => Object.keys(items).map(key => _extends({\r\n key: key\r\n }, items[key]));\r\n var allDayViewModels = toArray(allDayCompact);\r\n var regularViewModels = toArray(regularCompact);\r\n return {\r\n allDayCompact: allDayViewModels,\r\n regularCompact: regularViewModels\r\n }\r\n }\r\n getRenderingStrategy() {\r\n return this.renderingStrategy\r\n }\r\n unshiftViewModelAppointmentsByViewOffset(viewModel, viewOffset) {\r\n var _a, _b;\r\n var processedAppointments = new Set;\r\n for (var model of viewModel) {\r\n for (var setting of null !== (_a = model.settings) && void 0 !== _a ? _a : []) {\r\n var appointment = null === (_b = null === setting || void 0 === setting ? void 0 : setting.info) || void 0 === _b ? void 0 : _b.appointment;\r\n if (appointment && !processedAppointments.has(appointment)) {\r\n appointment.startDate = dateUtilsTs.addOffsets(appointment.startDate, [viewOffset]);\r\n appointment.endDate = dateUtilsTs.addOffsets(appointment.endDate, [viewOffset]);\r\n appointment.normalizedEndDate = dateUtilsTs.addOffsets(appointment.normalizedEndDate, [viewOffset]);\r\n processedAppointments.add(appointment)\r\n }\r\n }\r\n }\r\n return viewModel\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/appointments/rendering_strategies/m_strategy_week.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport VerticalRenderingStrategy from \"./m_strategy_vertical\";\r\nclass WeekAppointmentRenderingStrategy extends VerticalRenderingStrategy {\r\n isApplyCompactAppointmentOffset() {\r\n if (this.isAdaptive && 0 === this._getMaxAppointmentCountPerCellByType()) {\r\n return false\r\n }\r\n return this.supportCompactDropDownAppointments()\r\n }\r\n}\r\nexport default WeekAppointmentRenderingStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/m_appointments_layout_manager.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n getAppointmentRenderingStrategyName,\r\n getCellDuration,\r\n getGroupCount\r\n} from \"../scheduler/r1/utils/index\";\r\nimport {\r\n AppointmentViewModelGenerator\r\n} from \"./appointments/m_view_model_generator\";\r\nimport {\r\n getAllDayHeight,\r\n getCellHeight,\r\n getCellWidth\r\n} from \"./workspaces/helpers/m_position_helper\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nclass AppointmentLayoutManager {\r\n constructor(instance) {\r\n this.instance = instance;\r\n this.appointmentViewModel = new AppointmentViewModelGenerator\r\n }\r\n get appointmentRenderingStrategyName() {\r\n return getAppointmentRenderingStrategyName(this.instance.currentViewType)\r\n }\r\n getCellDimensions(options) {\r\n if (this.instance._workSpace) {\r\n return {\r\n width: this.instance._workSpace.getCellWidth(),\r\n height: this.instance._workSpace.getCellHeight(),\r\n allDayHeight: this.instance._workSpace.getAllDayHeight()\r\n }\r\n }\r\n return\r\n }\r\n _getRenderingStrategyOptions() {\r\n var workspace = this.instance.getWorkSpace();\r\n var {\r\n virtualScrollingDispatcher: virtualScrollingDispatcher\r\n } = this.instance.getWorkSpace();\r\n var {\r\n cellCountInsideLeftVirtualCell: cellCountInsideLeftVirtualCell,\r\n cellCountInsideTopVirtualRow: cellCountInsideTopVirtualRow\r\n } = virtualScrollingDispatcher;\r\n var groupCount = getGroupCount(this.instance.option(\"loadedResources\"));\r\n var DOMMetaData = workspace.getDOMElementsMetaData();\r\n var allDayHeight = getAllDayHeight(workspace.option(\"showAllDayPanel\"), workspace._isVerticalGroupedWorkSpace(), DOMMetaData);\r\n var rowCount = workspace._getRowCount();\r\n var {\r\n positionHelper: positionHelper,\r\n viewDataProvider: viewDataProvider\r\n } = workspace;\r\n var visibleDayDuration = viewDataProvider.getVisibleDayDuration(workspace.option(\"startDayHour\"), workspace.option(\"endDayHour\"), workspace.option(\"hoursInterval\"));\r\n var cellDuration = getCellDuration(workspace.type, workspace.option(\"startDayHour\"), workspace.option(\"endDayHour\"), workspace.option(\"hoursInterval\"));\r\n return {\r\n resources: this.instance.option(\"resources\"),\r\n loadedResources: this.instance.option(\"loadedResources\"),\r\n getAppointmentColor: this.instance.createGetAppointmentColor(),\r\n dataAccessors: this.instance._dataAccessors,\r\n appointmentRenderingStrategyName: this.appointmentRenderingStrategyName,\r\n adaptivityEnabled: this.instance.option(\"adaptivityEnabled\"),\r\n rtlEnabled: this.instance.option(\"rtlEnabled\"),\r\n startDayHour: this.instance._getCurrentViewOption(\"startDayHour\"),\r\n endDayHour: this.instance._getCurrentViewOption(\"endDayHour\"),\r\n viewOffset: this.instance._getCurrentViewOption(\"offset\") * toMs(\"minute\"),\r\n maxAppointmentsPerCell: this.instance._getCurrentViewOption(\"maxAppointmentsPerCell\"),\r\n currentDate: this.instance.option(\"currentDate\"),\r\n isVirtualScrolling: this.instance.isVirtualScrolling(),\r\n leftVirtualCellCount: cellCountInsideLeftVirtualCell,\r\n topVirtualCellCount: cellCountInsideTopVirtualRow,\r\n intervalCount: workspace.option(\"intervalCount\"),\r\n hoursInterval: workspace.option(\"hoursInterval\"),\r\n showAllDayPanel: workspace.option(\"showAllDayPanel\"),\r\n isGroupedAllDayPanel: workspace.isGroupedAllDayPanel(),\r\n groups: this.instance._getCurrentViewOption(\"groups\"),\r\n groupCount: groupCount,\r\n rowCount: rowCount,\r\n appointmentCountPerCell: this.instance.option(\"_appointmentCountPerCell\"),\r\n appointmentOffset: this.instance.option(\"_appointmentOffset\"),\r\n allowResizing: this.instance._allowResizing(),\r\n allowAllDayResizing: this.instance._allowAllDayResizing(),\r\n startViewDate: workspace.getStartViewDate(),\r\n groupOrientation: workspace._getRealGroupOrientation(),\r\n cellWidth: getCellWidth(DOMMetaData),\r\n cellHeight: getCellHeight(DOMMetaData),\r\n allDayHeight: allDayHeight,\r\n resizableStep: positionHelper.getResizableStep(),\r\n visibleDayDuration: visibleDayDuration,\r\n allDayPanelMode: this.instance._getCurrentViewOption(\"allDayPanelMode\"),\r\n timeZoneCalculator: this.instance.timeZoneCalculator,\r\n timeZone: this.instance.option(\"timeZone\"),\r\n firstDayOfWeek: this.instance.getFirstDayOfWeek(),\r\n viewStartDayHour: this.instance._getCurrentViewOption(\"startDayHour\"),\r\n viewEndDayHour: this.instance._getCurrentViewOption(\"endDayHour\"),\r\n viewType: workspace.type,\r\n endViewDate: workspace.getEndViewDate(),\r\n positionHelper: positionHelper,\r\n isGroupedByDate: workspace.isGroupedByDate(),\r\n cellDuration: cellDuration,\r\n cellDurationInMinutes: workspace.option(\"cellDuration\"),\r\n viewDataProvider: workspace.viewDataProvider,\r\n supportAllDayRow: workspace.supportAllDayRow(),\r\n dateRange: workspace.getDateRange(),\r\n intervalDuration: workspace.getIntervalDuration(),\r\n allDayIntervalDuration: workspace.getIntervalDuration(true),\r\n isVerticalGroupOrientation: workspace.isVerticalOrientation(),\r\n DOMMetaData: DOMMetaData,\r\n instance: this.instance,\r\n agendaDuration: workspace.option(\"agendaDuration\")\r\n }\r\n }\r\n createAppointmentsMap(items) {\r\n var renderingStrategyOptions = this._getRenderingStrategyOptions();\r\n var {\r\n viewModel: viewModel,\r\n positionMap: positionMap\r\n } = this.appointmentViewModel.generate(items, renderingStrategyOptions);\r\n this._positionMap = positionMap;\r\n return viewModel\r\n }\r\n _isDataChanged(data) {\r\n var {\r\n appointmentDataProvider: appointmentDataProvider\r\n } = this.instance;\r\n var updatedData = appointmentDataProvider.getUpdatedAppointment();\r\n return updatedData === data || appointmentDataProvider.getUpdatedAppointmentKeys().some(item => data[item.key] === item.value)\r\n }\r\n _isAppointmentShouldAppear(currentAppointment, sourceAppointment) {\r\n return currentAppointment.needRepaint && sourceAppointment.needRemove\r\n }\r\n _isSettingChanged(settings, sourceSetting) {\r\n if (settings.length !== sourceSetting.length) {\r\n return true\r\n }\r\n var createSettingsToCompare = (settings, index) => {\r\n var currentSetting = settings[index];\r\n var leftVirtualCellCount = currentSetting.leftVirtualCellCount || 0;\r\n var topVirtualCellCount = currentSetting.topVirtualCellCount || 0;\r\n var columnIndex = currentSetting.columnIndex + leftVirtualCellCount;\r\n var rowIndex = currentSetting.rowIndex + topVirtualCellCount;\r\n var hMax = currentSetting.reduced ? currentSetting.hMax : void 0;\r\n var vMax = currentSetting.reduced ? currentSetting.vMax : void 0;\r\n return _extends(_extends({}, currentSetting), {\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex,\r\n positionByMap: void 0,\r\n topVirtualCellCount: void 0,\r\n leftVirtualCellCount: void 0,\r\n leftVirtualWidth: void 0,\r\n topVirtualHeight: void 0,\r\n hMax: hMax,\r\n vMax: vMax,\r\n info: {}\r\n })\r\n };\r\n for (var i = 0; i < settings.length; i++) {\r\n var newSettings = createSettingsToCompare(settings, i);\r\n var oldSettings = createSettingsToCompare(sourceSetting, i);\r\n if (oldSettings) {\r\n oldSettings.sortedIndex = newSettings.sortedIndex\r\n }\r\n if (!equalByValue(newSettings, oldSettings)) {\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n _getAssociatedSourceAppointment(currentAppointment, sourceAppointments) {\r\n for (var i = 0; i < sourceAppointments.length; i++) {\r\n var item = sourceAppointments[i];\r\n if (item.itemData === currentAppointment.itemData) {\r\n return item\r\n }\r\n }\r\n return null\r\n }\r\n _getDeletedAppointments(currentAppointments, sourceAppointments) {\r\n var result = [];\r\n for (var i = 0; i < sourceAppointments.length; i++) {\r\n var sourceAppointment = sourceAppointments[i];\r\n var currentAppointment = this._getAssociatedSourceAppointment(sourceAppointment, currentAppointments);\r\n if (!currentAppointment) {\r\n sourceAppointment.needRemove = true;\r\n result.push(sourceAppointment)\r\n }\r\n }\r\n return result\r\n }\r\n getRepaintedAppointments(currentAppointments, sourceAppointments) {\r\n if (0 === sourceAppointments.length || \"agenda\" === this.appointmentRenderingStrategyName) {\r\n return currentAppointments\r\n }\r\n currentAppointments.forEach(appointment => {\r\n var sourceAppointment = this._getAssociatedSourceAppointment(appointment, sourceAppointments);\r\n if (sourceAppointment) {\r\n var isDataChanged = this._isDataChanged(appointment.itemData);\r\n var isSettingChanged = this._isSettingChanged(appointment.settings, sourceAppointment.settings);\r\n var isAppointmentShouldAppear = this._isAppointmentShouldAppear(appointment, sourceAppointment);\r\n appointment.needRepaint = isDataChanged || isSettingChanged || isAppointmentShouldAppear\r\n }\r\n });\r\n return currentAppointments.concat(this._getDeletedAppointments(currentAppointments, sourceAppointments))\r\n }\r\n getRenderingStrategyInstance() {\r\n var renderingStrategy = this.appointmentViewModel.getRenderingStrategy();\r\n if (!renderingStrategy) {\r\n var options = this._getRenderingStrategyOptions();\r\n this.appointmentViewModel.initRenderingStrategy(options)\r\n }\r\n return this.appointmentViewModel.getRenderingStrategy()\r\n }\r\n}\r\nexport default AppointmentLayoutManager;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/m_data_structures.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport class AppointmentTooltipInfo {\r\n constructor(appointment) {\r\n var targetedAppointment = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : void 0;\r\n var color = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : [];\r\n var settings = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : [];\r\n this.appointment = appointment;\r\n this.targetedAppointment = targetedAppointment;\r\n this.color = color;\r\n this.settings = settings\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/m_compact_appointments_helper.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n locate,\r\n move\r\n} from \"../../animation/translator\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n FunctionTemplate\r\n} from \"../../core/templates/function_template\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport Button from \"../../ui/button\";\r\nimport {\r\n getOverflowIndicatorColor\r\n} from \"../scheduler/r1/utils/index\";\r\nimport {\r\n createAppointmentAdapter\r\n} from \"./m_appointment_adapter\";\r\nimport {\r\n LIST_ITEM_CLASS,\r\n LIST_ITEM_DATA_KEY\r\n} from \"./m_constants\";\r\nimport {\r\n AppointmentTooltipInfo\r\n} from \"./m_data_structures\";\r\nvar APPOINTMENT_COLLECTOR_CLASS = \"dx-scheduler-appointment-collector\";\r\nvar COMPACT_APPOINTMENT_COLLECTOR_CLASS = \"\".concat(APPOINTMENT_COLLECTOR_CLASS, \"-compact\");\r\nvar APPOINTMENT_COLLECTOR_CONTENT_CLASS = \"\".concat(APPOINTMENT_COLLECTOR_CLASS, \"-content\");\r\nvar WEEK_VIEW_COLLECTOR_OFFSET = 5;\r\nvar COMPACT_THEME_WEEK_VIEW_COLLECTOR_OFFSET = 1;\r\nexport class CompactAppointmentsHelper {\r\n constructor(instance) {\r\n this.instance = instance;\r\n this.elements = []\r\n }\r\n render(options) {\r\n var {\r\n isCompact: isCompact,\r\n items: items,\r\n buttonColor: buttonColor\r\n } = options;\r\n var template = this._createTemplate(items.data.length, isCompact);\r\n var button = this._createCompactButton(template, options);\r\n var $button = button.$element();\r\n this._makeBackgroundColor($button, items.colors, buttonColor);\r\n this._makeBackgroundDarker($button);\r\n this.elements.push($button);\r\n $button.data(\"items\", this._createTooltipInfos(items));\r\n return $button\r\n }\r\n clear() {\r\n this.elements.forEach(button => {\r\n button.detach();\r\n button.remove()\r\n });\r\n this.elements = []\r\n }\r\n _createTooltipInfos(items) {\r\n return items.data.map((appointment, index) => {\r\n var _a;\r\n var targetedAdapter = createAppointmentAdapter(appointment, this.instance._dataAccessors, this.instance.timeZoneCalculator).clone();\r\n if ((null === (_a = items.settings) || void 0 === _a ? void 0 : _a.length) > 0) {\r\n var {\r\n info: info\r\n } = items.settings[index];\r\n targetedAdapter.startDate = info.sourceAppointment.startDate;\r\n targetedAdapter.endDate = info.sourceAppointment.endDate\r\n }\r\n return new AppointmentTooltipInfo(appointment, targetedAdapter.source(), items.colors[index], items.settings[index])\r\n })\r\n }\r\n _onButtonClick(e, options) {\r\n var $button = $(e.element);\r\n this.instance.showAppointmentTooltipCore($button, $button.data(\"items\"), this._getExtraOptionsForTooltip(options, $button))\r\n }\r\n _getExtraOptionsForTooltip(options, $appointmentCollector) {\r\n return {\r\n clickEvent: this._clickEvent(options.onAppointmentClick).bind(this),\r\n dragBehavior: options.allowDrag && this._createTooltipDragBehavior($appointmentCollector).bind(this),\r\n dropDownAppointmentTemplate: this.instance.option().dropDownAppointmentTemplate,\r\n isButtonClick: true\r\n }\r\n }\r\n _clickEvent(onAppointmentClick) {\r\n return e => {\r\n var clickEventArgs = this.instance._createEventArgs(e);\r\n onAppointmentClick(clickEventArgs)\r\n }\r\n }\r\n _createTooltipDragBehavior($appointmentCollector) {\r\n return e => {\r\n var $element = $(e.element);\r\n var $schedulerElement = $(this.instance.element());\r\n var workSpace = this.instance.getWorkSpace();\r\n var initialPosition = locate($appointmentCollector);\r\n var options = {\r\n filter: \".\".concat(LIST_ITEM_CLASS),\r\n isSetCursorOffset: true,\r\n initialPosition: initialPosition,\r\n getItemData: itemElement => {\r\n var _a;\r\n return null === (_a = $(itemElement).data(LIST_ITEM_DATA_KEY)) || void 0 === _a ? void 0 : _a.appointment\r\n },\r\n getItemSettings: (_, event) => event.itemSettings\r\n };\r\n workSpace._createDragBehaviorBase($element, $schedulerElement, options)\r\n }\r\n }\r\n _getCollectorOffset(width, cellWidth) {\r\n return cellWidth - width - this._getCollectorRightOffset()\r\n }\r\n _getCollectorRightOffset() {\r\n return this.instance.getRenderingStrategyInstance()._isCompactTheme() ? COMPACT_THEME_WEEK_VIEW_COLLECTOR_OFFSET : WEEK_VIEW_COLLECTOR_OFFSET\r\n }\r\n _makeBackgroundDarker(button) {\r\n button.css(\"boxShadow\", \"inset \".concat(getBoundingRect(button.get(0)).width, \"px 0 0 0 rgba(0, 0, 0, 0.3)\"))\r\n }\r\n _makeBackgroundColor($button, colors, color) {\r\n when.apply(null, colors).done(function() {\r\n this._makeBackgroundColorCore($button, color, [...arguments])\r\n }.bind(this))\r\n }\r\n _makeBackgroundColorCore($button, color, itemColors) {\r\n color && color.done(color => {\r\n var backgroundColor = getOverflowIndicatorColor(color, itemColors);\r\n if (backgroundColor) {\r\n $button.css(\"backgroundColor\", backgroundColor)\r\n }\r\n })\r\n }\r\n _setPosition(element, position) {\r\n move(element, {\r\n top: position.top,\r\n left: position.left\r\n })\r\n }\r\n _createCompactButton(template, options) {\r\n var $button = this._createCompactButtonElement(options);\r\n return this.instance._createComponent($button, Button, {\r\n type: \"default\",\r\n width: options.width,\r\n height: options.height,\r\n onClick: e => this._onButtonClick(e, options),\r\n template: this._renderTemplate(template, options.items, options.isCompact)\r\n })\r\n }\r\n _createCompactButtonElement(_ref) {\r\n var {\r\n isCompact: isCompact,\r\n $container: $container,\r\n coordinates: coordinates\r\n } = _ref;\r\n var result = $(\"<div>\").addClass(APPOINTMENT_COLLECTOR_CLASS).toggleClass(COMPACT_APPOINTMENT_COLLECTOR_CLASS, isCompact).appendTo($container);\r\n this._setPosition(result, coordinates);\r\n return result\r\n }\r\n _renderTemplate(template, items, isCompact) {\r\n return new FunctionTemplate(options => template.render({\r\n model: {\r\n appointmentCount: items.data.length,\r\n isCompact: isCompact\r\n },\r\n container: options.container\r\n }))\r\n }\r\n _createTemplate(count, isCompact) {\r\n this._initButtonTemplate(count, isCompact);\r\n return this.instance._getAppointmentTemplate(\"appointmentCollectorTemplate\")\r\n }\r\n _initButtonTemplate(count, isCompact) {\r\n this.instance._templateManager.addDefaultTemplates({\r\n appointmentCollector: new FunctionTemplate(options => this._createButtonTemplate(count, $(options.container), isCompact))\r\n })\r\n }\r\n _createButtonTemplate(appointmentCount, element, isCompact) {\r\n var text = isCompact ? appointmentCount : messageLocalization.getFormatter(\"dxScheduler-moreAppointments\")(appointmentCount);\r\n return element.append($(\"<span>\").text(text)).addClass(APPOINTMENT_COLLECTOR_CONTENT_CLASS)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/m_utils.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport $ from \"../../core/renderer\";\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 each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n getOuterHeight,\r\n setHeight,\r\n setWidth\r\n} from \"../../core/utils/size\";\r\nimport {\r\n APPOINTMENT_SETTINGS_KEY\r\n} from \"./m_constants\";\r\nexport var utils = {\r\n dataAccessors: {\r\n getAppointmentSettings: element => $(element).data(APPOINTMENT_SETTINGS_KEY),\r\n getAppointmentInfo: element => {\r\n var settings = utils.dataAccessors.getAppointmentSettings(element);\r\n return null === settings || void 0 === settings ? void 0 : settings.info\r\n },\r\n create: (fields, currentDataAccessors, forceIsoDateParsing, dateSerializationFormat) => {\r\n var dataAccessors = currentDataAccessors ? _extends({}, currentDataAccessors) : {\r\n getter: {},\r\n setter: {},\r\n expr: {}\r\n };\r\n each(fields, (name, expr) => {\r\n if (expr) {\r\n var getter = compileGetter(expr);\r\n var setter = compileSetter(expr);\r\n var dateGetter;\r\n var dateSetter;\r\n var serializationFormat;\r\n if (field = name, \"startDate\" === field || \"endDate\" === field) {\r\n dateGetter = object => {\r\n var value = getter(object);\r\n if (forceIsoDateParsing) {\r\n value = dateSerialization.deserializeDate(value)\r\n }\r\n return value\r\n };\r\n dateSetter = (object, value) => {\r\n if (dateSerializationFormat) {\r\n serializationFormat = dateSerializationFormat\r\n } else if (forceIsoDateParsing && !serializationFormat) {\r\n var oldValue = getter(object);\r\n serializationFormat = dateSerialization.getDateSerializationFormat(oldValue)\r\n }\r\n var newValue = dateSerialization.serializeDate(value, serializationFormat);\r\n setter(object, newValue)\r\n }\r\n }\r\n dataAccessors.getter[name] = dateGetter || getter;\r\n dataAccessors.setter[name] = dateSetter || setter;\r\n dataAccessors.expr[\"\".concat(name, \"Expr\")] = expr\r\n } else {\r\n delete dataAccessors.getter[name];\r\n delete dataAccessors.setter[name];\r\n delete dataAccessors.expr[\"\".concat(name, \"Expr\")]\r\n }\r\n var field\r\n });\r\n return dataAccessors\r\n }\r\n },\r\n DOM: {\r\n getHeaderHeight: header => header ? header._$element && parseInt(getOuterHeight(header._$element), 10) : 0\r\n },\r\n renovation: {\r\n renderComponent: (widget, parentElement, componentClass, componentName, viewModel) => {\r\n var component = widget[componentName];\r\n if (!component) {\r\n var container = getPublicElement(parentElement);\r\n component = widget._createComponent(container, componentClass, viewModel);\r\n widget[componentName] = component\r\n } else {\r\n var $element = component.$element();\r\n var elementStyle = $element.get(0).style;\r\n var {\r\n height: height\r\n } = elementStyle;\r\n var {\r\n width: width\r\n } = elementStyle;\r\n component.option(viewModel);\r\n if (height) {\r\n setHeight($element, height)\r\n }\r\n if (width) {\r\n setWidth($element, width)\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/m_subscribes.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport dateUtils from \"../../core/utils/date\";\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 isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n formatDates,\r\n getFormatType\r\n} from \"./appointments/m_text_utils\";\r\nimport {\r\n createAppointmentAdapter\r\n} from \"./m_appointment_adapter\";\r\nimport {\r\n AGENDA_LAST_IN_DATE_APPOINTMENT_CLASS\r\n} from \"./m_classes\";\r\nimport {\r\n utils\r\n} from \"./m_utils\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nvar subscribes = {\r\n isCurrentViewAgenda() {\r\n return \"agenda\" === this.currentViewType\r\n },\r\n currentViewUpdated(currentView) {\r\n this.option(\"currentView\", currentView)\r\n },\r\n currentDateUpdated(date) {\r\n this.option(\"currentDate\", date)\r\n },\r\n getOption(name) {\r\n return this.option(name)\r\n },\r\n getWorkspaceOption(name) {\r\n return this.getWorkSpace().option(name)\r\n },\r\n isVirtualScrolling() {\r\n return this.isVirtualScrolling()\r\n },\r\n setCellDataCacheAlias(appointment, geometry) {\r\n this._workSpace.setCellDataCacheAlias(appointment, geometry)\r\n },\r\n isGroupedByDate() {\r\n return this.getWorkSpace().isGroupedByDate()\r\n },\r\n showAppointmentTooltip(options) {\r\n var targetedAppointment = this.getTargetedAppointment(options.data, options.target);\r\n this.showAppointmentTooltip(options.data, options.target, targetedAppointment)\r\n },\r\n hideAppointmentTooltip() {\r\n this.hideAppointmentTooltip()\r\n },\r\n showEditAppointmentPopup(options) {\r\n var targetedData = this.getTargetedAppointment(options.data, options.target);\r\n this.showAppointmentPopup(options.data, false, targetedData)\r\n },\r\n updateAppointmentAfterResize(options) {\r\n var info = utils.dataAccessors.getAppointmentInfo(options.$appointment);\r\n var {\r\n exceptionDate: exceptionDate\r\n } = info.sourceAppointment;\r\n this._checkRecurringAppointment(options.target, options.data, exceptionDate, () => {\r\n this._updateAppointment(options.target, options.data, (function() {\r\n this._appointments.moveAppointmentBack()\r\n }))\r\n })\r\n },\r\n getUpdatedData(rawAppointment) {\r\n return this._getUpdatedData(rawAppointment)\r\n },\r\n updateAppointmentAfterDrag(_ref) {\r\n var {\r\n event: event,\r\n element: element,\r\n rawAppointment: rawAppointment,\r\n newCellIndex: newCellIndex,\r\n oldCellIndex: oldCellIndex\r\n } = _ref;\r\n var info = utils.dataAccessors.getAppointmentInfo(element);\r\n var appointment = createAppointmentAdapter(rawAppointment, this._dataAccessors, this.timeZoneCalculator);\r\n var targetedAppointment = createAppointmentAdapter(extend({}, rawAppointment, this._getUpdatedData(rawAppointment)), this._dataAccessors, this.timeZoneCalculator);\r\n var targetedRawAppointment = targetedAppointment.source();\r\n var becomeAllDay = targetedAppointment.allDay;\r\n var wasAllDay = appointment.allDay;\r\n var movedBetweenAllDayAndSimple = this._workSpace.supportAllDayRow() && (wasAllDay && !becomeAllDay || !wasAllDay && becomeAllDay);\r\n var isDragAndDropBetweenComponents = event.fromComponent !== event.toComponent;\r\n if (-1 === newCellIndex) {\r\n if (!isDragAndDropBetweenComponents) {\r\n this._appointments.moveAppointmentBack(event)\r\n }\r\n return\r\n }\r\n if (newCellIndex !== oldCellIndex || isDragAndDropBetweenComponents || movedBetweenAllDayAndSimple) {\r\n this._checkRecurringAppointment(rawAppointment, targetedRawAppointment, info.sourceAppointment.exceptionDate, () => {\r\n this._updateAppointment(rawAppointment, targetedRawAppointment, (function() {\r\n this._appointments.moveAppointmentBack(event)\r\n }), event)\r\n }, void 0, void 0, event)\r\n } else {\r\n this._appointments.moveAppointmentBack(event)\r\n }\r\n },\r\n onDeleteButtonPress(options) {\r\n var targetedData = this.getTargetedAppointment(options.data, $(options.target));\r\n this.checkAndDeleteAppointment(options.data, targetedData);\r\n this.hideAppointmentTooltip()\r\n },\r\n getTextAndFormatDate(appointmentRaw, targetedAppointmentRaw, format) {\r\n var appointmentAdapter = createAppointmentAdapter(appointmentRaw, this._dataAccessors, this.timeZoneCalculator);\r\n var targetedAdapter = createAppointmentAdapter(targetedAppointmentRaw || appointmentRaw, this._dataAccessors, this.timeZoneCalculator);\r\n var startDate = this.timeZoneCalculator.createDate(targetedAdapter.startDate, {\r\n path: \"toGrid\"\r\n });\r\n var endDate = this.timeZoneCalculator.createDate(targetedAdapter.endDate, {\r\n path: \"toGrid\"\r\n });\r\n var formatType = format || getFormatType(startDate, endDate, targetedAdapter.allDay, \"month\" !== this.currentViewType);\r\n return {\r\n text: targetedAdapter.text || appointmentAdapter.text,\r\n formatDate: formatDates(startDate, endDate, formatType)\r\n }\r\n },\r\n _createAppointmentTitle(data) {\r\n if (isPlainObject(data)) {\r\n return data.text\r\n }\r\n return String(data)\r\n },\r\n getResizableAppointmentArea(options) {\r\n var {\r\n allDay: allDay\r\n } = options;\r\n var groups = this._getCurrentViewOption(\"groups\");\r\n if (groups && groups.length) {\r\n if (allDay || this.getLayoutManager().getRenderingStrategyInstance()._needHorizontalGroupBounds()) {\r\n var horizontalGroupBounds = this._workSpace.getGroupBounds(options.coordinates);\r\n return {\r\n left: horizontalGroupBounds.left,\r\n right: horizontalGroupBounds.right,\r\n top: 0,\r\n bottom: 0\r\n }\r\n }\r\n if (this.getLayoutManager().getRenderingStrategyInstance()._needVerticalGroupBounds(allDay) && this._workSpace._isVerticalGroupedWorkSpace()) {\r\n var verticalGroupBounds = this._workSpace.getGroupBounds(options.coordinates);\r\n return {\r\n left: 0,\r\n right: 0,\r\n top: verticalGroupBounds.top,\r\n bottom: verticalGroupBounds.bottom\r\n }\r\n }\r\n }\r\n return\r\n },\r\n needRecalculateResizableArea() {\r\n return this.getWorkSpace().needRecalculateResizableArea()\r\n },\r\n getAppointmentGeometry(settings) {\r\n return this.getLayoutManager().getRenderingStrategyInstance().getAppointmentGeometry(settings)\r\n },\r\n isAllDay(appointmentData) {\r\n return this.getLayoutManager().getRenderingStrategyInstance().isAllDay(appointmentData)\r\n },\r\n getDeltaTime(e, initialSize, itemData) {\r\n return this.getLayoutManager().getRenderingStrategyInstance().getDeltaTime(e, initialSize, itemData)\r\n },\r\n getDropDownAppointmentWidth(isAllDay) {\r\n return this.getLayoutManager().getRenderingStrategyInstance().getDropDownAppointmentWidth(this._getViewCountConfig().intervalCount, isAllDay)\r\n },\r\n getDropDownAppointmentHeight() {\r\n return this.getLayoutManager().getRenderingStrategyInstance().getDropDownAppointmentHeight()\r\n },\r\n getCellWidth() {\r\n return this.getWorkSpace().getCellWidth()\r\n },\r\n getCellHeight() {\r\n return this.getWorkSpace().getCellHeight()\r\n },\r\n getMaxAppointmentCountPerCellByType(isAllDay) {\r\n return this.getRenderingStrategyInstance()._getMaxAppointmentCountPerCellByType(isAllDay)\r\n },\r\n needCorrectAppointmentDates() {\r\n return this.getRenderingStrategyInstance().needCorrectAppointmentDates()\r\n },\r\n getRenderingStrategyDirection() {\r\n return this.getRenderingStrategyInstance().getDirection()\r\n },\r\n updateAppointmentEndDate(options) {\r\n var {\r\n endDate: endDate\r\n } = options;\r\n var endDayHour = this._getCurrentViewOption(\"endDayHour\");\r\n var startDayHour = this._getCurrentViewOption(\"startDayHour\");\r\n var updatedEndDate = endDate;\r\n if (endDate.getHours() >= endDayHour) {\r\n updatedEndDate.setHours(endDayHour, 0, 0, 0)\r\n } else if (!options.isSameDate && startDayHour > 0 && 60 * endDate.getHours() + endDate.getMinutes() < 60 * startDayHour) {\r\n updatedEndDate = new Date(updatedEndDate.getTime() - toMs(\"day\"));\r\n updatedEndDate.setHours(endDayHour, 0, 0, 0)\r\n }\r\n return updatedEndDate\r\n },\r\n renderCompactAppointments(options) {\r\n this._compactAppointmentsHelper.render(options)\r\n },\r\n clearCompactAppointments() {\r\n this._compactAppointmentsHelper.clear()\r\n },\r\n supportCompactDropDownAppointments() {\r\n return this.getLayoutManager().getRenderingStrategyInstance().supportCompactDropDownAppointments()\r\n },\r\n getGroupCount() {\r\n return this._workSpace._getGroupCount()\r\n },\r\n mapAppointmentFields(config) {\r\n var {\r\n itemData: itemData,\r\n itemElement: itemElement,\r\n targetedAppointment: targetedAppointment\r\n } = config;\r\n var targetedData = targetedAppointment || this.getTargetedAppointment(itemData, itemElement);\r\n return {\r\n appointmentData: config.itemData,\r\n appointmentElement: config.itemElement,\r\n targetedAppointmentData: targetedData\r\n }\r\n },\r\n dayHasAppointment(day, appointment, trimTime) {\r\n return this.dayHasAppointment(day, appointment, trimTime)\r\n },\r\n getLayoutManager() {\r\n return this._layoutManager\r\n },\r\n getAgendaVerticalStepHeight() {\r\n return this.getWorkSpace().getAgendaVerticalStepHeight()\r\n },\r\n getAgendaDuration() {\r\n return this._getCurrentViewOption(\"agendaDuration\")\r\n },\r\n getStartViewDate() {\r\n return this.getStartViewDate()\r\n },\r\n getEndViewDate() {\r\n return this.getEndViewDate()\r\n },\r\n forceMaxAppointmentPerCell() {\r\n return this.forceMaxAppointmentPerCell()\r\n },\r\n onAgendaReady(rows) {\r\n var $appts = this.getAppointmentsInstance()._itemElements();\r\n var total = 0;\r\n var applyClass = function(_, count) {\r\n var index = count + total - 1;\r\n $appts.eq(index).addClass(AGENDA_LAST_IN_DATE_APPOINTMENT_CLASS);\r\n total += count\r\n };\r\n for (var i = 0; i < rows.length; i++) {\r\n each(rows[i], applyClass)\r\n }\r\n },\r\n getTimezone() {\r\n return this._getTimezoneOffsetByOption()\r\n },\r\n getTargetedAppointmentData(appointment, element) {\r\n return this.getTargetedAppointment(appointment, element)\r\n },\r\n getEndDayHour() {\r\n return this._workSpace.option(\"endDayHour\") || this.option(\"endDayHour\")\r\n },\r\n getStartDayHour() {\r\n return this._workSpace.option(\"startDayHour\") || this.option(\"startDayHour\")\r\n },\r\n getViewOffsetMs() {\r\n return this.getViewOffsetMs()\r\n },\r\n isAdaptive() {\r\n return this.option(\"adaptivityEnabled\")\r\n },\r\n removeDroppableCellClass() {\r\n this._workSpace.removeDroppableCellClass()\r\n }\r\n};\r\nexport default subscribes;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/options_validator/common/validation_functions.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var isInteger = value => Number.isInteger(value);\r\nexport var greaterThan = function(value, minimalValue) {\r\n var strict = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : true;\r\n return strict ? value > minimalValue : value >= minimalValue\r\n};\r\nexport var lessThan = function(value, maximalValue) {\r\n var strict = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : true;\r\n return strict ? value < maximalValue : value <= maximalValue\r\n};\r\nexport var inRange = (value, _ref) => {\r\n var [from, to] = _ref;\r\n return value >= from && value <= to\r\n};\r\nexport var divisibleBy = (value, divider) => value % divider === 0;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/options_validator/core/options_validator.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport class OptionsValidator {\r\n constructor(validators) {\r\n this.validators = validators\r\n }\r\n validate(options) {\r\n var errors = Object.entries(this.validators).reduce((result, _ref) => {\r\n var [validatorName, validator] = _ref;\r\n var validatorResult = validator.validate(options);\r\n if (true !== validatorResult) {\r\n result[validatorName] = validatorResult\r\n }\r\n return result\r\n }, {});\r\n return Object.keys(errors).length > 0 ? errors : true\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/options_validator/core/options_validator_error_handler.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport class OptionsValidatorErrorHandler {\r\n constructor(validatorNameToErrorCodeMap, globalErrorHandler) {\r\n this.validatorNameToErrorCodeMap = validatorNameToErrorCodeMap;\r\n this.globalErrorHandler = globalErrorHandler\r\n }\r\n handleValidationResult(optionsValidatorResult) {\r\n if (true === optionsValidatorResult) {\r\n return\r\n }\r\n var uniqErrorCodes = Object.keys(optionsValidatorResult).reduce((set, validatorName) => {\r\n var errorCode = this.validatorNameToErrorCodeMap[validatorName];\r\n if (errorCode) {\r\n set.add(errorCode)\r\n }\r\n return set\r\n }, new Set);\r\n var errorCodeArray = [...uniqErrorCodes];\r\n errorCodeArray.forEach((errorCode, idx) => {\r\n var isLastErrorCode = idx === errorCodeArray.length - 1;\r\n if (!isLastErrorCode) {\r\n this.globalErrorHandler.logError(errorCode)\r\n } else {\r\n this.globalErrorHandler.throwError(errorCode)\r\n }\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/options_validator/core/validator.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport class Validator {\r\n constructor(valueSelector, rules) {\r\n this.valueSelector = valueSelector;\r\n this.rules = rules\r\n }\r\n validate(options) {\r\n var value = this.valueSelector(options);\r\n var errors = this.rules.reduce((result, rule) => {\r\n var validationResult = rule(value);\r\n if (true !== validationResult) {\r\n result[rule.name] = validationResult\r\n }\r\n return result\r\n }, {});\r\n return Object.keys(errors).length ? errors : true\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/options_validator/core/validator_rules.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var createValidatorRule = (name, ruleFunc) => {\r\n Object.defineProperty(ruleFunc, \"name\", {\r\n value: name,\r\n writable: false\r\n });\r\n return ruleFunc\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/options_validator/common/validator_rules.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n createValidatorRule\r\n} from \"../core/index\";\r\nimport {\r\n divisibleBy,\r\n greaterThan,\r\n inRange,\r\n isInteger,\r\n lessThan\r\n} from \"./validation_functions\";\r\nexport var mustBeInteger = createValidatorRule(\"mustBeInteger\", value => isInteger(value) || \"\".concat(value, \" must be an integer.\"));\r\nexport var mustBeGreaterThan = function(minimalValue) {\r\n var strict = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : true;\r\n return createValidatorRule(\"mustBeGreaterThan\", value => greaterThan(value, minimalValue, strict) || \"\".concat(value, \" must be \").concat(strict ? \">\" : \">=\", \" than \").concat(minimalValue, \".\"))\r\n};\r\nexport var mustBeLessThan = function(maximalValue) {\r\n var strict = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : true;\r\n return createValidatorRule(\"mustBeLessThan\", value => lessThan(value, maximalValue, strict) || \"\".concat(value, \" must be \").concat(strict ? \"<\" : \"<=\", \" than \").concat(maximalValue, \".\"))\r\n};\r\nexport var mustBeInRange = range => createValidatorRule(\"mustBeInRange\", value => inRange(value, range) || \"\".concat(value, \" must be in range [\").concat(range[0], \", \").concat(range[1], \"].\"));\r\nexport var mustBeDivisibleBy = divider => createValidatorRule(\"mustBeDivisibleBy\", value => divisibleBy(value, divider) || \"\".concat(value, \" must be divisible by \").concat(divider, \".\"));\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/options_validator/validator_rules.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n divisibleBy,\r\n greaterThan,\r\n lessThan\r\n} from \"./common/index\";\r\nimport {\r\n createValidatorRule\r\n} from \"./core/index\";\r\nexport var endDayHourMustBeGreaterThanStartDayHour = createValidatorRule(\"endDayHourGreaterThanStartDayHour\", _ref => {\r\n var {\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour\r\n } = _ref;\r\n return greaterThan(endDayHour, startDayHour) || \"endDayHour: \".concat(endDayHour, \" must be greater that startDayHour: \").concat(startDayHour, \".\")\r\n});\r\nexport var visibleIntervalMustBeDivisibleByCellDuration = createValidatorRule(\"visibleIntervalMustBeDivisibleByCellDuration\", _ref2 => {\r\n var {\r\n cellDuration: cellDuration,\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour\r\n } = _ref2;\r\n var visibleInterval = 60 * (endDayHour - startDayHour);\r\n return divisibleBy(visibleInterval, cellDuration) || \"endDayHour - startDayHour: \".concat(visibleInterval, \" (minutes), must be divisible by cellDuration: \").concat(cellDuration, \" (minutes).\")\r\n});\r\nexport var cellDurationMustBeLessThanVisibleInterval = createValidatorRule(\"cellDurationMustBeLessThanVisibleInterval\", _ref3 => {\r\n var {\r\n cellDuration: cellDuration,\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour\r\n } = _ref3;\r\n var visibleInterval = 60 * (endDayHour - startDayHour);\r\n return lessThan(cellDuration, visibleInterval, false) || \"endDayHour - startDayHour: \".concat(visibleInterval, \" (minutes), must be greater or equal the cellDuration: \").concat(cellDuration, \" (minutes).\")\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/options_validator/options_validator.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n mustBeDivisibleBy,\r\n mustBeGreaterThan,\r\n mustBeInRange,\r\n mustBeInteger\r\n} from \"./common/index\";\r\nimport {\r\n OptionsValidator,\r\n Validator\r\n} from \"./core/index\";\r\nimport {\r\n cellDurationMustBeLessThanVisibleInterval,\r\n endDayHourMustBeGreaterThanStartDayHour,\r\n visibleIntervalMustBeDivisibleByCellDuration\r\n} from \"./validator_rules\";\r\nexport class SchedulerOptionsValidator extends OptionsValidator {\r\n constructor() {\r\n super({\r\n startDayHour: new Validator(_ref => {\r\n var {\r\n startDayHour: startDayHour\r\n } = _ref;\r\n return startDayHour\r\n }, [mustBeInteger, mustBeInRange([0, 24])]),\r\n endDayHour: new Validator(_ref2 => {\r\n var {\r\n endDayHour: endDayHour\r\n } = _ref2;\r\n return endDayHour\r\n }, [mustBeInteger, mustBeInRange([0, 24])]),\r\n offset: new Validator(_ref3 => {\r\n var {\r\n offset: offset\r\n } = _ref3;\r\n return offset\r\n }, [mustBeInteger, mustBeInRange([-1440, 1440]), mustBeDivisibleBy(5)]),\r\n cellDuration: new Validator(_ref4 => {\r\n var {\r\n cellDuration: cellDuration\r\n } = _ref4;\r\n return cellDuration\r\n }, [mustBeInteger, mustBeGreaterThan(0)]),\r\n startDayHourAndEndDayHour: new Validator(options => options, [endDayHourMustBeGreaterThanStartDayHour]),\r\n cellDurationAndVisibleInterval: new Validator(options => options, [visibleIntervalMustBeDivisibleByCellDuration, cellDurationMustBeLessThanVisibleInterval])\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/options_validator/options_validator_errors_handler.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errors from \"../../../ui/widget/ui.errors\";\r\nimport {\r\n OptionsValidatorErrorHandler\r\n} from \"./core/index\";\r\nvar GLOBAL_ERROR_HANDLER = {\r\n logError: errorCode => {\r\n errors.log(errorCode)\r\n },\r\n throwError: errorCode => {\r\n throw errors.Error(errorCode)\r\n }\r\n};\r\nexport class SchedulerOptionsValidatorErrorsHandler extends OptionsValidatorErrorHandler {\r\n constructor() {\r\n super({\r\n startDayHour: \"E1058\",\r\n endDayHour: \"E1058\",\r\n startDayHourAndEndDayHour: \"E1058\",\r\n offset: \"E1061\",\r\n cellDuration: \"E1062\",\r\n cellDurationAndVisibleInterval: \"E1062\"\r\n }, GLOBAL_ERROR_HANDLER)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/resources/m_agenda_resource_processor.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n wrapToArray\r\n} from \"../../../core/utils/array\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n getDisplayExpr,\r\n getFieldExpr,\r\n getValueExpr,\r\n getWrappedDataSource\r\n} from \"./m_utils\";\r\nclass PromiseItem {\r\n constructor(rawAppointment, promise) {\r\n this.rawAppointment = rawAppointment;\r\n this.promise = promise\r\n }\r\n}\r\nexport class AgendaResourceProcessor {\r\n constructor() {\r\n var resourceDeclarations = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\r\n this._resourceDeclarations = resourceDeclarations;\r\n this.isLoaded = false;\r\n this.isLoading = false;\r\n this.resourceMap = new Map;\r\n this.appointmentPromiseQueue = []\r\n }\r\n get resourceDeclarations() {\r\n return this._resourceDeclarations\r\n }\r\n set resourceDeclarations(value) {\r\n this._resourceDeclarations = value;\r\n this.isLoaded = false;\r\n this.isLoading = false;\r\n this.resourceMap.clear();\r\n this.appointmentPromiseQueue = []\r\n }\r\n _pushAllResources() {\r\n this.appointmentPromiseQueue.forEach(_ref => {\r\n var {\r\n promise: promise,\r\n rawAppointment: rawAppointment\r\n } = _ref;\r\n var result = [];\r\n this.resourceMap.forEach((resource, fieldName) => {\r\n var item = {\r\n label: resource.label,\r\n values: []\r\n };\r\n if (fieldName in rawAppointment) {\r\n wrapToArray(rawAppointment[fieldName]).forEach(value => item.values.push(resource.map.get(value)))\r\n }\r\n if (item.values.length) {\r\n result.push(item)\r\n }\r\n });\r\n promise.resolve(result)\r\n });\r\n this.appointmentPromiseQueue = []\r\n }\r\n _onPullResource(fieldName, valueName, displayName, label, items) {\r\n var map = new Map;\r\n items.forEach(item => map.set(item[valueName], item[displayName]));\r\n this.resourceMap.set(fieldName, {\r\n label: label,\r\n map: map\r\n })\r\n }\r\n _hasResourceDeclarations(resources) {\r\n if (0 === resources.length) {\r\n this.appointmentPromiseQueue.forEach(_ref2 => {\r\n var {\r\n promise: promise\r\n } = _ref2;\r\n return promise.resolve([])\r\n });\r\n this.appointmentPromiseQueue = [];\r\n return false\r\n }\r\n return true\r\n }\r\n _tryPullResources(resources, resultAsync) {\r\n if (!this.isLoading) {\r\n this.isLoading = true;\r\n var promises = [];\r\n resources.forEach(resource => {\r\n var promise = (new Deferred).done(items => this._onPullResource(getFieldExpr(resource), getValueExpr(resource), getDisplayExpr(resource), resource.label, items));\r\n promises.push(promise);\r\n var dataSource = getWrappedDataSource(resource.dataSource);\r\n if (dataSource.isLoaded()) {\r\n promise.resolve(dataSource.items())\r\n } else {\r\n dataSource.load().done(list => promise.resolve(list)).fail(() => promise.reject())\r\n }\r\n });\r\n when.apply(null, promises).done(() => {\r\n this.isLoaded = true;\r\n this.isLoading = false;\r\n this._pushAllResources()\r\n }).fail(() => resultAsync.reject())\r\n }\r\n }\r\n initializeState() {\r\n var resourceDeclarations = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\r\n this.resourceDeclarations = resourceDeclarations\r\n }\r\n createListAsync(rawAppointment) {\r\n var resultAsync = new Deferred;\r\n this.appointmentPromiseQueue.push(new PromiseItem(rawAppointment, resultAsync));\r\n if (this._hasResourceDeclarations(this.resourceDeclarations)) {\r\n if (this.isLoaded) {\r\n this._pushAllResources()\r\n } else {\r\n this._tryPullResources(this.resourceDeclarations, resultAsync)\r\n }\r\n }\r\n return resultAsync.promise()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/tooltip_strategies/m_tooltip_strategy_base.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n FunctionTemplate\r\n} from \"../../../core/templates/function_template\";\r\nimport Button from \"../../../ui/button\";\r\nimport {\r\n createPromise\r\n} from \"../../core/utils/promise\";\r\nimport List from \"../../ui/list/m_list.edit\";\r\nvar TOOLTIP_APPOINTMENT_ITEM = \"dx-tooltip-appointment-item\";\r\nvar TOOLTIP_APPOINTMENT_ITEM_CONTENT = \"\".concat(TOOLTIP_APPOINTMENT_ITEM, \"-content\");\r\nvar TOOLTIP_APPOINTMENT_ITEM_CONTENT_SUBJECT = \"\".concat(TOOLTIP_APPOINTMENT_ITEM, \"-content-subject\");\r\nvar TOOLTIP_APPOINTMENT_ITEM_CONTENT_DATE = \"\".concat(TOOLTIP_APPOINTMENT_ITEM, \"-content-date\");\r\nvar TOOLTIP_APPOINTMENT_ITEM_MARKER = \"\".concat(TOOLTIP_APPOINTMENT_ITEM, \"-marker\");\r\nvar TOOLTIP_APPOINTMENT_ITEM_MARKER_BODY = \"\".concat(TOOLTIP_APPOINTMENT_ITEM, \"-marker-body\");\r\nvar TOOLTIP_APPOINTMENT_ITEM_DELETE_BUTTON_CONTAINER = \"\".concat(TOOLTIP_APPOINTMENT_ITEM, \"-delete-button-container\");\r\nvar TOOLTIP_APPOINTMENT_ITEM_DELETE_BUTTON = \"\".concat(TOOLTIP_APPOINTMENT_ITEM, \"-delete-button\");\r\nexport class TooltipStrategyBase {\r\n constructor(options) {\r\n this.asyncTemplatePromises = new Set;\r\n this._tooltip = null;\r\n this._options = options;\r\n this._extraOptions = null\r\n }\r\n show(target, dataList, extraOptions) {\r\n if (this._canShowTooltip(dataList)) {\r\n this.hide();\r\n this._extraOptions = extraOptions;\r\n this._showCore(target, dataList)\r\n }\r\n }\r\n _showCore(target, dataList) {\r\n if (!this._tooltip) {\r\n this._tooltip = this._createTooltip(target, dataList)\r\n } else {\r\n this._shouldUseTarget() && this._tooltip.option(\"target\", target);\r\n this._list.option(\"dataSource\", dataList)\r\n }\r\n this._prepareBeforeVisibleChanged(dataList);\r\n this._tooltip.option(\"visible\", true)\r\n }\r\n _prepareBeforeVisibleChanged(dataList) {}\r\n _getContentTemplate(dataList) {\r\n return container => {\r\n var listElement = $(\"<div>\");\r\n $(container).append(listElement);\r\n this._list = this._createList(listElement, dataList)\r\n }\r\n }\r\n isAlreadyShown(target) {\r\n if (this._tooltip && this._tooltip.option(\"visible\")) {\r\n return this._tooltip.option(\"target\")[0] === target[0]\r\n }\r\n return\r\n }\r\n _onShown() {\r\n this._list.option(\"focusStateEnabled\", this._extraOptions.focusStateEnabled)\r\n }\r\n dispose() {}\r\n hide() {\r\n if (this._tooltip) {\r\n this._tooltip.option(\"visible\", false)\r\n }\r\n }\r\n _shouldUseTarget() {\r\n return true\r\n }\r\n _createTooltip(target, dataList) {}\r\n _canShowTooltip(dataList) {\r\n if (!dataList.length) {\r\n return false\r\n }\r\n return true\r\n }\r\n _createListOption(dataList) {\r\n return {\r\n dataSource: dataList,\r\n onContentReady: this._onListRender.bind(this),\r\n onItemClick: e => this._onListItemClick(e),\r\n onItemContextMenu: this._onListItemContextMenu.bind(this),\r\n itemTemplate: (item, index) => this._renderTemplate(item.appointment, item.targetedAppointment, index, item.color),\r\n _swipeEnabled: false,\r\n pageLoadMode: \"scrollBottom\"\r\n }\r\n }\r\n _onListRender(e) {}\r\n _createTooltipElement(wrapperClass) {\r\n return $(\"<div>\").appendTo(this._options.container).addClass(wrapperClass)\r\n }\r\n _createList(listElement, dataList) {\r\n return this._options.createComponent(listElement, List, this._createListOption(dataList))\r\n }\r\n _renderTemplate(appointment, targetedAppointment, index, color) {\r\n var itemListContent = this._createItemListContent(appointment, targetedAppointment, color);\r\n this._options.addDefaultTemplates({\r\n [this._getItemListTemplateName()]: new FunctionTemplate(options => {\r\n var $container = $(options.container);\r\n $container.append(itemListContent);\r\n return $container\r\n })\r\n });\r\n var template = this._options.getAppointmentTemplate(\"\".concat(this._getItemListTemplateName(), \"Template\"));\r\n return this._createFunctionTemplate(template, appointment, targetedAppointment, index)\r\n }\r\n _createFunctionTemplate(template, appointmentData, targetedAppointmentData, index) {\r\n var isButtonClicked = !!this._extraOptions.isButtonClick;\r\n var isEmptyDropDownAppointmentTemplate = this._isEmptyDropDownAppointmentTemplate();\r\n return new FunctionTemplate(options => {\r\n var {\r\n promise: promise,\r\n resolve: resolve\r\n } = createPromise();\r\n this.asyncTemplatePromises.add(promise);\r\n return template.render({\r\n model: isEmptyDropDownAppointmentTemplate ? {\r\n appointmentData: appointmentData,\r\n targetedAppointmentData: targetedAppointmentData,\r\n isButtonClicked: isButtonClicked\r\n } : appointmentData,\r\n container: options.container,\r\n index: index,\r\n onRendered: () => {\r\n this.asyncTemplatePromises.delete(promise);\r\n resolve()\r\n }\r\n })\r\n })\r\n }\r\n _getItemListTemplateName() {\r\n return this._isEmptyDropDownAppointmentTemplate() ? \"appointmentTooltip\" : \"dropDownAppointment\"\r\n }\r\n _isEmptyDropDownAppointmentTemplate() {\r\n return !this._extraOptions.dropDownAppointmentTemplate || \"dropDownAppointment\" === this._extraOptions.dropDownAppointmentTemplate\r\n }\r\n _onListItemClick(e) {\r\n this.hide();\r\n this._extraOptions.clickEvent && this._extraOptions.clickEvent(e);\r\n this._options.showAppointmentPopup(e.itemData.appointment, false, e.itemData.targetedAppointment)\r\n }\r\n _onListItemContextMenu(e) {}\r\n _createItemListContent(appointment, targetedAppointment, color) {\r\n var {\r\n editing: editing\r\n } = this._extraOptions;\r\n var $itemElement = $(\"<div>\").addClass(TOOLTIP_APPOINTMENT_ITEM);\r\n $itemElement.append(this._createItemListMarker(color));\r\n $itemElement.append(this._createItemListInfo(this._options.createFormattedDateText(appointment, targetedAppointment)));\r\n var disabled = this._options.getAppointmentDisabled(appointment);\r\n if (!disabled && (editing && true === editing.allowDeleting || true === editing)) {\r\n $itemElement.append(this._createDeleteButton(appointment, targetedAppointment))\r\n }\r\n return $itemElement\r\n }\r\n _createItemListMarker(color) {\r\n var $marker = $(\"<div>\").addClass(TOOLTIP_APPOINTMENT_ITEM_MARKER);\r\n var $markerBody = $(\"<div>\").addClass(TOOLTIP_APPOINTMENT_ITEM_MARKER_BODY);\r\n $marker.append($markerBody);\r\n color && color.done(value => $markerBody.css(\"background\", value));\r\n return $marker\r\n }\r\n _createItemListInfo(object) {\r\n var result = $(\"<div>\").addClass(TOOLTIP_APPOINTMENT_ITEM_CONTENT);\r\n var $title = $(\"<div>\").addClass(TOOLTIP_APPOINTMENT_ITEM_CONTENT_SUBJECT).text(object.text);\r\n var $date = $(\"<div>\").addClass(TOOLTIP_APPOINTMENT_ITEM_CONTENT_DATE).text(object.formatDate);\r\n return result.append($title).append($date)\r\n }\r\n _createDeleteButton(appointment, targetedAppointment) {\r\n var $container = $(\"<div>\").addClass(TOOLTIP_APPOINTMENT_ITEM_DELETE_BUTTON_CONTAINER);\r\n var $deleteButton = $(\"<div>\").addClass(TOOLTIP_APPOINTMENT_ITEM_DELETE_BUTTON);\r\n $container.append($deleteButton);\r\n this._options.createComponent($deleteButton, Button, {\r\n icon: \"trash\",\r\n stylingMode: \"text\",\r\n onClick: e => {\r\n this.hide();\r\n e.event.stopPropagation();\r\n this._options.checkAndDeleteAppointment(appointment, targetedAppointment)\r\n }\r\n });\r\n return $container\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/core/utils/promise.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function createPromise() {\r\n var resolve;\r\n var reject;\r\n var promise = new Promise((res, rej) => {\r\n resolve = res;\r\n reject = rej\r\n });\r\n return {\r\n promise: promise,\r\n resolve: resolve,\r\n reject: reject\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/tooltip_strategies/m_desktop_tooltip_strategy.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n touch\r\n} from \"../../../core/utils/support\";\r\nimport Tooltip from \"../../ui/m_tooltip\";\r\nimport {\r\n TooltipStrategyBase\r\n} from \"./m_tooltip_strategy_base\";\r\nvar APPOINTMENT_TOOLTIP_WRAPPER_CLASS = \"dx-scheduler-appointment-tooltip-wrapper\";\r\nvar MAX_TOOLTIP_HEIGHT = 200;\r\nexport class DesktopTooltipStrategy extends TooltipStrategyBase {\r\n _prepareBeforeVisibleChanged(dataList) {\r\n this._tooltip.option(\"position\", {\r\n my: \"bottom\",\r\n at: \"top\",\r\n boundary: this._getBoundary(dataList),\r\n offset: this._extraOptions.offset,\r\n collision: \"fit flipfit\"\r\n })\r\n }\r\n _getBoundary(dataList) {\r\n return this._options.isAppointmentInAllDayPanel(dataList[0].appointment) ? this._options.container : this._options.getScrollableContainer()\r\n }\r\n _onShown() {\r\n super._onShown();\r\n if (this._extraOptions.isButtonClick) {\r\n this._list.focus();\r\n this._list.option(\"focusedElement\", null)\r\n }\r\n }\r\n _createListOption(target, dataList) {\r\n var result = super._createListOption(target, dataList);\r\n result.showScrollbar = touch ? \"always\" : \"onHover\";\r\n return result\r\n }\r\n _createTooltip(target, dataList) {\r\n var tooltip = this._createTooltipElement(APPOINTMENT_TOOLTIP_WRAPPER_CLASS);\r\n return this._options.createComponent(tooltip, Tooltip, {\r\n target: target,\r\n maxHeight: MAX_TOOLTIP_HEIGHT,\r\n rtlEnabled: this._extraOptions.rtlEnabled,\r\n onShown: this._onShown.bind(this),\r\n contentTemplate: this._getContentTemplate(dataList),\r\n wrapperAttr: {\r\n class: APPOINTMENT_TOOLTIP_WRAPPER_CLASS\r\n }\r\n })\r\n }\r\n _onListRender(e) {\r\n return this._extraOptions.dragBehavior && this._extraOptions.dragBehavior(e)\r\n }\r\n _onListItemContextMenu(e) {\r\n var contextMenuEventArgs = this._options.createEventArgs(e);\r\n this._options.onItemContextMenu(contextMenuEventArgs)\r\n }\r\n}\r\n","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","/**\r\n * DevExtreme (esm/__internal/scheduler/tooltip_strategies/m_mobile_tooltip_strategy.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n getWindow\r\n} from \"../../../core/utils/window\";\r\nimport Overlay from \"../../../ui/overlay/ui.overlay\";\r\nimport {\r\n TooltipStrategyBase\r\n} from \"./m_tooltip_strategy_base\";\r\nvar CLASS = {\r\n slidePanel: \"dx-scheduler-overlay-panel\",\r\n scrollableContent: \".dx-scrollable-content\"\r\n};\r\nvar MAX_TABLET_OVERLAY_HEIGHT_FACTOR = .9;\r\nvar MAX_HEIGHT = {\r\n PHONE: 250,\r\n TABLET: \"90%\",\r\n DEFAULT: \"auto\"\r\n};\r\nvar MAX_WIDTH = {\r\n PHONE: \"100%\",\r\n TABLET: \"80%\"\r\n};\r\nvar animationConfig = {\r\n show: {\r\n type: \"slide\",\r\n duration: 300,\r\n from: {\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\",\r\n of: getWindow()\r\n }\r\n },\r\n to: {\r\n position: {\r\n my: \"center\",\r\n at: \"center\",\r\n of: getWindow()\r\n }\r\n }\r\n },\r\n hide: {\r\n type: \"slide\",\r\n duration: 300,\r\n to: {\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\",\r\n of: getWindow()\r\n }\r\n },\r\n from: {\r\n position: {\r\n my: \"center\",\r\n at: \"center\",\r\n of: getWindow()\r\n }\r\n }\r\n }\r\n};\r\nvar createPhoneDeviceConfig = listHeight => ({\r\n shading: false,\r\n width: MAX_WIDTH.PHONE,\r\n height: listHeight > MAX_HEIGHT.PHONE ? MAX_HEIGHT.PHONE : MAX_HEIGHT.DEFAULT,\r\n position: {\r\n my: \"bottom\",\r\n at: \"bottom\",\r\n of: getWindow()\r\n }\r\n});\r\nvar createTabletDeviceConfig = listHeight => {\r\n var currentMaxHeight = getHeight(getWindow()) * MAX_TABLET_OVERLAY_HEIGHT_FACTOR;\r\n return {\r\n shading: true,\r\n width: MAX_WIDTH.TABLET,\r\n height: listHeight > currentMaxHeight ? MAX_HEIGHT.TABLET : MAX_HEIGHT.DEFAULT,\r\n position: {\r\n my: \"center\",\r\n at: \"center\",\r\n of: getWindow()\r\n }\r\n }\r\n};\r\nexport class MobileTooltipStrategy extends TooltipStrategyBase {\r\n _shouldUseTarget() {\r\n return false\r\n }\r\n setTooltipConfig() {\r\n var isTabletWidth = getWidth(getWindow()) > 700;\r\n var listHeight = getOuterHeight(this._list.$element().find(CLASS.scrollableContent));\r\n this._tooltip.option(isTabletWidth ? createTabletDeviceConfig(listHeight) : createPhoneDeviceConfig(listHeight))\r\n }\r\n _onShowing() {\r\n var _this = this;\r\n return _asyncToGenerator((function*() {\r\n _this._tooltip.option(\"height\", MAX_HEIGHT.DEFAULT);\r\n _this.setTooltipConfig();\r\n yield Promise.all([..._this.asyncTemplatePromises]);\r\n _this.setTooltipConfig()\r\n }))()\r\n }\r\n _createTooltip(target, dataList) {\r\n var element = this._createTooltipElement(CLASS.slidePanel);\r\n return this._options.createComponent(element, Overlay, {\r\n target: getWindow(),\r\n hideOnOutsideClick: true,\r\n animation: animationConfig,\r\n onShowing: () => this._onShowing(),\r\n onShown: this._onShown.bind(this),\r\n contentTemplate: this._getContentTemplate(dataList),\r\n wrapperAttr: {\r\n class: CLASS.slidePanel\r\n }\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/m_table_creator.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport 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 {\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nvar ROW_SELECTOR = \"tr\";\r\nclass SchedulerTableCreator {\r\n constructor() {\r\n this.VERTICAL = \"vertical\";\r\n this.HORIZONTAL = \"horizontal\"\r\n }\r\n insertAllDayRow(allDayElements, tableBody, index) {\r\n if (allDayElements[index]) {\r\n var row = allDayElements[index].find(ROW_SELECTOR);\r\n if (!row.length) {\r\n row = $(domAdapter.createElement(ROW_SELECTOR));\r\n row.append(allDayElements[index].get(0))\r\n }\r\n tableBody.appendChild(row.get ? row.get(0) : row)\r\n }\r\n }\r\n makeTable(options) {\r\n var _a;\r\n var tableBody = domAdapter.createElement(\"tbody\");\r\n var templateCallbacks = [];\r\n var row;\r\n var rowCountInGroup = options.groupCount ? options.rowCount / options.groupCount : options.rowCount;\r\n var allDayElementIndex = 0;\r\n var {\r\n allDayElements: allDayElements\r\n } = options;\r\n var {\r\n groupIndex: groupIndex\r\n } = options;\r\n var {\r\n rowCount: rowCount\r\n } = options;\r\n $(options.container).append(tableBody);\r\n if (allDayElements) {\r\n this.insertAllDayRow(allDayElements, tableBody, 0);\r\n allDayElementIndex++\r\n }\r\n for (var rowIndex = 0; rowIndex < rowCount; rowIndex++) {\r\n row = domAdapter.createElement(ROW_SELECTOR);\r\n tableBody.appendChild(row);\r\n var isLastRowInGroup = (rowIndex + 1) % rowCountInGroup === 0;\r\n if (options.rowClass) {\r\n row.className = options.rowClass\r\n }\r\n for (var columnIndex = 0; columnIndex < options.cellCount; columnIndex++) {\r\n var td = domAdapter.createElement(\"td\");\r\n row.appendChild(td);\r\n if (options.cellClass) {\r\n if (isFunction(options.cellClass)) {\r\n td.className = options.cellClass(rowIndex, columnIndex)\r\n } else {\r\n td.className = options.cellClass\r\n }\r\n }\r\n var cellDataObject = void 0;\r\n var dataKey = void 0;\r\n var dataValue = void 0;\r\n if (options.getCellData) {\r\n cellDataObject = options.getCellData(td, rowIndex, columnIndex, groupIndex);\r\n dataKey = cellDataObject.key;\r\n dataValue = cellDataObject.value;\r\n dataKey && elementData(td, dataKey, dataValue)\r\n }\r\n null === (_a = options.setAdditionalClasses) || void 0 === _a ? void 0 : _a.call(options, $(td), dataValue);\r\n if (options.cellTemplate && options.cellTemplate.render) {\r\n var additionalTemplateData = options.getTemplateData ? options.getTemplateData(rowIndex) : {};\r\n var templateOptions = {\r\n model: _extends({\r\n text: options.getCellText ? options.getCellText(rowIndex, columnIndex) : \"\",\r\n date: options.getCellDate ? options.getCellDate(rowIndex) : void 0\r\n }, additionalTemplateData),\r\n container: getPublicElement($(td)),\r\n index: rowIndex * options.cellCount + columnIndex\r\n };\r\n if (dataValue) {\r\n if (dataValue.startDate) {\r\n templateOptions.model.startDate = dataValue.startDate\r\n }\r\n if (dataValue.endDate) {\r\n templateOptions.model.endDate = dataValue.endDate\r\n }\r\n if (dataValue.groups) {\r\n templateOptions.model.groups = dataValue.groups\r\n }\r\n if (dataValue.allDay) {\r\n templateOptions.model.allDay = dataValue.allDay\r\n }\r\n }\r\n templateCallbacks.push(options.cellTemplate.render.bind(options.cellTemplate, templateOptions))\r\n } else if (options.getCellText) {\r\n $(\"<div>\").text(options.getCellText(rowIndex, columnIndex)).addClass(options.getCellTextClass).appendTo($(td))\r\n }\r\n }\r\n if (allDayElements && isLastRowInGroup) {\r\n this.insertAllDayRow(allDayElements, tableBody, allDayElementIndex);\r\n allDayElementIndex++\r\n }\r\n }\r\n return templateCallbacks\r\n }\r\n makeGroupedTable(type, groups, cssClasses, cellCount, cellTemplate, rowCount, groupByDate) {\r\n var rows = [];\r\n if (type === this.VERTICAL) {\r\n rows = this._makeVerticalGroupedRows(groups, cssClasses, cellTemplate, rowCount)\r\n } else {\r\n rows = this._makeHorizontalGroupedRows(groups, cssClasses, cellCount, cellTemplate, groupByDate)\r\n }\r\n return rows\r\n }\r\n makeGroupedTableFromJSON(type, data, config) {\r\n var table;\r\n var cellStorage = [];\r\n var rowIndex = 0;\r\n config = config || {};\r\n var cellTag = config.cellTag || \"td\";\r\n var childrenField = config.childrenField || \"children\";\r\n var titleField = config.titleField || \"title\";\r\n var {\r\n groupTableClass: groupTableClass\r\n } = config;\r\n var {\r\n groupRowClass: groupRowClass\r\n } = config;\r\n var {\r\n groupCellClass: groupCellClass\r\n } = config;\r\n var {\r\n groupCellCustomContent: groupCellCustomContent\r\n } = config;\r\n\r\n function getChildCount(item) {\r\n if (item[childrenField]) {\r\n return item[childrenField].length\r\n }\r\n return 0\r\n }\r\n\r\n function createCell(text, childCount, index, data) {\r\n var cell = {\r\n element: domAdapter.createElement(cellTag),\r\n childCount: childCount\r\n };\r\n if (groupCellClass) {\r\n cell.element.className = groupCellClass\r\n }\r\n var cellText = domAdapter.createTextNode(text);\r\n if (\"function\" === typeof groupCellCustomContent) {\r\n groupCellCustomContent(cell.element, cellText, index, data)\r\n } else {\r\n cell.element.appendChild(cellText)\r\n }\r\n return cell\r\n }! function() {\r\n table = domAdapter.createElement(\"table\");\r\n if (groupTableClass) {\r\n table.className = groupTableClass\r\n }\r\n }();\r\n ! function generateCells(data) {\r\n for (var i = 0; i < data.length; i++) {\r\n var childCount = getChildCount(data[i]);\r\n var cell = createCell(data[i][titleField], childCount, i, data[i]);\r\n if (!cellStorage[rowIndex]) {\r\n cellStorage[rowIndex] = []\r\n }\r\n cellStorage[rowIndex].push(cell);\r\n if (childCount) {\r\n generateCells(data[i][childrenField])\r\n } else {\r\n rowIndex++\r\n }\r\n }\r\n }(data);\r\n void cellStorage.forEach(cells => {\r\n var row = domAdapter.createElement(ROW_SELECTOR);\r\n if (groupRowClass) {\r\n row.className = groupRowClass\r\n }\r\n var rowspans = [];\r\n for (var i = cells.length - 1; i >= 0; i--) {\r\n var prev = cells[i + 1];\r\n var rowspan = cells[i].childCount;\r\n if (prev && prev.childCount) {\r\n rowspan *= prev.childCount\r\n }\r\n rowspans.push(rowspan)\r\n }\r\n rowspans.reverse();\r\n cells.forEach((cell, index) => {\r\n if (rowspans[index]) {\r\n cell.element.setAttribute(\"rowSpan\", rowspans[index])\r\n }\r\n row.appendChild(cell.element)\r\n });\r\n table.appendChild(row)\r\n });\r\n return table\r\n }\r\n _makeFlexGroupedRowCells(group, repeatCount, cssClasses, cellTemplate) {\r\n var repeatByDate = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 1;\r\n var cells = [];\r\n var {\r\n items: items\r\n } = group;\r\n var itemCount = items.length;\r\n for (var i = 0; i < repeatCount * repeatByDate; i++) {\r\n for (var j = 0; j < itemCount; j++) {\r\n var $container = $(\"<div>\");\r\n var cell = {};\r\n if (cellTemplate && cellTemplate.render) {\r\n var templateOptions = {\r\n model: items[j],\r\n container: getPublicElement($container),\r\n index: i * itemCount + j\r\n };\r\n if (group.data) {\r\n templateOptions.model.data = group.data[j]\r\n }\r\n cell.template = cellTemplate.render.bind(cellTemplate, templateOptions)\r\n } else {\r\n $container.text(items[j].text).attr(\"title\", items[j].text).addClass(\"dx-scheduler-group-header-content\");\r\n $container = $(\"<div>\").append($container)\r\n }\r\n var cssClass = isFunction(cssClasses.groupHeaderClass) ? cssClasses.groupHeaderClass(j) : cssClasses.groupHeaderClass;\r\n cell.element = $container.addClass(cssClass);\r\n cells.push(cell)\r\n }\r\n }\r\n return cells\r\n }\r\n _makeVerticalGroupedRows(groups, cssClasses, cellTemplate, rowCount) {\r\n var cellTemplates = [];\r\n var repeatCount = 1;\r\n var cellsArray = [];\r\n var cellIterator = function(cell) {\r\n if (cell.template) {\r\n cellTemplates.push(cell.template)\r\n }\r\n };\r\n for (var i = 0; i < groups.length; i++) {\r\n if (i > 0) {\r\n repeatCount = groups[i - 1].items.length * repeatCount\r\n }\r\n var cells = this._makeFlexGroupedRowCells(groups[i], repeatCount, cssClasses, cellTemplate);\r\n cells.forEach(cellIterator);\r\n cellsArray.push(cells)\r\n }\r\n var rows = [];\r\n var groupCount = cellsArray.length;\r\n for (var _i = 0; _i < groupCount; _i++) {\r\n rows.push($(\"<div>\").addClass(cssClasses.groupHeaderRowClass))\r\n }\r\n for (var _i2 = groupCount - 1; _i2 >= 0; _i2--) {\r\n var currentColumnLength = cellsArray[_i2].length;\r\n for (var j = 0; j < currentColumnLength; j++) {\r\n rows[_i2].append(cellsArray[_i2][j].element)\r\n }\r\n }\r\n return {\r\n elements: $(\"<div>\").addClass(\"dx-scheduler-group-flex-container\").append(rows),\r\n cellTemplates: cellTemplates\r\n }\r\n }\r\n _makeHorizontalGroupedRows(groups, cssClasses, cellCount, cellTemplate, groupByDate) {\r\n var repeatCount = 1;\r\n var groupCount = groups.length;\r\n var rows = [];\r\n var cellTemplates = [];\r\n var repeatByDate = groupByDate ? cellCount : 1;\r\n var cellIterator = function(cell) {\r\n if (cell.template) {\r\n cellTemplates.push(cell.template)\r\n }\r\n return cell.element\r\n };\r\n for (var i = 0; i < groupCount; i++) {\r\n if (i > 0) {\r\n repeatCount = groups[i - 1].items.length * repeatCount\r\n }\r\n var cells = this._makeGroupedRowCells(groups[i], repeatCount, cssClasses, cellTemplate, repeatByDate);\r\n rows.push($(\"<tr>\").addClass(cssClasses.groupRowClass).append(cells.map(cellIterator)))\r\n }\r\n var maxCellCount = rows[groupCount - 1].find(\"th\").length;\r\n for (var j = 0; j < groupCount; j++) {\r\n var $cell = rows[j].find(\"th\");\r\n var colspan = maxCellCount / $cell.length;\r\n if (!groupByDate) {\r\n colspan *= cellCount\r\n }\r\n if (colspan > 1 && 1 === repeatByDate || groupByDate && groupCount > 1) {\r\n $cell.attr(\"colSpan\", colspan)\r\n }\r\n }\r\n return {\r\n elements: rows,\r\n cellTemplates: cellTemplates\r\n }\r\n }\r\n _makeGroupedRowCells(group, repeatCount, cssClasses, cellTemplate, repeatByDate) {\r\n repeatByDate = repeatByDate || 1;\r\n repeatCount *= repeatByDate;\r\n var cells = [];\r\n var {\r\n items: items\r\n } = group;\r\n var itemCount = items.length;\r\n for (var i = 0; i < repeatCount; i++) {\r\n for (var j = 0; j < itemCount; j++) {\r\n var $container = $(\"<div>\");\r\n var cell = {};\r\n if (cellTemplate && cellTemplate.render) {\r\n var templateOptions = {\r\n model: items[j],\r\n container: getPublicElement($container),\r\n index: i * itemCount + j\r\n };\r\n if (group.data) {\r\n templateOptions.model.data = group.data[j]\r\n }\r\n cell.template = cellTemplate.render.bind(cellTemplate, templateOptions)\r\n } else {\r\n $container.text(items[j].text);\r\n $container = $(\"<div>\").append($container)\r\n }\r\n $container.addClass(cssClasses.groupHeaderContentClass);\r\n var cssClass = void 0;\r\n if (isFunction(cssClasses.groupHeaderClass)) {\r\n cssClass = cssClasses.groupHeaderClass(j)\r\n } else {\r\n cssClass = cssClasses.groupHeaderClass\r\n }\r\n cell.element = $(\"<th>\").addClass(cssClass).append($container);\r\n cells.push(cell)\r\n }\r\n }\r\n return cells\r\n }\r\n}\r\nexport default {\r\n tableCreator: new SchedulerTableCreator\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/core/utils/scroll.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function getMemoizeScrollTo(getScrollableInstance) {\r\n var instance = getScrollableInstance();\r\n var lastParams = {};\r\n return function(params) {\r\n var force = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : false;\r\n var normalizedParams = {\r\n top: void 0 !== params.top ? Math.ceil(params.top) : void 0,\r\n left: void 0 !== params.left ? Math.ceil(params.left) : void 0\r\n };\r\n var isSameParams = normalizedParams.top === lastParams.top && normalizedParams.left === lastParams.left;\r\n if (!force && isSameParams) {\r\n return\r\n }\r\n lastParams = normalizedParams;\r\n instance.scrollTo(params)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/core/r1/utils/shallow_equals.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var shallowEquals = (firstObject, secondObject) => {\r\n if (Object.keys(firstObject).length !== Object.keys(secondObject).length) {\r\n return false\r\n }\r\n return Object.keys(firstObject).every(key => firstObject[key] === secondObject[key])\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/core/r1/template_wrapper.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar __rest = this && this.__rest || function(s, e) {\r\n var t = {};\r\n for (var p in s) {\r\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) {\r\n t[p] = s[p]\r\n }\r\n }\r\n if (null != s && \"function\" === typeof Object.getOwnPropertySymbols) {\r\n var i = 0;\r\n for (p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) {\r\n t[p[i]] = s[p[i]]\r\n }\r\n }\r\n }\r\n return t\r\n};\r\nimport {\r\n InfernoComponent,\r\n InfernoEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n replaceWith\r\n} from \"../../../core/utils/dom\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n findDOMfromVNode\r\n} from \"inferno\";\r\nimport {\r\n shallowEquals\r\n} from \"./utils/shallow_equals\";\r\nvar isDxElementWrapper = element => !!element.toArray;\r\nexport var buildTemplateArgs = (model, template) => {\r\n var _a;\r\n var args = {\r\n template: template,\r\n model: _extends({}, model)\r\n };\r\n var _b = null !== (_a = model.data) && void 0 !== _a ? _a : {},\r\n {\r\n isEqual: isEqual\r\n } = _b,\r\n data = __rest(_b, [\"isEqual\"]);\r\n if (isEqual) {\r\n args.model.data = data;\r\n args.isEqual = isEqual\r\n }\r\n return args\r\n};\r\nvar renderTemplateContent = (props, container) => {\r\n var _a;\r\n var {\r\n data: data,\r\n index: index\r\n } = null !== (_a = props.model) && void 0 !== _a ? _a : {\r\n data: {}\r\n };\r\n if (data) {\r\n Object.keys(data).forEach(name => {\r\n if (data[name] && domAdapter.isNode(data[name])) {\r\n data[name] = getPublicElement($(data[name]))\r\n }\r\n })\r\n }\r\n var rendered = props.template.render(_extends(_extends(_extends({\r\n container: container,\r\n transclude: props.transclude\r\n }, {\r\n renovated: props.renovated\r\n }), !props.transclude ? {\r\n model: data\r\n } : {}), !props.transclude && Number.isFinite(index) ? {\r\n index: index\r\n } : {}));\r\n if (void 0 === rendered) {\r\n return []\r\n }\r\n return isDxElementWrapper(rendered) ? rendered.toArray() : [$(rendered).get(0)]\r\n};\r\nvar removeDifferentElements = (oldChildren, newChildren) => {\r\n newChildren.forEach(newElement => {\r\n var hasOldChild = !!oldChildren.find(oldElement => newElement === oldElement);\r\n if (!hasOldChild && newElement.parentNode) {\r\n $(newElement).remove()\r\n }\r\n })\r\n};\r\nexport class TemplateWrapper extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.renderTemplate = this.renderTemplate.bind(this)\r\n }\r\n renderTemplate() {\r\n var node = findDOMfromVNode(this.$LI, true);\r\n if (!(null === node || void 0 === node ? void 0 : node.parentNode)) {\r\n return () => {}\r\n }\r\n var container = node.parentNode;\r\n var $container = $(container);\r\n var $oldContainerContent = $container.contents().toArray();\r\n var content = renderTemplateContent(this.props, getPublicElement($container));\r\n replaceWith($(node), $(content));\r\n return () => {\r\n var $actualContainerContent = $(container).contents().toArray();\r\n removeDifferentElements($oldContainerContent, $actualContainerContent);\r\n container.appendChild(node)\r\n }\r\n }\r\n shouldComponentUpdate(nextProps) {\r\n var {\r\n template: template,\r\n model: model\r\n } = this.props;\r\n var {\r\n template: nextTemplate,\r\n model: nextModel,\r\n isEqual: isEqual\r\n } = nextProps;\r\n var equalityComparer = null !== isEqual && void 0 !== isEqual ? isEqual : shallowEquals;\r\n if (template !== nextTemplate) {\r\n return true\r\n }\r\n if (!isDefined(model) || !isDefined(nextModel)) {\r\n return model !== nextModel\r\n }\r\n var {\r\n data: data,\r\n index: index\r\n } = model;\r\n var {\r\n data: nextData,\r\n index: nextIndex\r\n } = nextModel;\r\n if (index !== nextIndex) {\r\n return true\r\n }\r\n return !equalityComparer(data, nextData)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.renderTemplate, [this.props.template, this.props.model])]\r\n }\r\n updateEffects() {\r\n this._effects[0].update([this.props.template, this.props.model])\r\n }\r\n componentWillUnmount() {}\r\n render() {\r\n return null\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/core/r1/utils/get_template.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nexport var getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\n","/**\r\n * DevExtreme (esm/__internal/core/r1/utils/update_props_immutable.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n getPathParts\r\n} from \"../../../../core/utils/data\";\r\nimport {\r\n isPlainObject\r\n} from \"../../../../core/utils/type\";\r\nvar cloneObjectValue = value => Array.isArray(value) ? [...value] : _extends({}, value);\r\nvar cloneObjectProp = (value, prevValue, fullNameParts) => {\r\n var result = fullNameParts.length > 0 && prevValue && value !== prevValue ? cloneObjectValue(prevValue) : cloneObjectValue(value);\r\n var name = fullNameParts[0];\r\n if (fullNameParts.length > 1) {\r\n result[name] = cloneObjectProp(value[name], null === prevValue || void 0 === prevValue ? void 0 : prevValue[name], fullNameParts.slice(1))\r\n } else if (name) {\r\n if (isPlainObject(value[name])) {\r\n result[name] = cloneObjectValue(value[name])\r\n } else {\r\n result[name] = value[name]\r\n }\r\n }\r\n return result\r\n};\r\nexport var updatePropsImmutable = (props, option, name, fullName) => {\r\n var currentPropsValue = option[name];\r\n var prevPropsValue = props[name];\r\n var result = props;\r\n if (isPlainObject(currentPropsValue) || name !== fullName && Array.isArray(currentPropsValue)) {\r\n result[name] = cloneObjectProp(currentPropsValue, prevPropsValue, getPathParts(fullName).slice(1))\r\n } else {\r\n result[name] = currentPropsValue\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/core/r1/component_wrapper.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport \"../../../events/click\";\r\nimport \"../../../events/core/emitter.feedback\";\r\nimport \"../../../events/hover\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport DOMComponent from \"../../../core/dom_component\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n isDefined,\r\n isRenderer,\r\n isString\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n createRef\r\n} from \"inferno\";\r\nimport renderer from \"../../../core/inferno_renderer\";\r\nimport KeyboardProcessor from \"../../../events/core/keyboard_processor\";\r\nimport {\r\n buildTemplateArgs,\r\n TemplateWrapper\r\n} from \"./template_wrapper\";\r\nimport {\r\n updatePropsImmutable\r\n} from \"./utils/index\";\r\nvar setDefaultOptionValue = (options, defaultValueGetter) => name => {\r\n if (Object.prototype.hasOwnProperty.call(options, name) && void 0 === options[name]) {\r\n options[name] = defaultValueGetter(name)\r\n }\r\n};\r\nexport class ComponentWrapper extends DOMComponent {\r\n constructor(element, options) {\r\n super(element, options);\r\n this._shouldRaiseContentReady = false;\r\n this.validateKeyDownHandler()\r\n }\r\n get _propsInfo() {\r\n return {\r\n allowNull: [],\r\n twoWay: [],\r\n elements: [],\r\n templates: [],\r\n props: []\r\n }\r\n }\r\n validateKeyDownHandler() {\r\n var supportedKeyNames = this.getSupportedKeyNames();\r\n var hasComponentDefaultKeyHandlers = supportedKeyNames.length > 0;\r\n var hasComponentKeyDownMethod = \"function\" === typeof this._viewComponent.prototype.keyDown;\r\n if (hasComponentDefaultKeyHandlers && !hasComponentKeyDownMethod) {\r\n throw Error(\"Component's declaration must have 'keyDown' method.\")\r\n }\r\n }\r\n get viewRef() {\r\n var _a;\r\n return null === (_a = this._viewRef) || void 0 === _a ? void 0 : _a.current\r\n }\r\n _checkContentReadyOption(fullName) {\r\n var contentReadyOptions = this._getContentReadyOptions().reduce((options, name) => {\r\n options[name] = true;\r\n return options\r\n }, {});\r\n this._checkContentReadyOption = optionName => !!contentReadyOptions[optionName];\r\n return this._checkContentReadyOption(fullName)\r\n }\r\n _getContentReadyOptions() {\r\n return [\"rtlEnabled\"]\r\n }\r\n _fireContentReady() {\r\n this._actionsMap.onContentReady({})\r\n }\r\n _getDefaultOptions() {\r\n var viewDefaultProps = this._getViewComponentDefaultProps();\r\n return extend(true, super._getDefaultOptions(), viewDefaultProps, this._propsInfo.twoWay.reduce((options, _ref) => {\r\n var [name, defaultName, eventName] = _ref;\r\n return _extends(_extends({}, options), {\r\n [name]: viewDefaultProps[defaultName],\r\n [eventName]: value => this.option(name, value)\r\n })\r\n }, {}), this._propsInfo.templates.reduce((options, name) => _extends(_extends({}, options), {\r\n [name]: null\r\n }), {}))\r\n }\r\n _getUnwrappedOption() {\r\n var unwrappedProps = {};\r\n Object.keys(this.option()).forEach(key => {\r\n unwrappedProps[key] = this.option(key)\r\n });\r\n return unwrappedProps\r\n }\r\n _initializeComponent() {\r\n var _a;\r\n super._initializeComponent();\r\n null === (_a = this._templateManager) || void 0 === _a ? void 0 : _a.addDefaultTemplates(this.getDefaultTemplates());\r\n var optionProxy = this._getUnwrappedOption();\r\n this._props = this._optionsWithDefaultTemplates(optionProxy);\r\n this._propsInfo.templates.forEach(template => {\r\n this._componentTemplates[template] = this._createTemplateComponent(this._props[template])\r\n });\r\n Object.keys(this._getActionConfigsFull()).forEach(name => this._addAction(name));\r\n this._viewRef = createRef();\r\n this.defaultKeyHandlers = this._createDefaultKeyHandlers()\r\n }\r\n _initMarkup() {\r\n var props = this.getProps();\r\n this._renderWrapper(props)\r\n }\r\n _renderWrapper(props) {\r\n var containerNode = this.$element()[0];\r\n if (!this._isNodeReplaced) {\r\n renderer.onPreRender()\r\n }\r\n renderer.render(this._viewComponent, props, containerNode, this._isNodeReplaced);\r\n if (!this._isNodeReplaced) {\r\n this._isNodeReplaced = true;\r\n renderer.onAfterRender();\r\n this._shouldRaiseContentReady = true\r\n }\r\n if (this._shouldRaiseContentReady) {\r\n this._fireContentReady();\r\n this._shouldRaiseContentReady = false\r\n }\r\n }\r\n _silent(name, value) {\r\n this._options.silent(name, value)\r\n }\r\n _render() {}\r\n _removeWidget() {\r\n renderer.remove(this.$element()[0])\r\n }\r\n _dispose() {\r\n this._removeWidget();\r\n super._dispose()\r\n }\r\n get elementAttr() {\r\n var element = this.$element()[0];\r\n if (!this._elementAttr) {\r\n var {\r\n attributes: attributes\r\n } = element;\r\n var attrs = Array.from(attributes).filter(attr => {\r\n var _a;\r\n return !this._propsInfo.templates.includes(attr.name) && (null === (_a = attributes[attr.name]) || void 0 === _a ? void 0 : _a.specified)\r\n }).reduce((result, _ref2) => {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref2;\r\n var updatedAttributes = result;\r\n var isDomAttr = name in element;\r\n updatedAttributes[name] = \"\" === value && isDomAttr ? element[name] : value;\r\n return updatedAttributes\r\n }, {});\r\n this._elementAttr = attrs;\r\n this._storedClasses = element.getAttribute(\"class\") || \"\"\r\n }\r\n var elemStyle = element.style;\r\n var style = {};\r\n for (var i = 0; i < elemStyle.length; i += 1) {\r\n style[elemStyle[i]] = elemStyle.getPropertyValue(elemStyle[i])\r\n }\r\n this._elementAttr.style = style;\r\n this._elementAttr.class = this._storedClasses;\r\n return this._elementAttr\r\n }\r\n _getAdditionalActionConfigs() {\r\n return {\r\n onContentReady: {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n }\r\n }\r\n }\r\n _getAdditionalProps() {\r\n return []\r\n }\r\n _patchOptionValues(options) {\r\n var {\r\n allowNull: allowNull,\r\n twoWay: twoWay,\r\n elements: elements,\r\n props: props\r\n } = this._propsInfo;\r\n var viewDefaultProps = this._getViewComponentDefaultProps();\r\n var defaultWidgetPropsKeys = Object.keys(viewDefaultProps);\r\n var defaultOptions = this._getDefaultOptions();\r\n var {\r\n ref: ref,\r\n children: children,\r\n onKeyboardHandled: onKeyboardHandled\r\n } = options;\r\n var onKeyDown = onKeyboardHandled ? (_, event_options) => {\r\n onKeyboardHandled(event_options)\r\n } : void 0;\r\n var widgetProps = {\r\n ref: ref,\r\n children: children,\r\n onKeyDown: onKeyDown\r\n };\r\n [...props, ...this._getAdditionalProps()].forEach(propName => {\r\n if (Object.prototype.hasOwnProperty.call(options, propName)) {\r\n widgetProps[propName] = options[propName]\r\n }\r\n });\r\n allowNull.forEach(setDefaultOptionValue(widgetProps, () => null));\r\n defaultWidgetPropsKeys.forEach(setDefaultOptionValue(widgetProps, name => defaultOptions[name]));\r\n twoWay.forEach(_ref3 => {\r\n var [name, defaultName] = _ref3;\r\n setDefaultOptionValue(widgetProps, () => defaultOptions[defaultName])(name)\r\n });\r\n elements.forEach(name => {\r\n if (name in widgetProps) {\r\n var value = widgetProps[name];\r\n if (isRenderer(value)) {\r\n widgetProps[name] = this._patchElementParam(value)\r\n }\r\n }\r\n });\r\n return widgetProps\r\n }\r\n getSupportedKeyNames() {\r\n return []\r\n }\r\n prepareStyleProp(props) {\r\n if (\"string\" === typeof props.style) {\r\n return _extends(_extends({}, props), {\r\n style: {},\r\n cssText: props.style\r\n })\r\n }\r\n return props\r\n }\r\n getProps() {\r\n var _a, _b;\r\n var {\r\n elementAttr: elementAttr\r\n } = this.option();\r\n var options = this._patchOptionValues(_extends(_extends({}, this._props), {\r\n ref: this._viewRef,\r\n children: this._extractDefaultSlot(),\r\n aria: this._aria\r\n }));\r\n this._propsInfo.templates.forEach(template => {\r\n options[template] = this._componentTemplates[template]\r\n });\r\n return this.prepareStyleProp(_extends(_extends(_extends(_extends(_extends({}, options), this.elementAttr), elementAttr), {\r\n className: [...(null !== (_a = this.elementAttr.class) && void 0 !== _a ? _a : \"\").split(\" \"), ...(null !== (_b = null === elementAttr || void 0 === elementAttr ? void 0 : elementAttr.class) && void 0 !== _b ? _b : \"\").split(\" \")].filter((c, i, a) => c && a.indexOf(c) === i).join(\" \").trim(),\r\n class: \"\"\r\n }), this._actionsMap))\r\n }\r\n _getActionConfigs() {\r\n return {}\r\n }\r\n _getActionConfigsFull() {\r\n return _extends(_extends({}, this._getActionConfigs()), this._getAdditionalActionConfigs())\r\n }\r\n getDefaultTemplates() {\r\n var defaultTemplates = Object.values(this._templatesInfo);\r\n var result = {};\r\n defaultTemplates.forEach(template => {\r\n result[template] = \"dx-renovation-template-mock\"\r\n });\r\n return result\r\n }\r\n get _templatesInfo() {\r\n return {}\r\n }\r\n _optionsWithDefaultTemplates(options) {\r\n var templateOptions = Object.entries(this._templatesInfo).reduce((result, _ref4) => {\r\n var [templateName, templateValue] = _ref4;\r\n var _a;\r\n return _extends(_extends({}, result), {\r\n [templateName]: null !== (_a = options[templateName]) && void 0 !== _a ? _a : templateValue\r\n })\r\n }, {});\r\n return _extends(_extends({}, options), templateOptions)\r\n }\r\n _init() {\r\n super._init();\r\n this.customKeyHandlers = {};\r\n this._actionsMap = {};\r\n this._aria = {};\r\n this._componentTemplates = {}\r\n }\r\n _createDefaultKeyHandlers() {\r\n var result = {};\r\n var keys = this.getSupportedKeyNames();\r\n keys.forEach(key => {\r\n result[key] = e => this.viewRef.keyDown(KeyboardProcessor.createKeyDownOptions(e))\r\n });\r\n return result\r\n }\r\n _addAction(event, actionToAdd) {\r\n var action = actionToAdd;\r\n if (!action) {\r\n var actionByOption = this._createActionByOption(event, this._getActionConfigsFull()[event]);\r\n action = actArgs => {\r\n Object.keys(actArgs).forEach(name => {\r\n if (isDefined(actArgs[name]) && domAdapter.isNode(actArgs[name])) {\r\n actArgs[name] = getPublicElement($(actArgs[name]))\r\n }\r\n });\r\n return actionByOption(actArgs)\r\n }\r\n }\r\n this._actionsMap[event] = action\r\n }\r\n _optionChanged(option) {\r\n var {\r\n name: name,\r\n fullName: fullName,\r\n value: value,\r\n previousValue: previousValue\r\n } = option;\r\n updatePropsImmutable(this._props, this.option(), name, fullName);\r\n if (this._propsInfo.templates.includes(name) && value !== previousValue) {\r\n this._componentTemplates[name] = this._createTemplateComponent(value)\r\n }\r\n if (name && this._getActionConfigsFull()[name]) {\r\n this._addAction(name)\r\n }\r\n this._shouldRaiseContentReady = this._shouldRaiseContentReady || this._checkContentReadyOption(fullName);\r\n super._optionChanged(option);\r\n this._invalidate()\r\n }\r\n _extractDefaultSlot() {\r\n if (this.option(\"_hasAnonymousTemplateContent\")) {\r\n return renderer.createElement(TemplateWrapper, {\r\n template: this._getTemplate(this._templateManager.anonymousTemplateName),\r\n transclude: true,\r\n renovated: true\r\n })\r\n }\r\n return null\r\n }\r\n _createTemplateComponent(templateOption) {\r\n if (!templateOption) {\r\n return\r\n }\r\n var template = this._getTemplate(templateOption);\r\n if (isString(template) && \"dx-renovation-template-mock\" === template) {\r\n return\r\n }\r\n return model => renderer.createElement(TemplateWrapper, buildTemplateArgs(model, template))\r\n }\r\n _wrapKeyDownHandler(initialHandler) {\r\n return options => {\r\n var {\r\n originalEvent: originalEvent,\r\n keyName: keyName,\r\n which: which\r\n } = options;\r\n var keys = this.customKeyHandlers;\r\n var func = keys[keyName] || keys[which];\r\n if (void 0 !== func) {\r\n var handler = func.bind(this);\r\n var result = handler(originalEvent, options);\r\n if (!result) {\r\n originalEvent.cancel = true;\r\n return originalEvent\r\n }\r\n }\r\n return null === initialHandler || void 0 === initialHandler ? void 0 : initialHandler(originalEvent, options)\r\n }\r\n }\r\n _toPublicElement(element) {\r\n return getPublicElement($(element))\r\n }\r\n _patchElementParam(value) {\r\n try {\r\n var result = $(value);\r\n var element = null === result || void 0 === result ? void 0 : result.get(0);\r\n return (null === element || void 0 === element ? void 0 : element.nodeType) ? element : value\r\n } catch (error) {\r\n return value\r\n }\r\n }\r\n repaint() {\r\n this._isNodeReplaced = false;\r\n this._shouldRaiseContentReady = true;\r\n this._removeWidget();\r\n this._refresh()\r\n }\r\n _supportedKeys() {\r\n return _extends(_extends({}, this.defaultKeyHandlers), this.customKeyHandlers)\r\n }\r\n registerKeyHandler(key, handler) {\r\n this.customKeyHandlers[key] = handler\r\n }\r\n setAria(name, value) {\r\n this._aria[name] = value;\r\n this._initMarkup()\r\n }\r\n _getViewComponentDefaultProps() {\r\n return this._viewComponent.defaultProps || {}\r\n }\r\n}\r\nComponentWrapper.IS_RENOVATED_WIDGET = false;\r\nComponentWrapper.IS_RENOVATED_WIDGET = true;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/base/all_day_panel_title.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n createVNode\r\n} from \"inferno\";\r\nimport {\r\n createReRenderEffect,\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport messageLocalization from \"../../../../../localization/message\";\r\nexport class AllDayPanelTitle extends InfernoWrapperComponent {\r\n createEffects() {\r\n return [createReRenderEffect()]\r\n }\r\n render() {\r\n var text = messageLocalization.format(\"dxScheduler-allDay\");\r\n return createVNode(1, \"div\", \"dx-scheduler-all-day-title\", text, 0)\r\n }\r\n}\r\nAllDayPanelTitle.defaultProps = {};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/wrappers/all_day_panel_title.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../../../core/component_registrator\";\r\nimport {\r\n ComponentWrapper\r\n} from \"../../../../core/r1/index\";\r\nimport {\r\n AllDayPanelTitle\r\n} from \"../base/all_day_panel_title\";\r\nexport class AllDayPanelTitleComponent extends ComponentWrapper {\r\n get _propsInfo() {\r\n return {\r\n twoWay: [],\r\n allowNull: [],\r\n elements: [],\r\n templates: [],\r\n props: []\r\n }\r\n }\r\n get _viewComponent() {\r\n return AllDayPanelTitle\r\n }\r\n}\r\nregisterComponent(\"dxAllDayPanelTitle\", AllDayPanelTitleComponent);\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/const.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var DefaultSizes = {\r\n allDayPanelHeight: 25\r\n};\r\nexport var DATE_TABLE_CELL_CLASS = \"dx-scheduler-date-table-cell\";\r\nexport var DATE_TABLE_ROW_CLASS = \"dx-scheduler-date-table-row\";\r\nexport var ALL_DAY_PANEL_CELL_CLASS = \"dx-scheduler-all-day-table-cell\";\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/base/cell.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n createVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n renderUtils\r\n} from \"../../utils/index\";\r\nexport var CellBaseDefaultProps = {\r\n className: \"\",\r\n isFirstGroupCell: false,\r\n isLastGroupCell: false,\r\n startDate: new Date,\r\n endDate: new Date,\r\n allDay: false,\r\n text: \"\",\r\n index: 0,\r\n contentTemplateProps: {\r\n data: {},\r\n index: 0\r\n }\r\n};\r\nexport class CellBase extends BaseInfernoComponent {\r\n render() {\r\n var {\r\n className: className,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell,\r\n children: children,\r\n ariaLabel: ariaLabel\r\n } = this.props;\r\n var classes = renderUtils.getGroupCellClasses(isFirstGroupCell, isLastGroupCell, className);\r\n return createVNode(1, \"td\", classes, children, 0, {\r\n \"aria-label\": ariaLabel\r\n })\r\n }\r\n}\r\nCellBase.defaultProps = CellBaseDefaultProps;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/base/date_table_cell_base.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n createFragment,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n getTemplate\r\n} from \"../../../../core/r1/utils/index\";\r\nimport {\r\n renderUtils\r\n} from \"../../utils/index\";\r\nimport {\r\n DATE_TABLE_CELL_CLASS\r\n} from \"../const\";\r\nimport {\r\n CellBase,\r\n CellBaseDefaultProps\r\n} from \"./cell\";\r\nexport var DateTableCallBaseDefaultProps = _extends(_extends({}, CellBaseDefaultProps), {\r\n otherMonth: false,\r\n today: false,\r\n firstDayOfMonth: false,\r\n isSelected: false,\r\n isFocused: false\r\n});\r\nvar ADD_APPOINTMENT_LABEL = \"Add appointment\";\r\nexport class DateTableCellBase extends BaseInfernoComponent {\r\n constructor() {\r\n super(...arguments);\r\n this.dataCellTemplateProps = null\r\n }\r\n getDataCellTemplateProps() {\r\n if (null !== this.dataCellTemplateProps) {\r\n return this.dataCellTemplateProps\r\n }\r\n var {\r\n allDay: allDay,\r\n contentTemplateProps: contentTemplateProps,\r\n endDate: endDate,\r\n groupIndex: groupIndex,\r\n groups: groups,\r\n index: index,\r\n startDate: startDate\r\n } = this.props;\r\n this.dataCellTemplateProps = {\r\n data: _extends({\r\n startDate: startDate,\r\n endDate: endDate,\r\n groups: groups,\r\n groupIndex: groups ? groupIndex : void 0,\r\n text: \"\",\r\n allDay: !!allDay || void 0\r\n }, null === contentTemplateProps || void 0 === contentTemplateProps ? void 0 : contentTemplateProps.data),\r\n index: index\r\n };\r\n return this.dataCellTemplateProps\r\n }\r\n componentWillUpdate(nextProps) {\r\n if (this.props.allDay !== nextProps.allDay || this.props.contentTemplateProps !== nextProps.contentTemplateProps || this.props.endDate !== nextProps.endDate || this.props.groupIndex !== nextProps.groupIndex || this.props.groups !== nextProps.groups || this.props.index !== nextProps.index || this.props.startDate !== nextProps.startDate) {\r\n this.dataCellTemplateProps = null\r\n }\r\n }\r\n render() {\r\n var {\r\n viewContext: viewContext,\r\n allDay: allDay,\r\n className: className,\r\n isFocused: isFocused,\r\n isSelected: isSelected,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell,\r\n dataCellTemplate: dataCellTemplate,\r\n children: children\r\n } = this.props;\r\n var {\r\n view: {\r\n type: viewType\r\n },\r\n crossScrollingEnabled: crossScrollingEnabled\r\n } = viewContext;\r\n var cellSizeHorizontalClass = renderUtils.getCellSizeHorizontalClass(viewType, crossScrollingEnabled);\r\n var cellSizeVerticalClass = renderUtils.getCellSizeVerticalClass(!!allDay);\r\n var classes = renderUtils.combineClasses({\r\n [cellSizeHorizontalClass]: true,\r\n [cellSizeVerticalClass]: true,\r\n [DATE_TABLE_CELL_CLASS]: !allDay,\r\n \"dx-state-focused\": isSelected,\r\n \"dx-scheduler-focused-cell\": isFocused,\r\n [null !== className && void 0 !== className ? className : \"\"]: true\r\n });\r\n var ariaLabel = isSelected ? ADD_APPOINTMENT_LABEL : void 0;\r\n var dataCellTemplateProps = this.getDataCellTemplateProps();\r\n var DataCellTemplateComponent = getTemplate(dataCellTemplate);\r\n return createComponentVNode(2, CellBase, {\r\n className: classes,\r\n viewContext: viewContext,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell,\r\n ariaLabel: ariaLabel,\r\n startDate: CellBaseDefaultProps.startDate,\r\n endDate: CellBaseDefaultProps.endDate,\r\n index: CellBaseDefaultProps.index,\r\n children: createFragment([!DataCellTemplateComponent && children, !!DataCellTemplateComponent && DataCellTemplateComponent({\r\n index: dataCellTemplateProps.index,\r\n data: dataCellTemplateProps.data\r\n })], 0)\r\n })\r\n }\r\n}\r\nDateTableCellBase.defaultProps = DateTableCallBaseDefaultProps;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/base/all_day_panel_cell.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n getTemplate\r\n} from \"../../../../core/r1/utils/index\";\r\nimport {\r\n ALL_DAY_PANEL_CELL_CLASS\r\n} from \"../const\";\r\nimport {\r\n DateTableCallBaseDefaultProps,\r\n DateTableCellBase\r\n} from \"./date_table_cell_base\";\r\nexport class AllDayPanelCell extends BaseInfernoComponent {\r\n render() {\r\n var {\r\n className: className,\r\n viewContext: viewContext,\r\n dataCellTemplate: dataCellTemplate,\r\n endDate: endDate,\r\n groupIndex: groupIndex,\r\n groups: groups,\r\n index: index,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isFocused: isFocused,\r\n isLastGroupCell: isLastGroupCell,\r\n isSelected: isSelected,\r\n startDate: startDate\r\n } = this.props;\r\n var DataCellTemplateComponent = getTemplate(dataCellTemplate);\r\n return createComponentVNode(2, DateTableCellBase, {\r\n className: \"\".concat(ALL_DAY_PANEL_CELL_CLASS, \" \").concat(className),\r\n viewContext: viewContext,\r\n startDate: startDate,\r\n endDate: endDate,\r\n groups: groups,\r\n groupIndex: groupIndex,\r\n allDay: true,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell,\r\n index: index,\r\n dataCellTemplate: DataCellTemplateComponent,\r\n isSelected: isSelected,\r\n isFocused: isFocused\r\n })\r\n }\r\n}\r\nAllDayPanelCell.defaultProps = DateTableCallBaseDefaultProps;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/base/ordinary_cell.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n createVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent,\r\n normalizeStyles\r\n} from \"@devextreme/runtime/inferno\";\r\nexport var OrdinaryCellDefaultProps = {};\r\nexport class OrdinaryCell extends BaseInfernoComponent {\r\n render() {\r\n var {\r\n children: children,\r\n className: className,\r\n colSpan: colSpan,\r\n styles: styles\r\n } = this.props;\r\n return createVNode(1, \"td\", className, children, 0, {\r\n style: normalizeStyles(styles),\r\n colSpan: colSpan\r\n })\r\n }\r\n}\r\nOrdinaryCell.defaultProps = OrdinaryCellDefaultProps;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/base/header_cell.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n createVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent,\r\n normalizeStyles\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n OrdinaryCellDefaultProps\r\n} from \"./ordinary_cell\";\r\nexport class HeaderCell extends BaseInfernoComponent {\r\n render() {\r\n var {\r\n children: children,\r\n className: className,\r\n colSpan: colSpan,\r\n styles: styles\r\n } = this.props;\r\n return createVNode(1, \"th\", className, children, 0, {\r\n style: normalizeStyles(styles),\r\n colSpan: colSpan\r\n })\r\n }\r\n}\r\nHeaderCell.defaultProps = OrdinaryCellDefaultProps;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/base/virtual_cell.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n renderUtils\r\n} from \"../../utils/index\";\r\nimport {\r\n HeaderCell\r\n} from \"./header_cell\";\r\nimport {\r\n OrdinaryCell\r\n} from \"./ordinary_cell\";\r\nexport var VirtualCellDefaultProps = {\r\n width: 0,\r\n isHeaderCell: false\r\n};\r\nexport class VirtualCell extends BaseInfernoComponent {\r\n render() {\r\n var {\r\n colSpan: colSpan,\r\n isHeaderCell: isHeaderCell,\r\n width: width,\r\n styles: styles\r\n } = this.props;\r\n var modifiedStyles = renderUtils.addWidthToStyle(width, styles);\r\n var Cell = isHeaderCell ? HeaderCell : OrdinaryCell;\r\n return createComponentVNode(2, Cell, {\r\n className: \"dx-scheduler-virtual-cell\",\r\n styles: modifiedStyles,\r\n colSpan: colSpan\r\n })\r\n }\r\n}\r\nVirtualCell.defaultProps = VirtualCellDefaultProps;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/base/row.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n createVNode,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent,\r\n normalizeStyles\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n splitNumber\r\n} from \"../../utils/index\";\r\nimport {\r\n VirtualCell,\r\n VirtualCellDefaultProps\r\n} from \"./virtual_cell\";\r\nvar MAX_COL_SPAN = 1e3;\r\nexport var RowDefaultProps = {\r\n className: \"\",\r\n leftVirtualCellWidth: 0,\r\n rightVirtualCellWidth: 0,\r\n isHeaderRow: false\r\n};\r\nexport class Row extends BaseInfernoComponent {\r\n render() {\r\n var {\r\n children: children,\r\n className: className,\r\n isHeaderRow: isHeaderRow,\r\n leftVirtualCellCount: leftVirtualCellCount,\r\n leftVirtualCellWidth: leftVirtualCellWidth,\r\n rightVirtualCellCount: rightVirtualCellCount,\r\n rightVirtualCellWidth: rightVirtualCellWidth,\r\n styles: styles\r\n } = this.props;\r\n var hasLeftVirtualCell = !!leftVirtualCellCount;\r\n var hasRightVirtualCell = !!rightVirtualCellCount;\r\n return createVNode(1, \"tr\", className, [hasLeftVirtualCell && null != leftVirtualCellCount && splitNumber(leftVirtualCellCount, MAX_COL_SPAN).map((colSpan, index) => createComponentVNode(2, VirtualCell, {\r\n className: \"left-virtual-cell-\".concat(index),\r\n width: leftVirtualCellWidth * (colSpan / leftVirtualCellCount),\r\n colSpan: colSpan,\r\n isHeaderCell: null !== isHeaderRow && void 0 !== isHeaderRow ? isHeaderRow : VirtualCellDefaultProps.isHeaderCell\r\n })), children, hasRightVirtualCell && null != rightVirtualCellCount && splitNumber(rightVirtualCellCount, MAX_COL_SPAN).map((colSpan, index) => createComponentVNode(2, VirtualCell, {\r\n className: \"right-virtual-cell-\".concat(index),\r\n width: rightVirtualCellWidth * (colSpan / rightVirtualCellCount),\r\n colSpan: colSpan,\r\n isHeaderCell: null !== isHeaderRow && void 0 !== isHeaderRow ? isHeaderRow : VirtualCellDefaultProps.isHeaderCell\r\n }))], 0, {\r\n style: normalizeStyles(styles)\r\n })\r\n }\r\n}\r\nRow.defaultProps = RowDefaultProps;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/base/all_day_panel_table_body.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n getTemplate\r\n} from \"../../../../core/r1/utils/index\";\r\nimport {\r\n renderUtils\r\n} from \"../../utils/index\";\r\nimport {\r\n AllDayPanelCell\r\n} from \"./all_day_panel_cell\";\r\nimport {\r\n Row\r\n} from \"./row\";\r\nexport var AllDayPanelTableBodyDefaultProps = {\r\n viewData: [],\r\n isVerticalGroupOrientation: false,\r\n className: \"\",\r\n leftVirtualCellWidth: 0,\r\n rightVirtualCellWidth: 0\r\n};\r\nexport class AllDayPanelTableBody extends BaseInfernoComponent {\r\n render() {\r\n var {\r\n className: className,\r\n viewData: viewData,\r\n viewContext: viewContext,\r\n leftVirtualCellWidth: leftVirtualCellWidth,\r\n rightVirtualCellWidth: rightVirtualCellWidth,\r\n leftVirtualCellCount: leftVirtualCellCount,\r\n rightVirtualCellCount: rightVirtualCellCount,\r\n isVerticalGroupOrientation: isVerticalGroupOrientation,\r\n dataCellTemplate: dataCellTemplate\r\n } = this.props;\r\n var classes = renderUtils.combineClasses({\r\n \"dx-scheduler-all-day-table-row\": true,\r\n [null !== className && void 0 !== className ? className : \"\"]: !!className\r\n });\r\n var DataCellTemplateComponent = getTemplate(dataCellTemplate);\r\n return createComponentVNode(2, Row, {\r\n leftVirtualCellWidth: leftVirtualCellWidth,\r\n rightVirtualCellWidth: rightVirtualCellWidth,\r\n leftVirtualCellCount: leftVirtualCellCount,\r\n rightVirtualCellCount: rightVirtualCellCount,\r\n className: classes,\r\n children: viewData.map(_ref => {\r\n var {\r\n endDate: endDate,\r\n groupIndex: cellGroupIndex,\r\n groups: groups,\r\n index: cellIndex,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isFocused: isFocused,\r\n isLastGroupCell: isLastGroupCell,\r\n isSelected: isSelected,\r\n key: key,\r\n startDate: startDate\r\n } = _ref;\r\n return createComponentVNode(2, AllDayPanelCell, {\r\n viewContext: viewContext,\r\n isFirstGroupCell: !isVerticalGroupOrientation && isFirstGroupCell,\r\n isLastGroupCell: !isVerticalGroupOrientation && isLastGroupCell,\r\n startDate: startDate,\r\n endDate: endDate,\r\n groups: groups,\r\n groupIndex: cellGroupIndex,\r\n index: cellIndex,\r\n dataCellTemplate: DataCellTemplateComponent,\r\n isSelected: null !== isSelected && void 0 !== isSelected ? isSelected : false,\r\n isFocused: null !== isFocused && void 0 !== isFocused ? isFocused : false\r\n }, key)\r\n })\r\n })\r\n }\r\n}\r\nAllDayPanelTableBody.defaultProps = AllDayPanelTableBodyDefaultProps;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/base/layout_props.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var LayoutDefaultProps = {\r\n viewData: {\r\n groupedData: [],\r\n leftVirtualCellCount: 0,\r\n rightVirtualCellCount: 0,\r\n topVirtualRowCount: 0,\r\n bottomVirtualRowCount: 0\r\n },\r\n leftVirtualCellWidth: 0,\r\n rightVirtualCellWidth: 0,\r\n topVirtualRowHeight: 0,\r\n bottomVirtualRowHeight: 0,\r\n addDateTableClass: true,\r\n addVerticalSizesClassToRows: true\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/base/virtual_row.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n renderUtils\r\n} from \"../../utils/index\";\r\nimport {\r\n Row,\r\n RowDefaultProps\r\n} from \"./row\";\r\nimport {\r\n VirtualCell,\r\n VirtualCellDefaultProps\r\n} from \"./virtual_cell\";\r\nexport var VirtualRowDefaultProps = _extends(_extends({}, RowDefaultProps), {\r\n leftVirtualCellWidth: 0,\r\n rightVirtualCellWidth: 0,\r\n cellsCount: 1\r\n});\r\nexport class VirtualRow extends BaseInfernoComponent {\r\n constructor() {\r\n super(...arguments);\r\n this.virtualCells = null\r\n }\r\n getVirtualCells() {\r\n if (null !== this.virtualCells) {\r\n return this.virtualCells\r\n }\r\n var {\r\n cellsCount: cellsCount\r\n } = this.props;\r\n this.virtualCells = [...Array(cellsCount)];\r\n return this.virtualCells\r\n }\r\n componentWillUpdate(nextProps) {\r\n if (this.props.cellsCount !== nextProps.cellsCount) {\r\n this.virtualCells = null\r\n }\r\n }\r\n render() {\r\n var {\r\n className: className,\r\n leftVirtualCellCount: leftVirtualCellCount,\r\n leftVirtualCellWidth: leftVirtualCellWidth,\r\n rightVirtualCellCount: rightVirtualCellCount,\r\n rightVirtualCellWidth: rightVirtualCellWidth,\r\n styles: styles,\r\n height: height\r\n } = this.props;\r\n var classes = \"dx-scheduler-virtual-row \".concat(className);\r\n var modifiedStyles = renderUtils.addHeightToStyle(height, styles);\r\n var virtualCells = this.getVirtualCells();\r\n return createComponentVNode(2, Row, {\r\n className: classes,\r\n styles: modifiedStyles,\r\n leftVirtualCellWidth: leftVirtualCellWidth,\r\n rightVirtualCellWidth: rightVirtualCellWidth,\r\n leftVirtualCellCount: leftVirtualCellCount,\r\n rightVirtualCellCount: rightVirtualCellCount,\r\n children: virtualCells.map((_, index) => createComponentVNode(2, VirtualCell, {\r\n width: VirtualCellDefaultProps.width,\r\n isHeaderCell: VirtualCellDefaultProps.isHeaderCell\r\n }, index.toString()))\r\n })\r\n }\r\n}\r\nVirtualRow.defaultProps = VirtualRowDefaultProps;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/base/table.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n createVNode,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent,\r\n normalizeStyles\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n renderUtils\r\n} from \"../../utils/index\";\r\nimport {\r\n VirtualRow,\r\n VirtualRowDefaultProps\r\n} from \"./virtual_row\";\r\nexport var TableDefaultProps = {\r\n topVirtualRowHeight: 0,\r\n bottomVirtualRowHeight: 0,\r\n leftVirtualCellWidth: 0,\r\n rightVirtualCellWidth: 0,\r\n virtualCellsCount: 0\r\n};\r\nexport class Table extends BaseInfernoComponent {\r\n getResultStyles() {\r\n var {\r\n height: height,\r\n width: width,\r\n styles: styles\r\n } = this.props;\r\n var heightAdded = renderUtils.addHeightToStyle(height, styles);\r\n return renderUtils.addWidthToStyle(width, heightAdded)\r\n }\r\n render() {\r\n var {\r\n className: className,\r\n topVirtualRowHeight: topVirtualRowHeight,\r\n bottomVirtualRowHeight: bottomVirtualRowHeight,\r\n children: children,\r\n leftVirtualCellCount: leftVirtualCellCount,\r\n leftVirtualCellWidth: leftVirtualCellWidth,\r\n rightVirtualCellCount: rightVirtualCellCount,\r\n rightVirtualCellWidth: rightVirtualCellWidth,\r\n tableRef: tableRef,\r\n virtualCellsCount: virtualCellsCount\r\n } = this.props;\r\n var hasTopVirtualRow = !!topVirtualRowHeight;\r\n var hasBottomVirtualRow = !!bottomVirtualRowHeight;\r\n var resultStyles = this.getResultStyles();\r\n return createVNode(1, \"table\", className, createVNode(1, \"tbody\", null, [hasTopVirtualRow && createComponentVNode(2, VirtualRow, {\r\n height: topVirtualRowHeight,\r\n cellsCount: null !== virtualCellsCount && void 0 !== virtualCellsCount ? virtualCellsCount : VirtualRowDefaultProps.cellsCount,\r\n leftVirtualCellWidth: null !== leftVirtualCellWidth && void 0 !== leftVirtualCellWidth ? leftVirtualCellWidth : VirtualRowDefaultProps.leftVirtualCellWidth,\r\n rightVirtualCellWidth: null !== rightVirtualCellWidth && void 0 !== rightVirtualCellWidth ? rightVirtualCellWidth : VirtualRowDefaultProps.rightVirtualCellWidth,\r\n leftVirtualCellCount: leftVirtualCellCount,\r\n rightVirtualCellCount: rightVirtualCellCount\r\n }), children, hasBottomVirtualRow && createComponentVNode(2, VirtualRow, {\r\n height: bottomVirtualRowHeight,\r\n cellsCount: null !== virtualCellsCount && void 0 !== virtualCellsCount ? virtualCellsCount : VirtualRowDefaultProps.cellsCount,\r\n leftVirtualCellWidth: null !== leftVirtualCellWidth && void 0 !== leftVirtualCellWidth ? leftVirtualCellWidth : VirtualRowDefaultProps.leftVirtualCellWidth,\r\n rightVirtualCellWidth: null !== rightVirtualCellWidth && void 0 !== rightVirtualCellWidth ? rightVirtualCellWidth : VirtualRowDefaultProps.rightVirtualCellWidth,\r\n leftVirtualCellCount: leftVirtualCellCount,\r\n rightVirtualCellCount: rightVirtualCellCount\r\n })], 0), 2, {\r\n style: normalizeStyles(resultStyles)\r\n }, null, tableRef)\r\n }\r\n}\r\nTable.defaultProps = TableDefaultProps;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/base/all_day_panel_table.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n createReRenderEffect,\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n getTemplate\r\n} from \"../../../../core/r1/utils/index\";\r\nimport {\r\n DefaultSizes\r\n} from \"../const\";\r\nimport {\r\n AllDayPanelTableBody,\r\n AllDayPanelTableBodyDefaultProps\r\n} from \"./all_day_panel_table_body\";\r\nimport {\r\n LayoutDefaultProps\r\n} from \"./layout_props\";\r\nimport {\r\n Table\r\n} from \"./table\";\r\nexport class AllDayTable extends InfernoWrapperComponent {\r\n constructor() {\r\n super(...arguments);\r\n this.allDayPanelData = null\r\n }\r\n createEffects() {\r\n return [createReRenderEffect()]\r\n }\r\n getAllDayPanelData() {\r\n if (null !== this.allDayPanelData) {\r\n return this.allDayPanelData\r\n }\r\n this.allDayPanelData = this.props.viewData.groupedData[0].allDayPanel;\r\n return this.allDayPanelData\r\n }\r\n componentWillUpdate(nextProps) {\r\n super.componentWillUpdate();\r\n if (this.props.viewData !== nextProps.viewData) {\r\n this.allDayPanelData = null\r\n }\r\n }\r\n render() {\r\n var _a, _b;\r\n var {\r\n viewData: viewData,\r\n viewContext: viewContext,\r\n width: width,\r\n tableRef: tableRef,\r\n dataCellTemplate: dataCellTemplate\r\n } = this.props;\r\n var allDayPanelData = this.getAllDayPanelData();\r\n var DataCellTemplateComponent = getTemplate(dataCellTemplate);\r\n return createComponentVNode(2, Table, {\r\n className: \"dx-scheduler-all-day-table\",\r\n height: allDayPanelData ? void 0 : DefaultSizes.allDayPanelHeight,\r\n width: width,\r\n tableRef: tableRef,\r\n children: createComponentVNode(2, AllDayPanelTableBody, {\r\n viewData: null !== allDayPanelData && void 0 !== allDayPanelData ? allDayPanelData : AllDayPanelTableBodyDefaultProps.viewData,\r\n viewContext: viewContext,\r\n leftVirtualCellWidth: null !== (_a = viewData.leftVirtualCellWidth) && void 0 !== _a ? _a : AllDayPanelTableBodyDefaultProps.leftVirtualCellWidth,\r\n rightVirtualCellWidth: null !== (_b = viewData.rightVirtualCellWidth) && void 0 !== _b ? _b : AllDayPanelTableBodyDefaultProps.rightVirtualCellWidth,\r\n leftVirtualCellCount: viewData.leftVirtualCellCount,\r\n rightVirtualCellCount: viewData.rightVirtualCellCount,\r\n dataCellTemplate: DataCellTemplateComponent\r\n })\r\n })\r\n }\r\n}\r\nAllDayTable.defaultProps = LayoutDefaultProps;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/base/date_table_body.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n createFragment,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n getTemplate\r\n} from \"../../../../core/r1/utils/index\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n renderUtils\r\n} from \"../../utils/index\";\r\nimport {\r\n DATE_TABLE_ROW_CLASS\r\n} from \"../const\";\r\nimport {\r\n AllDayPanelTableBody,\r\n AllDayPanelTableBodyDefaultProps\r\n} from \"./all_day_panel_table_body\";\r\nimport {\r\n DateTableCellBase\r\n} from \"./date_table_cell_base\";\r\nimport {\r\n LayoutDefaultProps\r\n} from \"./layout_props\";\r\nimport {\r\n Row,\r\n RowDefaultProps\r\n} from \"./row\";\r\nexport var DateTableBodyDefaultProps = _extends(_extends({}, LayoutDefaultProps), {\r\n cellTemplate: DateTableCellBase\r\n});\r\nexport class DateTableBody extends BaseInfernoComponent {\r\n render() {\r\n var {\r\n viewData: viewData,\r\n viewContext: viewContext,\r\n addVerticalSizesClassToRows: addVerticalSizesClassToRows,\r\n cellTemplate: cellTemplate,\r\n dataCellTemplate: dataCellTemplate\r\n } = this.props;\r\n var rowClasses = renderUtils.combineClasses({\r\n [DATE_TABLE_ROW_CLASS]: true,\r\n \"dx-scheduler-cell-sizes-vertical\": addVerticalSizesClassToRows\r\n });\r\n var CellTemplateComponent = getTemplate(cellTemplate);\r\n var DataCellTemplateComponent = getTemplate(dataCellTemplate);\r\n return createFragment(viewData.groupedData.map(_ref => {\r\n var {\r\n allDayPanel: allDayPanel,\r\n dateTable: dateTable,\r\n isGroupedAllDayPanel: isGroupedAllDayPanel,\r\n key: fragmentKey\r\n } = _ref;\r\n var _a, _b;\r\n return createFragment([isGroupedAllDayPanel && createComponentVNode(2, AllDayPanelTableBody, {\r\n viewData: null !== allDayPanel && void 0 !== allDayPanel ? allDayPanel : AllDayPanelTableBodyDefaultProps.viewData,\r\n viewContext: viewContext,\r\n dataCellTemplate: DataCellTemplateComponent,\r\n isVerticalGroupOrientation: true,\r\n leftVirtualCellWidth: null !== (_a = viewData.leftVirtualCellWidth) && void 0 !== _a ? _a : AllDayPanelTableBodyDefaultProps.leftVirtualCellWidth,\r\n rightVirtualCellWidth: null !== (_b = viewData.rightVirtualCellWidth) && void 0 !== _b ? _b : AllDayPanelTableBodyDefaultProps.rightVirtualCellWidth,\r\n leftVirtualCellCount: viewData.leftVirtualCellCount,\r\n rightVirtualCellCount: viewData.rightVirtualCellCount\r\n }), dateTable.map(_ref2 => {\r\n var {\r\n cells: cells,\r\n key: rowKey\r\n } = _ref2;\r\n var _a, _b;\r\n return createComponentVNode(2, Row, {\r\n className: rowClasses,\r\n leftVirtualCellWidth: null !== (_a = viewData.leftVirtualCellWidth) && void 0 !== _a ? _a : RowDefaultProps.leftVirtualCellWidth,\r\n rightVirtualCellWidth: null !== (_b = viewData.rightVirtualCellWidth) && void 0 !== _b ? _b : RowDefaultProps.rightVirtualCellWidth,\r\n leftVirtualCellCount: viewData.leftVirtualCellCount,\r\n rightVirtualCellCount: viewData.rightVirtualCellCount,\r\n children: cells.map(_ref3 => {\r\n var {\r\n key: cellKey,\r\n endDate: endDate,\r\n firstDayOfMonth: firstDayOfMonth,\r\n groupIndex: cellGroupIndex,\r\n groups: groups,\r\n index: cellIndex,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isFocused: isFocused,\r\n isLastGroupCell: isLastGroupCell,\r\n isSelected: isSelected,\r\n otherMonth: otherMonth,\r\n startDate: startDate,\r\n text: text,\r\n today: today\r\n } = _ref3;\r\n return CellTemplateComponent({\r\n key: cellKey,\r\n viewContext: viewContext,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell,\r\n startDate: startDate,\r\n endDate: endDate,\r\n groups: groups,\r\n groupIndex: cellGroupIndex,\r\n index: cellIndex,\r\n dataCellTemplate: DataCellTemplateComponent,\r\n text: text,\r\n today: today,\r\n otherMonth: otherMonth,\r\n firstDayOfMonth: firstDayOfMonth,\r\n isSelected: isSelected,\r\n isFocused: isFocused\r\n })\r\n })\r\n }, rowKey)\r\n })], 0, fragmentKey)\r\n }), 0)\r\n }\r\n}\r\nDateTableBody.defaultProps = DateTableBodyDefaultProps;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/base/date_table.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nvar __rest = this && this.__rest || function(s, e) {\r\n var t = {};\r\n for (var p in s) {\r\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) {\r\n t[p] = s[p]\r\n }\r\n }\r\n if (null != s && \"function\" === typeof Object.getOwnPropertySymbols) {\r\n var i = 0;\r\n for (p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) {\r\n t[p[i]] = s[p[i]]\r\n }\r\n }\r\n }\r\n return t\r\n};\r\nimport {\r\n createReRenderEffect,\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n getTemplate\r\n} from \"../../../../core/r1/utils/index\";\r\nimport {\r\n DateTableBody,\r\n DateTableBodyDefaultProps\r\n} from \"./date_table_body\";\r\nimport {\r\n DateTableCellBase\r\n} from \"./date_table_cell_base\";\r\nimport {\r\n LayoutDefaultProps\r\n} from \"./layout_props\";\r\nimport {\r\n Table\r\n} from \"./table\";\r\nexport var DateTableDefaultProps = _extends(_extends({}, LayoutDefaultProps), {\r\n cellTemplate: DateTableCellBase\r\n});\r\nexport class DateTable extends InfernoWrapperComponent {\r\n createEffects() {\r\n return [createReRenderEffect()]\r\n }\r\n render() {\r\n var _a, _b, _c, _d;\r\n var _e = this.props,\r\n {\r\n viewData: viewData,\r\n viewContext: viewContext,\r\n tableRef: tableRef,\r\n addDateTableClass: addDateTableClass,\r\n width: width,\r\n cellTemplate: cellTemplate,\r\n dataCellTemplate: dataCellTemplate,\r\n groupOrientation: groupOrientation,\r\n addVerticalSizesClassToRows: addVerticalSizesClassToRows\r\n } = _e,\r\n restProps = __rest(_e, [\"viewData\", \"viewContext\", \"tableRef\", \"addDateTableClass\", \"width\", \"cellTemplate\", \"dataCellTemplate\", \"groupOrientation\", \"addVerticalSizesClassToRows\"]);\r\n var classes = addDateTableClass ? \"dx-scheduler-date-table\" : void 0;\r\n var topVirtualRowHeight = null !== (_a = viewData.topVirtualRowHeight) && void 0 !== _a ? _a : 0;\r\n var bottomVirtualRowHeight = null !== (_b = viewData.bottomVirtualRowHeight) && void 0 !== _b ? _b : 0;\r\n var leftVirtualCellWidth = null !== (_c = viewData.leftVirtualCellWidth) && void 0 !== _c ? _c : 0;\r\n var rightVirtualCellWidth = null !== (_d = viewData.rightVirtualCellWidth) && void 0 !== _d ? _d : 0;\r\n var virtualCellsCount = viewData.groupedData[0].dateTable[0].cells.length;\r\n var CellTemplateComponent = getTemplate(cellTemplate);\r\n var DataCellTemplateComponent = getTemplate(dataCellTemplate);\r\n return normalizeProps(createComponentVNode(2, Table, _extends({}, restProps, {\r\n tableRef: tableRef,\r\n topVirtualRowHeight: topVirtualRowHeight,\r\n bottomVirtualRowHeight: bottomVirtualRowHeight,\r\n leftVirtualCellWidth: leftVirtualCellWidth,\r\n rightVirtualCellWidth: rightVirtualCellWidth,\r\n leftVirtualCellCount: viewData.leftVirtualCellCount,\r\n rightVirtualCellCount: viewData.rightVirtualCellCount,\r\n virtualCellsCount: virtualCellsCount,\r\n className: classes,\r\n width: width,\r\n children: createComponentVNode(2, DateTableBody, {\r\n viewData: viewData,\r\n viewContext: viewContext,\r\n cellTemplate: CellTemplateComponent,\r\n dataCellTemplate: DataCellTemplateComponent,\r\n leftVirtualCellWidth: leftVirtualCellWidth,\r\n rightVirtualCellWidth: rightVirtualCellWidth,\r\n groupOrientation: groupOrientation,\r\n addVerticalSizesClassToRows: addVerticalSizesClassToRows,\r\n topVirtualRowHeight: DateTableBodyDefaultProps.topVirtualRowHeight,\r\n bottomVirtualRowHeight: DateTableBodyDefaultProps.bottomVirtualRowHeight,\r\n addDateTableClass: DateTableBodyDefaultProps.addDateTableClass\r\n })\r\n })))\r\n }\r\n}\r\nDateTable.defaultProps = DateTableDefaultProps;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/wrappers/date_table.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport registerComponent from \"../../../../../core/component_registrator\";\r\nimport {\r\n ComponentWrapper\r\n} from \"../../../../core/r1/index\";\r\nimport {\r\n DateTable\r\n} from \"../base/date_table\";\r\nexport class DateTableComponent extends ComponentWrapper {\r\n _setOptionsByReference() {\r\n super._setOptionsByReference();\r\n this._optionsByReference = _extends(_extends({}, this._optionsByReference), {\r\n dataCellTemplate: true\r\n })\r\n }\r\n get _propsInfo() {\r\n return {\r\n twoWay: [],\r\n allowNull: [],\r\n elements: [],\r\n templates: [\"cellTemplate\", \"dataCellTemplate\"],\r\n props: [\"viewData\", \"viewContext\", \"cellTemplate\", \"groupOrientation\", \"leftVirtualCellWidth\", \"rightVirtualCellWidth\", \"topVirtualRowHeight\", \"bottomVirtualRowHeight\", \"addDateTableClass\", \"addVerticalSizesClassToRows\", \"width\", \"dataCellTemplate\"]\r\n }\r\n }\r\n get _viewComponent() {\r\n return DateTable\r\n }\r\n}\r\nregisterComponent(\"dxDateTableLayoutBase\", DateTableComponent);\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/wrappers/all_day_table.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../../../core/component_registrator\";\r\nimport {\r\n AllDayTable\r\n} from \"../../../../scheduler/r1/components/base/all_day_panel_table\";\r\nimport {\r\n DateTableComponent\r\n} from \"./date_table\";\r\nexport class AllDayTableComponent extends DateTableComponent {\r\n get _propsInfo() {\r\n return {\r\n twoWay: [],\r\n allowNull: [],\r\n elements: [],\r\n templates: [\"dataCellTemplate\"],\r\n props: [\"viewData\", \"viewContext\", \"groupOrientation\", \"leftVirtualCellWidth\", \"rightVirtualCellWidth\", \"topVirtualRowHeight\", \"bottomVirtualRowHeight\", \"addDateTableClass\", \"addVerticalSizesClassToRows\", \"width\", \"dataCellTemplate\"]\r\n }\r\n }\r\n get _viewComponent() {\r\n return AllDayTable\r\n }\r\n}\r\nregisterComponent(\"dxAllDayTable\", AllDayTableComponent);\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/month/date_table_month_cell.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n createVNode,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n getTemplate\r\n} from \"../../../../core/r1/utils/index\";\r\nimport {\r\n renderUtils\r\n} from \"../../utils/index\";\r\nimport {\r\n DateTableCallBaseDefaultProps,\r\n DateTableCellBase\r\n} from \"../base/date_table_cell_base\";\r\nexport class DateTableMonthCell extends BaseInfernoComponent {\r\n constructor() {\r\n super(...arguments);\r\n this.contentTemplateProps = null\r\n }\r\n getContentTemplateProps() {\r\n if (null !== this.contentTemplateProps) {\r\n return this.contentTemplateProps\r\n }\r\n var {\r\n index: index,\r\n text: text\r\n } = this.props;\r\n this.contentTemplateProps = {\r\n data: {\r\n text: text\r\n },\r\n index: index\r\n };\r\n return this.contentTemplateProps\r\n }\r\n componentWillUpdate(nextProps) {\r\n if (this.props.index !== nextProps.index || this.props.text !== nextProps.text) {\r\n this.contentTemplateProps = null\r\n }\r\n }\r\n render() {\r\n var {\r\n viewContext: viewContext,\r\n dataCellTemplate: dataCellTemplate,\r\n endDate: endDate,\r\n groupIndex: groupIndex,\r\n groups: groups,\r\n index: index,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isFocused: isFocused,\r\n isLastGroupCell: isLastGroupCell,\r\n isSelected: isSelected,\r\n startDate: startDate,\r\n text: text,\r\n className: className,\r\n firstDayOfMonth: firstDayOfMonth,\r\n otherMonth: otherMonth,\r\n today: today\r\n } = this.props;\r\n var classes = renderUtils.combineClasses({\r\n \"dx-scheduler-date-table-other-month\": !!otherMonth,\r\n \"dx-scheduler-date-table-current-date\": !!today,\r\n \"dx-scheduler-date-table-first-of-month\": !!firstDayOfMonth,\r\n [null !== className && void 0 !== className ? className : \"\"]: !!className\r\n });\r\n var contentTemplateProps = this.getContentTemplateProps();\r\n var DataCellTemplateComponent = getTemplate(dataCellTemplate);\r\n return createComponentVNode(2, DateTableCellBase, {\r\n className: classes,\r\n viewContext: viewContext,\r\n dataCellTemplate: DataCellTemplateComponent,\r\n startDate: startDate,\r\n endDate: endDate,\r\n text: text,\r\n groups: groups,\r\n groupIndex: groupIndex,\r\n index: index,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell,\r\n isSelected: isSelected,\r\n isFocused: isFocused,\r\n contentTemplateProps: contentTemplateProps,\r\n children: createVNode(1, \"div\", \"dx-scheduler-date-table-cell-text\", text, 0)\r\n })\r\n }\r\n}\r\nDateTableMonthCell.defaultProps = DateTableCallBaseDefaultProps;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/month/date_table_month.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nvar __rest = this && this.__rest || function(s, e) {\r\n var t = {};\r\n for (var p in s) {\r\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) {\r\n t[p] = s[p]\r\n }\r\n }\r\n if (null != s && \"function\" === typeof Object.getOwnPropertySymbols) {\r\n var i = 0;\r\n for (p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) {\r\n t[p[i]] = s[p[i]]\r\n }\r\n }\r\n }\r\n return t\r\n};\r\nimport {\r\n createReRenderEffect,\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n getTemplate\r\n} from \"../../../../core/r1/utils/index\";\r\nimport {\r\n DateTable,\r\n DateTableDefaultProps\r\n} from \"../base/date_table\";\r\nimport {\r\n DateTableMonthCell\r\n} from \"./date_table_month_cell\";\r\nexport class DateTableMonth extends InfernoWrapperComponent {\r\n createEffects() {\r\n return [createReRenderEffect()]\r\n }\r\n render() {\r\n var _a = this.props,\r\n {\r\n viewData: viewData,\r\n viewContext: viewContext,\r\n addDateTableClass: addDateTableClass,\r\n addVerticalSizesClassToRows: addVerticalSizesClassToRows,\r\n dataCellTemplate: dataCellTemplate,\r\n groupOrientation: groupOrientation,\r\n tableRef: tableRef,\r\n width: width\r\n } = _a,\r\n restProps = __rest(_a, [\"viewData\", \"viewContext\", \"addDateTableClass\", \"addVerticalSizesClassToRows\", \"dataCellTemplate\", \"groupOrientation\", \"tableRef\", \"width\"]);\r\n var DataCellTemplateComponent = getTemplate(dataCellTemplate);\r\n return normalizeProps(createComponentVNode(2, DateTable, _extends({}, restProps, {\r\n viewData: viewData,\r\n viewContext: viewContext,\r\n groupOrientation: groupOrientation,\r\n addDateTableClass: addDateTableClass,\r\n dataCellTemplate: DataCellTemplateComponent,\r\n cellTemplate: DateTableMonthCell,\r\n tableRef: tableRef,\r\n addVerticalSizesClassToRows: addVerticalSizesClassToRows,\r\n width: width\r\n })))\r\n }\r\n}\r\nDateTableMonth.defaultProps = DateTableDefaultProps;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/wrappers/date_table_month.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../../../core/component_registrator\";\r\nimport {\r\n DateTableMonth\r\n} from \"../month/date_table_month\";\r\nimport {\r\n DateTableComponent\r\n} from \"./date_table\";\r\nexport class DateTableMonthComponent extends DateTableComponent {\r\n get _propsInfo() {\r\n return {\r\n twoWay: [],\r\n allowNull: [],\r\n elements: [],\r\n templates: [\"cellTemplate\", \"dataCellTemplate\"],\r\n props: [\"viewData\", \"viewContext\", \"cellTemplate\", \"groupOrientation\", \"leftVirtualCellWidth\", \"rightVirtualCellWidth\", \"topVirtualRowHeight\", \"bottomVirtualRowHeight\", \"addDateTableClass\", \"addVerticalSizesClassToRows\", \"width\", \"dataCellTemplate\"]\r\n }\r\n }\r\n get _viewComponent() {\r\n return DateTableMonth\r\n }\r\n}\r\nregisterComponent(\"dxMonthDateTableLayout\", DateTableMonthComponent);\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/base/group_panel_props.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var GroupPanelBaseDefaultProps = {\r\n groupPanelData: {\r\n groupPanelItems: [],\r\n baseColSpan: 1\r\n },\r\n groupByDate: false,\r\n styles: {}\r\n};\r\nexport var GroupPanelCellDefaultProps = {\r\n id: 0,\r\n text: \"\",\r\n data: {\r\n id: 0\r\n },\r\n className: \"\"\r\n};\r\nexport var GroupPanelRowDefaultProps = {\r\n groupItems: [],\r\n className: \"\"\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/base/group_panel_horizontal_cell.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n createVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n getTemplate\r\n} from \"../../../../core/r1/utils/index\";\r\nimport {\r\n renderUtils\r\n} from \"../../utils/index\";\r\nimport {\r\n GroupPanelCellDefaultProps\r\n} from \"./group_panel_props\";\r\nexport var GroupPanelHorizontalCellDefaultProps = _extends(_extends({}, GroupPanelCellDefaultProps), {\r\n isFirstGroupCell: false,\r\n isLastGroupCell: false,\r\n colSpan: 1\r\n});\r\nexport class GroupPanelHorizontalCell extends BaseInfernoComponent {\r\n render() {\r\n var {\r\n cellTemplate: cellTemplate,\r\n colSpan: colSpan,\r\n color: color,\r\n data: data,\r\n id: id,\r\n index: index,\r\n text: text,\r\n className: className,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell\r\n } = this.props;\r\n var classes = renderUtils.combineClasses({\r\n \"dx-scheduler-group-header\": true,\r\n \"dx-scheduler-first-group-cell\": isFirstGroupCell,\r\n \"dx-scheduler-last-group-cell\": isLastGroupCell,\r\n [null !== className && void 0 !== className ? className : \"\"]: !!className\r\n });\r\n var CellTemplateComponent = getTemplate(cellTemplate);\r\n return createVNode(1, \"th\", classes, createVNode(1, \"div\", \"dx-scheduler-group-header-content\", CellTemplateComponent ? CellTemplateComponent({\r\n data: {\r\n data: data,\r\n id: id,\r\n color: color,\r\n text: text\r\n },\r\n index: index\r\n }) : createVNode(1, \"div\", null, text, 0), 0), 2, {\r\n colSpan: colSpan\r\n })\r\n }\r\n}\r\nGroupPanelHorizontalCell.defaultProps = GroupPanelHorizontalCellDefaultProps;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/base/group_panel_horizontal_row.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n createVNode,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n getTemplate\r\n} from \"../../../../core/r1/utils/index\";\r\nimport {\r\n GroupPanelHorizontalCell,\r\n GroupPanelHorizontalCellDefaultProps\r\n} from \"./group_panel_horizontal_cell\";\r\nimport {\r\n GroupPanelRowDefaultProps\r\n} from \"./group_panel_props\";\r\nexport class GroupPanelHorizontalRow extends BaseInfernoComponent {\r\n render() {\r\n var {\r\n cellTemplate: cellTemplate,\r\n className: className,\r\n groupItems: groupItems\r\n } = this.props;\r\n var CellTemplateComponent = getTemplate(cellTemplate);\r\n return createVNode(1, \"tr\", \"dx-scheduler-group-row \".concat(className), groupItems.map((_ref, index) => {\r\n var {\r\n colSpan: colSpan,\r\n color: color,\r\n data: data,\r\n id: id,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell,\r\n key: key,\r\n text: text\r\n } = _ref;\r\n return createComponentVNode(2, GroupPanelHorizontalCell, {\r\n text: text,\r\n id: id,\r\n data: data,\r\n index: index,\r\n color: color,\r\n colSpan: null !== colSpan && void 0 !== colSpan ? colSpan : GroupPanelHorizontalCellDefaultProps.colSpan,\r\n isFirstGroupCell: !!isFirstGroupCell,\r\n isLastGroupCell: !!isLastGroupCell,\r\n cellTemplate: CellTemplateComponent\r\n }, key)\r\n }), 0)\r\n }\r\n}\r\nGroupPanelHorizontalRow.defaultProps = GroupPanelRowDefaultProps;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/base/group_panel_horizontal.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n createFragment,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n getTemplate\r\n} from \"../../../../core/r1/utils/index\";\r\nimport {\r\n GroupPanelHorizontalRow\r\n} from \"./group_panel_horizontal_row\";\r\nimport {\r\n GroupPanelBaseDefaultProps\r\n} from \"./group_panel_props\";\r\nexport class GroupPanelHorizontal extends BaseInfernoComponent {\r\n constructor() {\r\n super(...arguments);\r\n this._groupPanelItems = null\r\n }\r\n getGroupPanelItems() {\r\n if (null !== this._groupPanelItems) {\r\n return this._groupPanelItems\r\n }\r\n var {\r\n groupPanelData: {\r\n baseColSpan: baseColSpan,\r\n groupPanelItems: groupPanelItems\r\n }\r\n } = this.props;\r\n var colSpans = groupPanelItems.reduceRight((currentColSpans, groupsRow, idx) => {\r\n var nextColSpans = currentColSpans;\r\n var currentLevelGroupCount = groupsRow.length;\r\n var previousColSpan = idx === groupPanelItems.length - 1 ? baseColSpan : currentColSpans[idx + 1];\r\n var previousLevelGroupCount = idx === groupPanelItems.length - 1 ? currentLevelGroupCount : groupPanelItems[idx + 1].length;\r\n var groupCountDiff = previousLevelGroupCount / currentLevelGroupCount;\r\n nextColSpans[idx] = groupCountDiff * previousColSpan;\r\n return nextColSpans\r\n }, [...new Array(groupPanelItems.length)]);\r\n this._groupPanelItems = groupPanelItems.map((groupsRenderRow, index) => {\r\n var colSpan = colSpans[index];\r\n return groupsRenderRow.map(groupItem => _extends(_extends({}, groupItem), {\r\n colSpan: colSpan\r\n }))\r\n });\r\n return this._groupPanelItems\r\n }\r\n componentWillUpdate(nextProps) {\r\n if (this.props.groupPanelData !== nextProps.groupPanelData) {\r\n this._groupPanelItems = null\r\n }\r\n }\r\n render() {\r\n var {\r\n resourceCellTemplate: resourceCellTemplate\r\n } = this.props;\r\n var groupPanelItems = this.getGroupPanelItems();\r\n var ResourceCellTemplateComponent = getTemplate(resourceCellTemplate);\r\n return createFragment(groupPanelItems.map(group => createComponentVNode(2, GroupPanelHorizontalRow, {\r\n groupItems: group,\r\n cellTemplate: ResourceCellTemplateComponent\r\n }, group[0].key)), 0)\r\n }\r\n}\r\nGroupPanelHorizontal.defaultProps = GroupPanelBaseDefaultProps;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/base/group_panel_vertical_cell.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n createVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n getTemplate\r\n} from \"../../../../core/r1/utils/index\";\r\nimport {\r\n GroupPanelCellDefaultProps\r\n} from \"./group_panel_props\";\r\nexport class GroupPanelVerticalCell extends BaseInfernoComponent {\r\n render() {\r\n var {\r\n className: className,\r\n data: data,\r\n id: id,\r\n color: color,\r\n text: text,\r\n index: index,\r\n cellTemplate: cellTemplate\r\n } = this.props;\r\n var CellTemplateComponent = getTemplate(cellTemplate);\r\n return createVNode(1, \"div\", \"dx-scheduler-group-header \".concat(className), CellTemplateComponent ? CellTemplateComponent({\r\n data: {\r\n data: data,\r\n id: id,\r\n color: color,\r\n text: text\r\n },\r\n index: index\r\n }) : createVNode(1, \"div\", \"dx-scheduler-group-header-content\", text, 0), 0)\r\n }\r\n}\r\nGroupPanelVerticalCell.defaultProps = GroupPanelCellDefaultProps;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/base/group_panel_vertical_row.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n createVNode,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n getTemplate\r\n} from \"../../../../core/r1/utils/index\";\r\nimport {\r\n GroupPanelRowDefaultProps\r\n} from \"./group_panel_props\";\r\nimport {\r\n GroupPanelVerticalCell\r\n} from \"./group_panel_vertical_cell\";\r\nexport class GroupPanelVerticalRow extends BaseInfernoComponent {\r\n render() {\r\n var {\r\n className: className,\r\n groupItems: groupItems,\r\n cellTemplate: cellTemplate\r\n } = this.props;\r\n var CellTemplateComponent = getTemplate(cellTemplate);\r\n return createVNode(1, \"div\", \"dx-scheduler-group-row \".concat(className), groupItems.map((_ref, index) => {\r\n var {\r\n color: color,\r\n data: data,\r\n id: id,\r\n key: key,\r\n text: text\r\n } = _ref;\r\n return createComponentVNode(2, GroupPanelVerticalCell, {\r\n text: text,\r\n id: id,\r\n data: data,\r\n index: index,\r\n color: color,\r\n cellTemplate: CellTemplateComponent\r\n }, key)\r\n }), 0)\r\n }\r\n}\r\nGroupPanelVerticalRow.defaultProps = GroupPanelRowDefaultProps;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/base/group_panel_vertical.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n createVNode,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent,\r\n normalizeStyles\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n getTemplate\r\n} from \"../../../../core/r1/utils/index\";\r\nimport {\r\n renderUtils\r\n} from \"../../utils/index\";\r\nimport {\r\n GroupPanelBaseDefaultProps\r\n} from \"./group_panel_props\";\r\nimport {\r\n GroupPanelVerticalRow\r\n} from \"./group_panel_vertical_row\";\r\nexport class GroupPanelVertical extends BaseInfernoComponent {\r\n render() {\r\n var {\r\n className: className,\r\n elementRef: elementRef,\r\n groupPanelData: groupPanelData,\r\n resourceCellTemplate: resourceCellTemplate,\r\n height: height,\r\n styles: styles\r\n } = this.props;\r\n var style = normalizeStyles(renderUtils.addHeightToStyle(height, styles));\r\n var ResourceCellTemplateComponent = getTemplate(resourceCellTemplate);\r\n return createVNode(1, \"div\", className, createVNode(1, \"div\", \"dx-scheduler-group-flex-container\", groupPanelData.groupPanelItems.map(group => createComponentVNode(2, GroupPanelVerticalRow, {\r\n groupItems: group,\r\n cellTemplate: ResourceCellTemplateComponent\r\n }, group[0].key)), 0), 2, {\r\n style: style\r\n }, null, elementRef)\r\n }\r\n}\r\nGroupPanelVertical.defaultProps = GroupPanelBaseDefaultProps;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/base/group_panel.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n createReRenderEffect,\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n getTemplate\r\n} from \"../../../../core/r1/utils/index\";\r\nimport {\r\n VERTICAL_GROUP_ORIENTATION\r\n} from \"../../const\";\r\nimport {\r\n isVerticalGroupingApplied\r\n} from \"../../utils/index\";\r\nimport {\r\n GroupPanelHorizontal\r\n} from \"./group_panel_horizontal\";\r\nimport {\r\n GroupPanelBaseDefaultProps\r\n} from \"./group_panel_props\";\r\nimport {\r\n GroupPanelVertical\r\n} from \"./group_panel_vertical\";\r\nexport var GroupPanelDefaultProps = _extends(_extends({}, GroupPanelBaseDefaultProps), {\r\n groups: [],\r\n groupOrientation: VERTICAL_GROUP_ORIENTATION\r\n});\r\nexport class GroupPanel extends InfernoWrapperComponent {\r\n createEffects() {\r\n return [createReRenderEffect()]\r\n }\r\n render() {\r\n var {\r\n className: className,\r\n viewContext: viewContext,\r\n elementRef: elementRef,\r\n groupPanelData: groupPanelData,\r\n height: height,\r\n resourceCellTemplate: resourceCellTemplate,\r\n groupOrientation: groupOrientation,\r\n groups: groups,\r\n styles: styles\r\n } = this.props;\r\n var ResourceCellTemplateComponent = getTemplate(resourceCellTemplate);\r\n var isVerticalLayout = isVerticalGroupingApplied(groups, groupOrientation);\r\n var Layout = isVerticalLayout ? GroupPanelVertical : GroupPanelHorizontal;\r\n return createComponentVNode(2, Layout, {\r\n viewContext: viewContext,\r\n height: height,\r\n resourceCellTemplate: ResourceCellTemplateComponent,\r\n className: className,\r\n groupPanelData: groupPanelData,\r\n elementRef: elementRef,\r\n styles: styles,\r\n groups: GroupPanelDefaultProps.groups,\r\n groupOrientation: GroupPanelDefaultProps.groupOrientation,\r\n groupByDate: GroupPanelDefaultProps.groupByDate\r\n })\r\n }\r\n}\r\nGroupPanel.defaultProps = GroupPanelDefaultProps;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/wrappers/group_panel.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport registerComponent from \"../../../../../core/component_registrator\";\r\nimport {\r\n ComponentWrapper\r\n} from \"../../../../core/r1/index\";\r\nimport {\r\n GroupPanel\r\n} from \"../base/group_panel\";\r\nexport class GroupPanelComponent extends ComponentWrapper {\r\n _setOptionsByReference() {\r\n super._setOptionsByReference();\r\n this._optionsByReference = _extends(_extends({}, this._optionsByReference), {\r\n resourceCellTemplate: true\r\n })\r\n }\r\n get _propsInfo() {\r\n return {\r\n twoWay: [],\r\n allowNull: [],\r\n elements: [],\r\n templates: [\"resourceCellTemplate\"],\r\n props: [\"viewContext\", \"groups\", \"groupOrientation\", \"groupPanelData\", \"groupByDate\", \"height\", \"className\", \"resourceCellTemplate\"]\r\n }\r\n }\r\n get _viewComponent() {\r\n return GroupPanel\r\n }\r\n}\r\nregisterComponent(\"dxGroupPanel\", GroupPanelComponent);\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/base/date_header_text.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n createVNode,\r\n createFragment\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nvar DateHeaderTextDefaultProps = {\r\n text: \"\",\r\n splitText: false\r\n};\r\nexport class DateHeaderText extends BaseInfernoComponent {\r\n constructor() {\r\n super(...arguments);\r\n this._textCache = null\r\n }\r\n getTextParts() {\r\n if (null !== this._textCache) {\r\n return this._textCache\r\n }\r\n var {\r\n text: text\r\n } = this.props;\r\n this._textCache = text ? text.split(\" \") : [\"\"];\r\n return this._textCache\r\n }\r\n componentWillUpdate(nextProps) {\r\n if (this.props.text !== nextProps.text) {\r\n this._textCache = null\r\n }\r\n }\r\n render() {\r\n var {\r\n splitText: splitText,\r\n text: text\r\n } = this.props;\r\n var textParts = this.getTextParts();\r\n return createFragment(splitText ? textParts.map(part => createVNode(1, \"div\", \"dx-scheduler-header-panel-cell-date\", createVNode(1, \"span\", null, part, 0), 2)) : text, 0)\r\n }\r\n}\r\nDateHeaderText.defaultProps = DateHeaderTextDefaultProps;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/base/date_header_cell.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n createVNode,\r\n createFragment,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n getTemplate\r\n} from \"../../../../core/r1/utils/index\";\r\nimport {\r\n renderUtils\r\n} from \"../../utils/index\";\r\nimport {\r\n CellBaseDefaultProps\r\n} from \"./cell\";\r\nimport {\r\n DateHeaderText\r\n} from \"./date_header_text\";\r\nexport var DateHeaderCellDefaultProps = _extends(_extends({}, CellBaseDefaultProps), {\r\n today: false,\r\n colSpan: 1,\r\n isWeekDayCell: false,\r\n splitText: false,\r\n isTimeCellTemplate: false\r\n});\r\nexport class DateHeaderCell extends BaseInfernoComponent {\r\n render() {\r\n var {\r\n viewContext: {\r\n view: {\r\n type: viewType\r\n },\r\n crossScrollingEnabled: crossScrollingEnabled\r\n },\r\n colSpan: colSpan,\r\n dateCellTemplate: dateCellTemplate,\r\n groupIndex: groupIndex,\r\n groups: groups,\r\n index: index,\r\n isTimeCellTemplate: isTimeCellTemplate,\r\n splitText: splitText,\r\n startDate: startDate,\r\n text: text,\r\n timeCellTemplate: timeCellTemplate,\r\n className: className,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell,\r\n isWeekDayCell: isWeekDayCell,\r\n today: today\r\n } = this.props;\r\n var cellSizeHorizontalClass = renderUtils.getCellSizeHorizontalClass(viewType, crossScrollingEnabled);\r\n var cellClasses = renderUtils.combineClasses({\r\n \"dx-scheduler-header-panel-cell\": true,\r\n [cellSizeHorizontalClass]: true,\r\n \"dx-scheduler-header-panel-current-time-cell\": today,\r\n \"dx-scheduler-header-panel-week-cell\": isWeekDayCell,\r\n [null !== className && void 0 !== className ? className : \"\"]: !!className\r\n });\r\n var classes = renderUtils.getGroupCellClasses(isFirstGroupCell, isLastGroupCell, cellClasses);\r\n var useTemplate = !isTimeCellTemplate && !!dateCellTemplate || isTimeCellTemplate && !!timeCellTemplate;\r\n var TimeCellTemplateComponent = getTemplate(timeCellTemplate);\r\n var DateCellTemplateComponent = getTemplate(dateCellTemplate);\r\n var children = useTemplate ? createFragment([isTimeCellTemplate && TimeCellTemplateComponent && TimeCellTemplateComponent({\r\n data: {\r\n date: startDate,\r\n text: text,\r\n groups: groups,\r\n groupIndex: groupIndex\r\n },\r\n index: index\r\n }), !isTimeCellTemplate && DateCellTemplateComponent && DateCellTemplateComponent({\r\n data: {\r\n date: startDate,\r\n text: text,\r\n groups: groups,\r\n groupIndex: groupIndex\r\n },\r\n index: index\r\n })], 0) : createComponentVNode(2, DateHeaderText, {\r\n splitText: splitText,\r\n text: text\r\n });\r\n return createVNode(1, \"th\", classes, children, 0, {\r\n colSpan: colSpan,\r\n title: text\r\n })\r\n }\r\n}\r\nDateHeaderCell.defaultProps = DateHeaderCellDefaultProps;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/base/date_header.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n createFragment,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n getTemplate\r\n} from \"../../../../core/r1/utils/index\";\r\nimport {\r\n isHorizontalGroupingApplied,\r\n themeUtils\r\n} from \"../../utils/index\";\r\nimport {\r\n DateHeaderCell\r\n} from \"./date_header_cell\";\r\nimport {\r\n Row\r\n} from \"./row\";\r\nvar {\r\n isMaterialBased: isMaterialBased\r\n} = themeUtils.getThemeType();\r\nexport var DateHeaderDefaultProps = {\r\n groupOrientation: \"horizontal\",\r\n groupByDate: false,\r\n groups: []\r\n};\r\nexport class DateHeader extends BaseInfernoComponent {\r\n render() {\r\n var {\r\n viewContext: viewContext,\r\n dateCellTemplate: dateCellTemplate,\r\n dateHeaderData: {\r\n dataMap: dataMap,\r\n leftVirtualCellCount: leftVirtualCellCount,\r\n leftVirtualCellWidth: leftVirtualCellWidth,\r\n rightVirtualCellCount: rightVirtualCellCount,\r\n rightVirtualCellWidth: rightVirtualCellWidth\r\n },\r\n groupByDate: groupByDate,\r\n groupOrientation: groupOrientation,\r\n groups: groups\r\n } = this.props;\r\n var isHorizontalGrouping = isHorizontalGroupingApplied(groups, groupOrientation) && !groupByDate;\r\n var DateCellTemplateComponent = getTemplate(dateCellTemplate);\r\n return createFragment(dataMap.map((dateHeaderRow, rowIndex) => createComponentVNode(2, Row, {\r\n className: \"dx-scheduler-header-row\",\r\n leftVirtualCellWidth: leftVirtualCellWidth,\r\n leftVirtualCellCount: leftVirtualCellCount,\r\n rightVirtualCellWidth: rightVirtualCellWidth,\r\n rightVirtualCellCount: rightVirtualCellCount,\r\n isHeaderRow: true,\r\n children: dateHeaderRow.map(_ref => {\r\n var {\r\n colSpan: colSpan,\r\n endDate: endDate,\r\n groupIndex: groupIndex,\r\n groups: cellGroups,\r\n index: index,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell,\r\n key: key,\r\n startDate: startDate,\r\n text: text,\r\n today: today\r\n } = _ref;\r\n return createComponentVNode(2, DateHeaderCell, {\r\n viewContext: viewContext,\r\n startDate: startDate,\r\n endDate: endDate,\r\n groups: isHorizontalGrouping ? cellGroups : void 0,\r\n groupIndex: isHorizontalGrouping ? groupIndex : void 0,\r\n today: null !== today && void 0 !== today ? today : false,\r\n isWeekDayCell: false,\r\n isTimeCellTemplate: false,\r\n index: index,\r\n text: text,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell,\r\n dateCellTemplate: DateCellTemplateComponent,\r\n colSpan: colSpan,\r\n splitText: isMaterialBased\r\n }, key)\r\n })\r\n }, rowIndex.toString())), 0)\r\n }\r\n}\r\nDateHeader.defaultProps = DateHeaderDefaultProps;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/base/header_panel.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n createVNode,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n createReRenderEffect,\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n getTemplate\r\n} from \"../../../../core/r1/utils/index\";\r\nimport {\r\n isHorizontalGroupingApplied\r\n} from \"../../utils/index\";\r\nimport {\r\n DateHeader\r\n} from \"./date_header\";\r\nimport {\r\n GroupPanel,\r\n GroupPanelDefaultProps\r\n} from \"./group_panel\";\r\nexport var HeaderPanelDefaultProps = _extends(_extends({}, GroupPanelDefaultProps), {\r\n isRenderDateHeader: true,\r\n dateHeaderTemplate: DateHeader\r\n});\r\nexport class HeaderPanel extends InfernoWrapperComponent {\r\n createEffects() {\r\n return [createReRenderEffect()]\r\n }\r\n render() {\r\n var {\r\n viewContext: viewContext,\r\n dateHeaderData: dateHeaderData,\r\n groupByDate: groupByDate,\r\n groupOrientation: groupOrientation,\r\n groupPanelData: groupPanelData,\r\n groups: groups,\r\n isRenderDateHeader: isRenderDateHeader,\r\n dateCellTemplate: dateCellTemplate,\r\n dateHeaderTemplate: dateHeaderTemplate,\r\n resourceCellTemplate: resourceCellTemplate,\r\n timeCellTemplate: timeCellTemplate\r\n } = this.props;\r\n var isHorizontalGrouping = isHorizontalGroupingApplied(groups, groupOrientation);\r\n var DateCellTemplateComponent = getTemplate(dateCellTemplate);\r\n var DateHeaderTemplateComponent = getTemplate(dateHeaderTemplate);\r\n var ResourceCellTemplateComponent = getTemplate(resourceCellTemplate);\r\n var TimeCellTemplateComponent = getTemplate(timeCellTemplate);\r\n return createVNode(1, \"thead\", null, [isHorizontalGrouping && !groupByDate && createComponentVNode(2, GroupPanel, {\r\n viewContext: viewContext,\r\n groupPanelData: groupPanelData,\r\n groups: groups,\r\n groupByDate: groupByDate,\r\n groupOrientation: groupOrientation,\r\n resourceCellTemplate: ResourceCellTemplateComponent\r\n }), isRenderDateHeader && DateHeaderTemplateComponent({\r\n viewContext: viewContext,\r\n groupByDate: groupByDate,\r\n dateHeaderData: dateHeaderData,\r\n groupOrientation: groupOrientation,\r\n groups: groups,\r\n dateCellTemplate: DateCellTemplateComponent,\r\n timeCellTemplate: TimeCellTemplateComponent\r\n }), groupByDate && createComponentVNode(2, GroupPanel, {\r\n viewContext: viewContext,\r\n groupPanelData: groupPanelData,\r\n groups: groups,\r\n groupByDate: groupByDate,\r\n groupOrientation: groupOrientation,\r\n resourceCellTemplate: ResourceCellTemplateComponent\r\n })], 0)\r\n }\r\n}\r\nHeaderPanel.defaultProps = HeaderPanelDefaultProps;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/wrappers/header_panel.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport registerComponent from \"../../../../../core/component_registrator\";\r\nimport {\r\n ComponentWrapper\r\n} from \"../../../../core/r1/index\";\r\nimport {\r\n HeaderPanel\r\n} from \"../base/header_panel\";\r\nexport class HeaderPanelComponent extends ComponentWrapper {\r\n _setOptionsByReference() {\r\n super._setOptionsByReference();\r\n this._optionsByReference = _extends(_extends({}, this._optionsByReference), {\r\n dateHeaderData: true,\r\n resourceCellTemplate: true,\r\n dateCellTemplate: true,\r\n timeCellTemplate: true\r\n })\r\n }\r\n get _propsInfo() {\r\n return {\r\n twoWay: [],\r\n allowNull: [],\r\n elements: [],\r\n templates: [\"dateCellTemplate\", \"timeCellTemplate\", \"dateHeaderTemplate\", \"resourceCellTemplate\"],\r\n props: [\"viewContext\", \"dateHeaderData\", \"isRenderDateHeader\", \"dateCellTemplate\", \"timeCellTemplate\", \"dateHeaderTemplate\", \"groups\", \"groupOrientation\", \"groupPanelData\", \"groupByDate\", \"height\", \"className\", \"resourceCellTemplate\"]\r\n }\r\n }\r\n get _viewComponent() {\r\n return HeaderPanel\r\n }\r\n}\r\nregisterComponent(\"dxHeaderPanelLayout\", HeaderPanelComponent);\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/timeline/date_header_timeline.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n createFragment,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n getTemplate\r\n} from \"../../../../core/r1/utils/index\";\r\nimport {\r\n getThemeType\r\n} from \"../../../../scheduler/r1/utils/themes\";\r\nimport {\r\n isHorizontalGroupingApplied\r\n} from \"../../utils/index\";\r\nimport {\r\n DateHeaderDefaultProps\r\n} from \"../base/date_header\";\r\nimport {\r\n DateHeaderCell,\r\n DateHeaderCellDefaultProps\r\n} from \"../base/date_header_cell\";\r\nimport {\r\n Row,\r\n RowDefaultProps\r\n} from \"../base/row\";\r\nvar {\r\n isMaterialBased: isMaterialBased\r\n} = getThemeType();\r\nexport class TimelineDateHeaderLayout extends BaseInfernoComponent {\r\n render() {\r\n var {\r\n viewContext: viewContext,\r\n groupByDate: groupByDate,\r\n groupOrientation: groupOrientation,\r\n groups: groups,\r\n dateHeaderData: dateHeaderData,\r\n dateCellTemplate: dateCellTemplate,\r\n timeCellTemplate: timeCellTemplate\r\n } = this.props;\r\n var {\r\n dataMap: dataMap,\r\n isMonthDateHeader: isMonthDateHeader,\r\n leftVirtualCellCount: leftVirtualCellCount,\r\n leftVirtualCellWidth: leftVirtualCellWidth,\r\n rightVirtualCellCount: rightVirtualCellCount,\r\n rightVirtualCellWidth: rightVirtualCellWidth,\r\n weekDayLeftVirtualCellCount: weekDayLeftVirtualCellCount,\r\n weekDayLeftVirtualCellWidth: weekDayLeftVirtualCellWidth,\r\n weekDayRightVirtualCellCount: weekDayRightVirtualCellCount,\r\n weekDayRightVirtualCellWidth: weekDayRightVirtualCellWidth\r\n } = dateHeaderData;\r\n var isHorizontalGrouping = isHorizontalGroupingApplied(groups, groupOrientation) && !groupByDate;\r\n var DateCellTemplateComponent = getTemplate(dateCellTemplate);\r\n var TimeCellTemplateComponent = getTemplate(timeCellTemplate);\r\n return createFragment(dataMap.map((dateHeaderRow, rowIndex) => {\r\n var rowsCount = dataMap.length;\r\n var isTimeCellTemplate = rowsCount - 1 === rowIndex;\r\n var isWeekDayRow = rowsCount > 1 && 0 === rowIndex;\r\n var splitText = isMaterialBased && (isMonthDateHeader || isWeekDayRow);\r\n var validLeftVirtualCellCount = leftVirtualCellCount;\r\n var validRightVirtualCellCount = rightVirtualCellCount;\r\n var validRightVirtualCellWidth = rightVirtualCellWidth;\r\n var validLeftVirtualCellWidth = leftVirtualCellWidth;\r\n if (isWeekDayRow) {\r\n validLeftVirtualCellCount = weekDayLeftVirtualCellCount;\r\n validRightVirtualCellCount = weekDayRightVirtualCellCount;\r\n validRightVirtualCellWidth = weekDayRightVirtualCellWidth;\r\n validLeftVirtualCellWidth = weekDayLeftVirtualCellWidth\r\n }\r\n return createComponentVNode(2, Row, {\r\n className: \"dx-scheduler-header-row\",\r\n leftVirtualCellWidth: null !== validLeftVirtualCellWidth && void 0 !== validLeftVirtualCellWidth ? validLeftVirtualCellWidth : RowDefaultProps.leftVirtualCellWidth,\r\n leftVirtualCellCount: validLeftVirtualCellCount,\r\n rightVirtualCellWidth: null !== validRightVirtualCellWidth && void 0 !== validRightVirtualCellWidth ? validRightVirtualCellWidth : RowDefaultProps.rightVirtualCellWidth,\r\n rightVirtualCellCount: validRightVirtualCellCount,\r\n children: dateHeaderRow.map(_ref => {\r\n var {\r\n colSpan: colSpan,\r\n endDate: endDate,\r\n groupIndex: groupIndex,\r\n groups: cellGroups,\r\n index: index,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell,\r\n key: key,\r\n startDate: startDate,\r\n text: text,\r\n today: today\r\n } = _ref;\r\n return createComponentVNode(2, DateHeaderCell, {\r\n viewContext: viewContext,\r\n startDate: startDate,\r\n endDate: endDate,\r\n groups: isHorizontalGrouping ? cellGroups : void 0,\r\n groupIndex: isHorizontalGrouping ? groupIndex : void 0,\r\n today: null !== today && void 0 !== today ? today : DateHeaderCellDefaultProps.today,\r\n index: index,\r\n text: text,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell,\r\n isWeekDayCell: isWeekDayRow,\r\n colSpan: colSpan,\r\n splitText: splitText,\r\n dateCellTemplate: DateCellTemplateComponent,\r\n timeCellTemplate: TimeCellTemplateComponent,\r\n isTimeCellTemplate: isTimeCellTemplate\r\n }, key)\r\n })\r\n }, rowIndex.toString())\r\n }), 0)\r\n }\r\n}\r\nTimelineDateHeaderLayout.defaultProps = DateHeaderDefaultProps;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/timeline/header_panel_timeline.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n createReRenderEffect,\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n getTemplate\r\n} from \"../../../../core/r1/utils/index\";\r\nimport {\r\n HeaderPanel,\r\n HeaderPanelDefaultProps\r\n} from \"../base/header_panel\";\r\nimport {\r\n TimelineDateHeaderLayout\r\n} from \"./date_header_timeline\";\r\nexport class HeaderPanelTimeline extends InfernoWrapperComponent {\r\n createEffects() {\r\n return [createReRenderEffect()]\r\n }\r\n render() {\r\n var {\r\n viewContext: viewContext,\r\n dateCellTemplate: dateCellTemplate,\r\n dateHeaderData: dateHeaderData,\r\n groupByDate: groupByDate,\r\n groupOrientation: groupOrientation,\r\n groupPanelData: groupPanelData,\r\n groups: groups,\r\n isRenderDateHeader: isRenderDateHeader,\r\n resourceCellTemplate: resourceCellTemplate,\r\n timeCellTemplate: timeCellTemplate\r\n } = this.props;\r\n var DateCellTemplateComponent = getTemplate(dateCellTemplate);\r\n var ResourceCellTemplateComponent = getTemplate(resourceCellTemplate);\r\n var TimeCellTemplateComponent = getTemplate(timeCellTemplate);\r\n return createComponentVNode(2, HeaderPanel, {\r\n viewContext: viewContext,\r\n dateHeaderData: dateHeaderData,\r\n groupPanelData: groupPanelData,\r\n groupByDate: groupByDate,\r\n groups: groups,\r\n groupOrientation: groupOrientation,\r\n isRenderDateHeader: isRenderDateHeader,\r\n dateHeaderTemplate: TimelineDateHeaderLayout,\r\n resourceCellTemplate: ResourceCellTemplateComponent,\r\n dateCellTemplate: DateCellTemplateComponent,\r\n timeCellTemplate: TimeCellTemplateComponent\r\n })\r\n }\r\n}\r\nHeaderPanelTimeline.defaultProps = HeaderPanelDefaultProps;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/wrappers/header_panel_timeline.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../../../core/component_registrator\";\r\nimport {\r\n HeaderPanelTimeline\r\n} from \"../timeline/header_panel_timeline\";\r\nimport {\r\n HeaderPanelComponent\r\n} from \"./header_panel\";\r\nexport class HeaderPanelTimelineComponent extends HeaderPanelComponent {\r\n get _propsInfo() {\r\n return {\r\n twoWay: [],\r\n allowNull: [],\r\n elements: [],\r\n templates: [\"dateCellTemplate\", \"timeCellTemplate\", \"dateHeaderTemplate\", \"resourceCellTemplate\"],\r\n props: [\"viewContext\", \"dateHeaderData\", \"isRenderDateHeader\", \"dateCellTemplate\", \"timeCellTemplate\", \"dateHeaderTemplate\", \"groups\", \"groupOrientation\", \"groupPanelData\", \"groupByDate\", \"height\", \"className\", \"resourceCellTemplate\"]\r\n }\r\n }\r\n get _viewComponent() {\r\n return HeaderPanelTimeline\r\n }\r\n}\r\nregisterComponent(\"dxTimelineHeaderPanelLayout\", HeaderPanelTimelineComponent);\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/base/time_panel_cell.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n createVNode,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n getTemplate\r\n} from \"../../../../core/r1/utils/index\";\r\nimport {\r\n renderUtils\r\n} from \"../../utils/index\";\r\nimport {\r\n CellBase,\r\n CellBaseDefaultProps\r\n} from \"./cell\";\r\nexport class TimePanelCell extends BaseInfernoComponent {\r\n constructor() {\r\n super(...arguments);\r\n this.timeCellTemplateProps = null\r\n }\r\n getTimeCellTemplateProps() {\r\n if (null !== this.timeCellTemplateProps) {\r\n return this.timeCellTemplateProps\r\n }\r\n var {\r\n groupIndex: groupIndex,\r\n groups: groups,\r\n index: index,\r\n startDate: startDate,\r\n text: text\r\n } = this.props;\r\n this.timeCellTemplateProps = {\r\n data: {\r\n date: startDate,\r\n groups: groups,\r\n groupIndex: groupIndex,\r\n text: text\r\n },\r\n index: index\r\n };\r\n return this.timeCellTemplateProps\r\n }\r\n componentWillUpdate(nextProps) {\r\n if (this.props.groupIndex !== nextProps.groupIndex || this.props.groups !== nextProps.groups || this.props.index !== nextProps.index || this.props.startDate !== nextProps.startDate || this.props.text !== nextProps.text) {\r\n this.timeCellTemplateProps = null\r\n }\r\n }\r\n render() {\r\n var {\r\n className: className,\r\n viewContext: viewContext,\r\n highlighted: highlighted,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell,\r\n text: text,\r\n timeCellTemplate: timeCellTemplate\r\n } = this.props;\r\n var cellSizeVerticalClass = renderUtils.getCellSizeVerticalClass(false);\r\n var classes = renderUtils.combineClasses({\r\n \"dx-scheduler-time-panel-cell\": true,\r\n [cellSizeVerticalClass]: true,\r\n \"dx-scheduler-time-panel-current-time-cell\": !!highlighted,\r\n [null !== className && void 0 !== className ? className : \"\"]: true\r\n });\r\n var timeCellTemplateProps = this.getTimeCellTemplateProps();\r\n var TimeCellTemplateComponent = getTemplate(timeCellTemplate);\r\n return createComponentVNode(2, CellBase, {\r\n className: classes,\r\n viewContext: viewContext,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell,\r\n startDate: CellBaseDefaultProps.startDate,\r\n endDate: CellBaseDefaultProps.endDate,\r\n index: CellBaseDefaultProps.index,\r\n children: TimeCellTemplateComponent ? TimeCellTemplateComponent({\r\n index: timeCellTemplateProps.index,\r\n data: timeCellTemplateProps.data\r\n }) : createVNode(1, \"div\", null, text, 0)\r\n })\r\n }\r\n}\r\nTimePanelCell.defaultProps = CellBaseDefaultProps;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/base/time_panel_table.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n createFragment,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nvar __rest = this && this.__rest || function(s, e) {\r\n var t = {};\r\n for (var p in s) {\r\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) {\r\n t[p] = s[p]\r\n }\r\n }\r\n if (null != s && \"function\" === typeof Object.getOwnPropertySymbols) {\r\n var i = 0;\r\n for (p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) {\r\n t[p[i]] = s[p[i]]\r\n }\r\n }\r\n }\r\n return t\r\n};\r\nimport {\r\n createReRenderEffect,\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n getTemplate\r\n} from \"../../../../core/r1/utils/index\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n AllDayPanelTitle\r\n} from \"./all_day_panel_title\";\r\nimport {\r\n CellBase,\r\n CellBaseDefaultProps\r\n} from \"./cell\";\r\nimport {\r\n Row,\r\n RowDefaultProps\r\n} from \"./row\";\r\nimport {\r\n Table\r\n} from \"./table\";\r\nimport {\r\n TimePanelCell\r\n} from \"./time_panel_cell\";\r\nexport var TimePanelTableDefaultProps = {\r\n timePanelData: {\r\n groupedData: [],\r\n leftVirtualCellCount: 0,\r\n rightVirtualCellCount: 0,\r\n topVirtualRowCount: 0,\r\n bottomVirtualRowCount: 0\r\n }\r\n};\r\nexport class TimePanelTable extends InfernoWrapperComponent {\r\n createEffects() {\r\n return [createReRenderEffect()]\r\n }\r\n render() {\r\n var _a = this.props,\r\n {\r\n timePanelData: timePanelData,\r\n viewContext: viewContext,\r\n tableRef: tableRef,\r\n timeCellTemplate: timeCellTemplate\r\n } = _a,\r\n restProps = __rest(_a, [\"timePanelData\", \"viewContext\", \"tableRef\", \"timeCellTemplate\"]);\r\n var {\r\n topVirtualRowHeight: topVirtualRowHeight,\r\n bottomVirtualRowHeight: bottomVirtualRowHeight\r\n } = timePanelData;\r\n var TimeCellTemplateComponent = getTemplate(timeCellTemplate);\r\n return normalizeProps(createComponentVNode(2, Table, _extends({}, restProps, {\r\n className: \"dx-scheduler-time-panel\",\r\n topVirtualRowHeight: null !== topVirtualRowHeight && void 0 !== topVirtualRowHeight ? topVirtualRowHeight : 0,\r\n bottomVirtualRowHeight: null !== bottomVirtualRowHeight && void 0 !== bottomVirtualRowHeight ? bottomVirtualRowHeight : 0,\r\n virtualCellsCount: 1,\r\n tableRef: tableRef,\r\n children: timePanelData.groupedData.map(_ref => {\r\n var {\r\n dateTable: dateTable,\r\n groupIndex: groupIndex,\r\n isGroupedAllDayPanel: isGroupedAllDayPanel,\r\n key: fragmentKey\r\n } = _ref;\r\n return createFragment([isGroupedAllDayPanel && createComponentVNode(2, Row, {\r\n leftVirtualCellWidth: RowDefaultProps.leftVirtualCellWidth,\r\n rightVirtualCellWidth: RowDefaultProps.rightVirtualCellWidth,\r\n children: createComponentVNode(2, CellBase, {\r\n className: \"dx-scheduler-time-panel-title-cell\",\r\n viewContext: viewContext,\r\n startDate: CellBaseDefaultProps.startDate,\r\n endDate: CellBaseDefaultProps.endDate,\r\n index: CellBaseDefaultProps.index,\r\n children: createComponentVNode(2, AllDayPanelTitle)\r\n })\r\n }), dateTable.map(_ref2 => {\r\n var {\r\n groups: groups,\r\n highlighted: highlighted,\r\n index: cellIndex,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell,\r\n key: key,\r\n startDate: startDate,\r\n text: text\r\n } = _ref2;\r\n return createComponentVNode(2, Row, {\r\n className: \"dx-scheduler-time-panel-row\",\r\n leftVirtualCellWidth: RowDefaultProps.leftVirtualCellWidth,\r\n rightVirtualCellWidth: RowDefaultProps.rightVirtualCellWidth,\r\n children: createComponentVNode(2, TimePanelCell, {\r\n viewContext: viewContext,\r\n startDate: startDate,\r\n endDate: CellBaseDefaultProps.endDate,\r\n text: text,\r\n groups: groups,\r\n groupIndex: groupIndex,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell,\r\n index: cellIndex,\r\n timeCellTemplate: TimeCellTemplateComponent,\r\n highlighted: highlighted\r\n })\r\n }, key)\r\n })], 0, fragmentKey)\r\n })\r\n })))\r\n }\r\n}\r\nTimePanelTable.defaultProps = TimePanelTableDefaultProps;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/components/wrappers/time_panel.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport registerComponent from \"../../../../../core/component_registrator\";\r\nimport {\r\n ComponentWrapper\r\n} from \"../../../../core/r1/index\";\r\nimport {\r\n TimePanelTable\r\n} from \"../base/time_panel_table\";\r\nexport class TimePanelComponent extends ComponentWrapper {\r\n _setOptionsByReference() {\r\n super._setOptionsByReference();\r\n this._optionsByReference = _extends(_extends({}, this._optionsByReference), {\r\n timeCellTemplate: true\r\n })\r\n }\r\n get _propsInfo() {\r\n return {\r\n twoWay: [],\r\n allowNull: [],\r\n elements: [],\r\n templates: [\"timeCellTemplate\"],\r\n props: [\"viewContext\", \"groupOrientation\", \"timePanelData\", \"timeCellTemplate\"]\r\n }\r\n }\r\n get _viewComponent() {\r\n return TimePanelTable\r\n }\r\n}\r\nregisterComponent(\"dxTimePanelTableLayout\", TimePanelComponent);\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/base/m_widget_observer.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Widget from \"../../../ui/widget/ui.widget\";\r\nclass WidgetObserver extends Widget {\r\n notifyObserver(subject, args) {\r\n var observer = this.option(\"observer\");\r\n if (observer) {\r\n observer.fire(subject, args)\r\n }\r\n }\r\n invoke() {\r\n var observer = this.option(\"observer\");\r\n if (observer) {\r\n return observer.fire.apply(observer, arguments)\r\n }\r\n }\r\n}\r\nexport default WidgetObserver;\r\n","/**\r\n * DevExtreme (esm/__internal/m_draggable.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport positionUtils from \"../animation/position\";\r\nimport {\r\n locate,\r\n move\r\n} from \"../animation/translator\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport DOMComponent from \"../core/dom_component\";\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 {\r\n noop,\r\n splitPair\r\n} from \"../core/utils/common\";\r\nimport {\r\n Deferred,\r\n fromPromise,\r\n when\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n dasherize\r\n} from \"../core/utils/inflector\";\r\nimport {\r\n getBoundingRect\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 quadToObject\r\n} from \"../core/utils/string\";\r\nimport {\r\n isFunction,\r\n isNumeric,\r\n isObject\r\n} from \"../core/utils/type\";\r\nimport {\r\n value as viewPort\r\n} from \"../core/utils/view_port\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n end as dragEventEnd,\r\n enter as dragEventEnter,\r\n leave as dragEventLeave,\r\n move as dragEventMove,\r\n start as dragEventStart\r\n} from \"../events/drag\";\r\nimport pointerEvents from \"../events/pointer\";\r\nimport {\r\n addNamespace,\r\n needSkipEvent\r\n} from \"../events/utils/index\";\r\nimport Animator from \"./ui/scroll_view/m_animator\";\r\nvar window = getWindow();\r\nvar KEYDOWN_EVENT = \"keydown\";\r\nvar DRAGGABLE = \"dxDraggable\";\r\nvar DRAGSTART_EVENT_NAME = addNamespace(dragEventStart, DRAGGABLE);\r\nvar DRAG_EVENT_NAME = addNamespace(dragEventMove, DRAGGABLE);\r\nvar DRAGEND_EVENT_NAME = addNamespace(dragEventEnd, DRAGGABLE);\r\nvar DRAG_ENTER_EVENT_NAME = addNamespace(dragEventEnter, DRAGGABLE);\r\nvar DRAGEND_LEAVE_EVENT_NAME = addNamespace(dragEventLeave, DRAGGABLE);\r\nvar POINTERDOWN_EVENT_NAME = addNamespace(pointerEvents.down, DRAGGABLE);\r\nvar KEYDOWN_EVENT_NAME = addNamespace(KEYDOWN_EVENT, DRAGGABLE);\r\nvar CLONE_CLASS = \"clone\";\r\nvar targetDraggable;\r\nvar sourceDraggable;\r\nvar ANONYMOUS_TEMPLATE_NAME = \"content\";\r\nvar getMousePosition = event => ({\r\n x: event.pageX - $(window).scrollLeft(),\r\n y: event.pageY - $(window).scrollTop()\r\n});\r\nvar GESTURE_COVER_CLASS = \"dx-gesture-cover\";\r\nvar OVERLAY_WRAPPER_CLASS = \"dx-overlay-wrapper\";\r\nvar OVERLAY_CONTENT_CLASS = \"dx-overlay-content\";\r\nclass ScrollHelper {\r\n constructor(orientation, component) {\r\n this._$scrollableAtPointer = null;\r\n this._preventScroll = true;\r\n this._component = component;\r\n if (\"vertical\" === orientation) {\r\n this._scrollValue = \"scrollTop\";\r\n this._overFlowAttr = \"overflowY\";\r\n this._sizeAttr = \"height\";\r\n this._scrollSizeProp = \"scrollHeight\";\r\n this._clientSizeProp = \"clientHeight\";\r\n this._limitProps = {\r\n start: \"top\",\r\n end: \"bottom\"\r\n }\r\n } else {\r\n this._scrollValue = \"scrollLeft\";\r\n this._overFlowAttr = \"overflowX\";\r\n this._sizeAttr = \"width\";\r\n this._scrollSizeProp = \"scrollWidth\";\r\n this._clientSizeProp = \"clientWidth\";\r\n this._limitProps = {\r\n start: \"left\",\r\n end: \"right\"\r\n }\r\n }\r\n }\r\n updateScrollable(elements, mousePosition) {\r\n var isScrollableFound = false;\r\n elements.some(element => {\r\n var $element = $(element);\r\n var isTargetOverOverlayWrapper = $element.hasClass(OVERLAY_WRAPPER_CLASS);\r\n var isTargetOverOverlayContent = $element.hasClass(OVERLAY_CONTENT_CLASS);\r\n if (isTargetOverOverlayWrapper || isTargetOverOverlayContent) {\r\n return true\r\n }\r\n isScrollableFound = this._trySetScrollable(element, mousePosition);\r\n return isScrollableFound\r\n });\r\n if (!isScrollableFound) {\r\n this._$scrollableAtPointer = null;\r\n this._scrollSpeed = 0\r\n }\r\n }\r\n isScrolling() {\r\n return !!this._scrollSpeed\r\n }\r\n isScrollable($element) {\r\n return (\"auto\" === $element.css(this._overFlowAttr) || $element.hasClass(\"dx-scrollable-container\")) && $element.prop(this._scrollSizeProp) > Math.ceil(\"width\" === this._sizeAttr ? getWidth($element) : getHeight($element))\r\n }\r\n _trySetScrollable(element, mousePosition) {\r\n var $element = $(element);\r\n var distanceToBorders;\r\n var sensitivity = this._component.option(\"scrollSensitivity\");\r\n var isScrollable = this.isScrollable($element);\r\n if (isScrollable) {\r\n distanceToBorders = this._calculateDistanceToBorders($element, mousePosition);\r\n if (sensitivity > distanceToBorders[this._limitProps.start]) {\r\n if (!this._preventScroll) {\r\n this._scrollSpeed = -this._calculateScrollSpeed(distanceToBorders[this._limitProps.start]);\r\n this._$scrollableAtPointer = $element\r\n }\r\n } else if (sensitivity > distanceToBorders[this._limitProps.end]) {\r\n if (!this._preventScroll) {\r\n this._scrollSpeed = this._calculateScrollSpeed(distanceToBorders[this._limitProps.end]);\r\n this._$scrollableAtPointer = $element\r\n }\r\n } else {\r\n isScrollable = false;\r\n this._preventScroll = false\r\n }\r\n }\r\n return isScrollable\r\n }\r\n _calculateDistanceToBorders($area, mousePosition) {\r\n var area = $area.get(0);\r\n var areaBoundingRect;\r\n if (area) {\r\n areaBoundingRect = getBoundingRect(area);\r\n return {\r\n left: mousePosition.x - areaBoundingRect.left,\r\n top: mousePosition.y - areaBoundingRect.top,\r\n right: areaBoundingRect.right - mousePosition.x,\r\n bottom: areaBoundingRect.bottom - mousePosition.y\r\n }\r\n }\r\n return {}\r\n }\r\n _calculateScrollSpeed(distance) {\r\n var component = this._component;\r\n var sensitivity = component.option(\"scrollSensitivity\");\r\n var maxSpeed = component.option(\"scrollSpeed\");\r\n return Math.ceil(((sensitivity - distance) / sensitivity) ** 2 * maxSpeed)\r\n }\r\n scrollByStep() {\r\n if (this._$scrollableAtPointer && this._scrollSpeed) {\r\n if (this._$scrollableAtPointer.hasClass(\"dx-scrollable-container\")) {\r\n var $scrollable = this._$scrollableAtPointer.closest(\".dx-scrollable\");\r\n var scrollableInstance = $scrollable.data(\"dxScrollable\") || $scrollable.data(\"dxScrollView\");\r\n if (scrollableInstance) {\r\n var nextScrollPosition = scrollableInstance.scrollOffset()[this._limitProps.start] + this._scrollSpeed;\r\n scrollableInstance.scrollTo({\r\n [this._limitProps.start]: nextScrollPosition\r\n })\r\n }\r\n } else {\r\n var _nextScrollPosition = this._$scrollableAtPointer[this._scrollValue]() + this._scrollSpeed;\r\n this._$scrollableAtPointer[this._scrollValue](_nextScrollPosition)\r\n }\r\n var dragMoveArgs = this._component._dragMoveArgs;\r\n if (dragMoveArgs) {\r\n this._component._dragMoveHandler(dragMoveArgs)\r\n }\r\n }\r\n }\r\n reset() {\r\n this._$scrollableAtPointer = null;\r\n this._scrollSpeed = 0;\r\n this._preventScroll = true\r\n }\r\n isOutsideScrollable($scrollable, event) {\r\n if (!$scrollable) {\r\n return false\r\n }\r\n var scrollableSize = getBoundingRect($scrollable.get(0));\r\n var start = scrollableSize[this._limitProps.start];\r\n var size = scrollableSize[this._sizeAttr];\r\n var mousePosition = getMousePosition(event);\r\n var location = \"width\" === this._sizeAttr ? mousePosition.x : mousePosition.y;\r\n return location < start || location > start + size\r\n }\r\n}\r\nvar ScrollAnimator = Animator.inherit({\r\n ctor(strategy) {\r\n this.callBase();\r\n this._strategy = strategy\r\n },\r\n _step() {\r\n var horizontalScrollHelper = this._strategy._horizontalScrollHelper;\r\n var verticalScrollHelper = this._strategy._verticalScrollHelper;\r\n horizontalScrollHelper && horizontalScrollHelper.scrollByStep();\r\n verticalScrollHelper && verticalScrollHelper.scrollByStep()\r\n }\r\n});\r\nvar Draggable = DOMComponent.inherit({\r\n reset: noop,\r\n dragMove: noop,\r\n dragEnter: noop,\r\n dragLeave: noop,\r\n dragEnd(sourceEvent) {\r\n var sourceDraggable = this._getSourceDraggable();\r\n sourceDraggable._fireRemoveEvent(sourceEvent);\r\n return Deferred().resolve()\r\n },\r\n _fireRemoveEvent: noop,\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n onDragStart: null,\r\n onDragMove: null,\r\n onDragEnd: null,\r\n onDragEnter: null,\r\n onDragLeave: null,\r\n onDragCancel: null,\r\n onCancelByEsc: false,\r\n onDrop: null,\r\n immediate: true,\r\n dragDirection: \"both\",\r\n boundary: void 0,\r\n boundOffset: 0,\r\n allowMoveByClick: false,\r\n itemData: null,\r\n container: void 0,\r\n dragTemplate: void 0,\r\n contentTemplate: \"content\",\r\n handle: \"\",\r\n filter: \"\",\r\n clone: false,\r\n autoScroll: true,\r\n scrollSpeed: 30,\r\n scrollSensitivity: 60,\r\n group: void 0,\r\n data: void 0\r\n })\r\n },\r\n _setOptionsByReference() {\r\n this.callBase.apply(this, arguments);\r\n extend(this._optionsByReference, {\r\n component: true,\r\n group: true,\r\n itemData: true,\r\n data: true\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._attachEventHandlers();\r\n this._scrollAnimator = new ScrollAnimator(this);\r\n this._horizontalScrollHelper = new ScrollHelper(\"horizontal\", this);\r\n this._verticalScrollHelper = new ScrollHelper(\"vertical\", this);\r\n this._initScrollTop = 0;\r\n this._initScrollLeft = 0\r\n },\r\n _normalizeCursorOffset(offset) {\r\n if (isObject(offset)) {\r\n offset = {\r\n h: offset.x,\r\n v: offset.y\r\n }\r\n }\r\n offset = splitPair(offset).map(value => parseFloat(value));\r\n return {\r\n left: offset[0],\r\n top: 1 === offset.length ? offset[0] : offset[1]\r\n }\r\n },\r\n _getNormalizedCursorOffset(offset, options) {\r\n if (isFunction(offset)) {\r\n offset = offset.call(this, options)\r\n }\r\n return this._normalizeCursorOffset(offset)\r\n },\r\n _calculateElementOffset(options) {\r\n var elementOffset;\r\n var dragElementOffset;\r\n var {\r\n event: event\r\n } = options;\r\n var $element = $(options.itemElement);\r\n var $dragElement = $(options.dragElement);\r\n var isCloned = this._dragElementIsCloned();\r\n var cursorOffset = this.option(\"cursorOffset\");\r\n var normalizedCursorOffset = {\r\n left: 0,\r\n top: 0\r\n };\r\n var currentLocate = this._initialLocate = locate($dragElement);\r\n if (isCloned || options.initialOffset || cursorOffset) {\r\n elementOffset = options.initialOffset || $element.offset();\r\n if (cursorOffset) {\r\n normalizedCursorOffset = this._getNormalizedCursorOffset(cursorOffset, options);\r\n if (isFinite(normalizedCursorOffset.left)) {\r\n elementOffset.left = event.pageX\r\n }\r\n if (isFinite(normalizedCursorOffset.top)) {\r\n elementOffset.top = event.pageY\r\n }\r\n }\r\n dragElementOffset = $dragElement.offset();\r\n elementOffset.top -= dragElementOffset.top + (normalizedCursorOffset.top || 0) - currentLocate.top;\r\n elementOffset.left -= dragElementOffset.left + (normalizedCursorOffset.left || 0) - currentLocate.left\r\n }\r\n return elementOffset\r\n },\r\n _initPosition(options) {\r\n var $dragElement = $(options.dragElement);\r\n var elementOffset = this._calculateElementOffset(options);\r\n if (elementOffset) {\r\n this._move(elementOffset, $dragElement)\r\n }\r\n this._startPosition = locate($dragElement)\r\n },\r\n _startAnimator() {\r\n if (!this._scrollAnimator.inProgress()) {\r\n this._scrollAnimator.start()\r\n }\r\n },\r\n _stopAnimator() {\r\n this._scrollAnimator.stop()\r\n },\r\n _addWidgetPrefix(className) {\r\n var componentName = this.NAME;\r\n return dasherize(componentName) + (className ? \"-\".concat(className) : \"\")\r\n },\r\n _getItemsSelector() {\r\n return this.option(\"filter\") || \"\"\r\n },\r\n _$content() {\r\n var $element = this.$element();\r\n var $wrapper = $element.children(\".dx-template-wrapper\");\r\n return $wrapper.length ? $wrapper : $element\r\n },\r\n _attachEventHandlers() {\r\n if (this.option(\"disabled\")) {\r\n return\r\n }\r\n var $element = this._$content();\r\n var itemsSelector = this._getItemsSelector();\r\n var allowMoveByClick = this.option(\"allowMoveByClick\");\r\n var data = {\r\n direction: this.option(\"dragDirection\"),\r\n immediate: this.option(\"immediate\"),\r\n checkDropTarget: ($target, event) => {\r\n var targetGroup = this.option(\"group\");\r\n var sourceGroup = this._getSourceDraggable().option(\"group\");\r\n var $scrollable = this._getScrollable($target);\r\n if (this._verticalScrollHelper.isOutsideScrollable($scrollable, event) || this._horizontalScrollHelper.isOutsideScrollable($scrollable, event)) {\r\n return false\r\n }\r\n return sourceGroup && sourceGroup === targetGroup\r\n }\r\n };\r\n if (allowMoveByClick) {\r\n $element = this._getArea();\r\n eventsEngine.on($element, POINTERDOWN_EVENT_NAME, data, this._pointerDownHandler.bind(this))\r\n }\r\n if (\">\" === itemsSelector[0]) {\r\n itemsSelector = itemsSelector.slice(1)\r\n }\r\n eventsEngine.on($element, DRAGSTART_EVENT_NAME, itemsSelector, data, this._dragStartHandler.bind(this));\r\n eventsEngine.on($element, DRAG_EVENT_NAME, data, this._dragMoveHandler.bind(this));\r\n eventsEngine.on($element, DRAGEND_EVENT_NAME, data, this._dragEndHandler.bind(this));\r\n eventsEngine.on($element, DRAG_ENTER_EVENT_NAME, data, this._dragEnterHandler.bind(this));\r\n eventsEngine.on($element, DRAGEND_LEAVE_EVENT_NAME, data, this._dragLeaveHandler.bind(this));\r\n if (this.option(\"onCancelByEsc\")) {\r\n eventsEngine.on($element, KEYDOWN_EVENT_NAME, this._keydownHandler.bind(this))\r\n }\r\n },\r\n _dragElementIsCloned() {\r\n return this._$dragElement && this._$dragElement.hasClass(this._addWidgetPrefix(CLONE_CLASS))\r\n },\r\n _getDragTemplateArgs($element, $container) {\r\n return {\r\n container: getPublicElement($container),\r\n model: {\r\n itemData: this.option(\"itemData\"),\r\n itemElement: getPublicElement($element)\r\n }\r\n }\r\n },\r\n _createDragElement($element) {\r\n var result = $element;\r\n var clone = this.option(\"clone\");\r\n var $container = this._getContainer();\r\n var template = this.option(\"dragTemplate\");\r\n if (template) {\r\n template = this._getTemplate(template);\r\n result = $(\"<div>\").appendTo($container);\r\n template.render(this._getDragTemplateArgs($element, result))\r\n } else if (clone) {\r\n result = $(\"<div>\").appendTo($container);\r\n $element.clone().css({\r\n width: $element.css(\"width\"),\r\n height: $element.css(\"height\")\r\n }).appendTo(result)\r\n }\r\n return result.toggleClass(this._addWidgetPrefix(CLONE_CLASS), result.get(0) !== $element.get(0)).toggleClass(\"dx-rtl\", this.option(\"rtlEnabled\"))\r\n },\r\n _resetDragElement() {\r\n if (this._dragElementIsCloned()) {\r\n this._$dragElement.remove()\r\n } else {\r\n this._toggleDraggingClass(false)\r\n }\r\n this._$dragElement = null\r\n },\r\n _resetSourceElement() {\r\n this._toggleDragSourceClass(false);\r\n this._$sourceElement = null\r\n },\r\n _detachEventHandlers() {\r\n eventsEngine.off(this._$content(), \".\".concat(DRAGGABLE));\r\n eventsEngine.off(this._getArea(), \".\".concat(DRAGGABLE))\r\n },\r\n _move(position, $element) {\r\n move($element || this._$dragElement, position)\r\n },\r\n _getDraggableElement(e) {\r\n var $sourceElement = this._getSourceElement();\r\n if ($sourceElement) {\r\n return $sourceElement\r\n }\r\n var allowMoveByClick = this.option(\"allowMoveByClick\");\r\n if (allowMoveByClick) {\r\n return this.$element()\r\n }\r\n var $target = $(e && e.target);\r\n var itemsSelector = this._getItemsSelector();\r\n if (\">\" === itemsSelector[0]) {\r\n var $items = this._$content().find(itemsSelector);\r\n if (!$items.is($target)) {\r\n $target = $target.closest($items)\r\n }\r\n }\r\n return $target\r\n },\r\n _getSourceElement() {\r\n var draggable = this._getSourceDraggable();\r\n return draggable._$sourceElement\r\n },\r\n _pointerDownHandler(e) {\r\n if (needSkipEvent(e)) {\r\n return\r\n }\r\n var position = {};\r\n var $element = this.$element();\r\n var dragDirection = this.option(\"dragDirection\");\r\n if (\"horizontal\" === dragDirection || \"both\" === dragDirection) {\r\n position.left = e.pageX - $element.offset().left + locate($element).left - getWidth($element) / 2\r\n }\r\n if (\"vertical\" === dragDirection || \"both\" === dragDirection) {\r\n position.top = e.pageY - $element.offset().top + locate($element).top - getHeight($element) / 2\r\n }\r\n this._move(position, $element);\r\n this._getAction(\"onDragMove\")(this._getEventArgs(e))\r\n },\r\n _isValidElement(event, $element) {\r\n var handle = this.option(\"handle\");\r\n var $target = $(event.originalEvent && event.originalEvent.target);\r\n if (handle && !$target.closest(handle).length) {\r\n return false\r\n }\r\n if (!$element.length) {\r\n return false\r\n }\r\n return !$element.is(\".dx-state-disabled, .dx-state-disabled *\")\r\n },\r\n _dragStartHandler(e) {\r\n var $element = this._getDraggableElement(e);\r\n this.dragInProgress = true;\r\n if (!this._isValidElement(e, $element)) {\r\n e.cancel = true;\r\n return\r\n }\r\n if (this._$sourceElement) {\r\n return\r\n }\r\n var dragStartArgs = this._getDragStartArgs(e, $element);\r\n this._getAction(\"onDragStart\")(dragStartArgs);\r\n if (dragStartArgs.cancel) {\r\n e.cancel = true;\r\n return\r\n }\r\n this.option(\"itemData\", dragStartArgs.itemData);\r\n this._setSourceDraggable();\r\n this._$sourceElement = $element;\r\n var initialOffset = $element.offset();\r\n if (!this._hasClonedDraggable() && this.option(\"autoScroll\")) {\r\n this._initScrollTop = this._getScrollableScrollTop();\r\n this._initScrollLeft = this._getScrollableScrollLeft();\r\n initialOffset = this._getDraggableElementOffset(initialOffset.left, initialOffset.top)\r\n }\r\n var $dragElement = this._$dragElement = this._createDragElement($element);\r\n this._toggleDraggingClass(true);\r\n this._toggleDragSourceClass(true);\r\n this._setGestureCoverCursor($dragElement.children());\r\n var isFixedPosition = \"fixed\" === $dragElement.css(\"position\");\r\n this._initPosition(extend({}, dragStartArgs, {\r\n dragElement: $dragElement.get(0),\r\n initialOffset: isFixedPosition && initialOffset\r\n }));\r\n this._getAction(\"onDraggableElementShown\")(_extends(_extends({}, dragStartArgs), {\r\n dragElement: $dragElement\r\n }));\r\n var $area = this._getArea();\r\n var areaOffset = this._getAreaOffset($area);\r\n var boundOffset = this._getBoundOffset();\r\n var areaWidth = getOuterWidth($area);\r\n var areaHeight = getOuterHeight($area);\r\n var elementWidth = getWidth($dragElement);\r\n var elementHeight = getHeight($dragElement);\r\n var startOffset_left = $dragElement.offset().left - areaOffset.left,\r\n startOffset_top = $dragElement.offset().top - areaOffset.top;\r\n if ($area.length) {\r\n e.maxLeftOffset = startOffset_left - boundOffset.left;\r\n e.maxRightOffset = areaWidth - startOffset_left - elementWidth - boundOffset.right;\r\n e.maxTopOffset = startOffset_top - boundOffset.top;\r\n e.maxBottomOffset = areaHeight - startOffset_top - elementHeight - boundOffset.bottom\r\n }\r\n if (this.option(\"autoScroll\")) {\r\n this._startAnimator()\r\n }\r\n },\r\n _getAreaOffset($area) {\r\n var offset = $area && positionUtils.offset($area);\r\n return offset || {\r\n left: 0,\r\n top: 0\r\n }\r\n },\r\n _toggleDraggingClass(value) {\r\n this._$dragElement && this._$dragElement.toggleClass(this._addWidgetPrefix(\"dragging\"), value)\r\n },\r\n _toggleDragSourceClass(value, $element) {\r\n var $sourceElement = $element || this._$sourceElement;\r\n $sourceElement && $sourceElement.toggleClass(this._addWidgetPrefix(\"source\"), value)\r\n },\r\n _setGestureCoverCursor($element) {\r\n $(\".\".concat(GESTURE_COVER_CLASS)).css(\"cursor\", $element.css(\"cursor\"))\r\n },\r\n _getBoundOffset() {\r\n var boundOffset = this.option(\"boundOffset\");\r\n if (isFunction(boundOffset)) {\r\n boundOffset = boundOffset.call(this)\r\n }\r\n return quadToObject(boundOffset)\r\n },\r\n _getArea() {\r\n var area = this.option(\"boundary\");\r\n if (isFunction(area)) {\r\n area = area.call(this)\r\n }\r\n return $(area)\r\n },\r\n _getContainer() {\r\n var container = this.option(\"container\");\r\n if (void 0 === container) {\r\n container = viewPort()\r\n }\r\n return $(container)\r\n },\r\n _getDraggableElementOffset(initialOffsetX, initialOffsetY) {\r\n var _a, _b, _c, _d;\r\n var initScrollTop = this._initScrollTop;\r\n var initScrollLeft = this._initScrollLeft;\r\n var scrollTop = this._getScrollableScrollTop();\r\n var scrollLeft = this._getScrollableScrollLeft();\r\n var elementPosition = $(this.element()).css(\"position\");\r\n var isFixedPosition = \"fixed\" === elementPosition;\r\n var result = {\r\n left: (null !== (_b = null === (_a = this._startPosition) || void 0 === _a ? void 0 : _a.left) && void 0 !== _b ? _b : 0) + initialOffsetX,\r\n top: (null !== (_d = null === (_c = this._startPosition) || void 0 === _c ? void 0 : _c.top) && void 0 !== _d ? _d : 0) + initialOffsetY\r\n };\r\n if (isFixedPosition || this._hasClonedDraggable()) {\r\n return result\r\n }\r\n return {\r\n left: isNumeric(scrollLeft) ? result.left + scrollLeft - initScrollLeft : result.left,\r\n top: isNumeric(scrollTop) ? result.top + scrollTop - initScrollTop : result.top\r\n }\r\n },\r\n _hasClonedDraggable() {\r\n return this.option(\"clone\") || this.option(\"dragTemplate\")\r\n },\r\n _dragMoveHandler(e) {\r\n this._dragMoveArgs = e;\r\n if (!this._$dragElement) {\r\n e.cancel = true;\r\n return\r\n }\r\n var offset = this._getDraggableElementOffset(e.offset.x, e.offset.y);\r\n this._move(offset);\r\n this._updateScrollable(e);\r\n var eventArgs = this._getEventArgs(e);\r\n this._getAction(\"onDragMove\")(eventArgs);\r\n if (true === eventArgs.cancel) {\r\n return\r\n }\r\n var targetDraggable = this._getTargetDraggable();\r\n targetDraggable.dragMove(e, scrollBy)\r\n },\r\n _updateScrollable(e) {\r\n if (this.option(\"autoScroll\")) {\r\n var mousePosition = getMousePosition(e);\r\n var allObjects = domAdapter.elementsFromPoint(mousePosition.x, mousePosition.y, this.$element().get(0));\r\n this._verticalScrollHelper.updateScrollable(allObjects, mousePosition);\r\n this._horizontalScrollHelper.updateScrollable(allObjects, mousePosition)\r\n }\r\n },\r\n _getScrollable($element) {\r\n var $scrollable;\r\n $element.parents().toArray().some(parent => {\r\n var $parent = $(parent);\r\n if (this._horizontalScrollHelper.isScrollable($parent) || this._verticalScrollHelper.isScrollable($parent)) {\r\n $scrollable = $parent;\r\n return true\r\n }\r\n return false\r\n });\r\n return $scrollable\r\n },\r\n _getScrollableScrollTop() {\r\n var _a, _b;\r\n return null !== (_b = null === (_a = this._getScrollable($(this.element()))) || void 0 === _a ? void 0 : _a.scrollTop()) && void 0 !== _b ? _b : 0\r\n },\r\n _getScrollableScrollLeft() {\r\n var _a, _b;\r\n return null !== (_b = null === (_a = this._getScrollable($(this.element()))) || void 0 === _a ? void 0 : _a.scrollLeft()) && void 0 !== _b ? _b : 0\r\n },\r\n _defaultActionArgs() {\r\n var args = this.callBase.apply(this, arguments);\r\n var component = this.option(\"component\");\r\n if (component) {\r\n args.component = component;\r\n args.element = component.element()\r\n }\r\n return args\r\n },\r\n _getEventArgs(e) {\r\n var sourceDraggable = this._getSourceDraggable();\r\n var targetDraggable = this._getTargetDraggable();\r\n return {\r\n event: e,\r\n itemData: sourceDraggable.option(\"itemData\"),\r\n itemElement: getPublicElement(sourceDraggable._$sourceElement),\r\n fromComponent: sourceDraggable.option(\"component\") || sourceDraggable,\r\n toComponent: targetDraggable.option(\"component\") || targetDraggable,\r\n fromData: sourceDraggable.option(\"data\"),\r\n toData: targetDraggable.option(\"data\")\r\n }\r\n },\r\n _getDragStartArgs(e, $itemElement) {\r\n var args = this._getEventArgs(e);\r\n return {\r\n event: args.event,\r\n itemData: args.itemData,\r\n itemElement: $itemElement,\r\n fromData: args.fromData\r\n }\r\n },\r\n _revertItemToInitialPosition() {\r\n !this._dragElementIsCloned() && this._move(this._initialLocate, this._$sourceElement)\r\n },\r\n _dragEndHandler(e) {\r\n var d = Deferred();\r\n var dragEndEventArgs = this._getEventArgs(e);\r\n var dropEventArgs = this._getEventArgs(e);\r\n var targetDraggable = this._getTargetDraggable();\r\n var needRevertPosition = true;\r\n this.dragInProgress = false;\r\n try {\r\n this._getAction(\"onDragEnd\")(dragEndEventArgs)\r\n } finally {\r\n when(fromPromise(dragEndEventArgs.cancel)).done(cancel => {\r\n if (!cancel) {\r\n if (targetDraggable !== this) {\r\n targetDraggable._getAction(\"onDrop\")(dropEventArgs)\r\n }\r\n if (!dropEventArgs.cancel) {\r\n needRevertPosition = false;\r\n when(fromPromise(targetDraggable.dragEnd(dragEndEventArgs))).always(d.resolve);\r\n return\r\n }\r\n }\r\n d.resolve()\r\n }).fail(d.resolve);\r\n d.done(() => {\r\n if (needRevertPosition) {\r\n this._revertItemToInitialPosition()\r\n }\r\n this._resetDragOptions(targetDraggable)\r\n })\r\n }\r\n },\r\n _isTargetOverAnotherDraggable(e) {\r\n var sourceDraggable = this._getSourceDraggable();\r\n if (this === sourceDraggable) {\r\n return false\r\n }\r\n var $dragElement = sourceDraggable._$dragElement;\r\n var $sourceDraggableElement = sourceDraggable.$element();\r\n var $targetDraggableElement = this.$element();\r\n var mousePosition = getMousePosition(e);\r\n var elements = domAdapter.elementsFromPoint(mousePosition.x, mousePosition.y, this.element());\r\n var firstWidgetElement = elements.filter(element => {\r\n var $element = $(element);\r\n if ($element.hasClass(this._addWidgetPrefix())) {\r\n return !$element.closest($dragElement).length\r\n }\r\n return false\r\n })[0];\r\n var $sourceElement = this._getSourceElement();\r\n var isTargetOverItself = firstWidgetElement === $sourceDraggableElement.get(0);\r\n var isTargetOverNestedDraggable = $(firstWidgetElement).closest($sourceElement).length;\r\n return !firstWidgetElement || firstWidgetElement === $targetDraggableElement.get(0) && !isTargetOverItself && !isTargetOverNestedDraggable\r\n },\r\n _dragEnterHandler(e) {\r\n this._fireDragEnterEvent(e);\r\n if (this._isTargetOverAnotherDraggable(e)) {\r\n this._setTargetDraggable()\r\n }\r\n var sourceDraggable = this._getSourceDraggable();\r\n sourceDraggable.dragEnter(e)\r\n },\r\n _dragLeaveHandler(e) {\r\n this._fireDragLeaveEvent(e);\r\n this._resetTargetDraggable();\r\n if (this !== this._getSourceDraggable()) {\r\n this.reset()\r\n }\r\n var sourceDraggable = this._getSourceDraggable();\r\n sourceDraggable.dragLeave(e)\r\n },\r\n _keydownHandler(e) {\r\n if (this.dragInProgress && \"Escape\" === e.key) {\r\n this._keydownEscapeHandler(e)\r\n }\r\n },\r\n _keydownEscapeHandler(e) {\r\n var $sourceElement = this._getSourceElement();\r\n if (!$sourceElement) {\r\n return\r\n }\r\n var dragCancelEventArgs = this._getEventArgs(e);\r\n this._getAction(\"onDragCancel\")(dragCancelEventArgs);\r\n if (dragCancelEventArgs.cancel) {\r\n return\r\n }\r\n this.dragInProgress = false;\r\n null === sourceDraggable || void 0 === sourceDraggable ? void 0 : sourceDraggable._toggleDraggingClass(false);\r\n this._detachEventHandlers();\r\n this._revertItemToInitialPosition();\r\n var targetDraggable = this._getTargetDraggable();\r\n this._resetDragOptions(targetDraggable);\r\n this._attachEventHandlers()\r\n },\r\n _getAction(name) {\r\n return this[\"_\".concat(name, \"Action\")] || this._createActionByOption(name)\r\n },\r\n _getAnonymousTemplateName: () => ANONYMOUS_TEMPLATE_NAME,\r\n _initTemplates() {\r\n if (!this.option(\"contentTemplate\")) {\r\n return\r\n }\r\n this._templateManager.addDefaultTemplates({\r\n content: new EmptyTemplate\r\n });\r\n this.callBase.apply(this, arguments)\r\n },\r\n _render() {\r\n this.callBase();\r\n this.$element().addClass(this._addWidgetPrefix());\r\n var transclude = this._templateManager.anonymousTemplateName === this.option(\"contentTemplate\");\r\n var template = this._getTemplateByOption(\"contentTemplate\");\r\n if (template) {\r\n $(template.render({\r\n container: this.element(),\r\n transclude: transclude\r\n }))\r\n }\r\n },\r\n _optionChanged(args) {\r\n var {\r\n name: name\r\n } = args;\r\n switch (name) {\r\n case \"onDragStart\":\r\n case \"onDragMove\":\r\n case \"onDragEnd\":\r\n case \"onDrop\":\r\n case \"onDragEnter\":\r\n case \"onDragLeave\":\r\n case \"onDragCancel\":\r\n case \"onDraggableElementShown\":\r\n this[\"_\".concat(name, \"Action\")] = this._createActionByOption(name);\r\n break;\r\n case \"dragTemplate\":\r\n case \"contentTemplate\":\r\n case \"container\":\r\n case \"clone\":\r\n break;\r\n case \"allowMoveByClick\":\r\n case \"dragDirection\":\r\n case \"disabled\":\r\n case \"boundary\":\r\n case \"filter\":\r\n case \"immediate\":\r\n this._resetDragElement();\r\n this._detachEventHandlers();\r\n this._attachEventHandlers();\r\n break;\r\n case \"onCancelByEsc\":\r\n this._keydownHandler();\r\n break;\r\n case \"autoScroll\":\r\n this._verticalScrollHelper.reset();\r\n this._horizontalScrollHelper.reset();\r\n break;\r\n case \"scrollSensitivity\":\r\n case \"scrollSpeed\":\r\n case \"boundOffset\":\r\n case \"handle\":\r\n case \"group\":\r\n case \"data\":\r\n case \"itemData\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _getTargetDraggable() {\r\n return targetDraggable || this\r\n },\r\n _getSourceDraggable() {\r\n return sourceDraggable || this\r\n },\r\n _setTargetDraggable() {\r\n var currentGroup = this.option(\"group\");\r\n var sourceDraggable = this._getSourceDraggable();\r\n if (currentGroup && currentGroup === sourceDraggable.option(\"group\")) {\r\n targetDraggable = this\r\n }\r\n },\r\n _setSourceDraggable() {\r\n sourceDraggable = this\r\n },\r\n _resetSourceDraggable() {\r\n sourceDraggable = null\r\n },\r\n _resetTargetDraggable() {\r\n targetDraggable = null\r\n },\r\n _resetDragOptions(targetDraggable) {\r\n this.reset();\r\n targetDraggable.reset();\r\n this._stopAnimator();\r\n this._horizontalScrollHelper.reset();\r\n this._verticalScrollHelper.reset();\r\n this._resetDragElement();\r\n this._resetSourceElement();\r\n this._resetTargetDraggable();\r\n this._resetSourceDraggable()\r\n },\r\n _dispose() {\r\n this.callBase();\r\n this._detachEventHandlers();\r\n this._resetDragElement();\r\n this._resetTargetDraggable();\r\n this._resetSourceDraggable();\r\n this._$sourceElement = null;\r\n this._stopAnimator()\r\n },\r\n _fireDragEnterEvent(sourceEvent) {\r\n var args = this._getEventArgs(sourceEvent);\r\n this._getAction(\"onDragEnter\")(args)\r\n },\r\n _fireDragLeaveEvent(sourceEvent) {\r\n var args = this._getEventArgs(sourceEvent);\r\n this._getAction(\"onDragLeave\")(args)\r\n }\r\n});\r\nregisterComponent(DRAGGABLE, Draggable);\r\nexport default Draggable;\r\n","/**\r\n * DevExtreme (esm/ui/draggable.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Draggable from \"../__internal/m_draggable\";\r\nexport default Draggable;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/m_appointment_drag_behavior.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Draggable from \"../../ui/draggable\";\r\nimport {\r\n LIST_ITEM_DATA_KEY\r\n} from \"./m_constants\";\r\nimport {\r\n isSchedulerComponent\r\n} from \"./utils/is_scheduler_component\";\r\nvar APPOINTMENT_ITEM_CLASS = \"dx-scheduler-appointment\";\r\nexport default class AppointmentDragBehavior {\r\n constructor(scheduler) {\r\n this.scheduler = scheduler;\r\n this.workspace = this.scheduler._workSpace;\r\n this.appointments = this.scheduler._appointments;\r\n this.initialPosition = {\r\n left: 0,\r\n top: 0\r\n };\r\n this.appointmentInfo = null;\r\n this.dragBetweenComponentsPromise = null\r\n }\r\n isAllDay(appointment) {\r\n return appointment.data(\"dxAppointmentSettings\").allDay\r\n }\r\n onDragStart(e) {\r\n var {\r\n itemSettings: itemSettings,\r\n itemData: itemData,\r\n initialPosition: initialPosition\r\n } = e;\r\n this.initialPosition = initialPosition;\r\n this.appointmentInfo = {\r\n appointment: itemData,\r\n settings: itemSettings\r\n };\r\n this.appointments.notifyObserver(\"hideAppointmentTooltip\")\r\n }\r\n onDragMove(e) {\r\n if (e.fromComponent !== e.toComponent) {\r\n this.appointments.notifyObserver(\"removeDroppableCellClass\")\r\n }\r\n }\r\n getAppointmentElement(e) {\r\n var itemElement = e.event.data && e.event.data.itemElement || e.itemElement;\r\n return $(itemElement)\r\n }\r\n onDragEnd(event) {\r\n var element = this.getAppointmentElement(event);\r\n var rawAppointment = this.appointments._getItemData(element);\r\n var container = this.appointments._getAppointmentContainer(this.isAllDay(element));\r\n container.append(element);\r\n var newCellIndex = this.workspace.getDroppableCellIndex();\r\n var oldCellIndex = this.workspace.getCellIndexByCoordinates(this.initialPosition);\r\n this.appointments.notifyObserver(\"updateAppointmentAfterDrag\", {\r\n event: event,\r\n element: element,\r\n rawAppointment: rawAppointment,\r\n newCellIndex: newCellIndex,\r\n oldCellIndex: oldCellIndex\r\n })\r\n }\r\n onDragCancel() {\r\n this.removeDroppableClasses()\r\n }\r\n getItemData(appointmentElement) {\r\n var dataFromTooltip = $(appointmentElement).data(LIST_ITEM_DATA_KEY);\r\n var itemDataFromTooltip = null === dataFromTooltip || void 0 === dataFromTooltip ? void 0 : dataFromTooltip.appointment;\r\n var itemDataFromGrid = this.appointments._getItemData(appointmentElement);\r\n return itemDataFromTooltip || itemDataFromGrid\r\n }\r\n getItemSettings(appointment) {\r\n var itemData = $(appointment).data(LIST_ITEM_DATA_KEY);\r\n return itemData && itemData.settings || []\r\n }\r\n createDragStartHandler(options, appointmentDragging) {\r\n return e => {\r\n e.itemData = this.getItemData(e.itemElement);\r\n e.itemSettings = this.getItemSettings(e.itemElement);\r\n appointmentDragging.onDragStart && appointmentDragging.onDragStart(e);\r\n if (!e.cancel) {\r\n options.onDragStart(e)\r\n }\r\n }\r\n }\r\n createDragMoveHandler(options, appointmentDragging) {\r\n return e => {\r\n appointmentDragging.onDragMove && appointmentDragging.onDragMove(e);\r\n if (!e.cancel) {\r\n options.onDragMove(e)\r\n }\r\n }\r\n }\r\n createDragEndHandler(options, appointmentDragging) {\r\n return e => {\r\n var updatedData = this.appointments.invoke(\"getUpdatedData\", e.itemData);\r\n this.appointmentInfo = null;\r\n e.toItemData = extend({}, e.itemData, updatedData);\r\n appointmentDragging.onDragEnd && appointmentDragging.onDragEnd(e);\r\n if (!e.cancel) {\r\n options.onDragEnd(e);\r\n if (e.fromComponent !== e.toComponent) {\r\n appointmentDragging.onRemove && appointmentDragging.onRemove(e)\r\n }\r\n }\r\n if (true === e.cancel) {\r\n options.onDragCancel(e)\r\n }\r\n if (true !== e.cancel && isSchedulerComponent(e.toComponent)) {\r\n var targetDragBehavior = e.toComponent._getDragBehavior();\r\n targetDragBehavior.dragBetweenComponentsPromise = new Deferred\r\n }\r\n }\r\n }\r\n createDropHandler(appointmentDragging) {\r\n return e => {\r\n var updatedData = this.appointments.invoke(\"getUpdatedData\", e.itemData);\r\n e.itemData = extend({}, e.itemData, updatedData);\r\n if (e.fromComponent !== e.toComponent) {\r\n appointmentDragging.onAdd && appointmentDragging.onAdd(e)\r\n }\r\n if (this.dragBetweenComponentsPromise) {\r\n this.dragBetweenComponentsPromise.resolve()\r\n }\r\n }\r\n }\r\n addTo(container, config) {\r\n var appointmentDragging = this.scheduler.option(\"appointmentDragging\") || {};\r\n var options = extend({\r\n component: this.scheduler,\r\n contentTemplate: null,\r\n filter: \".\".concat(APPOINTMENT_ITEM_CLASS),\r\n immediate: false,\r\n onDragStart: this.onDragStart.bind(this),\r\n onDragMove: this.onDragMove.bind(this),\r\n onDragEnd: this.onDragEnd.bind(this),\r\n onDragCancel: this.onDragCancel.bind(this)\r\n }, config);\r\n this.appointments._createComponent(container, Draggable, extend({}, options, appointmentDragging, {\r\n onDragStart: this.createDragStartHandler(options, appointmentDragging),\r\n onDragMove: this.createDragMoveHandler(options, appointmentDragging),\r\n onDragEnd: this.createDragEndHandler(options, appointmentDragging),\r\n onDrop: this.createDropHandler(appointmentDragging),\r\n onCancelByEsc: true\r\n }))\r\n }\r\n updateDragSource(appointment, settings) {\r\n var {\r\n appointmentInfo: appointmentInfo\r\n } = this;\r\n if (appointmentInfo || appointment) {\r\n var currentAppointment = appointment || appointmentInfo.appointment;\r\n var currentSettings = settings || appointmentInfo.settings;\r\n this.appointments._setDragSourceAppointment(currentAppointment, currentSettings)\r\n }\r\n }\r\n removeDroppableClasses() {\r\n this.appointments._removeDragSourceClassFromDraggedAppointment();\r\n this.workspace.removeDroppableCellClass()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/utils/is_scheduler_component.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar schedulerComponentName = \"dxScheduler\";\r\nexport function isSchedulerComponent(component) {\r\n return component.NAME === schedulerComponentName\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/shaders/m_current_time_shader.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nvar DATE_TIME_SHADER_CLASS = \"dx-scheduler-date-time-shader\";\r\nclass CurrentTimeShader {\r\n constructor(_workSpace) {\r\n this._workSpace = _workSpace;\r\n this._$container = this._workSpace._dateTableScrollable.$content()\r\n }\r\n render() {\r\n this.initShaderElements();\r\n this.renderShader();\r\n this._shader.forEach(shader => {\r\n this._$container.append(shader)\r\n })\r\n }\r\n initShaderElements() {\r\n this._$shader = this.createShader();\r\n this._shader = [];\r\n this._shader.push(this._$shader)\r\n }\r\n renderShader() {}\r\n createShader() {\r\n return $(\"<div>\").addClass(DATE_TIME_SHADER_CLASS)\r\n }\r\n clean() {\r\n this._$container && this._$container.find(\".\".concat(DATE_TIME_SHADER_CLASS)).remove()\r\n }\r\n}\r\nexport default CurrentTimeShader;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/shaders/m_current_time_shader_vertical.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n setHeight,\r\n setWidth\r\n} from \"../../../core/utils/size\";\r\nimport CurrentTimeShader from \"./m_current_time_shader\";\r\nvar DATE_TIME_SHADER_ALL_DAY_CLASS = \"dx-scheduler-date-time-shader-all-day\";\r\nvar DATE_TIME_SHADER_TOP_CLASS = \"dx-scheduler-date-time-shader-top\";\r\nvar DATE_TIME_SHADER_BOTTOM_CLASS = \"dx-scheduler-date-time-shader-bottom\";\r\nclass VerticalCurrentTimeShader extends CurrentTimeShader {\r\n renderShader() {\r\n var shaderHeight = this._getShaderHeight();\r\n var maxHeight = this._getShaderMaxHeight();\r\n var isSolidShader = shaderHeight > maxHeight;\r\n if (shaderHeight > maxHeight) {\r\n shaderHeight = maxHeight\r\n }\r\n setHeight(this._$shader, shaderHeight);\r\n var groupCount = this._workSpace._getGroupCount() || 1;\r\n if (this._workSpace.isGroupedByDate()) {\r\n this._renderGroupedByDateShaderParts(groupCount, shaderHeight, maxHeight, isSolidShader)\r\n } else {\r\n this._renderShaderParts(groupCount, shaderHeight, maxHeight, isSolidShader)\r\n }\r\n }\r\n _renderShaderParts(groupCount, shaderHeight, maxHeight, isSolidShader) {\r\n for (var i = 0; i < groupCount; i++) {\r\n var shaderWidth = this._getShaderWidth(i);\r\n this._renderTopShader(this._$shader, shaderHeight, shaderWidth, i);\r\n !isSolidShader && this._renderBottomShader(this._$shader, maxHeight, shaderHeight, shaderWidth, i);\r\n this._renderAllDayShader(shaderWidth, i)\r\n }\r\n }\r\n _renderGroupedByDateShaderParts(groupCount, shaderHeight, maxHeight, isSolidShader) {\r\n var shaderWidth = this._getShaderWidth(0);\r\n var bottomShaderWidth = shaderWidth - this._workSpace.getCellWidth();\r\n if (shaderHeight < 0) {\r\n shaderHeight = 0;\r\n bottomShaderWidth = shaderWidth\r\n }\r\n this._renderTopShader(this._$shader, shaderHeight, shaderWidth * groupCount, 0);\r\n !isSolidShader && this._renderBottomShader(this._$shader, maxHeight, shaderHeight, bottomShaderWidth * groupCount + this._workSpace.getCellWidth(), 0);\r\n this._renderAllDayShader(shaderWidth * groupCount, 0)\r\n }\r\n _renderTopShader($shader, height, width, i) {\r\n this._$topShader = $(\"<div>\").addClass(DATE_TIME_SHADER_TOP_CLASS);\r\n if (width) {\r\n setWidth(this._$topShader, width)\r\n }\r\n if (height) {\r\n setHeight(this._$topShader, height)\r\n }\r\n this._$topShader.css(\"marginTop\", this._getShaderTopOffset(i));\r\n this._$topShader.css(\"left\", this._getShaderOffset(i, width));\r\n $shader.append(this._$topShader)\r\n }\r\n _renderBottomShader($shader, maxHeight, height, width, i) {\r\n this._$bottomShader = $(\"<div>\").addClass(DATE_TIME_SHADER_BOTTOM_CLASS);\r\n var shaderWidth = height < 0 ? width : width - this._workSpace.getCellWidth();\r\n var shaderHeight = height < 0 ? maxHeight : maxHeight - height;\r\n setWidth(this._$bottomShader, shaderWidth);\r\n setHeight(this._$bottomShader, shaderHeight);\r\n this._$bottomShader.css(\"left\", this._getShaderOffset(i, width - this._workSpace.getCellWidth()));\r\n $shader.append(this._$bottomShader)\r\n }\r\n _renderAllDayShader(shaderWidth, i) {\r\n if (this._workSpace.option(\"showAllDayPanel\")) {\r\n this._$allDayIndicator = $(\"<div>\").addClass(DATE_TIME_SHADER_ALL_DAY_CLASS);\r\n setHeight(this._$allDayIndicator, this._workSpace.getAllDayHeight());\r\n setWidth(this._$allDayIndicator, shaderWidth);\r\n this._$allDayIndicator.css(\"left\", this._getShaderOffset(i, shaderWidth));\r\n this._workSpace._$allDayPanel.prepend(this._$allDayIndicator)\r\n }\r\n }\r\n _getShaderOffset(i, width) {\r\n return this._workSpace.getGroupedStrategy().getShaderOffset(i, width)\r\n }\r\n _getShaderTopOffset(i) {\r\n return this._workSpace.getGroupedStrategy().getShaderTopOffset(i)\r\n }\r\n _getShaderHeight() {\r\n return this._workSpace.getGroupedStrategy().getShaderHeight()\r\n }\r\n _getShaderMaxHeight() {\r\n return this._workSpace.getGroupedStrategy().getShaderMaxHeight()\r\n }\r\n _getShaderWidth(i) {\r\n return this._workSpace.getGroupedStrategy().getShaderWidth(i)\r\n }\r\n clean() {\r\n super.clean();\r\n this._workSpace && this._workSpace._$allDayPanel && this._workSpace._$allDayPanel.find(\".\".concat(DATE_TIME_SHADER_ALL_DAY_CLASS)).remove()\r\n }\r\n}\r\nexport default VerticalCurrentTimeShader;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_cache.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nexport class Cache {\r\n constructor() {\r\n this._cache = new Map\r\n }\r\n get size() {\r\n return this._cache.size\r\n }\r\n clear() {\r\n this._cache.clear()\r\n }\r\n get(name, callback) {\r\n if (!this._cache.has(name) && callback) {\r\n this.set(name, callback())\r\n }\r\n return this._cache.get(name)\r\n }\r\n set(name, value) {\r\n isDefined(value) && this._cache.set(name, value)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_cells_selection_controller.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n isDateAndTimeView\r\n} from \"../../scheduler/r1/utils/index\";\r\nexport class CellsSelectionController {\r\n handleArrowClick(options) {\r\n var {\r\n key: key,\r\n focusedCellPosition: focusedCellPosition,\r\n edgeIndices: edgeIndices,\r\n getCellDataByPosition: getCellDataByPosition,\r\n isAllDayPanelCell: isAllDayPanelCell\r\n } = options;\r\n var nextCellIndices;\r\n switch (key) {\r\n case \"down\":\r\n nextCellIndices = this.getCellFromNextRowPosition(focusedCellPosition, \"next\", edgeIndices);\r\n break;\r\n case \"up\":\r\n nextCellIndices = this.getCellFromNextRowPosition(focusedCellPosition, \"prev\", edgeIndices);\r\n break;\r\n case \"left\":\r\n nextCellIndices = this.getCellFromNextColumnPosition(_extends(_extends({}, options), {\r\n direction: \"prev\"\r\n }));\r\n break;\r\n case \"right\":\r\n nextCellIndices = this.getCellFromNextColumnPosition(_extends(_extends({}, options), {\r\n direction: \"next\"\r\n }))\r\n }\r\n var currentCellData = getCellDataByPosition(nextCellIndices.rowIndex, nextCellIndices.columnIndex, isAllDayPanelCell);\r\n return this.moveToCell(_extends(_extends({}, options), {\r\n currentCellData: currentCellData\r\n }))\r\n }\r\n getCellFromNextRowPosition(focusedCellPosition, direction, edgeIndices) {\r\n var {\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex\r\n } = focusedCellPosition;\r\n var deltaPosition = \"next\" === direction ? 1 : -1;\r\n var nextRowIndex = rowIndex + deltaPosition;\r\n var validRowIndex = nextRowIndex >= 0 && nextRowIndex <= edgeIndices.lastRowIndex ? nextRowIndex : rowIndex;\r\n return {\r\n columnIndex: columnIndex,\r\n rowIndex: validRowIndex\r\n }\r\n }\r\n getCellFromNextColumnPosition(options) {\r\n var {\r\n focusedCellPosition: focusedCellPosition,\r\n direction: direction,\r\n edgeIndices: edgeIndices,\r\n isRTL: isRTL,\r\n isGroupedByDate: isGroupedByDate,\r\n groupCount: groupCount,\r\n isMultiSelection: isMultiSelection,\r\n viewType: viewType\r\n } = options;\r\n var {\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex\r\n } = focusedCellPosition;\r\n var {\r\n firstColumnIndex: firstColumnIndex,\r\n lastColumnIndex: lastColumnIndex,\r\n firstRowIndex: firstRowIndex,\r\n lastRowIndex: lastRowIndex\r\n } = edgeIndices;\r\n var step = isGroupedByDate && isMultiSelection ? groupCount : 1;\r\n var sign = isRTL ? -1 : 1;\r\n var deltaColumnIndex = \"next\" === direction ? sign * step : -1 * sign * step;\r\n var nextColumnIndex = columnIndex + deltaColumnIndex;\r\n var isValidColumnIndex = nextColumnIndex >= firstColumnIndex && nextColumnIndex <= lastColumnIndex;\r\n if (isValidColumnIndex) {\r\n return {\r\n columnIndex: nextColumnIndex,\r\n rowIndex: rowIndex\r\n }\r\n }\r\n return isDateAndTimeView(viewType) ? focusedCellPosition : this._processEdgeCell({\r\n nextColumnIndex: nextColumnIndex,\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex,\r\n firstColumnIndex: firstColumnIndex,\r\n lastColumnIndex: lastColumnIndex,\r\n firstRowIndex: firstRowIndex,\r\n lastRowIndex: lastRowIndex,\r\n step: step\r\n })\r\n }\r\n _processEdgeCell(options) {\r\n var {\r\n nextColumnIndex: nextColumnIndex,\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex,\r\n firstColumnIndex: firstColumnIndex,\r\n lastColumnIndex: lastColumnIndex,\r\n firstRowIndex: firstRowIndex,\r\n lastRowIndex: lastRowIndex,\r\n step: step\r\n } = options;\r\n var validColumnIndex = nextColumnIndex;\r\n var validRowIndex = rowIndex;\r\n var isLeftEdgeCell = nextColumnIndex < firstColumnIndex;\r\n var isRightEdgeCell = nextColumnIndex > lastColumnIndex;\r\n if (isLeftEdgeCell) {\r\n var columnIndexInNextRow = lastColumnIndex - (step - columnIndex % step - 1);\r\n var nextRowIndex = rowIndex - 1;\r\n var isValidRowIndex = nextRowIndex >= firstRowIndex;\r\n validRowIndex = isValidRowIndex ? nextRowIndex : rowIndex;\r\n validColumnIndex = isValidRowIndex ? columnIndexInNextRow : columnIndex\r\n }\r\n if (isRightEdgeCell) {\r\n var _columnIndexInNextRow = firstColumnIndex + columnIndex % step;\r\n var _nextRowIndex = rowIndex + 1;\r\n var _isValidRowIndex = _nextRowIndex <= lastRowIndex;\r\n validRowIndex = _isValidRowIndex ? _nextRowIndex : rowIndex;\r\n validColumnIndex = _isValidRowIndex ? _columnIndexInNextRow : columnIndex\r\n }\r\n return {\r\n columnIndex: validColumnIndex,\r\n rowIndex: validRowIndex\r\n }\r\n }\r\n moveToCell(options) {\r\n var {\r\n isMultiSelection: isMultiSelection,\r\n isMultiSelectionAllowed: isMultiSelectionAllowed,\r\n focusedCellData: focusedCellData,\r\n currentCellData: currentCellData\r\n } = options;\r\n var isValidMultiSelection = isMultiSelection && isMultiSelectionAllowed;\r\n var nextFocusedCellData = isValidMultiSelection ? this._getNextCellData(currentCellData, focusedCellData) : currentCellData;\r\n return nextFocusedCellData\r\n }\r\n _getNextCellData(nextFocusedCellData, focusedCellData, isVirtualCell) {\r\n if (isVirtualCell) {\r\n return focusedCellData\r\n }\r\n var isValidNextFocusedCell = this._isValidNextFocusedCell(nextFocusedCellData, focusedCellData);\r\n return isValidNextFocusedCell ? nextFocusedCellData : focusedCellData\r\n }\r\n _isValidNextFocusedCell(nextFocusedCellData, focusedCellData) {\r\n if (!focusedCellData) {\r\n return true\r\n }\r\n var {\r\n groupIndex: groupIndex,\r\n allDay: allDay\r\n } = focusedCellData;\r\n var {\r\n groupIndex: nextGroupIndex,\r\n allDay: nextAllDay\r\n } = nextFocusedCellData;\r\n return groupIndex === nextGroupIndex && allDay === nextAllDay\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_cells_selection_state.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport default class CellsSelectionState {\r\n constructor(_viewDataProvider) {\r\n this._viewDataProvider = _viewDataProvider;\r\n this._focusedCell = null;\r\n this._selectedCells = null;\r\n this._firstSelectedCell = null;\r\n this._prevFocusedCell = null;\r\n this._prevSelectedCells = null\r\n }\r\n get viewDataProvider() {\r\n return this._viewDataProvider\r\n }\r\n get focusedCell() {\r\n var focusedCell = this._focusedCell;\r\n if (!focusedCell) {\r\n return\r\n }\r\n var {\r\n groupIndex: groupIndex,\r\n startDate: startDate,\r\n allDay: allDay\r\n } = focusedCell;\r\n var cellInfo = {\r\n groupIndex: groupIndex,\r\n startDate: startDate,\r\n isAllDay: allDay,\r\n index: focusedCell.index\r\n };\r\n var cellPosition = this.viewDataProvider.findCellPositionInMap(cellInfo);\r\n return {\r\n coordinates: cellPosition,\r\n cellData: focusedCell\r\n }\r\n }\r\n setFocusedCell(rowIndex, columnIndex, isAllDay) {\r\n if (rowIndex >= 0) {\r\n var cell = this._viewDataProvider.getCellData(rowIndex, columnIndex, isAllDay);\r\n this._focusedCell = cell\r\n }\r\n }\r\n setSelectedCells(lastCellCoordinates) {\r\n var firstCellCoordinates = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : void 0;\r\n var viewDataProvider = this._viewDataProvider;\r\n var {\r\n rowIndex: lastRowIndex,\r\n columnIndex: lastColumnIndex,\r\n allDay: isLastCellAllDay\r\n } = lastCellCoordinates;\r\n if (lastRowIndex < 0) {\r\n return\r\n }\r\n var firstCell = firstCellCoordinates ? viewDataProvider.getCellData(firstCellCoordinates.rowIndex, firstCellCoordinates.columnIndex, firstCellCoordinates.allDay) : this._firstSelectedCell;\r\n var lastCell = viewDataProvider.getCellData(lastRowIndex, lastColumnIndex, isLastCellAllDay);\r\n this._firstSelectedCell = firstCell;\r\n this._selectedCells = this._viewDataProvider.getCellsBetween(firstCell, lastCell)\r\n }\r\n setSelectedCellsByData(selectedCellsData) {\r\n this._selectedCells = selectedCellsData\r\n }\r\n getSelectedCells() {\r\n return this._selectedCells\r\n }\r\n releaseSelectedAndFocusedCells() {\r\n this.releaseSelectedCells();\r\n this.releaseFocusedCell()\r\n }\r\n releaseSelectedCells() {\r\n this._prevSelectedCells = this._selectedCells;\r\n this._prevFirstSelectedCell = this._firstSelectedCell;\r\n this._selectedCells = null;\r\n this._firstSelectedCell = null\r\n }\r\n releaseFocusedCell() {\r\n this._prevFocusedCell = this._focusedCell;\r\n this._focusedCell = null\r\n }\r\n restoreSelectedAndFocusedCells() {\r\n this._selectedCells = this._selectedCells || this._prevSelectedCells;\r\n this._focusedCell = this._focusedCell || this._prevFocusedCell;\r\n this._firstSelectedCell = this._firstSelectedCell || this._prevFirstSelectedCell;\r\n this._prevSelectedCells = null;\r\n this._prevFirstSelectedCell = null;\r\n this._prevFocusedCell = null\r\n }\r\n clearSelectedAndFocusedCells() {\r\n this._prevSelectedCells = null;\r\n this._selectedCells = null;\r\n this._prevFocusedCell = null;\r\n this._focusedCell = null\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_virtual_scrolling.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport {\r\n isDefined\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 {\r\n addNamespace\r\n} from \"../../../events/utils/index\";\r\nvar DEFAULT_CELL_HEIGHT = 50;\r\nvar MIN_CELL_WIDTH = 1;\r\nvar MIN_SCROLL_OFFSET = 10;\r\nvar VIRTUAL_APPOINTMENTS_RENDER_TIMEOUT = 15;\r\nvar DOCUMENT_SCROLL_EVENT_NAMESPACE = addNamespace(\"scroll\", \"dxSchedulerVirtualScrolling\");\r\nvar MAX_CELLS_PER_VIRTUAL_CELL_COUNT = 1e3;\r\nvar scrollingOrientations = {\r\n vertical: \"vertical\",\r\n horizontal: \"horizontal\",\r\n both: \"both\",\r\n none: \"none\"\r\n};\r\nvar DefaultScrollingOrientation = scrollingOrientations.both;\r\nexport class VirtualScrollingDispatcher {\r\n constructor(options) {\r\n this.options = options;\r\n if (options) {\r\n this._rowHeight = this.getCellHeight();\r\n this._cellWidth = this.getCellWidth();\r\n this._createVirtualScrollingBase()\r\n }\r\n }\r\n get isRTL() {\r\n return this.options.isRTL()\r\n }\r\n get verticalVirtualScrolling() {\r\n return this._verticalVirtualScrolling\r\n }\r\n set verticalVirtualScrolling(value) {\r\n this._verticalVirtualScrolling = value\r\n }\r\n get horizontalVirtualScrolling() {\r\n return this._horizontalVirtualScrolling\r\n }\r\n set horizontalVirtualScrolling(value) {\r\n this._horizontalVirtualScrolling = value\r\n }\r\n get document() {\r\n return domAdapter.getDocument()\r\n }\r\n get height() {\r\n return this.options.getSchedulerHeight()\r\n }\r\n get width() {\r\n return this.options.getSchedulerWidth()\r\n }\r\n get rowHeight() {\r\n return this._rowHeight\r\n }\r\n set rowHeight(value) {\r\n this._rowHeight = value\r\n }\r\n get outlineCount() {\r\n return this.options.getScrolling().outlineCount\r\n }\r\n get cellWidth() {\r\n return this._cellWidth\r\n }\r\n set cellWidth(value) {\r\n this._cellWidth = value\r\n }\r\n get viewportWidth() {\r\n var width = this.width && this.options.getViewWidth();\r\n return width > 0 ? width : this.options.getWindowWidth()\r\n }\r\n get viewportHeight() {\r\n var height = this.height && this.options.getViewHeight();\r\n return height > 0 ? height : this.options.getWindowHeight()\r\n }\r\n get cellCountInsideTopVirtualRow() {\r\n var _a;\r\n return (null === (_a = this.verticalScrollingState) || void 0 === _a ? void 0 : _a.virtualItemCountBefore) || 0\r\n }\r\n get cellCountInsideLeftVirtualCell() {\r\n var _a;\r\n return (null === (_a = this.horizontalScrollingState) || void 0 === _a ? void 0 : _a.virtualItemCountBefore) || 0\r\n }\r\n get cellCountInsideRightVirtualCell() {\r\n var _a;\r\n return (null === (_a = this.horizontalScrollingState) || void 0 === _a ? void 0 : _a.virtualItemCountAfter) || 0\r\n }\r\n get topVirtualRowsCount() {\r\n return this.cellCountInsideTopVirtualRow > 0 ? 1 : 0\r\n }\r\n get leftVirtualCellsCount() {\r\n var virtualItemsCount = !this.isRTL ? this.cellCountInsideLeftVirtualCell : this.cellCountInsideRightVirtualCell;\r\n return Math.ceil(virtualItemsCount / MAX_CELLS_PER_VIRTUAL_CELL_COUNT)\r\n }\r\n get virtualRowOffset() {\r\n var _a;\r\n return (null === (_a = this.verticalScrollingState) || void 0 === _a ? void 0 : _a.virtualItemSizeBefore) || 0\r\n }\r\n get virtualCellOffset() {\r\n var _a;\r\n return (null === (_a = this.horizontalScrollingState) || void 0 === _a ? void 0 : _a.virtualItemSizeBefore) || 0\r\n }\r\n get scrollingState() {\r\n var _a, _b;\r\n return {\r\n vertical: null === (_a = this.verticalVirtualScrolling) || void 0 === _a ? void 0 : _a.state,\r\n horizontal: null === (_b = this.horizontalVirtualScrolling) || void 0 === _b ? void 0 : _b.state\r\n }\r\n }\r\n get verticalScrollingState() {\r\n return this.scrollingState.vertical\r\n }\r\n get horizontalScrollingState() {\r\n return this.scrollingState.horizontal\r\n }\r\n get scrollingOrientation() {\r\n var scrolling = this.options.getScrolling();\r\n if (\"standard\" === scrolling.mode) {\r\n return scrollingOrientations.none\r\n }\r\n return scrolling.orientation || DefaultScrollingOrientation\r\n }\r\n get verticalScrollingAllowed() {\r\n return this.scrollingOrientation === scrollingOrientations.vertical || this.scrollingOrientation === scrollingOrientations.both\r\n }\r\n get horizontalScrollingAllowed() {\r\n return this.scrollingOrientation === scrollingOrientations.horizontal || this.scrollingOrientation === scrollingOrientations.both\r\n }\r\n setViewOptions(options) {\r\n this.options = options;\r\n if (this.verticalVirtualScrolling) {\r\n this.verticalVirtualScrolling.options = options;\r\n this.verticalVirtualScrolling.itemSize = this.rowHeight;\r\n this.verticalVirtualScrolling.viewportSize = this.viewportHeight\r\n }\r\n if (this.horizontalVirtualScrolling) {\r\n this.horizontalVirtualScrolling.options = options;\r\n this.verticalVirtualScrolling.itemSize = this.cellWidth;\r\n this.verticalVirtualScrolling.viewportSize = this.viewportWidth\r\n }\r\n }\r\n getRenderState() {\r\n var _a, _b;\r\n var verticalRenderState = (null === (_a = this.verticalVirtualScrolling) || void 0 === _a ? void 0 : _a.getRenderState()) || {};\r\n var horizontalRenderState = (null === (_b = this.horizontalVirtualScrolling) || void 0 === _b ? void 0 : _b.getRenderState()) || {};\r\n return _extends(_extends({}, verticalRenderState), horizontalRenderState)\r\n }\r\n getCellHeight() {\r\n var cellHeight = this.options.getCellHeight();\r\n var result = cellHeight > 0 ? cellHeight : DEFAULT_CELL_HEIGHT;\r\n return Math.floor(result)\r\n }\r\n getCellWidth() {\r\n var cellWidth = this.options.getCellWidth();\r\n var minCellWidth = this.options.getCellMinWidth();\r\n if (!cellWidth || cellWidth < minCellWidth) {\r\n cellWidth = minCellWidth\r\n }\r\n var result = cellWidth > 0 ? cellWidth : MIN_CELL_WIDTH;\r\n return Math.floor(result)\r\n }\r\n calculateCoordinatesByDataAndPosition(cellData, position, date, isCalculateTime, isVerticalDirectionView) {\r\n var {\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex\r\n } = position;\r\n var {\r\n startDate: startDate,\r\n endDate: endDate,\r\n allDay: allDay\r\n } = cellData;\r\n var timeToScroll = date.getTime();\r\n var cellStartTime = startDate.getTime();\r\n var cellEndTime = endDate.getTime();\r\n var scrollInCell = allDay || !isCalculateTime ? 0 : (timeToScroll - cellStartTime) / (cellEndTime - cellStartTime);\r\n var cellWidth = this.getCellWidth();\r\n var rowHeight = this.getCellHeight();\r\n var top = isVerticalDirectionView ? (rowIndex + scrollInCell) * rowHeight : rowIndex * rowHeight;\r\n var left = isVerticalDirectionView ? columnIndex * cellWidth : (columnIndex + scrollInCell) * cellWidth;\r\n if (this.isRTL) {\r\n left = this.options.getScrollableOuterWidth() - left\r\n }\r\n return {\r\n top: top,\r\n left: left\r\n }\r\n }\r\n dispose() {\r\n if (this._onScrollHandler) {\r\n eventsEngine.off(this.document, DOCUMENT_SCROLL_EVENT_NAMESPACE, this._onScrollHandler)\r\n }\r\n }\r\n createVirtualScrolling() {\r\n var isVerticalVirtualScrollingCreated = !!this.verticalVirtualScrolling;\r\n var isHorizontalVirtualScrollingCreated = !!this.horizontalVirtualScrolling;\r\n if (this.verticalScrollingAllowed !== isVerticalVirtualScrollingCreated || this.horizontalScrollingAllowed !== isHorizontalVirtualScrollingCreated) {\r\n this._rowHeight = this.getCellHeight();\r\n this._cellWidth = this.getCellWidth();\r\n this._createVirtualScrollingBase()\r\n }\r\n }\r\n _createVirtualScrollingBase() {\r\n if (this.verticalScrollingAllowed) {\r\n this.verticalVirtualScrolling = new VerticalVirtualScrolling(_extends(_extends({}, this.options), {\r\n viewportHeight: this.viewportHeight,\r\n rowHeight: this.rowHeight,\r\n outlineCount: this.outlineCount\r\n }))\r\n }\r\n if (this.horizontalScrollingAllowed) {\r\n this.horizontalVirtualScrolling = new HorizontalVirtualScrolling(_extends(_extends({}, this.options), {\r\n viewportWidth: this.viewportWidth,\r\n cellWidth: this.cellWidth,\r\n outlineCount: this.outlineCount\r\n }))\r\n }\r\n }\r\n isAttachWindowScrollEvent() {\r\n return (this.horizontalScrollingAllowed || this.verticalScrollingAllowed) && !this.height\r\n }\r\n attachScrollableEvents() {\r\n if (this.isAttachWindowScrollEvent()) {\r\n this._attachWindowScroll()\r\n }\r\n }\r\n _attachWindowScroll() {\r\n var window = getWindow();\r\n this._onScrollHandler = this.options.createAction(() => {\r\n var {\r\n scrollX: scrollX,\r\n scrollY: scrollY\r\n } = window;\r\n if (scrollX >= MIN_SCROLL_OFFSET || scrollY >= MIN_SCROLL_OFFSET) {\r\n this.handleOnScrollEvent({\r\n left: scrollX,\r\n top: scrollY\r\n })\r\n }\r\n });\r\n eventsEngine.on(this.document, DOCUMENT_SCROLL_EVENT_NAMESPACE, this._onScrollHandler)\r\n }\r\n handleOnScrollEvent(scrollPosition) {\r\n var _a, _b, _c, _d;\r\n if (scrollPosition) {\r\n var {\r\n left: left,\r\n top: top\r\n } = scrollPosition;\r\n var verticalStateChanged = isDefined(top) && (null === (_a = this.verticalVirtualScrolling) || void 0 === _a ? void 0 : _a.updateState(top));\r\n var horizontalStateChanged = isDefined(left) && (null === (_b = this.horizontalVirtualScrolling) || void 0 === _b ? void 0 : _b.updateState(left));\r\n if (verticalStateChanged || horizontalStateChanged) {\r\n null === (_d = (_c = this.options).updateRender) || void 0 === _d ? void 0 : _d.call(_c)\r\n }\r\n }\r\n }\r\n updateDimensions(isForce) {\r\n var _a, _b;\r\n var cellHeight = this.getCellHeight();\r\n var needUpdateVertical = this.verticalScrollingAllowed && cellHeight !== this.rowHeight;\r\n if ((needUpdateVertical || isForce) && this.verticalVirtualScrolling) {\r\n this.rowHeight = cellHeight;\r\n this.verticalVirtualScrolling.viewportSize = this.viewportHeight;\r\n this.verticalVirtualScrolling.reinitState(cellHeight, isForce)\r\n }\r\n var cellWidth = this.getCellWidth();\r\n var needUpdateHorizontal = this.horizontalScrollingAllowed && cellWidth !== this.cellWidth;\r\n if ((needUpdateHorizontal || isForce) && this.horizontalVirtualScrolling) {\r\n this.cellWidth = cellWidth;\r\n this.horizontalVirtualScrolling.viewportSize = this.viewportWidth;\r\n this.horizontalVirtualScrolling.reinitState(cellWidth, isForce)\r\n }\r\n if (needUpdateVertical || needUpdateHorizontal) {\r\n null === (_b = (_a = this.options).updateGrid) || void 0 === _b ? void 0 : _b.call(_a)\r\n }\r\n }\r\n}\r\nclass VirtualScrollingBase {\r\n constructor(options) {\r\n this.options = options;\r\n this._state = this.defaultState;\r\n this.viewportSize = this.options.viewportSize;\r\n this._itemSize = this.options.itemSize;\r\n this._position = -1;\r\n this._itemSizeChanged = false;\r\n this.updateState(0)\r\n }\r\n get itemSize() {\r\n return this._itemSize\r\n }\r\n set itemSize(value) {\r\n this._itemSizeChanged = this._itemSize !== value;\r\n this._itemSize = value\r\n }\r\n get state() {\r\n return this._state\r\n }\r\n set state(value) {\r\n this._state = value\r\n }\r\n get startIndex() {\r\n return this.state.startIndex\r\n }\r\n get pageSize() {\r\n return Math.ceil(this.viewportSize / this.itemSize)\r\n }\r\n get outlineCount() {\r\n return isDefined(this.options.outlineCount) ? this.options.outlineCount : Math.floor(this.pageSize / 2)\r\n }\r\n get groupCount() {\r\n return this.options.getGroupCount()\r\n }\r\n get isVerticalGrouping() {\r\n return this.options.isVerticalGrouping()\r\n }\r\n get defaultState() {\r\n return {\r\n prevPosition: 0,\r\n startIndex: -1,\r\n itemCount: 0,\r\n virtualItemCountBefore: 0,\r\n virtualItemCountAfter: 0,\r\n outlineCountBefore: 0,\r\n outlineCountAfter: 0,\r\n virtualItemSizeBefore: 0,\r\n virtualItemSizeAfter: 0,\r\n outlineSizeBefore: 0,\r\n outlineSizeAfter: 0\r\n }\r\n }\r\n get maxScrollPosition() {\r\n return this.getTotalItemCount() * this.itemSize - this.viewportSize\r\n }\r\n get position() {\r\n return this._position\r\n }\r\n set position(value) {\r\n this._position = value\r\n }\r\n needUpdateState(position) {\r\n var {\r\n prevPosition: prevPosition,\r\n startIndex: startIndex\r\n } = this.state;\r\n var isFirstInitialization = startIndex < 0;\r\n if (isFirstInitialization) {\r\n return true\r\n }\r\n var isStartIndexChanged = false;\r\n if (this._validateAndSavePosition(position)) {\r\n if (0 === position || position === this.maxScrollPosition) {\r\n return true\r\n }\r\n var currentPosition = prevPosition;\r\n var currentItemsCount = Math.floor(currentPosition / this.itemSize);\r\n var itemsCount = Math.floor(position / this.itemSize);\r\n isStartIndexChanged = Math.abs(currentItemsCount - itemsCount) >= this.outlineCount\r\n }\r\n return isStartIndexChanged\r\n }\r\n _validateAndSavePosition(position) {\r\n if (!isDefined(position)) {\r\n return false\r\n }\r\n var result = this.position !== position;\r\n this.position = position;\r\n return result\r\n }\r\n _correctPosition(position) {\r\n return position >= 0 ? Math.min(position, this.maxScrollPosition) : -1\r\n }\r\n updateState(position, isForce) {\r\n position = this._correctPosition(position);\r\n if (!this.needUpdateState(position) && !isForce) {\r\n return false\r\n }\r\n var itemsInfoBefore = this._calcItemInfoBefore(position);\r\n var itemsDeltaBefore = this._calcItemDeltaBefore(itemsInfoBefore);\r\n var {\r\n outlineCountAfter: outlineCountAfter,\r\n virtualItemCountAfter: virtualItemCountAfter,\r\n itemCountWithAfter: itemCountWithAfter\r\n } = this._calcItemInfoAfter(itemsDeltaBefore);\r\n var {\r\n virtualItemCountBefore: virtualItemCountBefore,\r\n outlineCountBefore: outlineCountBefore\r\n } = itemsInfoBefore;\r\n var itemCount = outlineCountBefore + itemCountWithAfter + outlineCountAfter;\r\n var itemCountBefore = Math.floor(position / this.itemSize);\r\n this.state.prevPosition = itemCountBefore * this.itemSize;\r\n this.state.startIndex = itemCountBefore - outlineCountBefore;\r\n this.state.virtualItemCountBefore = virtualItemCountBefore;\r\n this.state.outlineCountBefore = outlineCountBefore;\r\n this.state.itemCount = itemCount;\r\n this.state.outlineCountAfter = outlineCountAfter;\r\n this.state.virtualItemCountAfter = virtualItemCountAfter;\r\n this._updateStateCore();\r\n return true\r\n }\r\n reinitState(itemSize, isForceUpdate) {\r\n var {\r\n position: position\r\n } = this;\r\n this.itemSize = itemSize;\r\n this.updateState(0, isForceUpdate);\r\n if (position > 0) {\r\n this.updateState(position, isForceUpdate)\r\n }\r\n }\r\n _calcItemInfoBefore(position) {\r\n var virtualItemCountBefore = Math.floor(position / this.itemSize);\r\n var outlineCountBefore = Math.min(virtualItemCountBefore, this.outlineCount);\r\n virtualItemCountBefore -= outlineCountBefore;\r\n return {\r\n virtualItemCountBefore: virtualItemCountBefore,\r\n outlineCountBefore: outlineCountBefore\r\n }\r\n }\r\n _calcItemDeltaBefore(itemInfoBefore) {\r\n var {\r\n virtualItemCountBefore: virtualItemCountBefore,\r\n outlineCountBefore: outlineCountBefore\r\n } = itemInfoBefore;\r\n var totalItemCount = this.getTotalItemCount();\r\n return totalItemCount - virtualItemCountBefore - outlineCountBefore\r\n }\r\n getTotalItemCount() {\r\n throw \"getTotalItemCount method should be implemented\"\r\n }\r\n getRenderState() {\r\n throw \"getRenderState method should be implemented\"\r\n }\r\n _calcItemInfoAfter(itemsDeltaBefore) {\r\n var itemCountWithAfter = itemsDeltaBefore >= this.pageSize ? this.pageSize : itemsDeltaBefore;\r\n var virtualItemCountAfter = itemsDeltaBefore - itemCountWithAfter;\r\n var outlineCountAfter = virtualItemCountAfter > 0 ? Math.min(virtualItemCountAfter, this.outlineCount) : 0;\r\n if (virtualItemCountAfter > 0) {\r\n virtualItemCountAfter -= outlineCountAfter\r\n }\r\n return {\r\n virtualItemCountAfter: virtualItemCountAfter,\r\n outlineCountAfter: outlineCountAfter,\r\n itemCountWithAfter: itemCountWithAfter\r\n }\r\n }\r\n _updateStateCore() {\r\n var {\r\n state: state\r\n } = this;\r\n var {\r\n virtualItemCountBefore: virtualItemCountBefore\r\n } = state;\r\n var {\r\n virtualItemCountAfter: virtualItemCountAfter\r\n } = state;\r\n var {\r\n outlineCountBefore: outlineCountBefore\r\n } = state;\r\n var {\r\n outlineCountAfter: outlineCountAfter\r\n } = state;\r\n var prevVirtualItemSizeBefore = state.virtualItemSizeBefore;\r\n var prevVirtualItemSizeAfter = state.virtualItemSizeAfter;\r\n var prevOutlineSizeBefore = state.outlineSizeBefore;\r\n var prevOutlineSizeAfter = state.outlineSizeAfter;\r\n var virtualItemSizeBefore = this.itemSize * virtualItemCountBefore;\r\n var virtualItemSizeAfter = this.itemSize * virtualItemCountAfter;\r\n var outlineSizeBefore = this.itemSize * outlineCountBefore;\r\n var outlineSizeAfter = this.itemSize * outlineCountAfter;\r\n var prevVirtualSizeBefore = prevVirtualItemSizeBefore + prevOutlineSizeBefore;\r\n var virtualSizeBefore = virtualItemSizeBefore + outlineSizeBefore;\r\n var prevVirtualSizeAfter = prevVirtualItemSizeAfter + prevOutlineSizeAfter;\r\n var virtualSizeAfter = virtualItemSizeAfter + outlineSizeAfter;\r\n var isAppend = prevVirtualSizeBefore < virtualSizeBefore;\r\n var isPrepend = prevVirtualSizeAfter < virtualSizeAfter;\r\n var needAddItems = this._itemSizeChanged || isAppend || isPrepend;\r\n if (needAddItems) {\r\n this._updateStateVirtualItems(virtualItemSizeBefore, virtualItemSizeAfter)\r\n }\r\n }\r\n _updateStateVirtualItems(virtualItemSizeBefore, virtualItemSizeAfter) {\r\n var {\r\n state: state\r\n } = this;\r\n state.virtualItemSizeBefore = virtualItemSizeBefore;\r\n state.virtualItemSizeAfter = virtualItemSizeAfter\r\n }\r\n}\r\nclass VerticalVirtualScrolling extends VirtualScrollingBase {\r\n constructor(options) {\r\n super(_extends(_extends({}, options), {\r\n itemSize: options.rowHeight,\r\n viewportSize: options.viewportHeight\r\n }))\r\n }\r\n get prevTopPosition() {\r\n return this.state.prevPosition\r\n }\r\n get rowCount() {\r\n return this.state.itemCount\r\n }\r\n get topVirtualRowCount() {\r\n return this.state.virtualItemCountBefore\r\n }\r\n get bottomVirtualRowCount() {\r\n return this.state.virtualItemCountAfter\r\n }\r\n getTotalItemCount() {\r\n return this.options.getTotalRowCount(this.groupCount, this.isVerticalGrouping)\r\n }\r\n getRenderState() {\r\n return {\r\n topVirtualRowHeight: this.state.virtualItemSizeBefore,\r\n bottomVirtualRowHeight: this.state.virtualItemSizeAfter,\r\n startRowIndex: this.state.startIndex,\r\n rowCount: this.state.itemCount,\r\n startIndex: this.state.startIndex\r\n }\r\n }\r\n}\r\nclass HorizontalVirtualScrolling extends VirtualScrollingBase {\r\n constructor(options) {\r\n super(_extends(_extends({}, options), {\r\n itemSize: options.cellWidth,\r\n viewportSize: options.viewportWidth\r\n }))\r\n }\r\n get isRTL() {\r\n return this.options.isRTL()\r\n }\r\n getTotalItemCount() {\r\n return this.options.getTotalCellCount(this.groupCount, this.isVerticalGrouping)\r\n }\r\n getRenderState() {\r\n return {\r\n leftVirtualCellWidth: this.state.virtualItemSizeBefore,\r\n rightVirtualCellWidth: this.state.virtualItemSizeAfter,\r\n startCellIndex: this.state.startIndex,\r\n cellCount: this.state.itemCount,\r\n cellWidth: this.itemSize\r\n }\r\n }\r\n _updateStateVirtualItems(virtualItemSizeBefore, virtualItemSizeAfter) {\r\n if (!this.isRTL) {\r\n super._updateStateVirtualItems(virtualItemSizeBefore, virtualItemSizeAfter)\r\n } else {\r\n var {\r\n state: state\r\n } = this;\r\n state.virtualItemSizeAfter = virtualItemSizeBefore;\r\n state.virtualItemSizeBefore = virtualItemSizeAfter;\r\n state.startIndex = this.getTotalItemCount() - this.startIndex - this.state.itemCount\r\n }\r\n }\r\n}\r\nexport class VirtualScrollingRenderer {\r\n constructor(_workspace) {\r\n this._workspace = _workspace;\r\n this._renderAppointmentTimeoutID = null\r\n }\r\n getRenderTimeout() {\r\n return VIRTUAL_APPOINTMENTS_RENDER_TIMEOUT\r\n }\r\n get workspace() {\r\n return this._workspace\r\n }\r\n updateRender() {\r\n this._renderGrid();\r\n this._renderAppointments()\r\n }\r\n _renderGrid() {\r\n this.workspace.renderWorkSpace(false)\r\n }\r\n _renderAppointments() {\r\n var renderTimeout = this.getRenderTimeout();\r\n if (renderTimeout >= 0) {\r\n clearTimeout(this._renderAppointmentTimeoutID);\r\n this._renderAppointmentTimeoutID = setTimeout(() => this.workspace.updateAppointments(), renderTimeout)\r\n } else {\r\n this.workspace.updateAppointments()\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_work_space_grouped_strategy_horizontal.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getBoundingRect\r\n} from \"../../../core/utils/position\";\r\nimport {\r\n WORK_SPACE_BORDER_PX\r\n} from \"../../scheduler/workspaces/const\";\r\nimport {\r\n FIRST_GROUP_CELL_CLASS,\r\n LAST_GROUP_CELL_CLASS\r\n} from \"../m_classes\";\r\nclass HorizontalGroupedStrategy {\r\n constructor(_workSpace) {\r\n this._workSpace = _workSpace\r\n }\r\n prepareCellIndexes(cellCoordinates, groupIndex, inAllDay) {\r\n var groupByDay = this._workSpace.isGroupedByDate();\r\n if (!groupByDay) {\r\n return {\r\n rowIndex: cellCoordinates.rowIndex,\r\n columnIndex: cellCoordinates.columnIndex + groupIndex * this._workSpace._getCellCount()\r\n }\r\n }\r\n return {\r\n rowIndex: cellCoordinates.rowIndex,\r\n columnIndex: cellCoordinates.columnIndex * this._workSpace._getGroupCount() + groupIndex\r\n }\r\n }\r\n getGroupIndex(rowIndex, columnIndex) {\r\n var groupByDay = this._workSpace.isGroupedByDate();\r\n var groupCount = this._workSpace._getGroupCount();\r\n if (groupByDay) {\r\n return columnIndex % groupCount\r\n }\r\n return Math.floor(columnIndex / this._workSpace._getCellCount())\r\n }\r\n calculateHeaderCellRepeatCount() {\r\n return this._workSpace._getGroupCount() || 1\r\n }\r\n insertAllDayRowsIntoDateTable() {\r\n return false\r\n }\r\n getTotalCellCount(groupCount) {\r\n groupCount = groupCount || 1;\r\n return this._workSpace._getCellCount() * groupCount\r\n }\r\n getTotalRowCount() {\r\n return this._workSpace._getRowCount()\r\n }\r\n calculateTimeCellRepeatCount() {\r\n return 1\r\n }\r\n getWorkSpaceMinWidth() {\r\n var workSpaceElementWidth = getBoundingRect(this._workSpace.$element().get(0)).width;\r\n return workSpaceElementWidth - this._workSpace.getTimePanelWidth() - 2 * WORK_SPACE_BORDER_PX\r\n }\r\n getAllDayOffset() {\r\n return this._workSpace.getAllDayHeight()\r\n }\r\n getGroupCountClass(groups) {\r\n return\r\n }\r\n getLeftOffset() {\r\n return this._workSpace.getTimePanelWidth()\r\n }\r\n _createGroupBoundOffset(startCell, endCell, cellWidth) {\r\n var extraOffset = cellWidth / 2;\r\n var startOffset = startCell ? startCell.offset().left - extraOffset : 0;\r\n var endOffset = endCell ? endCell.offset().left + cellWidth + extraOffset : 0;\r\n return {\r\n left: startOffset,\r\n right: endOffset,\r\n top: 0,\r\n bottom: 0\r\n }\r\n }\r\n _getGroupedByDateBoundOffset($cells, cellWidth) {\r\n var lastCellIndex = $cells.length - 1;\r\n var startCell = $cells.eq(0);\r\n var endCell = $cells.eq(lastCellIndex);\r\n return this._createGroupBoundOffset(startCell, endCell, cellWidth)\r\n }\r\n getGroupBoundsOffset(cellCount, $cells, cellWidth, coordinates, groupedDataMap) {\r\n if (this._workSpace.isGroupedByDate()) {\r\n return this._getGroupedByDateBoundOffset($cells, cellWidth)\r\n }\r\n var startCell;\r\n var endCell;\r\n var cellIndex = this._workSpace.getCellIndexByCoordinates(coordinates);\r\n var groupIndex = coordinates.groupIndex || Math.floor(cellIndex / cellCount);\r\n var currentCellGroup = groupedDataMap.dateTableGroupedMap[groupIndex];\r\n if (currentCellGroup) {\r\n var groupRowLength = currentCellGroup[0].length;\r\n var groupStartPosition = currentCellGroup[0][0].position;\r\n var groupEndPosition = currentCellGroup[0][groupRowLength - 1].position;\r\n startCell = $cells.eq(groupStartPosition.columnIndex);\r\n endCell = $cells.eq(groupEndPosition.columnIndex)\r\n }\r\n return this._createGroupBoundOffset(startCell, endCell, cellWidth)\r\n }\r\n shiftIndicator($indicator, height, rtlOffset, groupIndex) {\r\n var offset = this._getIndicatorOffset(groupIndex);\r\n var horizontalOffset = rtlOffset ? rtlOffset - offset : offset;\r\n $indicator.css(\"left\", horizontalOffset);\r\n $indicator.css(\"top\", height)\r\n }\r\n _getIndicatorOffset(groupIndex) {\r\n var groupByDay = this._workSpace.isGroupedByDate();\r\n return groupByDay ? this._calculateGroupByDateOffset(groupIndex) : this._calculateOffset(groupIndex)\r\n }\r\n _calculateOffset(groupIndex) {\r\n var indicatorStartPosition = this._workSpace.getIndicatorOffset(groupIndex);\r\n var offset = this._workSpace._getCellCount() * this._workSpace.getRoundedCellWidth(groupIndex - 1, 0) * groupIndex;\r\n return indicatorStartPosition + offset\r\n }\r\n _calculateGroupByDateOffset(groupIndex) {\r\n return this._workSpace.getIndicatorOffset(0) * this._workSpace._getGroupCount() + this._workSpace.getRoundedCellWidth(groupIndex - 1, 0) * groupIndex\r\n }\r\n getShaderOffset(i, width) {\r\n var offset = this._workSpace._getCellCount() * this._workSpace.getRoundedCellWidth(i - 1) * i;\r\n return this._workSpace.option(\"rtlEnabled\") ? getBoundingRect(this._workSpace._dateTableScrollable.$content().get(0)).width - offset - this._workSpace.getTimePanelWidth() - width : offset\r\n }\r\n getShaderTopOffset(i) {\r\n return -this.getShaderMaxHeight() * (i > 0 ? 1 : 0)\r\n }\r\n getShaderHeight() {\r\n var height = this._workSpace.getIndicationHeight();\r\n return height\r\n }\r\n getShaderMaxHeight() {\r\n return getBoundingRect(this._workSpace._dateTableScrollable.$content().get(0)).height\r\n }\r\n getShaderWidth(i) {\r\n return this._workSpace.getIndicationWidth(i)\r\n }\r\n getScrollableScrollTop(allDay) {\r\n return !allDay ? this._workSpace.getScrollable().scrollTop() : 0\r\n }\r\n addAdditionalGroupCellClasses(cellClass, index, i, j) {\r\n var applyUnconditionally = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : false;\r\n cellClass = this._addLastGroupCellClass(cellClass, index, applyUnconditionally);\r\n return this._addFirstGroupCellClass(cellClass, index, applyUnconditionally)\r\n }\r\n _addLastGroupCellClass(cellClass, index, applyUnconditionally) {\r\n if (applyUnconditionally) {\r\n return \"\".concat(cellClass, \" \").concat(LAST_GROUP_CELL_CLASS)\r\n }\r\n var groupByDate = this._workSpace.isGroupedByDate();\r\n if (groupByDate) {\r\n if (index % this._workSpace._getGroupCount() === 0) {\r\n return \"\".concat(cellClass, \" \").concat(LAST_GROUP_CELL_CLASS)\r\n }\r\n } else if (index % this._workSpace._getCellCount() === 0) {\r\n return \"\".concat(cellClass, \" \").concat(LAST_GROUP_CELL_CLASS)\r\n }\r\n return cellClass\r\n }\r\n _addFirstGroupCellClass(cellClass, index, applyUnconditionally) {\r\n if (applyUnconditionally) {\r\n return \"\".concat(cellClass, \" \").concat(FIRST_GROUP_CELL_CLASS)\r\n }\r\n var groupByDate = this._workSpace.isGroupedByDate();\r\n if (groupByDate) {\r\n if ((index - 1) % this._workSpace._getGroupCount() === 0) {\r\n return \"\".concat(cellClass, \" \").concat(FIRST_GROUP_CELL_CLASS)\r\n }\r\n } else if ((index - 1) % this._workSpace._getCellCount() === 0) {\r\n return \"\".concat(cellClass, \" \").concat(FIRST_GROUP_CELL_CLASS)\r\n }\r\n return cellClass\r\n }\r\n}\r\nexport default HorizontalGroupedStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_work_space_grouped_strategy_vertical.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getBoundingRect\r\n} from \"../../../core/utils/position\";\r\nimport {\r\n calculateDayDuration,\r\n getVerticalGroupCountClass\r\n} from \"../../scheduler/r1/utils/index\";\r\nimport {\r\n WORK_SPACE_BORDER_PX\r\n} from \"../../scheduler/workspaces/const\";\r\nimport {\r\n FIRST_GROUP_CELL_CLASS,\r\n LAST_GROUP_CELL_CLASS\r\n} from \"../m_classes\";\r\nimport {\r\n Cache\r\n} from \"./m_cache\";\r\nclass VerticalGroupedStrategy {\r\n constructor(_workSpace) {\r\n this._workSpace = _workSpace;\r\n this.cache = new Cache\r\n }\r\n prepareCellIndexes(cellCoordinates, groupIndex, inAllDayRow) {\r\n var rowIndex = cellCoordinates.rowIndex + groupIndex * this._workSpace._getRowCount();\r\n if (this._workSpace.supportAllDayRow() && this._workSpace.option(\"showAllDayPanel\")) {\r\n rowIndex += groupIndex;\r\n if (!inAllDayRow) {\r\n rowIndex += 1\r\n }\r\n }\r\n return {\r\n rowIndex: rowIndex,\r\n columnIndex: cellCoordinates.columnIndex\r\n }\r\n }\r\n getGroupIndex(rowIndex) {\r\n return Math.floor(rowIndex / this._workSpace._getRowCount())\r\n }\r\n calculateHeaderCellRepeatCount() {\r\n return 1\r\n }\r\n insertAllDayRowsIntoDateTable() {\r\n return this._workSpace.option(\"showAllDayPanel\")\r\n }\r\n getTotalCellCount() {\r\n return this._workSpace._getCellCount()\r\n }\r\n getTotalRowCount() {\r\n return this._workSpace._getRowCount() * this._workSpace._getGroupCount()\r\n }\r\n calculateTimeCellRepeatCount() {\r\n return this._workSpace._getGroupCount() || 1\r\n }\r\n getWorkSpaceMinWidth() {\r\n var minWidth = this._workSpace._getWorkSpaceWidth();\r\n var workSpaceElementWidth = getBoundingRect(this._workSpace.$element().get(0)).width;\r\n var workspaceContainerWidth = workSpaceElementWidth - this._workSpace.getTimePanelWidth() - this._workSpace.getGroupTableWidth() - 2 * WORK_SPACE_BORDER_PX;\r\n if (minWidth < workspaceContainerWidth) {\r\n minWidth = workspaceContainerWidth\r\n }\r\n return minWidth\r\n }\r\n getAllDayOffset() {\r\n return 0\r\n }\r\n getGroupCountClass(groups) {\r\n return getVerticalGroupCountClass(groups)\r\n }\r\n getLeftOffset() {\r\n return this._workSpace.getTimePanelWidth() + this._workSpace.getGroupTableWidth()\r\n }\r\n getGroupBoundsOffset(groupIndex, _ref) {\r\n var [$firstCell, $lastCell] = _ref;\r\n return this.cache.get(\"groupBoundsOffset\".concat(groupIndex), () => {\r\n var startDayHour = this._workSpace.option(\"startDayHour\");\r\n var endDayHour = this._workSpace.option(\"endDayHour\");\r\n var hoursInterval = this._workSpace.option(\"hoursInterval\");\r\n var dayHeight = calculateDayDuration(startDayHour, endDayHour) / hoursInterval * this._workSpace.getCellHeight();\r\n var scrollTop = this.getScrollableScrollTop();\r\n var headerRowHeight = getBoundingRect(this._workSpace._$headerPanelContainer.get(0)).height;\r\n var topOffset = groupIndex * dayHeight + headerRowHeight + this._workSpace.option(\"getHeaderHeight\")() - scrollTop;\r\n if (this._workSpace.option(\"showAllDayPanel\") && this._workSpace.supportAllDayRow()) {\r\n topOffset += this._workSpace.getCellHeight() * (groupIndex + 1)\r\n }\r\n var bottomOffset = topOffset + dayHeight;\r\n var {\r\n left: left\r\n } = $firstCell.getBoundingClientRect();\r\n var {\r\n right: right\r\n } = $lastCell.getBoundingClientRect();\r\n this._groupBoundsOffset = {\r\n left: left,\r\n right: right,\r\n top: topOffset,\r\n bottom: bottomOffset\r\n };\r\n return this._groupBoundsOffset\r\n })\r\n }\r\n shiftIndicator($indicator, height, rtlOffset, i) {\r\n var offset = this._workSpace.getIndicatorOffset(0);\r\n var tableOffset = this._workSpace.option(\"crossScrollingEnabled\") ? 0 : this._workSpace.getGroupTableWidth();\r\n var horizontalOffset = rtlOffset ? rtlOffset - offset : offset;\r\n var verticalOffset = this._workSpace._getRowCount() * this._workSpace.getCellHeight() * i;\r\n if (this._workSpace.supportAllDayRow() && this._workSpace.option(\"showAllDayPanel\")) {\r\n verticalOffset += this._workSpace.getAllDayHeight() * (i + 1)\r\n }\r\n $indicator.css(\"left\", horizontalOffset + tableOffset);\r\n $indicator.css(\"top\", height + verticalOffset)\r\n }\r\n getShaderOffset(i, width) {\r\n var offset = this._workSpace.option(\"crossScrollingEnabled\") ? 0 : this._workSpace.getGroupTableWidth();\r\n return this._workSpace.option(\"rtlEnabled\") ? getBoundingRect(this._$container.get(0)).width - offset - this._workSpace.getWorkSpaceLeftOffset() - width : offset\r\n }\r\n getShaderTopOffset(i) {\r\n return 0\r\n }\r\n getShaderHeight() {\r\n var height = this._workSpace.getIndicationHeight();\r\n if (this._workSpace.supportAllDayRow() && this._workSpace.option(\"showAllDayPanel\")) {\r\n height += this._workSpace.getCellHeight()\r\n }\r\n return height\r\n }\r\n getShaderMaxHeight() {\r\n var height = this._workSpace._getRowCount() * this._workSpace.getCellHeight();\r\n if (this._workSpace.supportAllDayRow() && this._workSpace.option(\"showAllDayPanel\")) {\r\n height += this._workSpace.getCellHeight()\r\n }\r\n return height\r\n }\r\n getShaderWidth() {\r\n return this._workSpace.getIndicationWidth(0)\r\n }\r\n getScrollableScrollTop() {\r\n return this._workSpace.getScrollable().scrollTop()\r\n }\r\n addAdditionalGroupCellClasses(cellClass, index, i, j) {\r\n cellClass = this._addLastGroupCellClass(cellClass, i + 1);\r\n return this._addFirstGroupCellClass(cellClass, i + 1)\r\n }\r\n _addLastGroupCellClass(cellClass, index) {\r\n if (index % this._workSpace._getRowCount() === 0) {\r\n return \"\".concat(cellClass, \" \").concat(LAST_GROUP_CELL_CLASS)\r\n }\r\n return cellClass\r\n }\r\n _addFirstGroupCellClass(cellClass, index) {\r\n if ((index - 1) % this._workSpace._getRowCount() === 0) {\r\n return \"\".concat(cellClass, \" \").concat(FIRST_GROUP_CELL_CLASS)\r\n }\r\n return cellClass\r\n }\r\n}\r\nexport default VerticalGroupedStrategy;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/view_model/m_date_header_data_generator.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar __rest = this && this.__rest || function(s, e) {\r\n var t = {};\r\n for (var p in s) {\r\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) {\r\n t[p] = s[p]\r\n }\r\n }\r\n if (null != s && \"function\" === typeof Object.getOwnPropertySymbols) {\r\n var i = 0;\r\n for (p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) {\r\n t[p[i]] = s[p[i]]\r\n }\r\n }\r\n }\r\n return t\r\n};\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport {\r\n VIEWS\r\n} from \"../../../scheduler/m_constants\";\r\nimport {\r\n formatWeekdayAndDay,\r\n getDisplayedCellCount,\r\n getGroupCount,\r\n getHeaderCellText,\r\n getHorizontalGroupCount,\r\n getTotalCellCountByCompleteData,\r\n isTimelineView\r\n} from \"../../../scheduler/r1/utils/index\";\r\nimport timeZoneUtils from \"../../m_utils_time_zone\";\r\nexport class DateHeaderDataGenerator {\r\n constructor(_viewDataGenerator) {\r\n this._viewDataGenerator = _viewDataGenerator\r\n }\r\n getCompleteDateHeaderMap(options, completeViewDataMap) {\r\n var {\r\n isGenerateWeekDaysHeaderData: isGenerateWeekDaysHeaderData\r\n } = options;\r\n var result = [];\r\n if (isGenerateWeekDaysHeaderData) {\r\n var weekDaysRow = this._generateWeekDaysHeaderRowMap(options, completeViewDataMap);\r\n result.push(weekDaysRow)\r\n }\r\n var dateRow = this._generateHeaderDateRow(options, completeViewDataMap);\r\n result.push(dateRow);\r\n return result\r\n }\r\n _generateWeekDaysHeaderRowMap(options, completeViewDataMap) {\r\n var {\r\n isGroupedByDate: isGroupedByDate,\r\n groups: groups,\r\n groupOrientation: groupOrientation,\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour,\r\n hoursInterval: hoursInterval,\r\n isHorizontalGrouping: isHorizontalGrouping,\r\n intervalCount: intervalCount,\r\n viewOffset: viewOffset\r\n } = options;\r\n var cellCountInDay = this._viewDataGenerator.getCellCountInDay(startDayHour, endDayHour, hoursInterval);\r\n var horizontalGroupCount = getHorizontalGroupCount(groups, groupOrientation);\r\n var index = completeViewDataMap[0][0].allDay ? 1 : 0;\r\n var colSpan = isGroupedByDate ? horizontalGroupCount * cellCountInDay : cellCountInDay;\r\n var groupCount = getGroupCount(groups);\r\n var datesRepeatCount = isHorizontalGrouping && !isGroupedByDate ? groupCount : 1;\r\n var daysInGroup = this._viewDataGenerator.daysInInterval * intervalCount;\r\n var daysInView = daysInGroup * datesRepeatCount;\r\n var weekDaysRow = [];\r\n for (var dayIndex = 0; dayIndex < daysInView; dayIndex += 1) {\r\n var cell = completeViewDataMap[index][dayIndex * colSpan];\r\n var shiftedStartDate = timeZoneUtils.addOffsetsWithoutDST(cell.startDate, -viewOffset);\r\n weekDaysRow.push(_extends(_extends({}, cell), {\r\n colSpan: colSpan,\r\n text: formatWeekdayAndDay(shiftedStartDate),\r\n isFirstGroupCell: false,\r\n isLastGroupCell: false\r\n }))\r\n }\r\n return weekDaysRow\r\n }\r\n _generateHeaderDateRow(options, completeViewDataMap) {\r\n var {\r\n today: today,\r\n isGroupedByDate: isGroupedByDate,\r\n groupOrientation: groupOrientation,\r\n groups: groups,\r\n headerCellTextFormat: headerCellTextFormat,\r\n getDateForHeaderText: getDateForHeaderText,\r\n interval: interval,\r\n startViewDate: startViewDate,\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour,\r\n hoursInterval: hoursInterval,\r\n intervalCount: intervalCount,\r\n currentDate: currentDate,\r\n viewType: viewType,\r\n viewOffset: viewOffset\r\n } = options;\r\n var horizontalGroupCount = getHorizontalGroupCount(groups, groupOrientation);\r\n var index = completeViewDataMap[0][0].allDay ? 1 : 0;\r\n var colSpan = isGroupedByDate ? horizontalGroupCount : 1;\r\n var isVerticalGrouping = \"vertical\" === groupOrientation;\r\n var cellCountInGroupRow = this._viewDataGenerator.getCellCount({\r\n intervalCount: intervalCount,\r\n currentDate: currentDate,\r\n viewType: viewType,\r\n hoursInterval: hoursInterval,\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour\r\n });\r\n var cellCountInDay = this._viewDataGenerator.getCellCountInDay(startDayHour, endDayHour, hoursInterval);\r\n var slicedByColumnsData = isGroupedByDate ? completeViewDataMap[index].filter((_, columnIndex) => columnIndex % horizontalGroupCount === 0) : completeViewDataMap[index];\r\n var shouldShiftDatesForHeaderText = !isTimelineView(viewType) || viewType === VIEWS.TIMELINE_MONTH;\r\n return slicedByColumnsData.map((_a, idx) => {\r\n var {\r\n startDate: startDate,\r\n endDate: endDate,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell\r\n } = _a, restProps = __rest(_a, [\"startDate\", \"endDate\", \"isFirstGroupCell\", \"isLastGroupCell\"]);\r\n var shiftedStartDate = timeZoneUtils.addOffsetsWithoutDST(startDate, -viewOffset);\r\n var shiftedStartDateForHeaderText = shouldShiftDatesForHeaderText ? shiftedStartDate : startDate;\r\n var text = getHeaderCellText(idx % cellCountInGroupRow, shiftedStartDateForHeaderText, headerCellTextFormat, getDateForHeaderText, {\r\n interval: interval,\r\n startViewDate: startViewDate,\r\n startDayHour: startDayHour,\r\n cellCountInDay: cellCountInDay,\r\n viewOffset: viewOffset\r\n });\r\n return _extends(_extends({}, restProps), {\r\n startDate: startDate,\r\n text: text,\r\n today: dateUtils.sameDate(shiftedStartDate, today),\r\n colSpan: colSpan,\r\n isFirstGroupCell: isGroupedByDate || isFirstGroupCell && !isVerticalGrouping,\r\n isLastGroupCell: isGroupedByDate || isLastGroupCell && !isVerticalGrouping\r\n })\r\n })\r\n }\r\n generateDateHeaderData(completeDateHeaderMap, completeViewDataMap, options) {\r\n var {\r\n isGenerateWeekDaysHeaderData: isGenerateWeekDaysHeaderData,\r\n cellWidth: cellWidth,\r\n isProvideVirtualCellsWidth: isProvideVirtualCellsWidth,\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour,\r\n hoursInterval: hoursInterval,\r\n isMonthDateHeader: isMonthDateHeader\r\n } = options;\r\n var dataMap = [];\r\n var weekDayRowConfig = {};\r\n var validCellWidth = cellWidth || 0;\r\n if (isGenerateWeekDaysHeaderData) {\r\n weekDayRowConfig = this._generateDateHeaderDataRow(options, completeDateHeaderMap, completeViewDataMap, this._viewDataGenerator.getCellCountInDay(startDayHour, endDayHour, hoursInterval), 0, validCellWidth);\r\n dataMap.push(weekDayRowConfig.dateRow)\r\n }\r\n var datesRowConfig = this._generateDateHeaderDataRow(options, completeDateHeaderMap, completeViewDataMap, 1, isGenerateWeekDaysHeaderData ? 1 : 0, validCellWidth);\r\n dataMap.push(datesRowConfig.dateRow);\r\n return {\r\n dataMap: dataMap,\r\n leftVirtualCellWidth: isProvideVirtualCellsWidth ? datesRowConfig.leftVirtualCellWidth : void 0,\r\n rightVirtualCellWidth: isProvideVirtualCellsWidth ? datesRowConfig.rightVirtualCellWidth : void 0,\r\n leftVirtualCellCount: datesRowConfig.leftVirtualCellCount,\r\n rightVirtualCellCount: datesRowConfig.rightVirtualCellCount,\r\n weekDayLeftVirtualCellWidth: weekDayRowConfig.leftVirtualCellWidth,\r\n weekDayRightVirtualCellWidth: weekDayRowConfig.rightVirtualCellWidth,\r\n weekDayLeftVirtualCellCount: weekDayRowConfig.leftVirtualCellCount,\r\n weekDayRightVirtualCellCount: weekDayRowConfig.rightVirtualCellCount,\r\n isMonthDateHeader: isMonthDateHeader\r\n }\r\n }\r\n _generateDateHeaderDataRow(options, completeDateHeaderMap, completeViewDataMap, baseColSpan, rowIndex, cellWidth) {\r\n var {\r\n startCellIndex: startCellIndex,\r\n cellCount: cellCount,\r\n isProvideVirtualCellsWidth: isProvideVirtualCellsWidth,\r\n groups: groups,\r\n groupOrientation: groupOrientation,\r\n isGroupedByDate: isGroupedByDate\r\n } = options;\r\n var horizontalGroupCount = getHorizontalGroupCount(groups, groupOrientation);\r\n var colSpan = isGroupedByDate ? horizontalGroupCount * baseColSpan : baseColSpan;\r\n var leftVirtualCellCount = Math.floor(startCellIndex / colSpan);\r\n var displayedCellCount = getDisplayedCellCount(cellCount, completeViewDataMap);\r\n var actualCellCount = Math.ceil((startCellIndex + displayedCellCount) / colSpan);\r\n var totalCellCount = getTotalCellCountByCompleteData(completeViewDataMap);\r\n var dateRow = completeDateHeaderMap[rowIndex].slice(leftVirtualCellCount, actualCellCount);\r\n var finalLeftVirtualCellCount = leftVirtualCellCount * colSpan;\r\n var finalLeftVirtualCellWidth = finalLeftVirtualCellCount * cellWidth;\r\n var finalRightVirtualCellCount = totalCellCount - actualCellCount * colSpan;\r\n var finalRightVirtualCellWidth = finalRightVirtualCellCount * cellWidth;\r\n return {\r\n dateRow: dateRow,\r\n leftVirtualCellCount: finalLeftVirtualCellCount,\r\n leftVirtualCellWidth: isProvideVirtualCellsWidth ? finalLeftVirtualCellWidth : void 0,\r\n rightVirtualCellCount: finalRightVirtualCellCount,\r\n rightVirtualCellWidth: isProvideVirtualCellsWidth ? finalRightVirtualCellWidth : void 0\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/view_model/m_grouped_data_map_provider.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport {\r\n dateUtilsTs\r\n} from \"../../../core/utils/date\";\r\nimport {\r\n isDateAndTimeView\r\n} from \"../../../scheduler/r1/utils/index\";\r\nimport timezoneUtils from \"../../m_utils_time_zone\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nexport class GroupedDataMapProvider {\r\n constructor(viewDataGenerator, viewDataMap, completeViewDataMap, viewOptions) {\r\n this.groupedDataMap = viewDataGenerator.generateGroupedDataMap(viewDataMap);\r\n this.completeViewDataMap = completeViewDataMap;\r\n this._viewOptions = viewOptions\r\n }\r\n getGroupStartDate(groupIndex) {\r\n var _a, _b, _c;\r\n var firstRow = this.getFirstGroupRow(groupIndex);\r\n return null !== (_c = null === (_b = null === (_a = null === firstRow || void 0 === firstRow ? void 0 : firstRow[0]) || void 0 === _a ? void 0 : _a.cellData) || void 0 === _b ? void 0 : _b.startDate) && void 0 !== _c ? _c : null\r\n }\r\n getGroupEndDate(groupIndex) {\r\n var lastRow = this.getLastGroupRow(groupIndex);\r\n if (lastRow) {\r\n var lastColumnIndex = lastRow.length - 1;\r\n var {\r\n cellData: cellData\r\n } = lastRow[lastColumnIndex];\r\n var {\r\n endDate: endDate\r\n } = cellData;\r\n return endDate\r\n }\r\n }\r\n findGroupCellStartDate(groupIndex, startDate, endDate, isFindByDate) {\r\n var groupData = this.getGroupFromDateTableGroupMap(groupIndex);\r\n var checkCellStartDate = (rowIndex, columnIndex) => {\r\n var {\r\n cellData: cellData\r\n } = groupData[rowIndex][columnIndex];\r\n var {\r\n startDate: secondMin,\r\n endDate: secondMax\r\n } = cellData;\r\n if (isFindByDate) {\r\n secondMin = dateUtils.trimTime(secondMin);\r\n secondMax = dateUtils.setToDayEnd(secondMin)\r\n }\r\n if (dateUtils.intervalsOverlap({\r\n firstMin: startDate,\r\n firstMax: endDate,\r\n secondMin: secondMin,\r\n secondMax: secondMax\r\n })) {\r\n return secondMin\r\n }\r\n };\r\n var startDateVerticalSearch = (() => {\r\n var cellCount = groupData[0].length;\r\n for (var columnIndex = 0; columnIndex < cellCount; ++columnIndex) {\r\n for (var rowIndex = 0; rowIndex < groupData.length; ++rowIndex) {\r\n var result = checkCellStartDate(rowIndex, columnIndex);\r\n if (result) {\r\n return result\r\n }\r\n }\r\n }\r\n })();\r\n var startDateHorizontalSearch = (() => {\r\n for (var rowIndex = 0; rowIndex < groupData.length; ++rowIndex) {\r\n var row = groupData[rowIndex];\r\n for (var columnIndex = 0; columnIndex < row.length; ++columnIndex) {\r\n var result = checkCellStartDate(rowIndex, columnIndex);\r\n if (result) {\r\n return result\r\n }\r\n }\r\n }\r\n })();\r\n return startDateVerticalSearch > startDateHorizontalSearch ? startDateHorizontalSearch : startDateVerticalSearch\r\n }\r\n findAllDayGroupCellStartDate(groupIndex) {\r\n var _a, _b, _c;\r\n var groupedData = this.getGroupFromDateTableGroupMap(groupIndex);\r\n var cellData = null === (_b = null === (_a = null === groupedData || void 0 === groupedData ? void 0 : groupedData[0]) || void 0 === _a ? void 0 : _a[0]) || void 0 === _b ? void 0 : _b.cellData;\r\n return null !== (_c = null === cellData || void 0 === cellData ? void 0 : cellData.startDate) && void 0 !== _c ? _c : null\r\n }\r\n findCellPositionInMap(cellInfo, isAppointmentRender) {\r\n var {\r\n groupIndex: groupIndex,\r\n startDate: startDate,\r\n isAllDay: isAllDay,\r\n index: index\r\n } = cellInfo;\r\n var {\r\n allDayPanelGroupedMap: allDayPanelGroupedMap,\r\n dateTableGroupedMap: dateTableGroupedMap\r\n } = this.groupedDataMap;\r\n var {\r\n viewOffset: viewOffset\r\n } = this._viewOptions;\r\n var rows = isAllDay && !this._viewOptions.isVerticalGrouping ? allDayPanelGroupedMap[groupIndex] ? [allDayPanelGroupedMap[groupIndex]] : [] : dateTableGroupedMap[groupIndex] || [];\r\n for (var rowIndex = 0; rowIndex < rows.length; rowIndex += 1) {\r\n var row = rows[rowIndex];\r\n for (var columnIndex = 0; columnIndex < row.length; columnIndex += 1) {\r\n var cell = row[columnIndex];\r\n var originCellData = cell.cellData;\r\n var cellData = isAppointmentRender ? _extends(_extends({}, originCellData), {\r\n startDate: dateUtilsTs.addOffsets(cell.cellData.startDate, [-viewOffset]),\r\n endDate: dateUtilsTs.addOffsets(cell.cellData.endDate, [-viewOffset])\r\n }) : originCellData;\r\n if (this._isSameGroupIndexAndIndex(cellData, groupIndex, index)) {\r\n if (this.isStartDateInCell(startDate, isAllDay, cellData, originCellData)) {\r\n return cell.position\r\n }\r\n }\r\n }\r\n }\r\n return\r\n }\r\n isStartDateInCell(startDate, inAllDayRow, _ref, _ref2) {\r\n var {\r\n startDate: cellStartDate,\r\n endDate: cellEndDate,\r\n allDay: cellAllDay\r\n } = _ref;\r\n var {\r\n startDate: originCellStartDate,\r\n endDate: originCellEndDate\r\n } = _ref2;\r\n var {\r\n viewType: viewType\r\n } = this._viewOptions;\r\n var cellSecondIntervalOffset = this.getCellSecondIntervalOffset(originCellStartDate, originCellEndDate);\r\n var isCellCoversTwoIntervals = 0 !== cellSecondIntervalOffset;\r\n switch (true) {\r\n case !isDateAndTimeView(viewType):\r\n case inAllDayRow && cellAllDay:\r\n return dateUtils.sameDate(startDate, cellStartDate);\r\n case !inAllDayRow && !isCellCoversTwoIntervals:\r\n return startDate >= cellStartDate && startDate < cellEndDate;\r\n case !inAllDayRow && isCellCoversTwoIntervals:\r\n return this.isStartDateInTwoIntervalsCell(startDate, cellSecondIntervalOffset, cellStartDate, cellEndDate);\r\n default:\r\n return false\r\n }\r\n }\r\n getCellSecondIntervalOffset(cellStartDate, cellEndDate) {\r\n var nextHourCellStartDate = dateUtilsTs.addOffsets(cellStartDate, [toMs(\"hour\")]);\r\n var cellTimezoneDiff = timezoneUtils.getDaylightOffset(cellStartDate, cellEndDate);\r\n var cellNextHourTimezoneDiff = timezoneUtils.getDaylightOffset(cellStartDate, nextHourCellStartDate);\r\n var isDSTInsideCell = 0 !== cellTimezoneDiff;\r\n var isWinterTimezoneNextHour = cellNextHourTimezoneDiff < 0;\r\n return !isDSTInsideCell && isWinterTimezoneNextHour ? Math.abs(cellNextHourTimezoneDiff * toMs(\"minute\")) : 0\r\n }\r\n isStartDateInTwoIntervalsCell(startDate, secondIntervalOffset, cellStartDate, cellEndDate) {\r\n var nextIntervalCellStartDate = dateUtilsTs.addOffsets(cellStartDate, [secondIntervalOffset]);\r\n var nextIntervalCellEndDate = dateUtilsTs.addOffsets(cellEndDate, [secondIntervalOffset]);\r\n var isInOriginInterval = startDate >= cellStartDate && startDate < cellEndDate;\r\n var isInSecondInterval = startDate >= nextIntervalCellStartDate && startDate < nextIntervalCellEndDate;\r\n return isInOriginInterval || isInSecondInterval\r\n }\r\n _isSameGroupIndexAndIndex(cellData, groupIndex, index) {\r\n return cellData.groupIndex === groupIndex && (void 0 === index || cellData.index === index)\r\n }\r\n getCellsGroup(groupIndex) {\r\n var {\r\n dateTableGroupedMap: dateTableGroupedMap\r\n } = this.groupedDataMap;\r\n var groupData = dateTableGroupedMap[groupIndex];\r\n if (groupData) {\r\n var {\r\n cellData: cellData\r\n } = groupData[0][0];\r\n return cellData.groups\r\n }\r\n }\r\n getCompletedGroupsInfo() {\r\n var {\r\n dateTableGroupedMap: dateTableGroupedMap\r\n } = this.groupedDataMap;\r\n return dateTableGroupedMap.map(groupData => {\r\n var firstCell = groupData[0][0];\r\n var {\r\n allDay: allDay,\r\n groupIndex: groupIndex\r\n } = firstCell.cellData;\r\n return {\r\n allDay: allDay,\r\n groupIndex: groupIndex,\r\n startDate: this.getGroupStartDate(groupIndex),\r\n endDate: this.getGroupEndDate(groupIndex)\r\n }\r\n }).filter(_ref3 => {\r\n var {\r\n startDate: startDate\r\n } = _ref3;\r\n return !!startDate\r\n })\r\n }\r\n getGroupIndices() {\r\n return this.getCompletedGroupsInfo().map(_ref4 => {\r\n var {\r\n groupIndex: groupIndex\r\n } = _ref4;\r\n return groupIndex\r\n })\r\n }\r\n getGroupFromDateTableGroupMap(groupIndex) {\r\n var {\r\n dateTableGroupedMap: dateTableGroupedMap\r\n } = this.groupedDataMap;\r\n return dateTableGroupedMap[groupIndex]\r\n }\r\n getFirstGroupRow(groupIndex) {\r\n var groupedData = this.getGroupFromDateTableGroupMap(groupIndex);\r\n if (groupedData) {\r\n var {\r\n cellData: cellData\r\n } = groupedData[0][0];\r\n return !cellData.allDay ? groupedData[0] : groupedData[1]\r\n }\r\n }\r\n getLastGroupRow(groupIndex) {\r\n var {\r\n dateTableGroupedMap: dateTableGroupedMap\r\n } = this.groupedDataMap;\r\n var groupedData = dateTableGroupedMap[groupIndex];\r\n if (groupedData) {\r\n var lastRowIndex = groupedData.length - 1;\r\n return groupedData[lastRowIndex]\r\n }\r\n }\r\n getLastGroupCellPosition(groupIndex) {\r\n var groupRow = this.getLastGroupRow(groupIndex);\r\n return null === groupRow || void 0 === groupRow ? void 0 : groupRow[(null === groupRow || void 0 === groupRow ? void 0 : groupRow.length) - 1].position\r\n }\r\n getRowCountInGroup(groupIndex) {\r\n var groupRow = this.getLastGroupRow(groupIndex);\r\n var cellAmount = groupRow.length;\r\n var lastCellData = groupRow[cellAmount - 1].cellData;\r\n var lastCellIndex = lastCellData.index;\r\n return (lastCellIndex + 1) / groupRow.length\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/core/utils/math.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var shiftIntegerByModule = (integerValue, moduleValue) => {\r\n if (!Number.isInteger(integerValue)) {\r\n throw Error(\"Passed integer value \".concat(integerValue, \" is not an integer.\"))\r\n }\r\n if (!Number.isInteger(moduleValue)) {\r\n throw Error(\"Passed module value \".concat(moduleValue, \" is not an integer.\"))\r\n }\r\n if (moduleValue <= 0) {\r\n throw Error(\"Passed module value \".concat(moduleValue, \" must be > 0.\"))\r\n }\r\n var normalizedInteger = integerValue % moduleValue;\r\n switch (true) {\r\n case 0 === normalizedInteger:\r\n return 0;\r\n case normalizedInteger > 0:\r\n return normalizedInteger;\r\n case normalizedInteger < 0:\r\n return moduleValue + normalizedInteger;\r\n default:\r\n throw Error(\"Unexpected division (\".concat(integerValue, \" % \").concat(moduleValue, \") occurred.\"))\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/view_model/m_time_panel_data_generator.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar __rest = this && this.__rest || function(s, e) {\r\n var t = {};\r\n for (var p in s) {\r\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) {\r\n t[p] = s[p]\r\n }\r\n }\r\n if (null != s && \"function\" === typeof Object.getOwnPropertySymbols) {\r\n var i = 0;\r\n for (p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) {\r\n t[p[i]] = s[p[i]]\r\n }\r\n }\r\n }\r\n return t\r\n};\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport {\r\n dateUtilsTs\r\n} from \"../../../core/utils/date\";\r\nimport {\r\n shiftIntegerByModule\r\n} from \"../../../core/utils/math\";\r\nimport {\r\n getDisplayedRowCount,\r\n getIsGroupedAllDayPanel,\r\n getKeyByGroup,\r\n weekUtils\r\n} from \"../../../scheduler/r1/utils/index\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nexport class TimePanelDataGenerator {\r\n constructor(_viewDataGenerator) {\r\n this._viewDataGenerator = _viewDataGenerator\r\n }\r\n getCompleteTimePanelMap(options, completeViewDataMap) {\r\n var {\r\n startViewDate: startViewDate,\r\n cellDuration: cellDuration,\r\n startDayHour: startDayHour,\r\n isVerticalGrouping: isVerticalGrouping,\r\n intervalCount: intervalCount,\r\n currentDate: currentDate,\r\n viewType: viewType,\r\n hoursInterval: hoursInterval,\r\n endDayHour: endDayHour,\r\n viewOffset: viewOffset,\r\n today: today,\r\n showCurrentTimeIndicator: showCurrentTimeIndicator\r\n } = options;\r\n var rowsCount = completeViewDataMap.length - 1;\r\n var realEndViewDate = completeViewDataMap[rowsCount][completeViewDataMap[rowsCount].length - 1].endDate;\r\n var rowCountInGroup = this._viewDataGenerator.getRowCount({\r\n intervalCount: intervalCount,\r\n currentDate: currentDate,\r\n viewType: viewType,\r\n hoursInterval: hoursInterval,\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour\r\n });\r\n var cellCountInGroupRow = this._viewDataGenerator.getCellCount({\r\n intervalCount: intervalCount,\r\n currentDate: currentDate,\r\n viewType: viewType,\r\n hoursInterval: hoursInterval,\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour\r\n });\r\n var allDayRowsCount = 0;\r\n var usualCellIndex = 0;\r\n return completeViewDataMap.map((row, index) => {\r\n var _a = row[0],\r\n {\r\n allDay: allDay,\r\n startDate: startDate,\r\n endDate: endDate,\r\n groups: groups,\r\n groupIndex: groupIndex,\r\n isFirstGroupCell: isFirstGroupCell,\r\n isLastGroupCell: isLastGroupCell,\r\n index: cellIndex\r\n } = _a,\r\n restCellProps = __rest(_a, [\"allDay\", \"startDate\", \"endDate\", \"groups\", \"groupIndex\", \"isFirstGroupCell\", \"isLastGroupCell\", \"index\"]);\r\n var highlighted = allDay ? false : this.isTimeCellShouldBeHighlighted(today, viewOffset, {\r\n startViewDate: startViewDate,\r\n realEndViewDate: realEndViewDate,\r\n showCurrentTimeIndicator: showCurrentTimeIndicator\r\n }, {\r\n date: startDate,\r\n index: usualCellIndex,\r\n duration: Math.round(cellDuration),\r\n isFirst: 0 === usualCellIndex,\r\n isLast: this.isLastCellInGroup(completeViewDataMap, index)\r\n });\r\n if (allDay) {\r\n allDayRowsCount += 1;\r\n usualCellIndex = 0\r\n } else {\r\n usualCellIndex += 1\r\n }\r\n var timeIndex = (index - allDayRowsCount) % rowCountInGroup;\r\n return _extends(_extends({}, restCellProps), {\r\n startDate: startDate,\r\n allDay: allDay,\r\n highlighted: highlighted,\r\n text: weekUtils.getTimePanelCellText(timeIndex, startDate, startViewDate, cellDuration, startDayHour, viewOffset),\r\n groups: isVerticalGrouping ? groups : void 0,\r\n groupIndex: isVerticalGrouping ? groupIndex : void 0,\r\n isFirstGroupCell: isVerticalGrouping && isFirstGroupCell,\r\n isLastGroupCell: isVerticalGrouping && isLastGroupCell,\r\n index: Math.floor(cellIndex / cellCountInGroupRow)\r\n })\r\n })\r\n }\r\n generateTimePanelData(completeTimePanelMap, options) {\r\n var {\r\n startRowIndex: startRowIndex,\r\n rowCount: rowCount,\r\n topVirtualRowHeight: topVirtualRowHeight,\r\n bottomVirtualRowHeight: bottomVirtualRowHeight,\r\n isGroupedAllDayPanel: isGroupedAllDayPanel,\r\n isVerticalGrouping: isVerticalGrouping,\r\n isAllDayPanelVisible: isAllDayPanelVisible\r\n } = options;\r\n var indexDifference = isVerticalGrouping || !isAllDayPanelVisible ? 0 : 1;\r\n var correctedStartRowIndex = startRowIndex + indexDifference;\r\n var displayedRowCount = getDisplayedRowCount(rowCount, completeTimePanelMap);\r\n var timePanelMap = completeTimePanelMap.slice(correctedStartRowIndex, correctedStartRowIndex + displayedRowCount);\r\n var timePanelData = {\r\n topVirtualRowHeight: topVirtualRowHeight,\r\n bottomVirtualRowHeight: bottomVirtualRowHeight,\r\n isGroupedAllDayPanel: isGroupedAllDayPanel\r\n };\r\n var {\r\n previousGroupedData: groupedData\r\n } = this._generateTimePanelDataFromMap(timePanelMap, isVerticalGrouping);\r\n timePanelData.groupedData = groupedData;\r\n return timePanelData\r\n }\r\n _generateTimePanelDataFromMap(timePanelMap, isVerticalGrouping) {\r\n return timePanelMap.reduce((_ref, cellData) => {\r\n var {\r\n previousGroupIndex: previousGroupIndex,\r\n previousGroupedData: previousGroupedData\r\n } = _ref;\r\n var currentGroupIndex = cellData.groupIndex;\r\n if (currentGroupIndex !== previousGroupIndex) {\r\n previousGroupedData.push({\r\n dateTable: [],\r\n isGroupedAllDayPanel: getIsGroupedAllDayPanel(!!cellData.allDay, isVerticalGrouping),\r\n groupIndex: currentGroupIndex,\r\n key: getKeyByGroup(currentGroupIndex, isVerticalGrouping)\r\n })\r\n }\r\n if (cellData.allDay) {\r\n previousGroupedData[previousGroupedData.length - 1].allDayPanel = cellData\r\n } else {\r\n previousGroupedData[previousGroupedData.length - 1].dateTable.push(cellData)\r\n }\r\n return {\r\n previousGroupIndex: currentGroupIndex,\r\n previousGroupedData: previousGroupedData\r\n }\r\n }, {\r\n previousGroupIndex: -1,\r\n previousGroupedData: []\r\n })\r\n }\r\n isTimeCellShouldBeHighlighted(today, viewOffset, _ref2, cellData) {\r\n var {\r\n startViewDate: startViewDate,\r\n realEndViewDate: realEndViewDate,\r\n showCurrentTimeIndicator: showCurrentTimeIndicator\r\n } = _ref2;\r\n var realToday = dateUtilsTs.addOffsets(today, [viewOffset]);\r\n var realStartViewDate = dateUtilsTs.addOffsets(startViewDate, [viewOffset]);\r\n if (!showCurrentTimeIndicator || realToday < realStartViewDate || realToday >= realEndViewDate) {\r\n return false\r\n }\r\n var realTodayTimeMs = this.getLocalDateTimeInMs(realToday);\r\n var [startMs, endMs] = this.getHighlightedInterval(cellData);\r\n return startMs < endMs ? realTodayTimeMs >= startMs && realTodayTimeMs < endMs : realTodayTimeMs >= startMs && realTodayTimeMs < toMs(\"day\") || realTodayTimeMs >= 0 && realTodayTimeMs < endMs\r\n }\r\n getHighlightedInterval(_ref3) {\r\n var {\r\n date: date,\r\n index: index,\r\n duration: duration,\r\n isFirst: isFirst,\r\n isLast: isLast\r\n } = _ref3;\r\n var cellTimeMs = this.getLocalDateTimeInMs(date);\r\n var isEvenCell = index % 2 === 0;\r\n switch (true) {\r\n case isFirst || isLast && !isEvenCell:\r\n return [cellTimeMs, shiftIntegerByModule(cellTimeMs + duration, toMs(\"day\"))];\r\n case isEvenCell:\r\n return [shiftIntegerByModule(cellTimeMs - duration, toMs(\"day\")), shiftIntegerByModule(cellTimeMs + duration, toMs(\"day\"))];\r\n default:\r\n return [cellTimeMs, shiftIntegerByModule(cellTimeMs + 2 * duration, toMs(\"day\"))]\r\n }\r\n }\r\n getLocalDateTimeInMs(date) {\r\n var dateUtcMs = date.getTime() - date.getTimezoneOffset() * toMs(\"minute\");\r\n return shiftIntegerByModule(dateUtcMs, toMs(\"day\"))\r\n }\r\n isLastCellInGroup(completeViewDataMap, index) {\r\n if (index === completeViewDataMap.length - 1) {\r\n return true\r\n }\r\n var {\r\n groupIndex: currentGroupIndex\r\n } = completeViewDataMap[index][0];\r\n var {\r\n groupIndex: nextGroupIndex,\r\n allDay: nextAllDay\r\n } = completeViewDataMap[index + 1][0];\r\n return nextAllDay || nextGroupIndex !== currentGroupIndex\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/view_model/m_view_data_generator.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport {\r\n dateUtilsTs\r\n} from \"../../../core/utils/date\";\r\nimport {\r\n calculateCellIndex,\r\n calculateDayDuration,\r\n getDisplayedCellCount,\r\n getDisplayedRowCount,\r\n getGroupCount,\r\n getIsGroupedAllDayPanel,\r\n getKeyByGroup,\r\n getStartViewDateWithoutDST,\r\n getTotalCellCountByCompleteData,\r\n getTotalRowCountByCompleteData,\r\n isHorizontalView\r\n} from \"../../../scheduler/r1/utils/index\";\r\nimport {\r\n HORIZONTAL_GROUP_ORIENTATION\r\n} from \"../../m_constants\";\r\nimport timezoneUtils from \"../../m_utils_time_zone\";\r\nimport {\r\n getAllGroups\r\n} from \"../../resources/m_utils\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nexport class ViewDataGenerator {\r\n constructor() {\r\n this.daysInInterval = 1;\r\n this.isWorkView = false;\r\n this.tableAllDay = false\r\n }\r\n isSkippedDate(date) {\r\n return false\r\n }\r\n _calculateStartViewDate(options) {}\r\n getStartViewDate(options) {\r\n return this._calculateStartViewDate(options)\r\n }\r\n getCompleteViewDataMap(options) {\r\n var {\r\n groups: groups,\r\n isGroupedByDate: isGroupedByDate,\r\n isHorizontalGrouping: isHorizontalGrouping,\r\n isVerticalGrouping: isVerticalGrouping,\r\n intervalCount: intervalCount,\r\n currentDate: currentDate,\r\n viewType: viewType,\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour,\r\n hoursInterval: hoursInterval\r\n } = options;\r\n this._setVisibilityDates(options);\r\n this.setHiddenInterval(startDayHour, endDayHour, hoursInterval);\r\n var groupsList = getAllGroups(groups);\r\n var cellCountInGroupRow = this.getCellCount({\r\n intervalCount: intervalCount,\r\n currentDate: currentDate,\r\n viewType: viewType,\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour,\r\n hoursInterval: hoursInterval\r\n });\r\n var rowCountInGroup = this.getRowCount({\r\n intervalCount: intervalCount,\r\n currentDate: currentDate,\r\n viewType: viewType,\r\n hoursInterval: hoursInterval,\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour\r\n });\r\n var viewDataMap = [];\r\n var allDayPanelData = this._generateAllDayPanelData(options, rowCountInGroup, cellCountInGroupRow);\r\n var viewCellsData = this._generateViewCellsData(options, rowCountInGroup, cellCountInGroupRow);\r\n if (allDayPanelData) {\r\n viewDataMap.push(allDayPanelData)\r\n }\r\n viewDataMap.push(...viewCellsData);\r\n if (isHorizontalGrouping && !isGroupedByDate) {\r\n viewDataMap = this._transformViewDataMapForHorizontalGrouping(viewDataMap, groupsList)\r\n }\r\n if (isVerticalGrouping) {\r\n viewDataMap = this._transformViewDataMapForVerticalGrouping(viewDataMap, groupsList)\r\n }\r\n if (isGroupedByDate) {\r\n viewDataMap = this._transformViewDataMapForGroupingByDate(viewDataMap, groupsList)\r\n }\r\n return this._addKeysToCells(viewDataMap)\r\n }\r\n _transformViewDataMapForHorizontalGrouping(viewDataMap, groupsList) {\r\n var result = viewDataMap.map(row => row.slice());\r\n groupsList.slice(1).forEach((groups, index) => {\r\n var groupIndex = index + 1;\r\n viewDataMap.forEach((row, rowIndex) => {\r\n var nextGroupRow = row.map(cellData => _extends(_extends({}, cellData), {\r\n groups: groups,\r\n groupIndex: groupIndex\r\n }));\r\n result[rowIndex].push(...nextGroupRow)\r\n })\r\n });\r\n return result\r\n }\r\n _transformViewDataMapForVerticalGrouping(viewDataMap, groupsList) {\r\n var result = viewDataMap.map(row => row.slice());\r\n groupsList.slice(1).forEach((groups, index) => {\r\n var groupIndex = index + 1;\r\n var nextGroupMap = viewDataMap.map(cellsRow => {\r\n var nextRow = cellsRow.map(cellData => _extends(_extends({}, cellData), {\r\n groupIndex: groupIndex,\r\n groups: groups\r\n }));\r\n return nextRow\r\n });\r\n result.push(...nextGroupMap)\r\n });\r\n return result\r\n }\r\n _transformViewDataMapForGroupingByDate(viewDataMap, groupsList) {\r\n var correctedGroupList = groupsList.slice(1);\r\n var correctedGroupCount = correctedGroupList.length;\r\n var result = viewDataMap.map(cellsRow => {\r\n var groupedByDateCellsRow = cellsRow.reduce((currentRow, cell) => {\r\n var rowWithCurrentCell = [...currentRow, _extends(_extends({}, cell), {\r\n isFirstGroupCell: true,\r\n isLastGroupCell: 0 === correctedGroupCount\r\n }), ...correctedGroupList.map((groups, index) => _extends(_extends({}, cell), {\r\n groups: groups,\r\n groupIndex: index + 1,\r\n isFirstGroupCell: false,\r\n isLastGroupCell: index === correctedGroupCount - 1\r\n }))];\r\n return rowWithCurrentCell\r\n }, []);\r\n return groupedByDateCellsRow\r\n });\r\n return result\r\n }\r\n _addKeysToCells(viewDataMap) {\r\n var totalColumnCount = viewDataMap[0].length;\r\n var {\r\n currentViewDataMap: result\r\n } = viewDataMap.reduce((_ref, row, rowIndex) => {\r\n var {\r\n allDayPanelsCount: allDayPanelsCount,\r\n currentViewDataMap: currentViewDataMap\r\n } = _ref;\r\n var isAllDay = row[0].allDay;\r\n var keyBase = (rowIndex - allDayPanelsCount) * totalColumnCount;\r\n var currentAllDayPanelsCount = isAllDay ? allDayPanelsCount + 1 : allDayPanelsCount;\r\n currentViewDataMap[rowIndex].forEach((cell, columnIndex) => {\r\n cell.key = keyBase + columnIndex\r\n });\r\n return {\r\n allDayPanelsCount: currentAllDayPanelsCount,\r\n currentViewDataMap: currentViewDataMap\r\n }\r\n }, {\r\n allDayPanelsCount: 0,\r\n currentViewDataMap: viewDataMap\r\n });\r\n return result\r\n }\r\n generateViewDataMap(completeViewDataMap, options) {\r\n var {\r\n rowCount: rowCount,\r\n startCellIndex: startCellIndex,\r\n startRowIndex: startRowIndex,\r\n cellCount: cellCount,\r\n isVerticalGrouping: isVerticalGrouping,\r\n isAllDayPanelVisible: isAllDayPanelVisible\r\n } = options;\r\n var sliceCells = (row, rowIndex, startIndex, count) => {\r\n var sliceToIndex = void 0 !== count ? startIndex + count : void 0;\r\n return row.slice(startIndex, sliceToIndex).map((cellData, columnIndex) => ({\r\n cellData: cellData,\r\n position: {\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex\r\n }\r\n }))\r\n };\r\n var correctedStartRowIndex = startRowIndex;\r\n var allDayPanelMap = [];\r\n if (this._isStandaloneAllDayPanel(isVerticalGrouping, isAllDayPanelVisible)) {\r\n correctedStartRowIndex++;\r\n allDayPanelMap = sliceCells(completeViewDataMap[0], 0, startCellIndex, cellCount)\r\n }\r\n var displayedRowCount = getDisplayedRowCount(rowCount, completeViewDataMap);\r\n var dateTableMap = completeViewDataMap.slice(correctedStartRowIndex, correctedStartRowIndex + displayedRowCount).map((row, rowIndex) => sliceCells(row, rowIndex, startCellIndex, cellCount));\r\n return {\r\n allDayPanelMap: allDayPanelMap,\r\n dateTableMap: dateTableMap\r\n }\r\n }\r\n _isStandaloneAllDayPanel(isVerticalGrouping, isAllDayPanelVisible) {\r\n return !isVerticalGrouping && isAllDayPanelVisible\r\n }\r\n getViewDataFromMap(completeViewDataMap, viewDataMap, options) {\r\n var {\r\n topVirtualRowHeight: topVirtualRowHeight,\r\n bottomVirtualRowHeight: bottomVirtualRowHeight,\r\n leftVirtualCellWidth: leftVirtualCellWidth,\r\n rightVirtualCellWidth: rightVirtualCellWidth,\r\n cellCount: cellCount,\r\n rowCount: rowCount,\r\n startRowIndex: startRowIndex,\r\n startCellIndex: startCellIndex,\r\n isProvideVirtualCellsWidth: isProvideVirtualCellsWidth,\r\n isGroupedAllDayPanel: isGroupedAllDayPanel,\r\n isVerticalGrouping: isVerticalGrouping,\r\n isAllDayPanelVisible: isAllDayPanelVisible\r\n } = options;\r\n var {\r\n allDayPanelMap: allDayPanelMap,\r\n dateTableMap: dateTableMap\r\n } = viewDataMap;\r\n var {\r\n groupedData: groupedData\r\n } = dateTableMap.reduce((_ref2, cellsRow) => {\r\n var {\r\n previousGroupIndex: previousGroupIndex,\r\n groupedData: groupedData\r\n } = _ref2;\r\n var cellDataRow = cellsRow.map(_ref3 => {\r\n var {\r\n cellData: cellData\r\n } = _ref3;\r\n return cellData\r\n });\r\n var firstCell = cellDataRow[0];\r\n var isAllDayRow = firstCell.allDay;\r\n var currentGroupIndex = firstCell.groupIndex;\r\n if (currentGroupIndex !== previousGroupIndex) {\r\n groupedData.push({\r\n dateTable: [],\r\n isGroupedAllDayPanel: getIsGroupedAllDayPanel(!!isAllDayRow, isVerticalGrouping),\r\n groupIndex: currentGroupIndex,\r\n key: getKeyByGroup(currentGroupIndex, isVerticalGrouping)\r\n })\r\n }\r\n if (isAllDayRow) {\r\n groupedData[groupedData.length - 1].allDayPanel = cellDataRow\r\n } else {\r\n groupedData[groupedData.length - 1].dateTable.push({\r\n cells: cellDataRow,\r\n key: cellDataRow[0].key - startCellIndex\r\n })\r\n }\r\n return {\r\n groupedData: groupedData,\r\n previousGroupIndex: currentGroupIndex\r\n }\r\n }, {\r\n previousGroupIndex: -1,\r\n groupedData: []\r\n });\r\n if (this._isStandaloneAllDayPanel(isVerticalGrouping, isAllDayPanelVisible)) {\r\n groupedData[0].allDayPanel = allDayPanelMap.map(_ref4 => {\r\n var {\r\n cellData: cellData\r\n } = _ref4;\r\n return cellData\r\n })\r\n }\r\n var totalCellCount = getTotalCellCountByCompleteData(completeViewDataMap);\r\n var totalRowCount = getTotalRowCountByCompleteData(completeViewDataMap);\r\n var displayedCellCount = getDisplayedCellCount(cellCount, completeViewDataMap);\r\n var displayedRowCount = getDisplayedRowCount(rowCount, completeViewDataMap);\r\n return {\r\n groupedData: groupedData,\r\n topVirtualRowHeight: topVirtualRowHeight,\r\n bottomVirtualRowHeight: bottomVirtualRowHeight,\r\n leftVirtualCellWidth: isProvideVirtualCellsWidth ? leftVirtualCellWidth : void 0,\r\n rightVirtualCellWidth: isProvideVirtualCellsWidth ? rightVirtualCellWidth : void 0,\r\n isGroupedAllDayPanel: isGroupedAllDayPanel,\r\n leftVirtualCellCount: startCellIndex,\r\n rightVirtualCellCount: void 0 === cellCount ? 0 : totalCellCount - startCellIndex - displayedCellCount,\r\n topVirtualRowCount: startRowIndex,\r\n bottomVirtualRowCount: totalRowCount - startRowIndex - displayedRowCount\r\n }\r\n }\r\n _generateViewCellsData(options, rowCount, cellCountInGroupRow) {\r\n var viewCellsData = [];\r\n for (var rowIndex = 0; rowIndex < rowCount; rowIndex += 1) {\r\n viewCellsData.push(this._generateCellsRow(options, false, rowIndex, rowCount, cellCountInGroupRow))\r\n }\r\n return viewCellsData\r\n }\r\n _generateAllDayPanelData(options, rowCount, columnCount) {\r\n if (!options.isAllDayPanelVisible) {\r\n return null\r\n }\r\n return this._generateCellsRow(options, true, 0, rowCount, columnCount)\r\n }\r\n _generateCellsRow(options, allDay, rowIndex, rowCount, columnCount) {\r\n var cellsRow = [];\r\n for (var columnIndex = 0; columnIndex < columnCount; ++columnIndex) {\r\n var cellDataValue = this.getCellData(rowIndex, columnIndex, options, allDay);\r\n cellDataValue.index = rowIndex * columnCount + columnIndex;\r\n cellDataValue.isFirstGroupCell = this._isFirstGroupCell(rowIndex, columnIndex, options, rowCount, columnCount);\r\n cellDataValue.isLastGroupCell = this._isLastGroupCell(rowIndex, columnIndex, options, rowCount, columnCount);\r\n cellsRow.push(cellDataValue)\r\n }\r\n return cellsRow\r\n }\r\n getCellData(rowIndex, columnIndex, options, allDay) {\r\n return allDay ? this.prepareAllDayCellData(options, rowIndex, columnIndex) : this.prepareCellData(options, rowIndex, columnIndex)\r\n }\r\n prepareCellData(options, rowIndex, columnIndex) {\r\n var {\r\n groups: groups,\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour,\r\n hoursInterval: hoursInterval\r\n } = options;\r\n var groupsList = getAllGroups(groups);\r\n var startDate = this.getDateByCellIndices(options, rowIndex, columnIndex, this.getCellCountInDay(startDayHour, endDayHour, hoursInterval));\r\n var endDate = this.getCellEndDate(startDate, options);\r\n var data = {\r\n startDate: startDate,\r\n endDate: endDate,\r\n allDay: this.tableAllDay,\r\n groupIndex: 0\r\n };\r\n if (groupsList.length > 0) {\r\n data.groups = groupsList[0]\r\n }\r\n return data\r\n }\r\n prepareAllDayCellData(options, rowIndex, columnIndex) {\r\n var data = this.prepareCellData(_extends(_extends({}, options), {\r\n viewOffset: 0\r\n }), rowIndex, columnIndex);\r\n var {\r\n viewOffset: viewOffset\r\n } = options;\r\n var startDate = dateUtils.trimTime(data.startDate);\r\n var shiftedStartDate = dateUtilsTs.addOffsets(startDate, [viewOffset]);\r\n return _extends(_extends({}, data), {\r\n startDate: shiftedStartDate,\r\n endDate: shiftedStartDate,\r\n allDay: true\r\n })\r\n }\r\n getDateByCellIndices(options, rowIndex, columnIndex, cellCountInDay) {\r\n var {\r\n startViewDate: startViewDate\r\n } = options;\r\n var {\r\n startDayHour: startDayHour,\r\n interval: interval,\r\n firstDayOfWeek: firstDayOfWeek,\r\n intervalCount: intervalCount,\r\n viewOffset: viewOffset\r\n } = options;\r\n var isStartViewDateDuringDST = startViewDate.getHours() !== Math.floor(startDayHour);\r\n if (isStartViewDateDuringDST) {\r\n var dateWithCorrectHours = getStartViewDateWithoutDST(startViewDate, startDayHour);\r\n startViewDate = new Date(dateWithCorrectHours.getTime() - toMs(\"day\"))\r\n }\r\n var columnCountBase = this.getCellCount(options);\r\n var rowCountBase = this.getRowCount(options);\r\n var cellIndex = this._calculateCellIndex(rowIndex, columnIndex, rowCountBase, columnCountBase);\r\n var millisecondsOffset = this.getMillisecondsOffset(cellIndex, interval, cellCountInDay);\r\n var offsetByCount = this.isWorkView ? this.getTimeOffsetByColumnIndex(columnIndex, this.getFirstDayOfWeek(firstDayOfWeek), columnCountBase, intervalCount) : 0;\r\n var startViewDateTime = startViewDate.getTime();\r\n var currentDate = new Date(startViewDateTime + millisecondsOffset + offsetByCount + viewOffset);\r\n var timeZoneDifference = isStartViewDateDuringDST ? 0 : dateUtils.getTimezonesDifference(startViewDate, currentDate);\r\n currentDate.setTime(currentDate.getTime() + timeZoneDifference);\r\n return currentDate\r\n }\r\n getMillisecondsOffset(cellIndex, interval, cellCountInDay) {\r\n var dayIndex = Math.floor(cellIndex / cellCountInDay);\r\n var realHiddenInterval = dayIndex * this.hiddenInterval;\r\n return interval * cellIndex + realHiddenInterval\r\n }\r\n getTimeOffsetByColumnIndex(columnIndex, firstDayOfWeek, columnCount, intervalCount) {\r\n var firstDayOfWeekDiff = Math.max(0, firstDayOfWeek - 1);\r\n var columnsInWeek = columnCount / intervalCount;\r\n var weekendCount = Math.floor((columnIndex + firstDayOfWeekDiff) / columnsInWeek);\r\n return 2 * weekendCount * toMs(\"day\")\r\n }\r\n calculateEndDate(startDate, interval, endDayHour) {\r\n return this.getCellEndDate(startDate, {\r\n interval: interval\r\n })\r\n }\r\n _calculateCellIndex(rowIndex, columnIndex, rowCount, columnCountBase) {\r\n return calculateCellIndex(rowIndex, columnIndex, rowCount)\r\n }\r\n generateGroupedDataMap(viewDataMap) {\r\n var {\r\n allDayPanelMap: allDayPanelMap,\r\n dateTableMap: dateTableMap\r\n } = viewDataMap;\r\n var {\r\n previousGroupedDataMap: dateTableGroupedMap\r\n } = dateTableMap.reduce((previousOptions, cellsRow) => {\r\n var {\r\n previousGroupedDataMap: previousGroupedDataMap,\r\n previousRowIndex: previousRowIndex,\r\n previousGroupIndex: previousGroupIndex\r\n } = previousOptions;\r\n var {\r\n groupIndex: currentGroupIndex\r\n } = cellsRow[0].cellData;\r\n var currentRowIndex = currentGroupIndex === previousGroupIndex ? previousRowIndex + 1 : 0;\r\n cellsRow.forEach(cell => {\r\n var {\r\n groupIndex: groupIndex\r\n } = cell.cellData;\r\n if (!previousGroupedDataMap[groupIndex]) {\r\n previousGroupedDataMap[groupIndex] = []\r\n }\r\n if (!previousGroupedDataMap[groupIndex][currentRowIndex]) {\r\n previousGroupedDataMap[groupIndex][currentRowIndex] = []\r\n }\r\n previousGroupedDataMap[groupIndex][currentRowIndex].push(cell)\r\n });\r\n return {\r\n previousGroupedDataMap: previousGroupedDataMap,\r\n previousRowIndex: currentRowIndex,\r\n previousGroupIndex: currentGroupIndex\r\n }\r\n }, {\r\n previousGroupedDataMap: [],\r\n previousRowIndex: -1,\r\n previousGroupIndex: -1\r\n });\r\n var allDayPanelGroupedMap = [];\r\n null === allDayPanelMap || void 0 === allDayPanelMap ? void 0 : allDayPanelMap.forEach(cell => {\r\n var {\r\n groupIndex: groupIndex\r\n } = cell.cellData;\r\n if (!allDayPanelGroupedMap[groupIndex]) {\r\n allDayPanelGroupedMap[groupIndex] = []\r\n }\r\n allDayPanelGroupedMap[groupIndex].push(cell)\r\n });\r\n return {\r\n allDayPanelGroupedMap: allDayPanelGroupedMap,\r\n dateTableGroupedMap: dateTableGroupedMap\r\n }\r\n }\r\n _isFirstGroupCell(rowIndex, columnIndex, options, rowCount, columnCount) {\r\n var {\r\n groupOrientation: groupOrientation,\r\n groups: groups,\r\n isGroupedByDate: isGroupedByDate\r\n } = options;\r\n var groupCount = getGroupCount(groups);\r\n if (isGroupedByDate) {\r\n return columnIndex % groupCount === 0\r\n }\r\n if (groupOrientation === HORIZONTAL_GROUP_ORIENTATION) {\r\n return columnIndex % columnCount === 0\r\n }\r\n return rowIndex % rowCount === 0\r\n }\r\n _isLastGroupCell(rowIndex, columnIndex, options, rowCount, columnCount) {\r\n var {\r\n groupOrientation: groupOrientation,\r\n groups: groups,\r\n isGroupedByDate: isGroupedByDate\r\n } = options;\r\n var groupCount = getGroupCount(groups);\r\n if (isGroupedByDate) {\r\n return (columnIndex + 1) % groupCount === 0\r\n }\r\n if (groupOrientation === HORIZONTAL_GROUP_ORIENTATION) {\r\n return (columnIndex + 1) % columnCount === 0\r\n }\r\n return (rowIndex + 1) % rowCount === 0\r\n }\r\n markSelectedAndFocusedCells(viewDataMap, renderOptions) {\r\n var {\r\n selectedCells: selectedCells,\r\n focusedCell: focusedCell\r\n } = renderOptions;\r\n if (!selectedCells && !focusedCell) {\r\n return viewDataMap\r\n }\r\n var {\r\n allDayPanelMap: allDayPanelMap,\r\n dateTableMap: dateTableMap\r\n } = viewDataMap;\r\n var nextDateTableMap = dateTableMap.map(row => this._markSelectedAndFocusedCellsInRow(row, selectedCells, focusedCell));\r\n var nextAllDayMap = this._markSelectedAndFocusedCellsInRow(allDayPanelMap, selectedCells, focusedCell);\r\n return {\r\n allDayPanelMap: nextAllDayMap,\r\n dateTableMap: nextDateTableMap\r\n }\r\n }\r\n _markSelectedAndFocusedCellsInRow(dataRow, selectedCells, focusedCell) {\r\n return dataRow.map(cell => {\r\n var {\r\n index: index,\r\n groupIndex: groupIndex,\r\n allDay: allDay,\r\n startDate: startDate\r\n } = cell.cellData;\r\n var indexInSelectedCells = selectedCells.findIndex(_ref5 => {\r\n var {\r\n index: selectedCellIndex,\r\n groupIndex: selectedCellGroupIndex,\r\n allDay: selectedCellAllDay,\r\n startDate: selectedCellStartDate\r\n } = _ref5;\r\n return groupIndex === selectedCellGroupIndex && (index === selectedCellIndex || void 0 === selectedCellIndex && startDate.getTime() === selectedCellStartDate.getTime()) && !!allDay === !!selectedCellAllDay\r\n });\r\n var isFocused = !!focusedCell && index === focusedCell.cellData.index && groupIndex === focusedCell.cellData.groupIndex && allDay === focusedCell.cellData.allDay;\r\n if (!isFocused && -1 === indexInSelectedCells) {\r\n return cell\r\n }\r\n return _extends(_extends({}, cell), {\r\n cellData: _extends(_extends({}, cell.cellData), {\r\n isSelected: indexInSelectedCells > -1,\r\n isFocused: isFocused\r\n })\r\n })\r\n })\r\n }\r\n getInterval(hoursInterval) {\r\n return hoursInterval * toMs(\"hour\")\r\n }\r\n _getIntervalDuration(intervalCount) {\r\n return toMs(\"day\") * intervalCount\r\n }\r\n _setVisibilityDates(options) {}\r\n getCellCountInDay(startDayHour, endDayHour, hoursInterval) {\r\n var result = calculateDayDuration(startDayHour, endDayHour) / hoursInterval;\r\n return Math.ceil(result)\r\n }\r\n getCellCount(options) {\r\n var {\r\n intervalCount: intervalCount,\r\n viewType: viewType,\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour,\r\n hoursInterval: hoursInterval\r\n } = options;\r\n var cellCountInDay = this.getCellCountInDay(startDayHour, endDayHour, hoursInterval);\r\n var columnCountInDay = isHorizontalView(viewType) ? cellCountInDay : 1;\r\n return this.daysInInterval * intervalCount * columnCountInDay\r\n }\r\n getRowCount(options) {\r\n var {\r\n viewType: viewType,\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour,\r\n hoursInterval: hoursInterval\r\n } = options;\r\n var cellCountInDay = this.getCellCountInDay(startDayHour, endDayHour, hoursInterval);\r\n var rowCountInDay = !isHorizontalView(viewType) ? cellCountInDay : 1;\r\n return rowCountInDay\r\n }\r\n setHiddenInterval(startDayHour, endDayHour, hoursInterval) {\r\n this.hiddenInterval = toMs(\"day\") - this.getVisibleDayDuration(startDayHour, endDayHour, hoursInterval)\r\n }\r\n getVisibleDayDuration(startDayHour, endDayHour, hoursInterval) {\r\n var cellCountInDay = this.getCellCountInDay(startDayHour, endDayHour, hoursInterval);\r\n return hoursInterval * cellCountInDay * toMs(\"hour\")\r\n }\r\n getFirstDayOfWeek(firstDayOfWeekOption) {\r\n return firstDayOfWeekOption\r\n }\r\n getCellEndDate(cellStartDate, options) {\r\n var durationMs = Math.round(options.interval);\r\n return timezoneUtils.addOffsetsWithoutDST(cellStartDate, durationMs)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/view_model/m_view_data_generator_day.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n dayUtils\r\n} from \"../../../scheduler/r1/utils/index\";\r\nimport {\r\n ViewDataGenerator\r\n} from \"./m_view_data_generator\";\r\nexport class ViewDataGeneratorDay extends ViewDataGenerator {\r\n _calculateStartViewDate(options) {\r\n return dayUtils.calculateStartViewDate(options.currentDate, options.startDayHour, options.startDate, this._getIntervalDuration(options.intervalCount))\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/view_model/m_view_data_generator_month.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport dateLocalization from \"../../../../localization/date\";\r\nimport {\r\n getToday,\r\n isFirstCellInMonthWithIntervalCount,\r\n monthUtils,\r\n setOptionHour\r\n} from \"../../../scheduler/r1/utils/index\";\r\nimport timezoneUtils from \"../../m_utils_time_zone\";\r\nimport {\r\n calculateAlignedWeeksBetweenDates\r\n} from \"./m_utils\";\r\nimport {\r\n ViewDataGenerator\r\n} from \"./m_view_data_generator\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nvar DAYS_IN_WEEK = 7;\r\nexport class ViewDataGeneratorMonth extends ViewDataGenerator {\r\n constructor() {\r\n super(...arguments);\r\n this.tableAllDay = void 0\r\n }\r\n getCellData(rowIndex, columnIndex, options, allDay) {\r\n var {\r\n indicatorTime: indicatorTime,\r\n timeZoneCalculator: timeZoneCalculator,\r\n intervalCount: intervalCount,\r\n viewOffset: viewOffset\r\n } = options;\r\n var data = super.getCellData(rowIndex, columnIndex, options, false);\r\n var startDate = timezoneUtils.addOffsetsWithoutDST(data.startDate, -viewOffset);\r\n data.today = this.isCurrentDate(startDate, indicatorTime, timeZoneCalculator);\r\n data.otherMonth = this.isOtherMonth(startDate, this._minVisibleDate, this._maxVisibleDate);\r\n data.firstDayOfMonth = isFirstCellInMonthWithIntervalCount(startDate, intervalCount);\r\n data.text = monthUtils.getCellText(startDate, intervalCount);\r\n return data\r\n }\r\n isCurrentDate(date, indicatorTime, timeZoneCalculator) {\r\n return dateUtils.sameDate(date, getToday(indicatorTime, timeZoneCalculator))\r\n }\r\n isOtherMonth(cellDate, minDate, maxDate) {\r\n return !dateUtils.dateInRange(cellDate, minDate, maxDate, \"date\")\r\n }\r\n _calculateCellIndex(rowIndex, columnIndex, rowCount, columnCount) {\r\n return monthUtils.calculateCellIndex(rowIndex, columnIndex, rowCount, columnCount)\r\n }\r\n calculateEndDate(startDate, interval, endDayHour) {\r\n return setOptionHour(startDate, endDayHour)\r\n }\r\n getInterval() {\r\n return toMs(\"day\")\r\n }\r\n _calculateStartViewDate(options) {\r\n return monthUtils.calculateStartViewDate(options.currentDate, options.startDayHour, options.startDate, options.intervalCount, this.getFirstDayOfWeek(options.firstDayOfWeek))\r\n }\r\n _setVisibilityDates(options) {\r\n var {\r\n intervalCount: intervalCount,\r\n startDate: startDate,\r\n currentDate: currentDate\r\n } = options;\r\n var firstMonthDate = dateUtils.getFirstMonthDate(startDate);\r\n var viewStart = monthUtils.getViewStartByOptions(startDate, currentDate, intervalCount, firstMonthDate);\r\n this._minVisibleDate = new Date(viewStart.setDate(1));\r\n var nextMonthDate = new Date(viewStart.setMonth(viewStart.getMonth() + intervalCount));\r\n this._maxVisibleDate = new Date(nextMonthDate.setDate(0))\r\n }\r\n getCellCount() {\r\n return DAYS_IN_WEEK\r\n }\r\n getRowCount(options) {\r\n var _a;\r\n var startDate = new Date(options.currentDate);\r\n startDate.setDate(1);\r\n var endDate = new Date(startDate);\r\n endDate.setMonth(endDate.getMonth() + options.intervalCount);\r\n endDate.setDate(0);\r\n return calculateAlignedWeeksBetweenDates(startDate, endDate, null !== (_a = options.firstDayOfWeek) && void 0 !== _a ? _a : dateLocalization.firstDayOfWeekIndex())\r\n }\r\n getCellCountInDay() {\r\n return 1\r\n }\r\n setHiddenInterval() {\r\n this.hiddenInterval = 0\r\n }\r\n getCellEndDate(cellStartDate, options) {\r\n var {\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour\r\n } = options;\r\n var durationMs = (endDayHour - startDayHour) * toMs(\"hour\");\r\n return timezoneUtils.addOffsetsWithoutDST(cellStartDate, durationMs)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/view_model/m_utils.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport {\r\n VIEWS\r\n} from \"../../m_constants\";\r\nimport {\r\n ViewDataGenerator\r\n} from \"./m_view_data_generator\";\r\nimport {\r\n ViewDataGeneratorDay\r\n} from \"./m_view_data_generator_day\";\r\nimport {\r\n ViewDataGeneratorMonth\r\n} from \"./m_view_data_generator_month\";\r\nimport {\r\n ViewDataGeneratorTimelineMonth\r\n} from \"./m_view_data_generator_timeline_month\";\r\nimport {\r\n ViewDataGeneratorWeek\r\n} from \"./m_view_data_generator_week\";\r\nimport {\r\n ViewDataGeneratorWorkWeek\r\n} from \"./m_view_data_generator_work_week\";\r\nvar DAYS_IN_WEEK = 7;\r\nvar MS_IN_DAY = 864e5;\r\nexport var getViewDataGeneratorByViewType = viewType => {\r\n switch (viewType) {\r\n case VIEWS.MONTH:\r\n return new ViewDataGeneratorMonth;\r\n case VIEWS.TIMELINE_MONTH:\r\n return new ViewDataGeneratorTimelineMonth;\r\n case VIEWS.DAY:\r\n case VIEWS.TIMELINE_DAY:\r\n return new ViewDataGeneratorDay;\r\n case VIEWS.WEEK:\r\n case VIEWS.TIMELINE_WEEK:\r\n return new ViewDataGeneratorWeek;\r\n case VIEWS.WORK_WEEK:\r\n case VIEWS.TIMELINE_WORK_WEEK:\r\n return new ViewDataGeneratorWorkWeek;\r\n default:\r\n return new ViewDataGenerator\r\n }\r\n};\r\nexport function alignToFirstDayOfWeek(date, firstDayOfWeek) {\r\n var newDate = new Date(date);\r\n var dayDiff = newDate.getDay() - firstDayOfWeek;\r\n if (dayDiff < 0) {\r\n dayDiff += DAYS_IN_WEEK\r\n }\r\n newDate.setDate(newDate.getDate() - dayDiff);\r\n return newDate\r\n}\r\nexport function alignToLastDayOfWeek(date, firstDayOfWeek) {\r\n var newDate = alignToFirstDayOfWeek(date, firstDayOfWeek);\r\n newDate.setDate(newDate.getDate() + DAYS_IN_WEEK - 1);\r\n return newDate\r\n}\r\nexport function calculateDaysBetweenDates(fromDate, toDate) {\r\n var msDiff = dateUtils.trimTime(toDate).getTime() - dateUtils.trimTime(fromDate).getTime();\r\n return Math.round(msDiff / MS_IN_DAY) + 1\r\n}\r\nexport function calculateAlignedWeeksBetweenDates(fromDate, toDate, firstDayOfWeek) {\r\n var alignedFromDate = alignToFirstDayOfWeek(fromDate, firstDayOfWeek);\r\n var alignedToDate = alignToLastDayOfWeek(toDate, firstDayOfWeek);\r\n var weekCount = calculateDaysBetweenDates(alignedFromDate, alignedToDate) / DAYS_IN_WEEK;\r\n return Math.max(weekCount, 6)\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/view_model/m_view_data_generator_timeline_month.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport {\r\n monthUtils,\r\n setOptionHour,\r\n timelineMonthUtils\r\n} from \"../../../scheduler/r1/utils/index\";\r\nimport timezoneUtils from \"../../m_utils_time_zone\";\r\nimport {\r\n ViewDataGenerator\r\n} from \"./m_view_data_generator\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nexport class ViewDataGeneratorTimelineMonth extends ViewDataGenerator {\r\n _calculateCellIndex(rowIndex, columnIndex, rowCount, columnCount) {\r\n return monthUtils.calculateCellIndex(rowIndex, columnIndex, rowCount, columnCount)\r\n }\r\n calculateEndDate(startDate, interval, endDayHour) {\r\n return setOptionHour(startDate, endDayHour)\r\n }\r\n getInterval() {\r\n return toMs(\"day\")\r\n }\r\n _calculateStartViewDate(options) {\r\n return timelineMonthUtils.calculateStartViewDate(options.currentDate, options.startDayHour, options.startDate, options.intervalCount)\r\n }\r\n getCellCount(options) {\r\n var {\r\n intervalCount: intervalCount\r\n } = options;\r\n var currentDate = new Date(options.currentDate);\r\n var cellCount = 0;\r\n for (var i = 1; i <= intervalCount; i++) {\r\n cellCount += new Date(currentDate.getFullYear(), currentDate.getMonth() + i, 0).getDate()\r\n }\r\n return cellCount\r\n }\r\n setHiddenInterval() {\r\n this.hiddenInterval = 0\r\n }\r\n getCellEndDate(cellStartDate, options) {\r\n var {\r\n startDayHour: startDayHour,\r\n endDayHour: endDayHour\r\n } = options;\r\n var durationMs = (endDayHour - startDayHour) * toMs(\"hour\");\r\n return timezoneUtils.addOffsetsWithoutDST(cellStartDate, durationMs)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/view_model/m_view_data_generator_week.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n weekUtils\r\n} from \"../../../scheduler/r1/utils/index\";\r\nimport {\r\n ViewDataGenerator\r\n} from \"./m_view_data_generator\";\r\nexport class ViewDataGeneratorWeek extends ViewDataGenerator {\r\n constructor() {\r\n super(...arguments);\r\n this.daysInInterval = 7\r\n }\r\n _getIntervalDuration(intervalCount) {\r\n return weekUtils.getIntervalDuration(intervalCount)\r\n }\r\n _calculateStartViewDate(options) {\r\n return weekUtils.calculateStartViewDate(options.currentDate, options.startDayHour, options.startDate, this._getIntervalDuration(options.intervalCount), this.getFirstDayOfWeek(options.firstDayOfWeek))\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/view_model/m_view_data_generator_work_week.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDataOnWeekend,\r\n workWeekUtils\r\n} from \"../../../scheduler/r1/utils/index\";\r\nimport {\r\n ViewDataGeneratorWeek\r\n} from \"./m_view_data_generator_week\";\r\nexport class ViewDataGeneratorWorkWeek extends ViewDataGeneratorWeek {\r\n constructor() {\r\n super(...arguments);\r\n this.daysInInterval = 5;\r\n this.isWorkView = true\r\n }\r\n isSkippedDate(date) {\r\n return isDataOnWeekend(date)\r\n }\r\n _calculateStartViewDate(options) {\r\n return workWeekUtils.calculateStartViewDate(options.currentDate, options.startDayHour, options.startDate, this._getIntervalDuration(options.intervalCount), this.getFirstDayOfWeek(options.firstDayOfWeek))\r\n }\r\n getFirstDayOfWeek(firstDayOfWeekOption) {\r\n return firstDayOfWeekOption || 0\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/view_model/m_view_data_provider.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar __rest = this && this.__rest || function(s, e) {\r\n var t = {};\r\n for (var p in s) {\r\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) {\r\n t[p] = s[p]\r\n }\r\n }\r\n if (null != s && \"function\" === typeof Object.getOwnPropertySymbols) {\r\n var i = 0;\r\n for (p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) {\r\n t[p[i]] = s[p[i]]\r\n }\r\n }\r\n }\r\n return t\r\n};\r\nimport dateUtils from \"../../../../core/utils/date\";\r\nimport {\r\n dateUtilsTs\r\n} from \"../../../core/utils/date\";\r\nimport {\r\n calculateIsGroupedAllDayPanel,\r\n getGroupPanelData,\r\n isGroupingByDate,\r\n isHorizontalGroupingApplied,\r\n isHorizontalView,\r\n isVerticalGroupingApplied\r\n} from \"../../../scheduler/r1/utils/index\";\r\nimport timeZoneUtils from \"../../m_utils_time_zone\";\r\nimport {\r\n DateHeaderDataGenerator\r\n} from \"./m_date_header_data_generator\";\r\nimport {\r\n GroupedDataMapProvider\r\n} from \"./m_grouped_data_map_provider\";\r\nimport {\r\n TimePanelDataGenerator\r\n} from \"./m_time_panel_data_generator\";\r\nimport {\r\n getViewDataGeneratorByViewType\r\n} from \"./m_utils\";\r\nexport default class ViewDataProvider {\r\n constructor(viewType) {\r\n this.viewType = viewType;\r\n this.viewDataGenerator = getViewDataGeneratorByViewType(viewType);\r\n this.viewData = {};\r\n this.completeViewDataMap = [];\r\n this.completeDateHeaderMap = [];\r\n this.viewDataMap = {};\r\n this._groupedDataMapProvider = null\r\n }\r\n get groupedDataMap() {\r\n return this._groupedDataMapProvider.groupedDataMap\r\n }\r\n get hiddenInterval() {\r\n return this.viewDataGenerator.hiddenInterval\r\n }\r\n isSkippedDate(date) {\r\n return this.viewDataGenerator.isSkippedDate(date)\r\n }\r\n update(options, isGenerateNewViewData) {\r\n this.viewDataGenerator = getViewDataGeneratorByViewType(options.viewType);\r\n var {\r\n viewDataGenerator: viewDataGenerator\r\n } = this;\r\n var dateHeaderDataGenerator = new DateHeaderDataGenerator(viewDataGenerator);\r\n var timePanelDataGenerator = new TimePanelDataGenerator(viewDataGenerator);\r\n var renderOptions = this._transformRenderOptions(options);\r\n renderOptions.interval = this.viewDataGenerator.getInterval(renderOptions.hoursInterval);\r\n this._options = renderOptions;\r\n if (isGenerateNewViewData) {\r\n this.completeViewDataMap = viewDataGenerator.getCompleteViewDataMap(renderOptions);\r\n this.completeDateHeaderMap = dateHeaderDataGenerator.getCompleteDateHeaderMap(renderOptions, this.completeViewDataMap);\r\n if (renderOptions.isGenerateTimePanelData) {\r\n this.completeTimePanelMap = timePanelDataGenerator.getCompleteTimePanelMap(renderOptions, this.completeViewDataMap)\r\n }\r\n }\r\n this.viewDataMap = viewDataGenerator.generateViewDataMap(this.completeViewDataMap, renderOptions);\r\n this.updateViewData(renderOptions);\r\n this._groupedDataMapProvider = new GroupedDataMapProvider(this.viewDataGenerator, this.viewDataMap, this.completeViewDataMap, {\r\n isVerticalGrouping: renderOptions.isVerticalGrouping,\r\n viewType: renderOptions.viewType,\r\n viewOffset: options.viewOffset\r\n });\r\n this.dateHeaderData = dateHeaderDataGenerator.generateDateHeaderData(this.completeDateHeaderMap, this.completeViewDataMap, renderOptions);\r\n if (renderOptions.isGenerateTimePanelData) {\r\n this.timePanelData = timePanelDataGenerator.generateTimePanelData(this.completeTimePanelMap, renderOptions)\r\n }\r\n }\r\n createGroupedDataMapProvider() {\r\n this._groupedDataMapProvider = new GroupedDataMapProvider(this.viewDataGenerator, this.viewDataMap, this.completeViewDataMap, {\r\n isVerticalGrouping: this._options.isVerticalGrouping,\r\n viewType: this._options.viewType\r\n })\r\n }\r\n updateViewData(options) {\r\n var renderOptions = this._transformRenderOptions(options);\r\n this.viewDataMapWithSelection = this.viewDataGenerator.markSelectedAndFocusedCells(this.viewDataMap, renderOptions);\r\n this.viewData = this.viewDataGenerator.getViewDataFromMap(this.completeViewDataMap, this.viewDataMapWithSelection, renderOptions)\r\n }\r\n _transformRenderOptions(renderOptions) {\r\n var {\r\n groups: groups,\r\n groupOrientation: groupOrientation,\r\n groupByDate: groupByDate,\r\n isAllDayPanelVisible: isAllDayPanelVisible,\r\n viewOffset: viewOffset\r\n } = renderOptions, restOptions = __rest(renderOptions, [\"groups\", \"groupOrientation\", \"groupByDate\", \"isAllDayPanelVisible\", \"viewOffset\"]);\r\n return _extends(_extends({}, restOptions), {\r\n startViewDate: this.viewDataGenerator._calculateStartViewDate(renderOptions),\r\n isVerticalGrouping: isVerticalGroupingApplied(groups, groupOrientation),\r\n isHorizontalGrouping: isHorizontalGroupingApplied(groups, groupOrientation),\r\n isGroupedByDate: isGroupingByDate(groups, groupOrientation, groupByDate),\r\n isGroupedAllDayPanel: calculateIsGroupedAllDayPanel(groups, groupOrientation, isAllDayPanelVisible),\r\n groups: groups,\r\n groupOrientation: groupOrientation,\r\n isAllDayPanelVisible: isAllDayPanelVisible,\r\n viewOffset: viewOffset\r\n })\r\n }\r\n getGroupPanelData(options) {\r\n var renderOptions = this._transformRenderOptions(options);\r\n if (renderOptions.groups.length > 0) {\r\n var cellCount = this.getCellCount(renderOptions);\r\n return getGroupPanelData(renderOptions.groups, cellCount, renderOptions.isGroupedByDate, renderOptions.isGroupedByDate ? 1 : cellCount)\r\n }\r\n return\r\n }\r\n getGroupStartDate(groupIndex) {\r\n return this._groupedDataMapProvider.getGroupStartDate(groupIndex)\r\n }\r\n getGroupEndDate(groupIndex) {\r\n return this._groupedDataMapProvider.getGroupEndDate(groupIndex)\r\n }\r\n findGroupCellStartDate(groupIndex, startDate, endDate) {\r\n var isFindByDate = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : false;\r\n return this._groupedDataMapProvider.findGroupCellStartDate(groupIndex, startDate, endDate, isFindByDate)\r\n }\r\n findAllDayGroupCellStartDate(groupIndex) {\r\n return this._groupedDataMapProvider.findAllDayGroupCellStartDate(groupIndex)\r\n }\r\n findCellPositionInMap(cellInfo) {\r\n var isAppointmentRender = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : false;\r\n return this._groupedDataMapProvider.findCellPositionInMap(cellInfo, isAppointmentRender)\r\n }\r\n hasAllDayPanel() {\r\n var {\r\n viewData: viewData\r\n } = this.viewDataMap;\r\n var {\r\n allDayPanel: allDayPanel\r\n } = viewData.groupedData[0];\r\n return !viewData.isGroupedAllDayPanel && (null === allDayPanel || void 0 === allDayPanel ? void 0 : allDayPanel.length) > 0\r\n }\r\n getCellsGroup(groupIndex) {\r\n return this._groupedDataMapProvider.getCellsGroup(groupIndex)\r\n }\r\n getCompletedGroupsInfo() {\r\n return this._groupedDataMapProvider.getCompletedGroupsInfo()\r\n }\r\n getGroupIndices() {\r\n return this._groupedDataMapProvider.getGroupIndices()\r\n }\r\n getLastGroupCellPosition(groupIndex) {\r\n return this._groupedDataMapProvider.getLastGroupCellPosition(groupIndex)\r\n }\r\n getRowCountInGroup(groupIndex) {\r\n return this._groupedDataMapProvider.getRowCountInGroup(groupIndex)\r\n }\r\n getCellData(rowIndex, columnIndex, isAllDay, rtlEnabled) {\r\n var row = isAllDay && !this._options.isVerticalGrouping ? this.viewDataMap.allDayPanelMap : this.viewDataMap.dateTableMap[rowIndex];\r\n var actualColumnIndex = !rtlEnabled ? columnIndex : row.length - 1 - columnIndex;\r\n var {\r\n cellData: cellData\r\n } = row[actualColumnIndex];\r\n return cellData\r\n }\r\n getCellsByGroupIndexAndAllDay(groupIndex, allDay) {\r\n var rowsPerGroup = this._getRowCountWithAllDayRows();\r\n var isShowAllDayPanel = this._options.isAllDayPanelVisible;\r\n var firstRowInGroup = this._options.isVerticalGrouping ? groupIndex * rowsPerGroup : 0;\r\n var lastRowInGroup = this._options.isVerticalGrouping ? (groupIndex + 1) * rowsPerGroup - 1 : rowsPerGroup;\r\n var correctedFirstRow = isShowAllDayPanel && !allDay ? firstRowInGroup + 1 : firstRowInGroup;\r\n var correctedLastRow = allDay ? correctedFirstRow : lastRowInGroup;\r\n return this.completeViewDataMap.slice(correctedFirstRow, correctedLastRow + 1).map(row => row.filter(_ref => {\r\n var {\r\n groupIndex: currentGroupIndex\r\n } = _ref;\r\n return groupIndex === currentGroupIndex\r\n }))\r\n }\r\n getCellCountWithGroup(groupIndex) {\r\n var rowIndex = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0;\r\n var {\r\n dateTableGroupedMap: dateTableGroupedMap\r\n } = this.groupedDataMap;\r\n return dateTableGroupedMap.filter((_, index) => index <= groupIndex).reduce((previous, row) => previous + row[rowIndex].length, 0)\r\n }\r\n hasGroupAllDayPanel(groupIndex) {\r\n var _a, _b;\r\n if (this._options.isVerticalGrouping) {\r\n return !!(null === (_a = this.groupedDataMap.dateTableGroupedMap[groupIndex]) || void 0 === _a ? void 0 : _a[0][0].cellData.allDay)\r\n }\r\n return (null === (_b = this.groupedDataMap.allDayPanelGroupedMap[groupIndex]) || void 0 === _b ? void 0 : _b.length) > 0\r\n }\r\n isGroupIntersectDateInterval(groupIndex, startDate, endDate) {\r\n var groupStartDate = this.getGroupStartDate(groupIndex);\r\n var groupEndDate = this.getGroupEndDate(groupIndex);\r\n return startDate < groupEndDate && endDate > groupStartDate\r\n }\r\n findGlobalCellPosition(date) {\r\n var groupIndex = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0;\r\n var allDay = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : false;\r\n var {\r\n completeViewDataMap: completeViewDataMap\r\n } = this;\r\n var showAllDayPanel = this._options.isAllDayPanelVisible;\r\n for (var rowIndex = 0; rowIndex < completeViewDataMap.length; rowIndex += 1) {\r\n var currentRow = completeViewDataMap[rowIndex];\r\n for (var columnIndex = 0; columnIndex < currentRow.length; columnIndex += 1) {\r\n var cellData = currentRow[columnIndex];\r\n var {\r\n startDate: currentStartDate,\r\n endDate: currentEndDate,\r\n groupIndex: currentGroupIndex,\r\n allDay: currentAllDay\r\n } = cellData;\r\n if (groupIndex === currentGroupIndex && allDay === !!currentAllDay && this._compareDatesAndAllDay(date, currentStartDate, currentEndDate, allDay)) {\r\n return {\r\n position: {\r\n columnIndex: columnIndex,\r\n rowIndex: showAllDayPanel && !this._options.isVerticalGrouping ? rowIndex - 1 : rowIndex\r\n },\r\n cellData: cellData\r\n }\r\n }\r\n }\r\n }\r\n return\r\n }\r\n _compareDatesAndAllDay(date, cellStartDate, cellEndDate, allDay) {\r\n return allDay ? dateUtils.sameDate(date, cellStartDate) : date >= cellStartDate && date < cellEndDate\r\n }\r\n getSkippedDaysCount(groupIndex, startDate, endDate, daysCount) {\r\n var {\r\n dateTableGroupedMap: dateTableGroupedMap\r\n } = this._groupedDataMapProvider.groupedDataMap;\r\n var groupedData = dateTableGroupedMap[groupIndex];\r\n var includedDays = 0;\r\n for (var rowIndex = 0; rowIndex < groupedData.length; rowIndex += 1) {\r\n for (var columnIndex = 0; columnIndex < groupedData[rowIndex].length; columnIndex += 1) {\r\n var cell = groupedData[rowIndex][columnIndex].cellData;\r\n if (startDate.getTime() < cell.endDate.getTime() && endDate.getTime() > cell.startDate.getTime()) {\r\n includedDays += 1\r\n }\r\n }\r\n }\r\n var lastCell = groupedData[groupedData.length - 1][groupedData[0].length - 1].cellData;\r\n var lastCellStart = dateUtils.trimTime(lastCell.startDate);\r\n var daysAfterView = Math.floor((endDate.getTime() - lastCellStart.getTime()) / dateUtils.dateToMilliseconds(\"day\"));\r\n var deltaDays = daysAfterView > 0 ? daysAfterView : 0;\r\n return daysCount - includedDays - deltaDays\r\n }\r\n getColumnsCount() {\r\n var {\r\n dateTableMap: dateTableMap\r\n } = this.viewDataMap;\r\n return dateTableMap ? dateTableMap[0].length : 0\r\n }\r\n getViewEdgeIndices(isAllDayPanel) {\r\n if (isAllDayPanel) {\r\n return {\r\n firstColumnIndex: 0,\r\n lastColumnIndex: this.viewDataMap.allDayPanelMap.length - 1,\r\n firstRowIndex: 0,\r\n lastRowIndex: 0\r\n }\r\n }\r\n return {\r\n firstColumnIndex: 0,\r\n lastColumnIndex: this.viewDataMap.dateTableMap[0].length - 1,\r\n firstRowIndex: 0,\r\n lastRowIndex: this.viewDataMap.dateTableMap.length - 1\r\n }\r\n }\r\n getGroupEdgeIndices(groupIndex, isAllDay) {\r\n var groupedDataMap = this.groupedDataMap.dateTableGroupedMap[groupIndex];\r\n var cellsCount = groupedDataMap[0].length;\r\n var rowsCount = groupedDataMap.length;\r\n var firstColumnIndex = groupedDataMap[0][0].position.columnIndex;\r\n var lastColumnIndex = groupedDataMap[0][cellsCount - 1].position.columnIndex;\r\n if (isAllDay) {\r\n return {\r\n firstColumnIndex: firstColumnIndex,\r\n lastColumnIndex: lastColumnIndex,\r\n firstRowIndex: 0,\r\n lastRowIndex: 0\r\n }\r\n }\r\n return {\r\n firstColumnIndex: firstColumnIndex,\r\n lastColumnIndex: lastColumnIndex,\r\n firstRowIndex: groupedDataMap[0][0].position.rowIndex,\r\n lastRowIndex: groupedDataMap[rowsCount - 1][0].position.rowIndex\r\n }\r\n }\r\n isSameCell(firstCellData, secondCellData) {\r\n var {\r\n startDate: firstStartDate,\r\n groupIndex: firstGroupIndex,\r\n allDay: firstAllDay,\r\n index: firstIndex\r\n } = firstCellData;\r\n var {\r\n startDate: secondStartDate,\r\n groupIndex: secondGroupIndex,\r\n allDay: secondAllDay,\r\n index: secondIndex\r\n } = secondCellData;\r\n return firstStartDate.getTime() === secondStartDate.getTime() && firstGroupIndex === secondGroupIndex && firstAllDay === secondAllDay && firstIndex === secondIndex\r\n }\r\n getLastViewDate() {\r\n var {\r\n completeViewDataMap: completeViewDataMap\r\n } = this;\r\n var rowsCount = completeViewDataMap.length - 1;\r\n return completeViewDataMap[rowsCount][completeViewDataMap[rowsCount].length - 1].endDate\r\n }\r\n getStartViewDate() {\r\n return this._options.startViewDate\r\n }\r\n getIntervalDuration(intervalCount) {\r\n return this.viewDataGenerator._getIntervalDuration(intervalCount)\r\n }\r\n getLastCellEndDate() {\r\n var lastEndDate = new Date(this.getLastViewDate().getTime() - dateUtils.dateToMilliseconds(\"minute\"));\r\n return dateUtilsTs.addOffsets(lastEndDate, [-this._options.viewOffset])\r\n }\r\n getLastViewDateByEndDayHour(endDayHour) {\r\n var lastCellEndDate = this.getLastCellEndDate();\r\n var endTime = dateUtils.dateTimeFromDecimal(endDayHour);\r\n var endDateOfLastViewCell = new Date(lastCellEndDate.setHours(endTime.hours, endTime.minutes));\r\n return this._adjustEndDateByDaylightDiff(lastCellEndDate, endDateOfLastViewCell)\r\n }\r\n _adjustEndDateByDaylightDiff(startDate, endDate) {\r\n var daylightDiff = timeZoneUtils.getDaylightOffsetInMs(startDate, endDate);\r\n var endDateOfLastViewCell = new Date(endDate.getTime() - daylightDiff);\r\n return new Date(endDateOfLastViewCell.getTime() - dateUtils.dateToMilliseconds(\"minute\"))\r\n }\r\n getCellCountInDay(startDayHour, endDayHour, hoursInterval) {\r\n return this.viewDataGenerator.getCellCountInDay(startDayHour, endDayHour, hoursInterval)\r\n }\r\n getCellCount(options) {\r\n return this.viewDataGenerator.getCellCount(options)\r\n }\r\n getRowCount(options) {\r\n return this.viewDataGenerator.getRowCount(options)\r\n }\r\n getVisibleDayDuration(startDayHour, endDayHour, hoursInterval) {\r\n return this.viewDataGenerator.getVisibleDayDuration(startDayHour, endDayHour, hoursInterval)\r\n }\r\n _getRowCountWithAllDayRows() {\r\n var allDayRowCount = this._options.isAllDayPanelVisible ? 1 : 0;\r\n return this.getRowCount(this._options) + allDayRowCount\r\n }\r\n getFirstDayOfWeek(firstDayOfWeekOption) {\r\n return this.viewDataGenerator.getFirstDayOfWeek(firstDayOfWeekOption)\r\n }\r\n setViewOptions(options) {\r\n this._options = this._transformRenderOptions(options)\r\n }\r\n getViewOptions() {\r\n return this._options\r\n }\r\n getViewPortGroupCount() {\r\n var {\r\n dateTableGroupedMap: dateTableGroupedMap\r\n } = this.groupedDataMap;\r\n return (null === dateTableGroupedMap || void 0 === dateTableGroupedMap ? void 0 : dateTableGroupedMap.length) || 0\r\n }\r\n getCellsBetween(first, last) {\r\n var _a, _b;\r\n var [firstCell, lastCell] = this.normalizeCellsOrder(first, last);\r\n var {\r\n index: firstIdx\r\n } = firstCell;\r\n var {\r\n index: lastIdx\r\n } = lastCell;\r\n var cellMatrix = this.getCellsByGroupIndexAndAllDay(null !== (_a = firstCell.groupIndex) && void 0 !== _a ? _a : 0, null !== (_b = lastCell.allDay) && void 0 !== _b ? _b : false);\r\n return isHorizontalView(this.viewType) ? this.getCellsBetweenHorizontalView(cellMatrix, firstIdx, lastIdx) : this.getCellsBetweenVerticalView(cellMatrix, firstIdx, lastIdx)\r\n }\r\n getCellsBetweenHorizontalView(cellMatrix, firstIdx, lastIdx) {\r\n return cellMatrix.reduce((result, row) => result.concat(row.filter(_ref2 => {\r\n var {\r\n index: index\r\n } = _ref2;\r\n return firstIdx <= index && index <= lastIdx\r\n })), [])\r\n }\r\n getCellsBetweenVerticalView(cellMatrix, firstIdx, lastIdx) {\r\n var _a, _b;\r\n var result = [];\r\n var matrixHeight = cellMatrix.length;\r\n var matrixWidth = null !== (_b = null === (_a = cellMatrix[0]) || void 0 === _a ? void 0 : _a.length) && void 0 !== _b ? _b : 0;\r\n var inSegment = false;\r\n for (var columnIdx = 0; columnIdx < matrixWidth; columnIdx += 1) {\r\n for (var rowIdx = 0; rowIdx < matrixHeight; rowIdx += 1) {\r\n var cell = cellMatrix[rowIdx][columnIdx];\r\n var {\r\n index: cellIdx\r\n } = cell;\r\n if (cellIdx === firstIdx) {\r\n inSegment = true\r\n }\r\n if (inSegment) {\r\n result.push(cell)\r\n }\r\n if (cellIdx === lastIdx) {\r\n return result\r\n }\r\n }\r\n }\r\n return result\r\n }\r\n normalizeCellsOrder(firstSelectedCell, lastSelectedCell) {\r\n return firstSelectedCell.startDate > lastSelectedCell.startDate ? [lastSelectedCell, firstSelectedCell] : [firstSelectedCell, lastSelectedCell]\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_work_space.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n locate,\r\n resetPosition\r\n} from \"../../../animation/translator\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\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 compileGetter\r\n} from \"../../../core/utils/data\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../core/utils/position\";\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getOuterWidth,\r\n getWidth,\r\n setOuterHeight,\r\n setWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n isDefined\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 {\r\n name as contextMenuEventName\r\n} from \"../../../events/contextmenu\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n drop as dragEventDrop,\r\n enter as dragEventEnter,\r\n leave as dragEventLeave\r\n} from \"../../../events/drag\";\r\nimport pointerEvents from \"../../../events/pointer\";\r\nimport {\r\n addNamespace,\r\n isMouseEvent\r\n} from \"../../../events/utils/index\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport Scrollable from \"../../../ui/scroll_view/ui.scrollable\";\r\nimport errors from \"../../../ui/widget/ui.errors\";\r\nimport {\r\n getMemoizeScrollTo\r\n} from \"../../core/utils/scroll\";\r\nimport {\r\n AllDayPanelTitleComponent,\r\n AllDayTableComponent,\r\n DateTableComponent,\r\n GroupPanelComponent,\r\n HeaderPanelComponent,\r\n TimePanelComponent\r\n} from \"../../scheduler/r1/components/index\";\r\nimport {\r\n calculateIsGroupedAllDayPanel,\r\n calculateViewStartDate,\r\n getCellDuration,\r\n getGroupCount,\r\n getStartViewDateTimeOffset,\r\n getViewStartByOptions,\r\n isDateAndTimeView\r\n} from \"../../scheduler/r1/utils/index\";\r\nimport WidgetObserver from \"../base/m_widget_observer\";\r\nimport AppointmentDragBehavior from \"../m_appointment_drag_behavior\";\r\nimport {\r\n APPOINTMENT_DRAG_SOURCE_CLASS,\r\n DATE_TABLE_CLASS,\r\n DATE_TABLE_ROW_CLASS,\r\n FIXED_CONTAINER_CLASS,\r\n GROUP_HEADER_CONTENT_CLASS,\r\n GROUP_ROW_CLASS,\r\n TIME_PANEL_CLASS,\r\n VERTICAL_GROUP_COUNT_CLASSES,\r\n VIRTUAL_CELL_CLASS\r\n} from \"../m_classes\";\r\nimport {\r\n APPOINTMENT_SETTINGS_KEY\r\n} from \"../m_constants\";\r\nimport tableCreatorModule from \"../m_table_creator\";\r\nimport {\r\n utils\r\n} from \"../m_utils\";\r\nimport {\r\n createResourcesTree,\r\n getCellGroups,\r\n getGroupsObjectFromGroupsArray\r\n} from \"../resources/m_utils\";\r\nimport VerticalShader from \"../shaders/m_current_time_shader_vertical\";\r\nimport {\r\n getAllDayHeight,\r\n getCellHeight,\r\n getCellWidth,\r\n getMaxAllowedPosition,\r\n PositionHelper\r\n} from \"./helpers/m_position_helper\";\r\nimport {\r\n Cache\r\n} from \"./m_cache\";\r\nimport {\r\n CellsSelectionController\r\n} from \"./m_cells_selection_controller\";\r\nimport CellsSelectionState from \"./m_cells_selection_state\";\r\nimport {\r\n VirtualScrollingDispatcher,\r\n VirtualScrollingRenderer\r\n} from \"./m_virtual_scrolling\";\r\nimport HorizontalGroupedStrategy from \"./m_work_space_grouped_strategy_horizontal\";\r\nimport VerticalGroupedStrategy from \"./m_work_space_grouped_strategy_vertical\";\r\nimport ViewDataProvider from \"./view_model/m_view_data_provider\";\r\nvar {\r\n tableCreator: tableCreator\r\n} = tableCreatorModule;\r\nvar DRAGGING_MOUSE_FAULT = 10;\r\nvar {\r\n abstract: abstract\r\n} = WidgetObserver;\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nvar COMPONENT_CLASS = \"dx-scheduler-work-space\";\r\nvar GROUPED_WORKSPACE_CLASS = \"dx-scheduler-work-space-grouped\";\r\nvar VERTICAL_GROUPED_WORKSPACE_CLASS = \"dx-scheduler-work-space-vertical-grouped\";\r\nvar WORKSPACE_VERTICAL_GROUP_TABLE_CLASS = \"dx-scheduler-work-space-vertical-group-table\";\r\nvar WORKSPACE_WITH_BOTH_SCROLLS_CLASS = \"dx-scheduler-work-space-both-scrollbar\";\r\nvar WORKSPACE_WITH_COUNT_CLASS = \"dx-scheduler-work-space-count\";\r\nvar WORKSPACE_WITH_GROUP_BY_DATE_CLASS = \"dx-scheduler-work-space-group-by-date\";\r\nvar WORKSPACE_WITH_ODD_CELLS_CLASS = \"dx-scheduler-work-space-odd-cells\";\r\nvar TIME_PANEL_CELL_CLASS = \"dx-scheduler-time-panel-cell\";\r\nvar TIME_PANEL_ROW_CLASS = \"dx-scheduler-time-panel-row\";\r\nvar ALL_DAY_PANEL_CLASS = \"dx-scheduler-all-day-panel\";\r\nvar ALL_DAY_TABLE_CLASS = \"dx-scheduler-all-day-table\";\r\nvar ALL_DAY_CONTAINER_CLASS = \"dx-scheduler-all-day-appointments\";\r\nvar ALL_DAY_TITLE_CLASS = \"dx-scheduler-all-day-title\";\r\nvar ALL_DAY_TABLE_CELL_CLASS = \"dx-scheduler-all-day-table-cell\";\r\nvar ALL_DAY_TABLE_ROW_CLASS = \"dx-scheduler-all-day-table-row\";\r\nvar WORKSPACE_WITH_ALL_DAY_CLASS = \"dx-scheduler-work-space-all-day\";\r\nvar WORKSPACE_WITH_COLLAPSED_ALL_DAY_CLASS = \"dx-scheduler-work-space-all-day-collapsed\";\r\nvar WORKSPACE_WITH_MOUSE_SELECTION_CLASS = \"dx-scheduler-work-space-mouse-selection\";\r\nvar HORIZONTAL_SIZES_CLASS = \"dx-scheduler-cell-sizes-horizontal\";\r\nvar VERTICAL_SIZES_CLASS = \"dx-scheduler-cell-sizes-vertical\";\r\nvar HEADER_PANEL_CLASS = \"dx-scheduler-header-panel\";\r\nvar HEADER_PANEL_CELL_CLASS = \"dx-scheduler-header-panel-cell\";\r\nvar HEADER_ROW_CLASS = \"dx-scheduler-header-row\";\r\nvar GROUP_HEADER_CLASS = \"dx-scheduler-group-header\";\r\nvar DATE_TABLE_CELL_CLASS = \"dx-scheduler-date-table-cell\";\r\nvar DATE_TABLE_FOCUSED_CELL_CLASS = \"dx-scheduler-focused-cell\";\r\nvar VIRTUAL_ROW_CLASS = \"dx-scheduler-virtual-row\";\r\nvar DATE_TABLE_DROPPABLE_CELL_CLASS = \"dx-scheduler-date-table-droppable-cell\";\r\nvar SCHEDULER_HEADER_SCROLLABLE_CLASS = \"dx-scheduler-header-scrollable\";\r\nvar SCHEDULER_SIDEBAR_SCROLLABLE_CLASS = \"dx-scheduler-sidebar-scrollable\";\r\nvar SCHEDULER_DATE_TABLE_SCROLLABLE_CLASS = \"dx-scheduler-date-table-scrollable\";\r\nvar SCHEDULER_WORKSPACE_DXPOINTERDOWN_EVENT_NAME = addNamespace(pointerEvents.down, \"dxSchedulerWorkSpace\");\r\nvar DragEventNames = {\r\n ENTER: addNamespace(dragEventEnter, \"dxSchedulerDateTable\"),\r\n DROP: addNamespace(dragEventDrop, \"dxSchedulerDateTable\"),\r\n LEAVE: addNamespace(dragEventLeave, \"dxSchedulerDateTable\")\r\n};\r\nvar SCHEDULER_CELL_DXCLICK_EVENT_NAME = addNamespace(clickEventName, \"dxSchedulerDateTable\");\r\nvar SCHEDULER_CELL_DXPOINTERDOWN_EVENT_NAME = addNamespace(pointerEvents.down, \"dxSchedulerDateTable\");\r\nvar SCHEDULER_CELL_DXPOINTERUP_EVENT_NAME = addNamespace(pointerEvents.up, \"dxSchedulerDateTable\");\r\nvar SCHEDULER_CELL_DXPOINTERMOVE_EVENT_NAME = addNamespace(pointerEvents.move, \"dxSchedulerDateTable\");\r\nvar CELL_DATA = \"dxCellData\";\r\nvar DATE_TABLE_MIN_CELL_WIDTH = 75;\r\nvar DAY_MS = toMs(\"day\");\r\nvar HOUR_MS = toMs(\"hour\");\r\nvar DRAG_AND_DROP_SELECTOR = \".\".concat(DATE_TABLE_CLASS, \" td, .\").concat(ALL_DAY_TABLE_CLASS, \" td\");\r\nvar CELL_SELECTOR = \".\".concat(DATE_TABLE_CELL_CLASS, \", .\").concat(ALL_DAY_TABLE_CELL_CLASS);\r\nvar CELL_INDEX_CALCULATION_EPSILON = .05;\r\nvar DEFAULT_WORKSPACE_RENDER_OPTIONS = {\r\n renderComponents: {\r\n header: true,\r\n timePanel: true,\r\n dateTable: true,\r\n allDayPanel: true\r\n },\r\n generateNewData: true\r\n};\r\nclass SchedulerWorkSpace extends WidgetObserver {\r\n constructor() {\r\n super(...arguments);\r\n this.viewDirection = \"vertical\"\r\n }\r\n get type() {\r\n return \"\"\r\n }\r\n get viewDataProvider() {\r\n if (!this._viewDataProvider) {\r\n this._viewDataProvider = new ViewDataProvider(this.type)\r\n }\r\n return this._viewDataProvider\r\n }\r\n get cache() {\r\n if (!this._cache) {\r\n this._cache = new Cache\r\n }\r\n return this._cache\r\n }\r\n get cellsSelectionState() {\r\n if (!this._cellsSelectionState) {\r\n this._cellsSelectionState = new CellsSelectionState(this.viewDataProvider);\r\n var selectedCellsOption = this.option(\"selectedCellData\");\r\n if ((null === selectedCellsOption || void 0 === selectedCellsOption ? void 0 : selectedCellsOption.length) > 0) {\r\n var validSelectedCells = selectedCellsOption.map(selectedCell => {\r\n var {\r\n groups: groups\r\n } = selectedCell;\r\n if (!groups || 0 === this._getGroupCount()) {\r\n return _extends(_extends({}, selectedCell), {\r\n groupIndex: 0\r\n })\r\n }\r\n var groupIndex = this._getGroupIndexByResourceId(groups);\r\n return _extends(_extends({}, selectedCell), {\r\n groupIndex: groupIndex\r\n })\r\n });\r\n this._cellsSelectionState.setSelectedCellsByData(validSelectedCells)\r\n }\r\n }\r\n return this._cellsSelectionState\r\n }\r\n get cellsSelectionController() {\r\n if (!this._cellsSelectionController) {\r\n this._cellsSelectionController = new CellsSelectionController\r\n }\r\n return this._cellsSelectionController\r\n }\r\n get isAllDayPanelVisible() {\r\n return this._isShowAllDayPanel() && this.supportAllDayRow()\r\n }\r\n get verticalGroupTableClass() {\r\n return WORKSPACE_VERTICAL_GROUP_TABLE_CLASS\r\n }\r\n get renovatedHeaderPanelComponent() {\r\n return HeaderPanelComponent\r\n }\r\n get timeZoneCalculator() {\r\n return this.option(\"timeZoneCalculator\")\r\n }\r\n get isDefaultDraggingMode() {\r\n return \"default\" === this.option(\"draggingMode\")\r\n }\r\n _supportedKeys() {\r\n var clickHandler = function(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n var selectedCells = this.cellsSelectionState.getSelectedCells();\r\n if (null === selectedCells || void 0 === selectedCells ? void 0 : selectedCells.length) {\r\n var selectedCellsElement = selectedCells.map(cellData => this._getCellByData(cellData)).filter(cell => !!cell);\r\n e.target = selectedCellsElement;\r\n this._showPopup = true;\r\n this._cellClickAction({\r\n event: e,\r\n cellElement: $(selectedCellsElement),\r\n cellData: selectedCells[0]\r\n })\r\n }\r\n };\r\n var onArrowPressed = (e, key) => {\r\n var _a;\r\n e.preventDefault();\r\n e.stopPropagation();\r\n var focusedCellData = null === (_a = this.cellsSelectionState.focusedCell) || void 0 === _a ? void 0 : _a.cellData;\r\n if (focusedCellData) {\r\n var isAllDayPanelCell = focusedCellData.allDay && !this._isVerticalGroupedWorkSpace();\r\n var isMultiSelection = e.shiftKey;\r\n var isMultiSelectionAllowed = this.option(\"allowMultipleCellSelection\");\r\n var isRTL = this._isRTL();\r\n var groupCount = this._getGroupCount();\r\n var isGroupedByDate = this.isGroupedByDate();\r\n var isHorizontalGrouping = this._isHorizontalGroupedWorkSpace();\r\n var focusedCellPosition = this.viewDataProvider.findCellPositionInMap(_extends(_extends({}, focusedCellData), {\r\n isAllDay: focusedCellData.allDay\r\n }));\r\n var edgeIndices = isHorizontalGrouping && isMultiSelection && !isGroupedByDate ? this.viewDataProvider.getGroupEdgeIndices(focusedCellData.groupIndex, isAllDayPanelCell) : this.viewDataProvider.getViewEdgeIndices(isAllDayPanelCell);\r\n var nextCellData = this.cellsSelectionController.handleArrowClick({\r\n focusedCellPosition: focusedCellPosition,\r\n edgeIndices: edgeIndices,\r\n isRTL: isRTL,\r\n isGroupedByDate: isGroupedByDate,\r\n groupCount: groupCount,\r\n isMultiSelection: isMultiSelection,\r\n isMultiSelectionAllowed: isMultiSelectionAllowed,\r\n viewType: this.type,\r\n key: key,\r\n getCellDataByPosition: this.viewDataProvider.getCellData.bind(this.viewDataProvider),\r\n isAllDayPanelCell: isAllDayPanelCell,\r\n focusedCellData: focusedCellData\r\n });\r\n this._processNextSelectedCell(nextCellData, focusedCellData, isMultiSelection && isMultiSelectionAllowed)\r\n }\r\n };\r\n return extend(super._supportedKeys(), {\r\n enter: clickHandler,\r\n space: clickHandler,\r\n downArrow: e => {\r\n onArrowPressed(e, \"down\")\r\n },\r\n upArrow: e => {\r\n onArrowPressed(e, \"up\")\r\n },\r\n rightArrow: e => {\r\n onArrowPressed(e, \"right\")\r\n },\r\n leftArrow: e => {\r\n onArrowPressed(e, \"left\")\r\n }\r\n })\r\n }\r\n _isRTL() {\r\n return this.option(\"rtlEnabled\")\r\n }\r\n _moveToCell($cell, isMultiSelection) {\r\n if (!isDefined($cell) || !$cell.length) {\r\n return\r\n }\r\n var isMultiSelectionAllowed = this.option(\"allowMultipleCellSelection\");\r\n var currentCellData = this._getFullCellData($cell);\r\n var focusedCellData = this.cellsSelectionState.focusedCell.cellData;\r\n var nextFocusedCellData = this.cellsSelectionController.moveToCell({\r\n isMultiSelection: isMultiSelection,\r\n isMultiSelectionAllowed: isMultiSelectionAllowed,\r\n currentCellData: currentCellData,\r\n focusedCellData: focusedCellData,\r\n isVirtualCell: $cell.hasClass(VIRTUAL_CELL_CLASS)\r\n });\r\n this._processNextSelectedCell(nextFocusedCellData, focusedCellData, isMultiSelectionAllowed && isMultiSelection)\r\n }\r\n _processNextSelectedCell(nextCellData, focusedCellData, isMultiSelection) {\r\n var nextCellPosition = this.viewDataProvider.findCellPositionInMap({\r\n startDate: nextCellData.startDate,\r\n groupIndex: nextCellData.groupIndex,\r\n isAllDay: nextCellData.allDay,\r\n index: nextCellData.index\r\n });\r\n if (!this.viewDataProvider.isSameCell(focusedCellData, nextCellData)) {\r\n var $cell = nextCellData.allDay && !this._isVerticalGroupedWorkSpace() ? this._dom_getAllDayPanelCell(nextCellPosition.columnIndex) : this._dom_getDateCell(nextCellPosition);\r\n var isNextCellAllDay = nextCellData.allDay;\r\n this._setSelectedCellsStateAndUpdateSelection(isNextCellAllDay, nextCellPosition, isMultiSelection, $cell);\r\n this._dateTableScrollable.scrollToElement($cell)\r\n }\r\n }\r\n _setSelectedCellsStateAndUpdateSelection(isAllDay, cellPosition, isMultiSelection, $nextFocusedCell) {\r\n var nextCellCoordinates = {\r\n rowIndex: cellPosition.rowIndex,\r\n columnIndex: cellPosition.columnIndex,\r\n allDay: isAllDay\r\n };\r\n this.cellsSelectionState.setFocusedCell(nextCellCoordinates.rowIndex, nextCellCoordinates.columnIndex, isAllDay);\r\n if (isMultiSelection) {\r\n this.cellsSelectionState.setSelectedCells(nextCellCoordinates)\r\n } else {\r\n this.cellsSelectionState.setSelectedCells(nextCellCoordinates, nextCellCoordinates)\r\n }\r\n this.updateCellsSelection();\r\n this._updateSelectedCellDataOption(this.cellsSelectionState.getSelectedCells(), $nextFocusedCell)\r\n }\r\n _hasAllDayClass($cell) {\r\n return $cell.hasClass(ALL_DAY_TABLE_CELL_CLASS)\r\n }\r\n _focusInHandler(e) {\r\n if ($(e.target).is(this._focusTarget()) && false !== this._isCellClick) {\r\n delete this._isCellClick;\r\n delete this._contextMenuHandled;\r\n super._focusInHandler.apply(this, arguments);\r\n this.cellsSelectionState.restoreSelectedAndFocusedCells();\r\n if (!this.cellsSelectionState.focusedCell) {\r\n var cellCoordinates = {\r\n columnIndex: 0,\r\n rowIndex: 0,\r\n allDay: this._isVerticalGroupedWorkSpace() && this.isAllDayPanelVisible\r\n };\r\n this.cellsSelectionState.setFocusedCell(cellCoordinates.rowIndex, cellCoordinates.columnIndex, cellCoordinates.allDay);\r\n this.cellsSelectionState.setSelectedCells(cellCoordinates, cellCoordinates)\r\n }\r\n this.updateCellsSelection();\r\n this._updateSelectedCellDataOption(this.cellsSelectionState.getSelectedCells())\r\n }\r\n }\r\n _focusOutHandler() {\r\n super._focusOutHandler.apply(this, arguments);\r\n if (!this._contextMenuHandled && !this._disposed) {\r\n this.cellsSelectionState.releaseSelectedAndFocusedCells();\r\n this.viewDataProvider.updateViewData(this.generateRenderOptions());\r\n this.updateCellsSelection()\r\n }\r\n }\r\n _focusTarget() {\r\n return this.$element()\r\n }\r\n _isVerticalGroupedWorkSpace() {\r\n var _a;\r\n return !!(null === (_a = this.option(\"groups\")) || void 0 === _a ? void 0 : _a.length) && \"vertical\" === this.option(\"groupOrientation\")\r\n }\r\n _isHorizontalGroupedWorkSpace() {\r\n var _a;\r\n return !!(null === (_a = this.option(\"groups\")) || void 0 === _a ? void 0 : _a.length) && \"horizontal\" === this.option(\"groupOrientation\")\r\n }\r\n _isWorkSpaceWithCount() {\r\n return this.option(\"intervalCount\") > 1\r\n }\r\n _isWorkspaceWithOddCells() {\r\n return .5 === this.option(\"hoursInterval\") && !this.isVirtualScrolling()\r\n }\r\n _getRealGroupOrientation() {\r\n return this._isVerticalGroupedWorkSpace() ? \"vertical\" : \"horizontal\"\r\n }\r\n createRAllDayPanelElements() {\r\n this._$allDayPanel = $(\"<div>\").addClass(ALL_DAY_PANEL_CLASS);\r\n this._$allDayTitle = $(\"<div>\").appendTo(this._$headerPanelEmptyCell)\r\n }\r\n _dateTableScrollableConfig() {\r\n var config = {\r\n useKeyboard: false,\r\n bounceEnabled: false,\r\n updateManually: true,\r\n onScroll: () => {\r\n var _a;\r\n null === (_a = this._groupedStrategy.cache) || void 0 === _a ? void 0 : _a.clear()\r\n }\r\n };\r\n if (this._needCreateCrossScrolling()) {\r\n config = extend(config, this._createCrossScrollingConfig(config))\r\n }\r\n if (this.isVirtualScrolling() && (this.virtualScrollingDispatcher.horizontalScrollingAllowed || this.virtualScrollingDispatcher.height)) {\r\n var currentOnScroll = config.onScroll;\r\n config = _extends(_extends({}, config), {\r\n onScroll: e => {\r\n null === currentOnScroll || void 0 === currentOnScroll ? void 0 : currentOnScroll(e);\r\n this.virtualScrollingDispatcher.handleOnScrollEvent(null === e || void 0 === e ? void 0 : e.scrollOffset)\r\n }\r\n })\r\n }\r\n return config\r\n }\r\n _createCrossScrollingConfig(_ref) {\r\n var {\r\n onScroll: _onScroll\r\n } = _ref;\r\n return {\r\n direction: \"both\",\r\n onScroll: event => {\r\n null === _onScroll || void 0 === _onScroll ? void 0 : _onScroll();\r\n this._scrollSync.sidebar({\r\n top: event.scrollOffset.top\r\n });\r\n this._scrollSync.header({\r\n left: event.scrollOffset.left\r\n })\r\n },\r\n onEnd: () => {\r\n this.option(\"onScrollEnd\")()\r\n }\r\n }\r\n }\r\n _headerScrollableConfig() {\r\n return {\r\n useKeyboard: false,\r\n showScrollbar: \"never\",\r\n direction: \"horizontal\",\r\n useNative: false,\r\n updateManually: true,\r\n bounceEnabled: false,\r\n onScroll: event => {\r\n this._scrollSync.dateTable({\r\n left: event.scrollOffset.left\r\n })\r\n }\r\n }\r\n }\r\n _visibilityChanged(visible) {\r\n this.cache.clear();\r\n if (visible) {\r\n this._updateGroupTableHeight()\r\n }\r\n if (visible && this._needCreateCrossScrolling()) {\r\n this._setTableSizes()\r\n }\r\n }\r\n _setTableSizes() {\r\n this.cache.clear();\r\n this._attachTableClasses();\r\n var cellWidth = this.getCellWidth();\r\n if (cellWidth < this.getCellMinWidth()) {\r\n cellWidth = this.getCellMinWidth()\r\n }\r\n var minWidth = this.getWorkSpaceMinWidth();\r\n var groupCount = this._getGroupCount();\r\n var totalCellCount = this._getTotalCellCount(groupCount);\r\n var width = cellWidth * totalCellCount;\r\n if (width < minWidth) {\r\n width = minWidth\r\n }\r\n setWidth(this._$headerPanel, width);\r\n setWidth(this._$dateTable, width);\r\n if (this._$allDayTable) {\r\n setWidth(this._$allDayTable, width)\r\n }\r\n this._attachHeaderTableClasses();\r\n this._updateGroupTableHeight();\r\n this._updateScrollable()\r\n }\r\n getWorkSpaceMinWidth() {\r\n return this._groupedStrategy.getWorkSpaceMinWidth()\r\n }\r\n _dimensionChanged() {\r\n if (!this._isVisible()) {\r\n return\r\n }\r\n if (this.option(\"crossScrollingEnabled\")) {\r\n this._setTableSizes()\r\n }\r\n this.updateHeaderEmptyCellWidth();\r\n this._updateScrollable();\r\n this.cache.clear()\r\n }\r\n _needCreateCrossScrolling() {\r\n return this.option(\"crossScrollingEnabled\")\r\n }\r\n _getElementClass() {\r\n return noop()\r\n }\r\n _getRowCount() {\r\n return this.viewDataProvider.getRowCount({\r\n intervalCount: this.option(\"intervalCount\"),\r\n currentDate: this.option(\"currentDate\"),\r\n viewType: this.type,\r\n hoursInterval: this.option(\"hoursInterval\"),\r\n startDayHour: this.option(\"startDayHour\"),\r\n endDayHour: this.option(\"endDayHour\")\r\n })\r\n }\r\n _getCellCount() {\r\n return this.viewDataProvider.getCellCount({\r\n intervalCount: this.option(\"intervalCount\"),\r\n currentDate: this.option(\"currentDate\"),\r\n viewType: this.type,\r\n hoursInterval: this.option(\"hoursInterval\"),\r\n startDayHour: this.option(\"startDayHour\"),\r\n endDayHour: this.option(\"endDayHour\")\r\n })\r\n }\r\n isRenovatedRender() {\r\n return this.renovatedRenderSupported() && this.option(\"renovateRender\")\r\n }\r\n _isVirtualModeOn() {\r\n return \"virtual\" === this.option(\"scrolling.mode\")\r\n }\r\n isVirtualScrolling() {\r\n return this.isRenovatedRender() && this._isVirtualModeOn()\r\n }\r\n _initVirtualScrolling() {\r\n if (this.virtualScrollingDispatcher) {\r\n this.virtualScrollingDispatcher.dispose();\r\n this.virtualScrollingDispatcher = null\r\n }\r\n this.virtualScrollingDispatcher = new VirtualScrollingDispatcher(this._getVirtualScrollingDispatcherOptions());\r\n this.virtualScrollingDispatcher.attachScrollableEvents();\r\n this.renderer = new VirtualScrollingRenderer(this)\r\n }\r\n onDataSourceChanged(argument) {}\r\n isGroupedAllDayPanel() {\r\n return calculateIsGroupedAllDayPanel(this.option(\"groups\"), this.option(\"groupOrientation\"), this.isAllDayPanelVisible)\r\n }\r\n generateRenderOptions(isProvideVirtualCellsWidth) {\r\n var _a;\r\n var groupCount = this._getGroupCount();\r\n var groupOrientation = groupCount > 0 ? this.option(\"groupOrientation\") : this._getDefaultGroupStrategy();\r\n var options = _extends({\r\n groupByDate: this.option(\"groupByDate\"),\r\n startRowIndex: 0,\r\n startCellIndex: 0,\r\n groupOrientation: groupOrientation,\r\n today: null === (_a = this._getToday) || void 0 === _a ? void 0 : _a.call(this),\r\n groups: this.option(\"groups\"),\r\n isProvideVirtualCellsWidth: isProvideVirtualCellsWidth,\r\n isAllDayPanelVisible: this.isAllDayPanelVisible,\r\n selectedCells: this.cellsSelectionState.getSelectedCells(),\r\n focusedCell: this.cellsSelectionState.focusedCell,\r\n headerCellTextFormat: this._getFormat(),\r\n getDateForHeaderText: (_, date) => date,\r\n viewOffset: this.option(\"viewOffset\"),\r\n startDayHour: this.option(\"startDayHour\"),\r\n endDayHour: this.option(\"endDayHour\"),\r\n cellDuration: this.getCellDuration(),\r\n viewType: this.type,\r\n intervalCount: this.option(\"intervalCount\"),\r\n hoursInterval: this.option(\"hoursInterval\"),\r\n currentDate: this.option(\"currentDate\"),\r\n startDate: this.option(\"startDate\"),\r\n firstDayOfWeek: this.option(\"firstDayOfWeek\"),\r\n showCurrentTimeIndicator: this.option(\"showCurrentTimeIndicator\")\r\n }, this.virtualScrollingDispatcher.getRenderState());\r\n return options\r\n }\r\n renovatedRenderSupported() {\r\n return true\r\n }\r\n _updateGroupTableHeight() {\r\n if (this._isVerticalGroupedWorkSpace() && hasWindow()) {\r\n this._setHorizontalGroupHeaderCellsHeight()\r\n }\r\n }\r\n updateHeaderEmptyCellWidth() {\r\n if (hasWindow() && this._isRenderHeaderPanelEmptyCell()) {\r\n var timePanelWidth = this.getTimePanelWidth();\r\n var groupPanelWidth = this.getGroupTableWidth();\r\n this._$headerPanelEmptyCell.css(\"width\", timePanelWidth + groupPanelWidth)\r\n }\r\n }\r\n _isGroupsSpecified(resources) {\r\n var _a;\r\n return (null === (_a = this.option(\"groups\")) || void 0 === _a ? void 0 : _a.length) && resources\r\n }\r\n _getGroupIndexByResourceId(id) {\r\n var groups = this.option(\"groups\");\r\n var resourceTree = createResourcesTree(groups);\r\n if (!resourceTree.length) {\r\n return 0\r\n }\r\n return this._getGroupIndexRecursively(resourceTree, id)\r\n }\r\n _getGroupIndexRecursively(resourceTree, id) {\r\n var currentKey = resourceTree[0].name;\r\n var currentValue = id[currentKey];\r\n return resourceTree.reduce((prevIndex, _ref2) => {\r\n var {\r\n leafIndex: leafIndex,\r\n value: value,\r\n children: children\r\n } = _ref2;\r\n var areValuesEqual = currentValue === value;\r\n if (areValuesEqual && void 0 !== leafIndex) {\r\n return leafIndex\r\n }\r\n if (areValuesEqual) {\r\n return this._getGroupIndexRecursively(children, id)\r\n }\r\n return prevIndex\r\n }, 0)\r\n }\r\n _getViewStartByOptions() {\r\n return getViewStartByOptions(this.option(\"startDate\"), this.option(\"currentDate\"), this._getIntervalDuration(), this.option(\"startDate\") ? this._calculateViewStartDate() : void 0)\r\n }\r\n _getIntervalDuration() {\r\n return this.viewDataProvider.getIntervalDuration(this.option(\"intervalCount\"))\r\n }\r\n _getHeaderDate() {\r\n return this.getStartViewDate()\r\n }\r\n _calculateViewStartDate() {\r\n return calculateViewStartDate(this.option(\"startDate\"))\r\n }\r\n _firstDayOfWeek() {\r\n return this.viewDataProvider.getFirstDayOfWeek(this.option(\"firstDayOfWeek\"))\r\n }\r\n _attachEvents() {\r\n this._createSelectionChangedAction();\r\n this._attachClickEvent();\r\n this._attachContextMenuEvent()\r\n }\r\n _attachClickEvent() {\r\n var that = this;\r\n var pointerDownAction = this._createAction(e => {\r\n that._pointerDownHandler(e.event)\r\n });\r\n this._createCellClickAction();\r\n var cellSelector = \".\".concat(DATE_TABLE_CELL_CLASS, \",.\").concat(ALL_DAY_TABLE_CELL_CLASS);\r\n var $element = this.$element();\r\n eventsEngine.off($element, SCHEDULER_WORKSPACE_DXPOINTERDOWN_EVENT_NAME);\r\n eventsEngine.off($element, SCHEDULER_CELL_DXCLICK_EVENT_NAME);\r\n eventsEngine.on($element, SCHEDULER_WORKSPACE_DXPOINTERDOWN_EVENT_NAME, e => {\r\n if (isMouseEvent(e) && e.which > 1) {\r\n e.preventDefault();\r\n return\r\n }\r\n pointerDownAction({\r\n event: e\r\n })\r\n });\r\n eventsEngine.on($element, SCHEDULER_CELL_DXCLICK_EVENT_NAME, cellSelector, e => {\r\n var $cell = $(e.target);\r\n that._cellClickAction({\r\n event: e,\r\n cellElement: getPublicElement($cell),\r\n cellData: that.getCellData($cell)\r\n })\r\n })\r\n }\r\n _createCellClickAction() {\r\n this._cellClickAction = this._createActionByOption(\"onCellClick\", {\r\n afterExecute: e => this._cellClickHandler(e.args[0].event)\r\n })\r\n }\r\n _createSelectionChangedAction() {\r\n this._selectionChangedAction = this._createActionByOption(\"onSelectionChanged\")\r\n }\r\n _cellClickHandler(argument) {\r\n if (this._showPopup) {\r\n delete this._showPopup;\r\n this._handleSelectedCellsClick()\r\n }\r\n }\r\n _pointerDownHandler(e) {\r\n var $target = $(e.target);\r\n if (!$target.hasClass(DATE_TABLE_CELL_CLASS) && !$target.hasClass(ALL_DAY_TABLE_CELL_CLASS)) {\r\n this._isCellClick = false;\r\n return\r\n }\r\n this._isCellClick = true;\r\n if ($target.hasClass(DATE_TABLE_FOCUSED_CELL_CLASS)) {\r\n this._showPopup = true\r\n } else {\r\n var cellCoordinates = this._getCoordinatesByCell($target);\r\n var isAllDayCell = this._hasAllDayClass($target);\r\n this._setSelectedCellsStateAndUpdateSelection(isAllDayCell, cellCoordinates, false, $target)\r\n }\r\n }\r\n _handleSelectedCellsClick() {\r\n var selectedCells = this.cellsSelectionState.getSelectedCells();\r\n var firstCellData = selectedCells[0];\r\n var lastCellData = selectedCells[selectedCells.length - 1];\r\n var result = {\r\n startDate: firstCellData.startDate,\r\n endDate: lastCellData.endDate\r\n };\r\n if (void 0 !== lastCellData.allDay) {\r\n result.allDay = lastCellData.allDay\r\n }\r\n this.option(\"onSelectedCellsClick\")(result, lastCellData.groups)\r\n }\r\n _attachContextMenuEvent() {\r\n this._createContextMenuAction();\r\n var cellSelector = \".\".concat(DATE_TABLE_CELL_CLASS, \",.\").concat(ALL_DAY_TABLE_CELL_CLASS);\r\n var $element = this.$element();\r\n var eventName = addNamespace(contextMenuEventName, this.NAME);\r\n eventsEngine.off($element, eventName, cellSelector);\r\n eventsEngine.on($element, eventName, cellSelector, this._contextMenuHandler.bind(this))\r\n }\r\n _contextMenuHandler(e) {\r\n var $cell = $(e.target);\r\n this._contextMenuAction({\r\n event: e,\r\n cellElement: getPublicElement($cell),\r\n cellData: this.getCellData($cell)\r\n });\r\n this._contextMenuHandled = true\r\n }\r\n _createContextMenuAction() {\r\n this._contextMenuAction = this._createActionByOption(\"onCellContextMenu\")\r\n }\r\n _getGroupHeaderContainer() {\r\n if (this._isVerticalGroupedWorkSpace()) {\r\n return this._$groupTable\r\n }\r\n return this._$thead\r\n }\r\n _getDateHeaderContainer() {\r\n return this._$thead\r\n }\r\n _getCalculateHeaderCellRepeatCount() {\r\n return this._groupedStrategy.calculateHeaderCellRepeatCount()\r\n }\r\n _updateScrollable() {\r\n var _a, _b;\r\n this._dateTableScrollable.update();\r\n null === (_a = this._headerScrollable) || void 0 === _a ? void 0 : _a.update();\r\n null === (_b = this._sidebarScrollable) || void 0 === _b ? void 0 : _b.update()\r\n }\r\n _getTimePanelRowCount() {\r\n return this._getCellCountInDay()\r\n }\r\n _getCellCountInDay() {\r\n var hoursInterval = this.option(\"hoursInterval\");\r\n var startDayHour = this.option(\"startDayHour\");\r\n var endDayHour = this.option(\"endDayHour\");\r\n return this.viewDataProvider.getCellCountInDay(startDayHour, endDayHour, hoursInterval)\r\n }\r\n _getTotalCellCount(groupCount) {\r\n return this._groupedStrategy.getTotalCellCount(groupCount)\r\n }\r\n _getTotalRowCount(groupCount, includeAllDayPanelRows) {\r\n var result = this._groupedStrategy.getTotalRowCount(groupCount);\r\n if (includeAllDayPanelRows && this.isAllDayPanelVisible) {\r\n result += groupCount\r\n }\r\n return result\r\n }\r\n _getGroupIndex(rowIndex, columnIndex) {\r\n return this._groupedStrategy.getGroupIndex(rowIndex, columnIndex)\r\n }\r\n calculateEndDate(startDate) {\r\n var {\r\n viewDataGenerator: viewDataGenerator\r\n } = this.viewDataProvider;\r\n return viewDataGenerator.calculateEndDate(startDate, viewDataGenerator.getInterval(this.option(\"hoursInterval\")), this.option(\"endDayHour\"))\r\n }\r\n _getGroupCount() {\r\n return getGroupCount(this.option(\"groups\"))\r\n }\r\n _attachTablesEvents() {\r\n var element = this.$element();\r\n this._attachDragEvents(element);\r\n this._attachPointerEvents(element)\r\n }\r\n _detachDragEvents(element) {\r\n eventsEngine.off(element, DragEventNames.ENTER);\r\n eventsEngine.off(element, DragEventNames.LEAVE);\r\n eventsEngine.off(element, DragEventNames.DROP)\r\n }\r\n _attachDragEvents(element) {\r\n this._detachDragEvents(element);\r\n eventsEngine.on(element, DragEventNames.ENTER, DRAG_AND_DROP_SELECTOR, {\r\n checkDropTarget: (target, event) => !this._isOutsideScrollable(target, event)\r\n }, e => {\r\n if (!this.preventDefaultDragging) {\r\n this.removeDroppableCellClass();\r\n $(e.target).addClass(DATE_TABLE_DROPPABLE_CELL_CLASS)\r\n }\r\n });\r\n eventsEngine.on(element, DragEventNames.LEAVE, () => {\r\n if (!this.preventDefaultDragging) {\r\n this.removeDroppableCellClass()\r\n }\r\n });\r\n eventsEngine.on(element, DragEventNames.DROP, DRAG_AND_DROP_SELECTOR, () => {\r\n var _a, _b;\r\n if (!this.dragBehavior) {\r\n return\r\n }\r\n if (!(null === (_a = this.dragBehavior) || void 0 === _a ? void 0 : _a.dragBetweenComponentsPromise)) {\r\n this.dragBehavior.removeDroppableClasses();\r\n return\r\n }\r\n null === (_b = this.dragBehavior.dragBetweenComponentsPromise) || void 0 === _b ? void 0 : _b.then(() => {\r\n this.dragBehavior.removeDroppableClasses()\r\n })\r\n })\r\n }\r\n _attachPointerEvents(element) {\r\n var isPointerDown = false;\r\n eventsEngine.off(element, SCHEDULER_CELL_DXPOINTERMOVE_EVENT_NAME);\r\n eventsEngine.off(element, SCHEDULER_CELL_DXPOINTERDOWN_EVENT_NAME);\r\n eventsEngine.on(element, SCHEDULER_CELL_DXPOINTERDOWN_EVENT_NAME, DRAG_AND_DROP_SELECTOR, e => {\r\n if (isMouseEvent(e) && 1 === e.which) {\r\n isPointerDown = true;\r\n this.$element().addClass(WORKSPACE_WITH_MOUSE_SELECTION_CLASS);\r\n eventsEngine.off(domAdapter.getDocument(), SCHEDULER_CELL_DXPOINTERUP_EVENT_NAME);\r\n eventsEngine.on(domAdapter.getDocument(), SCHEDULER_CELL_DXPOINTERUP_EVENT_NAME, () => {\r\n isPointerDown = false;\r\n this.$element().removeClass(WORKSPACE_WITH_MOUSE_SELECTION_CLASS)\r\n })\r\n }\r\n });\r\n eventsEngine.on(element, SCHEDULER_CELL_DXPOINTERMOVE_EVENT_NAME, DRAG_AND_DROP_SELECTOR, e => {\r\n if (isPointerDown && this._dateTableScrollable && !this._dateTableScrollable.option(\"scrollByContent\")) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._moveToCell($(e.target), true)\r\n }\r\n })\r\n }\r\n _getFormat() {\r\n return abstract()\r\n }\r\n getWorkArea() {\r\n return this._$dateTableContainer\r\n }\r\n getScrollable() {\r\n return this._dateTableScrollable\r\n }\r\n getScrollableScrollTop() {\r\n return this._dateTableScrollable.scrollTop()\r\n }\r\n getGroupedScrollableScrollTop(allDay) {\r\n return this._groupedStrategy.getScrollableScrollTop(allDay)\r\n }\r\n getScrollableScrollLeft() {\r\n return this._dateTableScrollable.scrollLeft()\r\n }\r\n getScrollableOuterWidth() {\r\n return this._dateTableScrollable.scrollWidth()\r\n }\r\n getScrollableContainer() {\r\n return $(this._dateTableScrollable.container())\r\n }\r\n getHeaderPanelHeight() {\r\n return this._$headerPanel && getOuterHeight(this._$headerPanel, true)\r\n }\r\n getTimePanelWidth() {\r\n return this._$timePanel && getBoundingRect(this._$timePanel.get(0)).width\r\n }\r\n getGroupTableWidth() {\r\n return this._$groupTable ? getOuterWidth(this._$groupTable) : 0\r\n }\r\n getWorkSpaceLeftOffset() {\r\n return this._groupedStrategy.getLeftOffset()\r\n }\r\n _getCellCoordinatesByIndex(index) {\r\n var columnIndex = Math.floor(index / this._getRowCount());\r\n var rowIndex = index - this._getRowCount() * columnIndex;\r\n return {\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex\r\n }\r\n }\r\n _getDateGenerationOptions() {\r\n var _a;\r\n return {\r\n startDayHour: this.option(\"startDayHour\"),\r\n endDayHour: this.option(\"endDayHour\"),\r\n isWorkView: this.viewDataProvider.viewDataGenerator.isWorkView,\r\n interval: null === (_a = this.viewDataProvider.viewDataGenerator) || void 0 === _a ? void 0 : _a.getInterval(this.option(\"hoursInterval\")),\r\n startViewDate: this.getStartViewDate(),\r\n firstDayOfWeek: this._firstDayOfWeek()\r\n }\r\n }\r\n _getIntervalBetween(currentDate, allDay) {\r\n var firstViewDate = this.getStartViewDate();\r\n var startDayTime = this.option(\"startDayHour\") * HOUR_MS;\r\n var timeZoneOffset = dateUtils.getTimezonesDifference(firstViewDate, currentDate);\r\n var fullInterval = currentDate.getTime() - firstViewDate.getTime() - timeZoneOffset;\r\n var days = this._getDaysOfInterval(fullInterval, startDayTime);\r\n var weekendsCount = this._getWeekendsCount(days);\r\n var result = (days - weekendsCount) * DAY_MS;\r\n if (!allDay) {\r\n var {\r\n hiddenInterval: hiddenInterval\r\n } = this.viewDataProvider;\r\n var visibleDayDuration = this.getVisibleDayDuration();\r\n result = fullInterval - days * hiddenInterval - weekendsCount * visibleDayDuration\r\n }\r\n return result\r\n }\r\n _getWeekendsCount(argument) {\r\n return 0\r\n }\r\n _getDaysOfInterval(fullInterval, startDayTime) {\r\n return Math.floor((fullInterval + startDayTime) / DAY_MS)\r\n }\r\n _updateIndex(index) {\r\n return index * this._getRowCount()\r\n }\r\n _getDroppableCell() {\r\n return this._getDateTables().find(\".\".concat(DATE_TABLE_DROPPABLE_CELL_CLASS))\r\n }\r\n _getWorkSpaceWidth() {\r\n return this.cache.get(\"workspaceWidth\", () => {\r\n if (this._needCreateCrossScrolling()) {\r\n return getBoundingRect(this._$dateTable.get(0)).width\r\n }\r\n var totalWidth = getBoundingRect(this.$element().get(0)).width;\r\n var timePanelWidth = this.getTimePanelWidth();\r\n var groupTableWidth = this.getGroupTableWidth();\r\n return totalWidth - timePanelWidth - groupTableWidth\r\n })\r\n }\r\n _getCellByCoordinates(cellCoordinates, groupIndex, inAllDayRow) {\r\n var indexes = this._groupedStrategy.prepareCellIndexes(cellCoordinates, groupIndex, inAllDayRow);\r\n return this._dom_getDateCell(indexes)\r\n }\r\n _dom_getDateCell(position) {\r\n return this._$dateTable.find(\"tr:not(.\".concat(VIRTUAL_ROW_CLASS, \")\")).eq(position.rowIndex).find(\"td:not(.\".concat(VIRTUAL_CELL_CLASS, \")\")).eq(position.columnIndex)\r\n }\r\n _dom_getAllDayPanelCell(columnIndex) {\r\n return this._$allDayPanel.find(\"tr\").eq(0).find(\"td\").eq(columnIndex)\r\n }\r\n _getCells(allDay, direction) {\r\n var cellClass = allDay ? ALL_DAY_TABLE_CELL_CLASS : DATE_TABLE_CELL_CLASS;\r\n if (\"vertical\" === direction) {\r\n var result = [];\r\n for (var i = 1;; i++) {\r\n var cells = this.$element().find(\"tr .\".concat(cellClass, \":nth-child(\").concat(i, \")\"));\r\n if (!cells.length) {\r\n break\r\n }\r\n result = result.concat(cells.toArray())\r\n }\r\n return $(result)\r\n }\r\n return this.$element().find(\".\".concat(cellClass))\r\n }\r\n _getFirstAndLastDataTableCell() {\r\n var selector = this.isVirtualScrolling() ? \".\".concat(DATE_TABLE_CELL_CLASS, \", .\").concat(VIRTUAL_CELL_CLASS) : \".\".concat(DATE_TABLE_CELL_CLASS);\r\n var $cells = this.$element().find(selector);\r\n return [$cells[0], $cells[$cells.length - 1]]\r\n }\r\n _getAllCells(allDay) {\r\n if (this._isVerticalGroupedWorkSpace()) {\r\n return this._$dateTable.find(\"td:not(.\".concat(VIRTUAL_CELL_CLASS, \")\"))\r\n }\r\n var cellClass = allDay && this.supportAllDayRow() ? ALL_DAY_TABLE_CELL_CLASS : DATE_TABLE_CELL_CLASS;\r\n return this.$element().find(\".\".concat(cellClass))\r\n }\r\n _setHorizontalGroupHeaderCellsHeight() {\r\n var {\r\n height: height\r\n } = getBoundingRect(this._$dateTable.get(0));\r\n setOuterHeight(this._$groupTable, height)\r\n }\r\n _getGroupHeaderCells() {\r\n return this.$element().find(\".\".concat(GROUP_HEADER_CLASS))\r\n }\r\n _getScrollCoordinates(hours, minutes, date, groupIndex, allDay) {\r\n var currentDate = date || new Date(this.option(\"currentDate\"));\r\n var startDayHour = this.option(\"startDayHour\");\r\n var endDayHour = this.option(\"endDayHour\");\r\n if (hours < startDayHour) {\r\n hours = startDayHour\r\n }\r\n if (hours >= endDayHour) {\r\n hours = endDayHour - 1\r\n }\r\n currentDate.setHours(hours, minutes, 0, 0);\r\n var cell = this.viewDataProvider.findGlobalCellPosition(currentDate, groupIndex, allDay);\r\n var {\r\n position: position,\r\n cellData: cellData\r\n } = cell;\r\n return this.virtualScrollingDispatcher.calculateCoordinatesByDataAndPosition(cellData, position, currentDate, isDateAndTimeView(this.type), \"vertical\" === this.viewDirection)\r\n }\r\n _isOutsideScrollable(target, event) {\r\n var $dateTableScrollableElement = this._dateTableScrollable.$element();\r\n var scrollableSize = getBoundingRect($dateTableScrollableElement.get(0));\r\n var window = getWindow();\r\n var isTargetInAllDayPanel = !$(target).closest($dateTableScrollableElement).length;\r\n var isOutsideHorizontalScrollable = event.pageX < scrollableSize.left || event.pageX > scrollableSize.left + scrollableSize.width + (window.scrollX || 0);\r\n var isOutsideVerticalScrollable = event.pageY < scrollableSize.top || event.pageY > scrollableSize.top + scrollableSize.height + (window.scrollY || 0);\r\n if (isTargetInAllDayPanel && !isOutsideHorizontalScrollable) {\r\n return false\r\n }\r\n return isOutsideVerticalScrollable || isOutsideHorizontalScrollable\r\n }\r\n setCellDataCache(cellCoordinates, groupIndex, $cell) {\r\n var key = JSON.stringify({\r\n rowIndex: cellCoordinates.rowIndex,\r\n columnIndex: cellCoordinates.columnIndex,\r\n groupIndex: groupIndex\r\n });\r\n this.cache.set(key, this.getCellData($cell))\r\n }\r\n setCellDataCacheAlias(appointment, geometry) {\r\n var key = JSON.stringify({\r\n rowIndex: appointment.rowIndex,\r\n columnIndex: appointment.columnIndex,\r\n groupIndex: appointment.groupIndex\r\n });\r\n var aliasKey = JSON.stringify({\r\n top: geometry.top,\r\n left: geometry.left\r\n });\r\n this.cache.set(aliasKey, this.cache.get(key))\r\n }\r\n supportAllDayRow() {\r\n return true\r\n }\r\n keepOriginalHours() {\r\n return false\r\n }\r\n _filterCellDataFields(cellData) {\r\n return extend(true, {}, {\r\n startDate: cellData.startDate,\r\n endDate: cellData.endDate,\r\n groups: cellData.groups,\r\n groupIndex: cellData.groupIndex,\r\n allDay: cellData.allDay\r\n })\r\n }\r\n getCellData($cell) {\r\n var cellData = this._getFullCellData($cell) || {};\r\n return this._filterCellDataFields(cellData)\r\n }\r\n _getFullCellData($cell) {\r\n var currentCell = $cell[0];\r\n if (currentCell) {\r\n return this._getDataByCell($cell)\r\n }\r\n return\r\n }\r\n _getVirtualRowOffset() {\r\n return this.virtualScrollingDispatcher.virtualRowOffset\r\n }\r\n _getVirtualCellOffset() {\r\n return this.virtualScrollingDispatcher.virtualCellOffset\r\n }\r\n _getDataByCell($cell) {\r\n var rowIndex = $cell.parent().index() - this.virtualScrollingDispatcher.topVirtualRowsCount;\r\n var columnIndex = $cell.index() - this.virtualScrollingDispatcher.leftVirtualCellsCount;\r\n var {\r\n viewDataProvider: viewDataProvider\r\n } = this;\r\n var isAllDayCell = this._hasAllDayClass($cell);\r\n var cellData = viewDataProvider.getCellData(rowIndex, columnIndex, isAllDayCell);\r\n return cellData || void 0\r\n }\r\n isGroupedByDate() {\r\n return this.option(\"groupByDate\") && this._isHorizontalGroupedWorkSpace() && this._getGroupCount() > 0\r\n }\r\n getCellIndexByDate(date, inAllDayRow) {\r\n var {\r\n viewDataGenerator: viewDataGenerator\r\n } = this.viewDataProvider;\r\n var timeInterval = inAllDayRow ? 864e5 : viewDataGenerator.getInterval(this.option(\"hoursInterval\"));\r\n var startViewDateOffset = getStartViewDateTimeOffset(this.getStartViewDate(), this.option(\"startDayHour\"));\r\n var dateTimeStamp = this._getIntervalBetween(date, inAllDayRow) + startViewDateOffset;\r\n var index = Math.floor(dateTimeStamp / timeInterval);\r\n if (inAllDayRow) {\r\n index = this._updateIndex(index)\r\n }\r\n if (index < 0) {\r\n index = 0\r\n }\r\n return index\r\n }\r\n getDroppableCellIndex() {\r\n var $droppableCell = this._getDroppableCell();\r\n var $row = $droppableCell.parent();\r\n var rowIndex = $row.index();\r\n return rowIndex * $row.find(\"td\").length + $droppableCell.index()\r\n }\r\n getDataByDroppableCell() {\r\n var cellData = this.getCellData($(this._getDroppableCell()));\r\n var {\r\n allDay: allDay\r\n } = cellData;\r\n var {\r\n startDate: startDate\r\n } = cellData;\r\n var {\r\n endDate: endDate\r\n } = cellData;\r\n return {\r\n startDate: startDate,\r\n endDate: endDate,\r\n allDay: allDay,\r\n groups: cellData.groups\r\n }\r\n }\r\n getDateRange() {\r\n return [this.getStartViewDate(), this.getEndViewDateByEndDayHour()]\r\n }\r\n getCellMinWidth() {\r\n return DATE_TABLE_MIN_CELL_WIDTH\r\n }\r\n getRoundedCellWidth(groupIndex, startIndex, cellCount) {\r\n if (groupIndex < 0 || !hasWindow()) {\r\n return 0\r\n }\r\n var $row = this.$element().find(\".\".concat(DATE_TABLE_ROW_CLASS)).eq(0);\r\n var width = 0;\r\n var $cells = $row.find(\".\".concat(DATE_TABLE_CELL_CLASS));\r\n var totalCellCount = this._getCellCount() * groupIndex;\r\n cellCount = cellCount || this._getCellCount();\r\n if (!isDefined(startIndex)) {\r\n startIndex = totalCellCount\r\n }\r\n for (var i = startIndex; i < totalCellCount + cellCount; i++) {\r\n var element = $($cells).eq(i).get(0);\r\n var elementWidth = element ? getBoundingRect(element).width : 0;\r\n width += elementWidth\r\n }\r\n return width / (totalCellCount + cellCount - startIndex)\r\n }\r\n getCellWidth() {\r\n return getCellWidth(this.getDOMElementsMetaData())\r\n }\r\n getCellHeight() {\r\n return getCellHeight(this.getDOMElementsMetaData())\r\n }\r\n getAllDayHeight() {\r\n return getAllDayHeight(this.option(\"showAllDayPanel\"), this._isVerticalGroupedWorkSpace(), this.getDOMElementsMetaData())\r\n }\r\n getMaxAllowedPosition(groupIndex) {\r\n return getMaxAllowedPosition(groupIndex, this.viewDataProvider, this.option(\"rtlEnabled\"), this.getDOMElementsMetaData())\r\n }\r\n getAllDayOffset() {\r\n return this._groupedStrategy.getAllDayOffset()\r\n }\r\n getCellIndexByCoordinates(coordinates, allDay) {\r\n var _a, _b, _c;\r\n var {\r\n horizontalScrollingState: horizontalScrollingState,\r\n verticalScrollingState: verticalScrollingState\r\n } = this.virtualScrollingDispatcher;\r\n var cellCount = null !== (_a = null === horizontalScrollingState || void 0 === horizontalScrollingState ? void 0 : horizontalScrollingState.itemCount) && void 0 !== _a ? _a : this._getTotalCellCount(this._getGroupCount());\r\n var cellWidth = this.getCellWidth();\r\n var cellHeight = allDay ? this.getAllDayHeight() : this.getCellHeight();\r\n var leftCoordinateOffset = null !== (_b = null === horizontalScrollingState || void 0 === horizontalScrollingState ? void 0 : horizontalScrollingState.virtualItemSizeBefore) && void 0 !== _b ? _b : 0;\r\n var topCoordinateOffset = null !== (_c = null === verticalScrollingState || void 0 === verticalScrollingState ? void 0 : verticalScrollingState.virtualItemSizeBefore) && void 0 !== _c ? _c : 0;\r\n var topIndex = Math.floor(Math.floor(coordinates.top - topCoordinateOffset) / Math.floor(cellHeight));\r\n var leftIndex = (coordinates.left - leftCoordinateOffset) / cellWidth;\r\n leftIndex = Math.floor(leftIndex + CELL_INDEX_CALCULATION_EPSILON);\r\n if (this._isRTL()) {\r\n leftIndex = cellCount - leftIndex - 1\r\n }\r\n return cellCount * topIndex + leftIndex\r\n }\r\n getStartViewDate() {\r\n return this.viewDataProvider.getStartViewDate()\r\n }\r\n getEndViewDate() {\r\n return this.viewDataProvider.getLastCellEndDate()\r\n }\r\n getEndViewDateByEndDayHour() {\r\n return this.viewDataProvider.getLastViewDateByEndDayHour(this.option(\"endDayHour\"))\r\n }\r\n getCellDuration() {\r\n return getCellDuration(this.type, this.option(\"startDayHour\"), this.option(\"endDayHour\"), this.option(\"hoursInterval\"))\r\n }\r\n getIntervalDuration(allDay) {\r\n return allDay ? toMs(\"day\") : this.getCellDuration()\r\n }\r\n getVisibleDayDuration() {\r\n var startDayHour = this.option(\"startDayHour\");\r\n var endDayHour = this.option(\"endDayHour\");\r\n var hoursInterval = this.option(\"hoursInterval\");\r\n return this.viewDataProvider.getVisibleDayDuration(startDayHour, endDayHour, hoursInterval)\r\n }\r\n getGroupBounds(coordinates) {\r\n var groupBounds = this._groupedStrategy instanceof VerticalGroupedStrategy ? this.getGroupBoundsVertical(coordinates.groupIndex) : this.getGroupBoundsHorizontal(coordinates);\r\n return this._isRTL() ? this.getGroupBoundsRtlCorrection(groupBounds) : groupBounds\r\n }\r\n getGroupBoundsVertical(groupIndex) {\r\n var $firstAndLastCells = this._getFirstAndLastDataTableCell();\r\n return this._groupedStrategy.getGroupBoundsOffset(groupIndex, $firstAndLastCells)\r\n }\r\n getGroupBoundsHorizontal(coordinates) {\r\n var cellCount = this._getCellCount();\r\n var $cells = this._getCells();\r\n var cellWidth = this.getCellWidth();\r\n var {\r\n groupedDataMap: groupedDataMap\r\n } = this.viewDataProvider;\r\n return this._groupedStrategy.getGroupBoundsOffset(cellCount, $cells, cellWidth, coordinates, groupedDataMap)\r\n }\r\n getGroupBoundsRtlCorrection(groupBounds) {\r\n var cellWidth = this.getCellWidth();\r\n return _extends(_extends({}, groupBounds), {\r\n left: groupBounds.right - 2 * cellWidth,\r\n right: groupBounds.left + 2 * cellWidth\r\n })\r\n }\r\n needRecalculateResizableArea() {\r\n return this._isVerticalGroupedWorkSpace() && 0 !== this.getScrollable().scrollTop()\r\n }\r\n getCellDataByCoordinates(coordinates, allDay) {\r\n var key = JSON.stringify({\r\n top: coordinates.top,\r\n left: coordinates.left\r\n });\r\n return this.cache.get(key, () => {\r\n var $cells = this._getCells(allDay);\r\n var cellIndex = this.getCellIndexByCoordinates(coordinates, allDay);\r\n var $cell = $cells.eq(cellIndex);\r\n return this.getCellData($cell)\r\n })\r\n }\r\n getVisibleBounds() {\r\n var result = {};\r\n var $scrollable = this.getScrollable().$element();\r\n var cellHeight = this.getCellHeight();\r\n var scrolledCellCount = this.getScrollableScrollTop() / cellHeight;\r\n var totalCellCount = scrolledCellCount + getHeight($scrollable) / cellHeight;\r\n result.top = {\r\n hours: Math.floor(scrolledCellCount * this.option(\"hoursInterval\")) + this.option(\"startDayHour\"),\r\n minutes: scrolledCellCount % 2 ? 30 : 0\r\n };\r\n result.bottom = {\r\n hours: Math.floor(totalCellCount * this.option(\"hoursInterval\")) + this.option(\"startDayHour\"),\r\n minutes: Math.floor(totalCellCount) % 2 ? 30 : 0\r\n };\r\n return result\r\n }\r\n updateScrollPosition(date, groups) {\r\n var allDay = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : false;\r\n var newDate = this.timeZoneCalculator.createDate(date, {\r\n path: \"toGrid\"\r\n });\r\n var inAllDayRow = allDay && this.isAllDayPanelVisible;\r\n if (this.needUpdateScrollPosition(newDate, groups, inAllDayRow)) {\r\n this.scrollTo(newDate, groups, inAllDayRow, false)\r\n }\r\n }\r\n needUpdateScrollPosition(date, groups, inAllDayRow) {\r\n var cells = this._getCellsInViewport(inAllDayRow);\r\n var groupIndex = this._isGroupsSpecified(groups) ? this._getGroupIndexByResourceId(groups) : 0;\r\n var time = date.getTime();\r\n var trimmedTime = dateUtils.trimTime(date).getTime();\r\n return cells.reduce((currentResult, cell) => {\r\n var {\r\n startDate: cellStartDate,\r\n endDate: cellEndDate,\r\n groupIndex: cellGroupIndex\r\n } = this.getCellData(cell);\r\n var cellStartTime = cellStartDate.getTime();\r\n var cellEndTime = cellEndDate.getTime();\r\n if ((!inAllDayRow && cellStartTime <= time && time < cellEndTime || inAllDayRow && trimmedTime === cellStartTime) && groupIndex === cellGroupIndex) {\r\n return false\r\n }\r\n return currentResult\r\n }, true)\r\n }\r\n _getCellsInViewport(inAllDayRow) {\r\n var $scrollable = this.getScrollable().$element();\r\n var cellHeight = this.getCellHeight();\r\n var cellWidth = this.getCellWidth();\r\n var totalColumnCount = this._getTotalCellCount(this._getGroupCount());\r\n var scrollableScrollTop = this.getScrollableScrollTop();\r\n var scrollableScrollLeft = this.getScrollableScrollLeft();\r\n var fullScrolledRowCount = scrollableScrollTop / cellHeight - this.virtualScrollingDispatcher.topVirtualRowsCount;\r\n var scrolledRowCount = Math.floor(fullScrolledRowCount);\r\n if (scrollableScrollTop % cellHeight !== 0) {\r\n scrolledRowCount += 1\r\n }\r\n var fullScrolledColumnCount = scrollableScrollLeft / cellWidth;\r\n var scrolledColumnCount = Math.floor(fullScrolledColumnCount);\r\n if (scrollableScrollLeft % cellWidth !== 0) {\r\n scrolledColumnCount += 1\r\n }\r\n var rowCount = Math.floor(fullScrolledRowCount + getHeight($scrollable) / cellHeight);\r\n var columnCount = Math.floor(fullScrolledColumnCount + getWidth($scrollable) / cellWidth);\r\n var $cells = this._getAllCells(inAllDayRow);\r\n var result = [];\r\n $cells.each((function(index) {\r\n var $cell = $(this);\r\n var columnIndex = index % totalColumnCount;\r\n var rowIndex = index / totalColumnCount;\r\n if (scrolledColumnCount <= columnIndex && columnIndex < columnCount && scrolledRowCount <= rowIndex && rowIndex < rowCount) {\r\n result.push($cell)\r\n }\r\n }));\r\n return result\r\n }\r\n scrollToTime(hours, minutes, date) {\r\n if (!this._isValidScrollDate(date)) {\r\n return\r\n }\r\n var coordinates = this._getScrollCoordinates(hours, minutes, date);\r\n var scrollable = this.getScrollable();\r\n scrollable.scrollBy({\r\n top: coordinates.top - scrollable.scrollTop(),\r\n left: 0\r\n })\r\n }\r\n scrollTo(date, groups) {\r\n var allDay = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : false;\r\n var throwWarning = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : true;\r\n if (!this._isValidScrollDate(date, throwWarning)) {\r\n return\r\n }\r\n var groupIndex = this._getGroupCount() && groups ? this._getGroupIndexByResourceId(groups) : 0;\r\n var isScrollToAllDay = allDay && this.isAllDayPanelVisible;\r\n var coordinates = this._getScrollCoordinates(date.getHours(), date.getMinutes(), date, groupIndex, isScrollToAllDay);\r\n var scrollable = this.getScrollable();\r\n var $scrollable = scrollable.$element();\r\n var cellWidth = this.getCellWidth();\r\n var offset = this.option(\"rtlEnabled\") ? cellWidth : 0;\r\n var scrollableHeight = getHeight($scrollable);\r\n var scrollableWidth = getWidth($scrollable);\r\n var cellHeight = this.getCellHeight();\r\n var xShift = (scrollableWidth - cellWidth) / 2;\r\n var yShift = (scrollableHeight - cellHeight) / 2;\r\n var left = coordinates.left - scrollable.scrollLeft() - xShift - offset;\r\n var top = coordinates.top - scrollable.scrollTop() - yShift;\r\n if (isScrollToAllDay && !this._isVerticalGroupedWorkSpace()) {\r\n top = 0\r\n }\r\n if (this.option(\"templatesRenderAsynchronously\")) {\r\n setTimeout(() => {\r\n scrollable.scrollBy({\r\n left: left,\r\n top: top\r\n })\r\n })\r\n } else {\r\n scrollable.scrollBy({\r\n left: left,\r\n top: top\r\n })\r\n }\r\n }\r\n _isValidScrollDate(date) {\r\n var throwWarning = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : true;\r\n var min = this.getStartViewDate();\r\n var max = this.getEndViewDate();\r\n if (date < min || date > max) {\r\n throwWarning && errors.log(\"W1008\", date);\r\n return false\r\n }\r\n return true\r\n }\r\n needApplyCollectorOffset() {\r\n return false\r\n }\r\n removeDroppableCellClass($cellElement) {\r\n var $cell = $cellElement || this._getDroppableCell();\r\n null === $cell || void 0 === $cell ? void 0 : $cell.removeClass(DATE_TABLE_DROPPABLE_CELL_CLASS)\r\n }\r\n _getCoordinatesByCell($cell) {\r\n var columnIndex = $cell.index() - this.virtualScrollingDispatcher.leftVirtualCellsCount;\r\n var rowIndex = $cell.parent().index();\r\n var isAllDayCell = this._hasAllDayClass($cell);\r\n var isVerticalGrouping = this._isVerticalGroupedWorkSpace();\r\n if (!(isAllDayCell && !isVerticalGrouping)) {\r\n rowIndex -= this.virtualScrollingDispatcher.topVirtualRowsCount\r\n }\r\n return {\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex\r\n }\r\n }\r\n _isShowAllDayPanel() {\r\n return this.option(\"showAllDayPanel\")\r\n }\r\n _getTimePanelCells() {\r\n return this.$element().find(\".\".concat(TIME_PANEL_CELL_CLASS))\r\n }\r\n _getRDateTableProps() {\r\n return {\r\n viewData: this.viewDataProvider.viewData,\r\n viewContext: this.getR1ComponentsViewContext(),\r\n dataCellTemplate: this.option(\"dataCellTemplate\"),\r\n addDateTableClass: !this.option(\"crossScrollingEnabled\") || this.isVirtualScrolling(),\r\n groupOrientation: this.option(\"groupOrientation\"),\r\n addVerticalSizesClassToRows: false\r\n }\r\n }\r\n getR1ComponentsViewContext() {\r\n return {\r\n view: {\r\n type: this.type\r\n },\r\n crossScrollingEnabled: !!this.option(\"crossScrollingEnabled\")\r\n }\r\n }\r\n _updateSelectedCellDataOption(selectedCellData, $nextFocusedCell) {\r\n var correctedSelectedCellData = selectedCellData.map(_ref3 => {\r\n var {\r\n startDate: startDate,\r\n endDate: endDate,\r\n allDay: allDay,\r\n groupIndex: groupIndex,\r\n groups: groups\r\n } = _ref3;\r\n return {\r\n startDate: startDate,\r\n endDate: endDate,\r\n allDay: allDay,\r\n groupIndex: groupIndex,\r\n groups: groups\r\n }\r\n });\r\n this.option(\"selectedCellData\", correctedSelectedCellData);\r\n this._selectionChangedAction({\r\n selectedCellData: correctedSelectedCellData\r\n })\r\n }\r\n _getCellByData(cellData) {\r\n var {\r\n startDate: startDate,\r\n groupIndex: groupIndex,\r\n allDay: allDay,\r\n index: index\r\n } = cellData;\r\n var position = this.viewDataProvider.findCellPositionInMap({\r\n startDate: startDate,\r\n groupIndex: groupIndex,\r\n isAllDay: allDay,\r\n index: index\r\n });\r\n if (!position) {\r\n return\r\n }\r\n return allDay && !this._isVerticalGroupedWorkSpace() ? this._dom_getAllDayPanelCell(position.columnIndex) : this._dom_getDateCell(position)\r\n }\r\n getDOMElementsMetaData() {\r\n return this.cache.get(\"cellElementsMeta\", () => ({\r\n dateTableCellsMeta: this._getDateTableDOMElementsInfo(),\r\n allDayPanelCellsMeta: this._getAllDayPanelDOMElementsInfo()\r\n }))\r\n }\r\n _getDateTableDOMElementsInfo() {\r\n var dateTableCells = this._getAllCells(false);\r\n if (!dateTableCells.length || !hasWindow()) {\r\n return [\r\n [{}]\r\n ]\r\n }\r\n var dateTable = this._getDateTable();\r\n var dateTableRect = getBoundingRect(dateTable.get(0));\r\n var columnsCount = this.viewDataProvider.getColumnsCount();\r\n var result = [];\r\n dateTableCells.each((index, cell) => {\r\n var rowIndex = Math.floor(index / columnsCount);\r\n if (result.length === rowIndex) {\r\n result.push([])\r\n }\r\n this._addCellMetaData(result[rowIndex], cell, dateTableRect)\r\n });\r\n return result\r\n }\r\n _getAllDayPanelDOMElementsInfo() {\r\n var result = [];\r\n if (this.isAllDayPanelVisible && !this._isVerticalGroupedWorkSpace() && hasWindow()) {\r\n var allDayCells = this._getAllCells(true);\r\n if (!allDayCells.length) {\r\n return [{}]\r\n }\r\n var allDayAppointmentContainer = this._$allDayPanel;\r\n var allDayPanelRect = getBoundingRect(allDayAppointmentContainer.get(0));\r\n allDayCells.each((_, cell) => {\r\n this._addCellMetaData(result, cell, allDayPanelRect)\r\n })\r\n }\r\n return result\r\n }\r\n _addCellMetaData(cellMetaDataArray, cell, parentRect) {\r\n var cellRect = getBoundingRect(cell);\r\n cellMetaDataArray.push({\r\n left: cellRect.left - parentRect.left,\r\n top: cellRect.top - parentRect.top,\r\n width: cellRect.width,\r\n height: cellRect.height\r\n })\r\n }\r\n _oldRender_getAllDayCellData(groupIndex) {\r\n return (cell, rowIndex, columnIndex) => {\r\n var validColumnIndex = columnIndex % this._getCellCount();\r\n var options = this._getDateGenerationOptions(true);\r\n var startDate = this.viewDataProvider.viewDataGenerator.getDateByCellIndices(options, rowIndex, validColumnIndex, this._getCellCountInDay());\r\n startDate = dateUtils.trimTime(startDate);\r\n var validGroupIndex = groupIndex || 0;\r\n if (this.isGroupedByDate()) {\r\n validGroupIndex = Math.floor(columnIndex % this._getGroupCount())\r\n } else if (this._isHorizontalGroupedWorkSpace()) {\r\n validGroupIndex = Math.floor(columnIndex / this._getCellCount())\r\n }\r\n var data = {\r\n startDate: startDate,\r\n endDate: startDate,\r\n allDay: true,\r\n groupIndex: validGroupIndex\r\n };\r\n var groupsArray = getCellGroups(validGroupIndex, this.option(\"groups\"));\r\n if (groupsArray.length) {\r\n data.groups = getGroupsObjectFromGroupsArray(groupsArray)\r\n }\r\n return {\r\n key: CELL_DATA,\r\n value: data\r\n }\r\n }\r\n }\r\n renderRWorkSpace() {\r\n var {\r\n header: header,\r\n timePanel: timePanel,\r\n dateTable: dateTable,\r\n allDayPanel: allDayPanel\r\n } = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : DEFAULT_WORKSPACE_RENDER_OPTIONS.renderComponents;\r\n if (header) {\r\n this.renderRHeaderPanel()\r\n }\r\n if (timePanel) {\r\n this.renderRTimeTable()\r\n }\r\n if (dateTable) {\r\n this.renderRDateTable()\r\n }\r\n if (allDayPanel) {\r\n this.renderRAllDayPanel()\r\n }\r\n }\r\n renderRDateTable() {\r\n utils.renovation.renderComponent(this, this._$dateTable, DateTableComponent, \"renovatedDateTable\", this._getRDateTableProps())\r\n }\r\n renderRGroupPanel() {\r\n var _a;\r\n var options = {\r\n viewContext: this.getR1ComponentsViewContext(),\r\n groups: this.option(\"groups\"),\r\n groupOrientation: this.option(\"groupOrientation\"),\r\n groupByDate: this.isGroupedByDate(),\r\n resourceCellTemplate: this.option(\"resourceCellTemplate\"),\r\n className: this.verticalGroupTableClass,\r\n groupPanelData: this.viewDataProvider.getGroupPanelData(this.generateRenderOptions())\r\n };\r\n if (null === (_a = this.option(\"groups\")) || void 0 === _a ? void 0 : _a.length) {\r\n this._attachGroupCountClass();\r\n utils.renovation.renderComponent(this, this._getGroupHeaderContainer(), GroupPanelComponent, \"renovatedGroupPanel\", options)\r\n } else {\r\n this._detachGroupCountClass()\r\n }\r\n }\r\n renderRAllDayPanel() {\r\n var _a;\r\n var visible = this.isAllDayPanelVisible && !this.isGroupedAllDayPanel();\r\n if (visible) {\r\n this._toggleAllDayVisibility(false);\r\n var options = _extends({\r\n viewData: this.viewDataProvider.viewData,\r\n viewContext: this.getR1ComponentsViewContext(),\r\n dataCellTemplate: this.option(\"dataCellTemplate\"),\r\n startCellIndex: 0\r\n }, (null === (_a = this.virtualScrollingDispatcher.horizontalVirtualScrolling) || void 0 === _a ? void 0 : _a.getRenderState()) || {});\r\n utils.renovation.renderComponent(this, this._$allDayTable, AllDayTableComponent, \"renovatedAllDayPanel\", options);\r\n utils.renovation.renderComponent(this, this._$allDayTitle, AllDayPanelTitleComponent, \"renovatedAllDayPanelTitle\", {})\r\n }\r\n this._toggleAllDayVisibility(true)\r\n }\r\n renderRTimeTable() {\r\n utils.renovation.renderComponent(this, this._$timePanel, TimePanelComponent, \"renovatedTimePanel\", {\r\n viewContext: this.getR1ComponentsViewContext(),\r\n timePanelData: this.viewDataProvider.timePanelData,\r\n timeCellTemplate: this.option(\"timeCellTemplate\"),\r\n groupOrientation: this.option(\"groupOrientation\")\r\n })\r\n }\r\n renderRHeaderPanel() {\r\n var isRenderDateHeader = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : true;\r\n var _a;\r\n if (null === (_a = this.option(\"groups\")) || void 0 === _a ? void 0 : _a.length) {\r\n this._attachGroupCountClass()\r\n } else {\r\n this._detachGroupCountClass()\r\n }\r\n utils.renovation.renderComponent(this, this._$thead, this.renovatedHeaderPanelComponent, \"renovatedHeaderPanel\", {\r\n viewContext: this.getR1ComponentsViewContext(),\r\n dateHeaderData: this.viewDataProvider.dateHeaderData,\r\n groupPanelData: this.viewDataProvider.getGroupPanelData(this.generateRenderOptions()),\r\n dateCellTemplate: this.option(\"dateCellTemplate\"),\r\n timeCellTemplate: this.option(\"timeCellTemplate\"),\r\n groups: this.option(\"groups\"),\r\n groupByDate: this.isGroupedByDate(),\r\n groupOrientation: this.option(\"groupOrientation\"),\r\n resourceCellTemplate: this.option(\"resourceCellTemplate\"),\r\n isRenderDateHeader: isRenderDateHeader\r\n })\r\n }\r\n initDragBehavior(scheduler) {\r\n if (!this.dragBehavior && scheduler) {\r\n this.dragBehavior = new AppointmentDragBehavior(scheduler);\r\n var $rootElement = $(scheduler.element());\r\n this._createDragBehavior(this.getWorkArea(), $rootElement);\r\n if (!this._isVerticalGroupedWorkSpace()) {\r\n this._createDragBehavior(this._$allDayPanel, $rootElement)\r\n }\r\n }\r\n }\r\n _createDragBehavior($targetElement, $rootElement) {\r\n var options = {\r\n getItemData: (itemElement, appointments) => appointments._getItemData(itemElement),\r\n getItemSettings: $itemElement => $itemElement.data(APPOINTMENT_SETTINGS_KEY)\r\n };\r\n this._createDragBehaviorBase($targetElement, $rootElement, options)\r\n }\r\n _createDragBehaviorBase(targetElement, rootElement, options) {\r\n var container = this.$element().find(\".\".concat(FIXED_CONTAINER_CLASS));\r\n this.dragBehavior.addTo(targetElement, createDragBehaviorConfig(container, rootElement, this.isDefaultDraggingMode, this.dragBehavior, () => {\r\n if (!this.isDefaultDraggingMode) {\r\n this.preventDefaultDragging = false\r\n }\r\n }, () => {\r\n if (!this.isDefaultDraggingMode) {\r\n this.preventDefaultDragging = true\r\n }\r\n }, () => this._getDroppableCell(), () => this._getDateTables(), () => this.removeDroppableCellClass(), () => this.getCellWidth(), options))\r\n }\r\n _isRenderHeaderPanelEmptyCell() {\r\n return this._isVerticalGroupedWorkSpace()\r\n }\r\n _dispose() {\r\n super._dispose();\r\n this.virtualScrollingDispatcher.dispose()\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n currentDate: new Date,\r\n intervalCount: 1,\r\n startDate: null,\r\n firstDayOfWeek: void 0,\r\n startDayHour: 0,\r\n endDayHour: 24,\r\n viewOffset: 0,\r\n hoursInterval: .5,\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true,\r\n groups: [],\r\n showAllDayPanel: true,\r\n allDayExpanded: false,\r\n onCellClick: null,\r\n crossScrollingEnabled: false,\r\n dataCellTemplate: null,\r\n timeCellTemplate: null,\r\n resourceCellTemplate: null,\r\n dateCellTemplate: null,\r\n allowMultipleCellSelection: true,\r\n indicatorTime: new Date,\r\n indicatorUpdateInterval: 5 * toMs(\"minute\"),\r\n shadeUntilCurrentTime: true,\r\n groupOrientation: \"horizontal\",\r\n selectedCellData: [],\r\n groupByDate: false,\r\n scrolling: {\r\n mode: \"standard\"\r\n },\r\n allDayPanelMode: \"all\",\r\n renovateRender: true,\r\n height: void 0,\r\n draggingMode: \"outlook\",\r\n onScrollEnd: () => {},\r\n getHeaderHeight: void 0,\r\n onRenderAppointments: () => {},\r\n onShowAllDayPanel: () => {},\r\n onSelectedCellsClick: () => {},\r\n timeZoneCalculator: void 0,\r\n schedulerHeight: void 0,\r\n schedulerWidth: void 0\r\n })\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"startDayHour\":\r\n case \"endDayHour\":\r\n case \"viewOffset\":\r\n case \"dateCellTemplate\":\r\n case \"resourceCellTemplate\":\r\n case \"dataCellTemplate\":\r\n case \"timeCellTemplate\":\r\n case \"hoursInterval\":\r\n case \"firstDayOfWeek\":\r\n case \"currentDate\":\r\n case \"startDate\":\r\n this._cleanWorkSpace();\r\n break;\r\n case \"groups\":\r\n this._cleanView();\r\n this._removeAllDayElements();\r\n this._initGrouping();\r\n this.repaint();\r\n break;\r\n case \"groupOrientation\":\r\n this._initGroupedStrategy();\r\n this._createAllDayPanelElements();\r\n this._removeAllDayElements();\r\n this._cleanWorkSpace();\r\n this._toggleGroupByDateClass();\r\n break;\r\n case \"showAllDayPanel\":\r\n if (this._isVerticalGroupedWorkSpace()) {\r\n this._cleanView();\r\n this._removeAllDayElements();\r\n this._initGrouping();\r\n this.repaint()\r\n } else if (!this.isRenovatedRender()) {\r\n this._toggleAllDayVisibility(true)\r\n } else {\r\n this.renderWorkSpace()\r\n }\r\n break;\r\n case \"allDayExpanded\":\r\n this._changeAllDayVisibility();\r\n this._attachTablesEvents();\r\n this._updateScrollable();\r\n break;\r\n case \"onSelectionChanged\":\r\n this._createSelectionChangedAction();\r\n break;\r\n case \"onCellClick\":\r\n this._createCellClickAction();\r\n break;\r\n case \"onCellContextMenu\":\r\n this._attachContextMenuEvent();\r\n break;\r\n case \"intervalCount\":\r\n this._cleanWorkSpace();\r\n this._toggleWorkSpaceCountClass();\r\n break;\r\n case \"groupByDate\":\r\n this._cleanWorkSpace();\r\n this._toggleGroupByDateClass();\r\n break;\r\n case \"crossScrollingEnabled\":\r\n this._toggleHorizontalScrollClass();\r\n this._dateTableScrollable.option(this._dateTableScrollableConfig());\r\n break;\r\n case \"allDayPanelMode\":\r\n this.updateShowAllDayPanel();\r\n this.updateAppointments();\r\n break;\r\n case \"width\":\r\n super._optionChanged(args);\r\n this._dimensionChanged();\r\n break;\r\n case \"timeZoneCalculator\":\r\n case \"allowMultipleCellSelection\":\r\n case \"selectedCellData\":\r\n break;\r\n case \"renovateRender\":\r\n case \"scrolling\":\r\n this.repaint();\r\n break;\r\n case \"schedulerHeight\":\r\n case \"schedulerWidth\":\r\n this.virtualScrollingDispatcher.updateDimensions(true);\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n updateShowAllDayPanel() {\r\n var isHiddenAllDayPanel = \"hidden\" === this.option(\"allDayPanelMode\");\r\n this.option(\"onShowAllDayPanel\")(!isHiddenAllDayPanel)\r\n }\r\n _getVirtualScrollingDispatcherOptions() {\r\n return {\r\n getCellHeight: this.getCellHeight.bind(this),\r\n getCellWidth: this.getCellWidth.bind(this),\r\n getCellMinWidth: this.getCellMinWidth.bind(this),\r\n isRTL: this._isRTL.bind(this),\r\n getSchedulerHeight: () => this.option(\"schedulerHeight\"),\r\n getSchedulerWidth: () => this.option(\"schedulerWidth\"),\r\n getViewHeight: () => this.$element().height ? this.$element().height() : getHeight(this.$element()),\r\n getViewWidth: () => this.$element().width ? this.$element().width() : getWidth(this.$element()),\r\n getWindowHeight: () => getWindow().innerHeight,\r\n getWindowWidth: () => getWindow().innerWidth,\r\n getScrolling: () => this.option(\"scrolling\"),\r\n getScrollableOuterWidth: this.getScrollableOuterWidth.bind(this),\r\n getScrollable: this.getScrollable.bind(this),\r\n createAction: this._createAction.bind(this),\r\n updateRender: this.updateRender.bind(this),\r\n updateGrid: this.updateGrid.bind(this),\r\n getGroupCount: this._getGroupCount.bind(this),\r\n isVerticalGrouping: this._isVerticalGroupedWorkSpace.bind(this),\r\n getTotalRowCount: this._getTotalRowCount.bind(this),\r\n getTotalCellCount: this._getTotalCellCount.bind(this)\r\n }\r\n }\r\n _cleanWorkSpace() {\r\n this._cleanView();\r\n this._toggleGroupedClass();\r\n this._toggleWorkSpaceWithOddCells();\r\n this.virtualScrollingDispatcher.updateDimensions(true);\r\n this._renderView();\r\n this.option(\"crossScrollingEnabled\") && this._setTableSizes();\r\n this.cache.clear()\r\n }\r\n _init() {\r\n this._scrollSync = {};\r\n this._viewDataProvider = null;\r\n this._cellsSelectionState = null;\r\n this._activeStateUnit = CELL_SELECTOR;\r\n super._init();\r\n this._initGrouping();\r\n this._toggleHorizontalScrollClass();\r\n this._toggleWorkSpaceCountClass();\r\n this._toggleGroupByDateClass();\r\n this._toggleWorkSpaceWithOddCells();\r\n this.$element().addClass(COMPONENT_CLASS).addClass(this._getElementClass())\r\n }\r\n _initPositionHelper() {\r\n this.positionHelper = new PositionHelper({\r\n key: this.option(\"key\"),\r\n viewDataProvider: this.viewDataProvider,\r\n viewStartDayHour: this.option(\"startDayHour\"),\r\n viewEndDayHour: this.option(\"endDayHour\"),\r\n cellDuration: this.getCellDuration(),\r\n groupedStrategy: this._groupedStrategy,\r\n isGroupedByDate: this.isGroupedByDate(),\r\n rtlEnabled: this.option(\"rtlEnabled\"),\r\n startViewDate: this.getStartViewDate(),\r\n isVerticalGrouping: this._isVerticalGroupedWorkSpace(),\r\n groupCount: this._getGroupCount(),\r\n isVirtualScrolling: this.isVirtualScrolling(),\r\n getDOMMetaDataCallback: this.getDOMElementsMetaData.bind(this)\r\n })\r\n }\r\n _initGrouping() {\r\n this._initGroupedStrategy();\r\n this._toggleGroupingDirectionClass();\r\n this._toggleGroupByDateClass()\r\n }\r\n isVerticalOrientation() {\r\n var _a;\r\n var orientation = (null === (_a = this.option(\"groups\")) || void 0 === _a ? void 0 : _a.length) ? this.option(\"groupOrientation\") : this._getDefaultGroupStrategy();\r\n return \"vertical\" === orientation\r\n }\r\n _initGroupedStrategy() {\r\n var Strategy = this.isVerticalOrientation() ? VerticalGroupedStrategy : HorizontalGroupedStrategy;\r\n this._groupedStrategy = new Strategy(this)\r\n }\r\n _getDefaultGroupStrategy() {\r\n return \"horizontal\"\r\n }\r\n _toggleHorizontalScrollClass() {\r\n this.$element().toggleClass(WORKSPACE_WITH_BOTH_SCROLLS_CLASS, this.option(\"crossScrollingEnabled\"))\r\n }\r\n _toggleGroupByDateClass() {\r\n this.$element().toggleClass(WORKSPACE_WITH_GROUP_BY_DATE_CLASS, this.isGroupedByDate())\r\n }\r\n _toggleWorkSpaceCountClass() {\r\n this.$element().toggleClass(WORKSPACE_WITH_COUNT_CLASS, this._isWorkSpaceWithCount())\r\n }\r\n _toggleWorkSpaceWithOddCells() {\r\n this.$element().toggleClass(WORKSPACE_WITH_ODD_CELLS_CLASS, this._isWorkspaceWithOddCells())\r\n }\r\n _toggleGroupingDirectionClass() {\r\n this.$element().toggleClass(VERTICAL_GROUPED_WORKSPACE_CLASS, this._isVerticalGroupedWorkSpace())\r\n }\r\n _getDateTableCellClass(rowIndex, columnIndex) {\r\n var cellClass = \"\".concat(DATE_TABLE_CELL_CLASS, \" \").concat(HORIZONTAL_SIZES_CLASS, \" \").concat(VERTICAL_SIZES_CLASS);\r\n return this._groupedStrategy.addAdditionalGroupCellClasses(cellClass, columnIndex + 1, rowIndex, columnIndex)\r\n }\r\n _getGroupHeaderClass(i) {\r\n var cellClass = GROUP_HEADER_CLASS;\r\n return this._groupedStrategy.addAdditionalGroupCellClasses(cellClass, i + 1)\r\n }\r\n _initWorkSpaceUnits() {\r\n this._$headerPanelContainer = $(\"<div>\").addClass(\"dx-scheduler-header-panel-container\");\r\n this._$headerTablesContainer = $(\"<div>\").addClass(\"dx-scheduler-header-tables-container\");\r\n this._$headerPanel = $(\"<table>\");\r\n this._$thead = $(\"<thead>\").appendTo(this._$headerPanel);\r\n this._$headerPanelEmptyCell = $(\"<div>\").addClass(\"dx-scheduler-header-panel-empty-cell\");\r\n this._$allDayTable = $(\"<table>\");\r\n this._$fixedContainer = $(\"<div>\").addClass(FIXED_CONTAINER_CLASS);\r\n this._$allDayContainer = $(\"<div>\").addClass(ALL_DAY_CONTAINER_CLASS);\r\n this._$dateTableScrollableContent = $(\"<div>\").addClass(\"dx-scheduler-date-table-scrollable-content\");\r\n this._$sidebarScrollableContent = $(\"<div>\").addClass(\"dx-scheduler-side-bar-scrollable-content\");\r\n this._initAllDayPanelElements();\r\n if (this.isRenovatedRender()) {\r\n this.createRAllDayPanelElements()\r\n } else {\r\n this._createAllDayPanelElements()\r\n }\r\n this._$timePanel = $(\"<table>\").addClass(TIME_PANEL_CLASS);\r\n this._$dateTable = $(\"<table>\");\r\n this._$dateTableContainer = $(\"<div>\").addClass(\"dx-scheduler-date-table-container\");\r\n this._$groupTable = $(\"<div>\").addClass(WORKSPACE_VERTICAL_GROUP_TABLE_CLASS)\r\n }\r\n _initAllDayPanelElements() {\r\n this._allDayTitles = [];\r\n this._allDayTables = [];\r\n this._allDayPanels = []\r\n }\r\n _initDateTableScrollable() {\r\n var $dateTableScrollable = $(\"<div>\").addClass(SCHEDULER_DATE_TABLE_SCROLLABLE_CLASS);\r\n this._dateTableScrollable = this._createComponent($dateTableScrollable, Scrollable, this._dateTableScrollableConfig());\r\n this._scrollSync.dateTable = getMemoizeScrollTo(() => this._dateTableScrollable)\r\n }\r\n _createWorkSpaceElements() {\r\n if (this.option(\"crossScrollingEnabled\")) {\r\n this._createWorkSpaceScrollableElements()\r\n } else {\r\n this._createWorkSpaceStaticElements()\r\n }\r\n }\r\n _createWorkSpaceStaticElements() {\r\n var _a;\r\n this._$dateTableContainer.append(this._$dateTable);\r\n if (this._isVerticalGroupedWorkSpace()) {\r\n this._$dateTableContainer.append(this._$allDayContainer);\r\n this._$dateTableScrollableContent.append(this._$groupTable, this._$timePanel, this._$dateTableContainer);\r\n this._dateTableScrollable.$content().append(this._$dateTableScrollableContent);\r\n this._$headerTablesContainer.append(this._$headerPanel)\r\n } else {\r\n this._$dateTableScrollableContent.append(this._$timePanel, this._$dateTableContainer);\r\n this._dateTableScrollable.$content().append(this._$dateTableScrollableContent);\r\n this._$headerTablesContainer.append(this._$headerPanel, this._$allDayPanel);\r\n null === (_a = this._$allDayPanel) || void 0 === _a ? void 0 : _a.append(this._$allDayContainer, this._$allDayTable)\r\n }\r\n this._appendHeaderPanelEmptyCellIfNecessary();\r\n this._$headerPanelContainer.append(this._$headerTablesContainer);\r\n this.$element().append(this._$fixedContainer, this._$headerPanelContainer, this._dateTableScrollable.$element())\r\n }\r\n _createWorkSpaceScrollableElements() {\r\n var _a;\r\n this.$element().append(this._$fixedContainer);\r\n this._$flexContainer = $(\"<div>\").addClass(\"dx-scheduler-work-space-flex-container\");\r\n this._createHeaderScrollable();\r\n this._headerScrollable.$content().append(this._$headerPanel);\r\n this._appendHeaderPanelEmptyCellIfNecessary();\r\n this._$headerPanelContainer.append(this._$headerTablesContainer);\r\n this.$element().append(this._$headerPanelContainer);\r\n this.$element().append(this._$flexContainer);\r\n this._createSidebarScrollable();\r\n this._$flexContainer.append(this._dateTableScrollable.$element());\r\n this._$dateTableContainer.append(this._$dateTable);\r\n this._$dateTableScrollableContent.append(this._$dateTableContainer);\r\n this._dateTableScrollable.$content().append(this._$dateTableScrollableContent);\r\n if (this._isVerticalGroupedWorkSpace()) {\r\n this._$dateTableContainer.append(this._$allDayContainer);\r\n this._$sidebarScrollableContent.append(this._$groupTable, this._$timePanel)\r\n } else {\r\n this._headerScrollable.$content().append(this._$allDayPanel);\r\n null === (_a = this._$allDayPanel) || void 0 === _a ? void 0 : _a.append(this._$allDayContainer, this._$allDayTable);\r\n this._$sidebarScrollableContent.append(this._$timePanel)\r\n }\r\n this._sidebarScrollable.$content().append(this._$sidebarScrollableContent)\r\n }\r\n _appendHeaderPanelEmptyCellIfNecessary() {\r\n this._isRenderHeaderPanelEmptyCell() && this._$headerPanelContainer.append(this._$headerPanelEmptyCell)\r\n }\r\n _createHeaderScrollable() {\r\n var $headerScrollable = $(\"<div>\").addClass(SCHEDULER_HEADER_SCROLLABLE_CLASS).appendTo(this._$headerTablesContainer);\r\n this._headerScrollable = this._createComponent($headerScrollable, Scrollable, this._headerScrollableConfig());\r\n this._scrollSync.header = getMemoizeScrollTo(() => this._headerScrollable)\r\n }\r\n _createSidebarScrollable() {\r\n var $timePanelScrollable = $(\"<div>\").addClass(SCHEDULER_SIDEBAR_SCROLLABLE_CLASS).appendTo(this._$flexContainer);\r\n this._sidebarScrollable = this._createComponent($timePanelScrollable, Scrollable, {\r\n useKeyboard: false,\r\n showScrollbar: \"never\",\r\n direction: \"vertical\",\r\n useNative: false,\r\n updateManually: true,\r\n bounceEnabled: false,\r\n onScroll: event => {\r\n this._scrollSync.dateTable({\r\n top: event.scrollOffset.top\r\n })\r\n }\r\n });\r\n this._scrollSync.sidebar = getMemoizeScrollTo(() => this._sidebarScrollable)\r\n }\r\n _attachTableClasses() {\r\n this._addTableClass(this._$dateTable, DATE_TABLE_CLASS);\r\n if (this._isVerticalGroupedWorkSpace()) {\r\n var groupCount = this._getGroupCount();\r\n for (var i = 0; i < groupCount; i++) {\r\n this._addTableClass(this._allDayTables[i], ALL_DAY_TABLE_CLASS)\r\n }\r\n } else if (!this.isRenovatedRender()) {\r\n this._addTableClass(this._$allDayTable, ALL_DAY_TABLE_CLASS)\r\n }\r\n }\r\n _attachHeaderTableClasses() {\r\n this._addTableClass(this._$headerPanel, HEADER_PANEL_CLASS)\r\n }\r\n _addTableClass($el, className) {\r\n $el && !$el.hasClass(className) && $el.addClass(className)\r\n }\r\n _initMarkup() {\r\n this.cache.clear();\r\n this._initWorkSpaceUnits();\r\n this._initVirtualScrolling();\r\n this._initDateTableScrollable();\r\n this._createWorkSpaceElements();\r\n super._initMarkup();\r\n if (!this.option(\"crossScrollingEnabled\")) {\r\n this._attachTableClasses();\r\n this._attachHeaderTableClasses()\r\n }\r\n this._toggleGroupedClass();\r\n this._renderView();\r\n this._attachEvents()\r\n }\r\n _render() {\r\n super._render();\r\n this._renderDateTimeIndication();\r\n this._setIndicationUpdateInterval()\r\n }\r\n _toggleGroupedClass() {\r\n this.$element().toggleClass(GROUPED_WORKSPACE_CLASS, this._getGroupCount() > 0)\r\n }\r\n _renderView() {\r\n if (this.isRenovatedRender()) {\r\n if (this._isVerticalGroupedWorkSpace()) {\r\n this.renderRGroupPanel()\r\n }\r\n } else {\r\n this._applyCellTemplates(this._renderGroupHeader())\r\n }\r\n this.renderWorkSpace();\r\n if (this.isRenovatedRender()) {\r\n this.virtualScrollingDispatcher.updateDimensions()\r\n }\r\n this._updateGroupTableHeight();\r\n this.updateHeaderEmptyCellWidth();\r\n this._shader = new VerticalShader(this)\r\n }\r\n updateCellsSelection() {\r\n var renderOptions = this.generateRenderOptions();\r\n this.viewDataProvider.updateViewData(renderOptions);\r\n this.renderRWorkSpace({\r\n timePanel: true,\r\n dateTable: true,\r\n allDayPanel: true\r\n })\r\n }\r\n _renderDateTimeIndication() {\r\n return noop()\r\n }\r\n renderCurrentDateTimeLineAndShader() {\r\n return noop()\r\n }\r\n renderCurrentDateTimeIndication() {\r\n return noop()\r\n }\r\n _setIndicationUpdateInterval() {\r\n return noop()\r\n }\r\n _detachGroupCountClass() {\r\n [...VERTICAL_GROUP_COUNT_CLASSES].forEach(className => {\r\n this.$element().removeClass(className)\r\n })\r\n }\r\n _attachGroupCountClass() {\r\n var className = this._groupedStrategy.getGroupCountClass(this.option(\"groups\"));\r\n this.$element().addClass(className)\r\n }\r\n _getDateHeaderTemplate() {\r\n return this.option(\"dateCellTemplate\")\r\n }\r\n _toggleAllDayVisibility(isUpdateScrollable) {\r\n var showAllDayPanel = this._isShowAllDayPanel();\r\n this.$element().toggleClass(WORKSPACE_WITH_ALL_DAY_CLASS, showAllDayPanel);\r\n this._changeAllDayVisibility();\r\n isUpdateScrollable && this._updateScrollable()\r\n }\r\n _changeAllDayVisibility() {\r\n this.cache.clear();\r\n this.$element().toggleClass(WORKSPACE_WITH_COLLAPSED_ALL_DAY_CLASS, !this.option(\"allDayExpanded\") && this._isShowAllDayPanel())\r\n }\r\n _getDateTables() {\r\n return this._$dateTable.add(this._$allDayTable)\r\n }\r\n _getDateTable() {\r\n return this._$dateTable\r\n }\r\n _removeAllDayElements() {\r\n this._$allDayTable && this._$allDayTable.remove();\r\n this._$allDayTitle && this._$allDayTitle.remove()\r\n }\r\n _cleanView() {\r\n var _a, _b, _c;\r\n this.cache.clear();\r\n this._cleanTableWidths();\r\n this.cellsSelectionState.clearSelectedAndFocusedCells();\r\n if (!this.isRenovatedRender()) {\r\n this._$thead.empty();\r\n this._$dateTable.empty();\r\n this._$timePanel.empty();\r\n this._$groupTable.empty();\r\n null === (_a = this._$allDayTable) || void 0 === _a ? void 0 : _a.empty();\r\n null === (_b = this._$sidebarTable) || void 0 === _b ? void 0 : _b.empty()\r\n }\r\n null === (_c = this._shader) || void 0 === _c ? void 0 : _c.clean();\r\n delete this._interval\r\n }\r\n _clean() {\r\n eventsEngine.off(domAdapter.getDocument(), SCHEDULER_CELL_DXPOINTERUP_EVENT_NAME);\r\n this._disposeRenovatedComponents();\r\n super._clean()\r\n }\r\n _cleanTableWidths() {\r\n this._$headerPanel.css(\"width\", \"\");\r\n this._$dateTable.css(\"width\", \"\");\r\n this._$allDayTable && this._$allDayTable.css(\"width\", \"\")\r\n }\r\n _disposeRenovatedComponents() {\r\n var _a, _b, _c, _d, _e;\r\n null === (_a = this.renovatedAllDayPanel) || void 0 === _a ? void 0 : _a.dispose();\r\n this.renovatedAllDayPanel = void 0;\r\n null === (_b = this.renovatedDateTable) || void 0 === _b ? void 0 : _b.dispose();\r\n this.renovatedDateTable = void 0;\r\n null === (_c = this.renovatedTimePanel) || void 0 === _c ? void 0 : _c.dispose();\r\n this.renovatedTimePanel = void 0;\r\n null === (_d = this.renovatedGroupPanel) || void 0 === _d ? void 0 : _d.dispose();\r\n this.renovatedGroupPanel = void 0;\r\n null === (_e = this.renovatedHeaderPanel) || void 0 === _e ? void 0 : _e.dispose();\r\n this.renovatedHeaderPanel = void 0\r\n }\r\n getGroupedStrategy() {\r\n return this._groupedStrategy\r\n }\r\n getFixedContainer() {\r\n return this._$fixedContainer\r\n }\r\n getAllDayContainer() {\r\n return this._$allDayContainer\r\n }\r\n updateRender() {\r\n this.renderer.updateRender()\r\n }\r\n updateGrid() {\r\n this.renderer._renderGrid()\r\n }\r\n updateAppointments() {\r\n var _a;\r\n this.option(\"onRenderAppointments\")();\r\n null === (_a = this.dragBehavior) || void 0 === _a ? void 0 : _a.updateDragSource()\r\n }\r\n _createAllDayPanelElements() {\r\n var groupCount = this._getGroupCount();\r\n if (this._isVerticalGroupedWorkSpace() && 0 !== groupCount) {\r\n for (var i = 0; i < groupCount; i++) {\r\n var $allDayTitle = $(\"<div>\").addClass(ALL_DAY_TITLE_CLASS).text(messageLocalization.format(\"dxScheduler-allDay\"));\r\n this._allDayTitles.push($allDayTitle);\r\n this._$allDayTable = $(\"<table>\");\r\n this._allDayTables.push(this._$allDayTable);\r\n this._$allDayPanel = $(\"<div>\").addClass(ALL_DAY_PANEL_CLASS).append(this._$allDayTable);\r\n this._allDayPanels.push(this._$allDayPanel)\r\n }\r\n } else {\r\n this._$allDayTitle = $(\"<div>\").addClass(ALL_DAY_TITLE_CLASS).text(messageLocalization.format(\"dxScheduler-allDay\")).appendTo(this.$element());\r\n this._$allDayTable = $(\"<table>\");\r\n this._$allDayPanel = $(\"<div>\").addClass(ALL_DAY_PANEL_CLASS).append(this._$allDayTable)\r\n }\r\n }\r\n renderWorkSpace() {\r\n var {\r\n generateNewData: generateNewData,\r\n renderComponents: renderComponents\r\n } = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : DEFAULT_WORKSPACE_RENDER_OPTIONS;\r\n this.cache.clear();\r\n this.viewDataProvider.update(this.generateRenderOptions(), generateNewData);\r\n if (this.isRenovatedRender()) {\r\n this.renderRWorkSpace(renderComponents)\r\n } else {\r\n this._renderDateHeader();\r\n this._renderTimePanel();\r\n this._renderGroupAllDayPanel();\r\n this._renderDateTable();\r\n this._renderAllDayPanel()\r\n }\r\n this._initPositionHelper()\r\n }\r\n _renderGroupHeader() {\r\n var $container = this._getGroupHeaderContainer();\r\n var groupCount = this._getGroupCount();\r\n var cellTemplates = [];\r\n if (groupCount) {\r\n var groupRows = this._makeGroupRows(this.option(\"groups\"), this.option(\"groupByDate\"));\r\n this._attachGroupCountClass();\r\n $container.append(groupRows.elements);\r\n cellTemplates = groupRows.cellTemplates\r\n } else {\r\n this._detachGroupCountClass()\r\n }\r\n return cellTemplates\r\n }\r\n _applyCellTemplates(templates) {\r\n null === templates || void 0 === templates ? void 0 : templates.forEach(template => {\r\n template()\r\n })\r\n }\r\n _makeGroupRows(groups, groupByDate) {\r\n var tableCreatorStrategy = this._isVerticalGroupedWorkSpace() ? tableCreator.VERTICAL : tableCreator.HORIZONTAL;\r\n return tableCreator.makeGroupedTable(tableCreatorStrategy, groups, {\r\n groupHeaderRowClass: GROUP_ROW_CLASS,\r\n groupRowClass: GROUP_ROW_CLASS,\r\n groupHeaderClass: this._getGroupHeaderClass.bind(this),\r\n groupHeaderContentClass: GROUP_HEADER_CONTENT_CLASS\r\n }, this._getCellCount() || 1, this.option(\"resourceCellTemplate\"), this._getGroupCount(), groupByDate)\r\n }\r\n _renderDateHeader() {\r\n var container = this._getDateHeaderContainer();\r\n var $headerRow = $(\"<tr>\").addClass(HEADER_ROW_CLASS);\r\n var count = this._getCellCount();\r\n var cellTemplate = this._getDateHeaderTemplate();\r\n var repeatCount = this._getCalculateHeaderCellRepeatCount();\r\n var templateCallbacks = [];\r\n var groupByDate = this.isGroupedByDate();\r\n if (!groupByDate) {\r\n for (var rowIndex = 0; rowIndex < repeatCount; rowIndex++) {\r\n for (var columnIndex = 0; columnIndex < count; columnIndex++) {\r\n var templateIndex = rowIndex * count + columnIndex;\r\n this._renderDateHeaderTemplate($headerRow, columnIndex, templateIndex, cellTemplate, templateCallbacks)\r\n }\r\n }\r\n container.append($headerRow)\r\n } else {\r\n var colSpan = groupByDate ? this._getGroupCount() : 1;\r\n for (var _columnIndex = 0; _columnIndex < count; _columnIndex++) {\r\n var _templateIndex = _columnIndex * repeatCount;\r\n var cellElement = this._renderDateHeaderTemplate($headerRow, _columnIndex, _templateIndex, cellTemplate, templateCallbacks);\r\n cellElement.attr(\"colSpan\", colSpan)\r\n }\r\n container.prepend($headerRow)\r\n }\r\n this._applyCellTemplates(templateCallbacks);\r\n return $headerRow\r\n }\r\n _renderDateHeaderTemplate(container, panelCellIndex, templateIndex, cellTemplate, templateCallbacks) {\r\n var validTemplateIndex = this.isGroupedByDate() ? Math.floor(templateIndex / this._getGroupCount()) : templateIndex;\r\n var {\r\n completeDateHeaderMap: completeDateHeaderMap\r\n } = this.viewDataProvider;\r\n var {\r\n text: text,\r\n startDate: date\r\n } = completeDateHeaderMap[completeDateHeaderMap.length - 1][validTemplateIndex];\r\n var $cell = $(\"<th>\").addClass(this._getHeaderPanelCellClass(panelCellIndex)).attr(\"title\", text);\r\n if (null === cellTemplate || void 0 === cellTemplate ? void 0 : cellTemplate.render) {\r\n templateCallbacks.push(cellTemplate.render.bind(cellTemplate, {\r\n model: _extends({\r\n text: text,\r\n date: date\r\n }, this._getGroupsForDateHeaderTemplate(templateIndex)),\r\n index: templateIndex,\r\n container: getPublicElement($cell)\r\n }))\r\n } else {\r\n $cell.text(text)\r\n }\r\n container.append($cell);\r\n return $cell\r\n }\r\n _getGroupsForDateHeaderTemplate(templateIndex) {\r\n var indexMultiplier = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1;\r\n var groupIndex;\r\n var groups;\r\n if (this._isHorizontalGroupedWorkSpace() && !this.isGroupedByDate()) {\r\n groupIndex = this._getGroupIndex(0, templateIndex * indexMultiplier);\r\n var groupsArray = getCellGroups(groupIndex, this.option(\"groups\"));\r\n groups = getGroupsObjectFromGroupsArray(groupsArray)\r\n }\r\n return {\r\n groups: groups,\r\n groupIndex: groupIndex\r\n }\r\n }\r\n _getHeaderPanelCellClass(i) {\r\n var cellClass = \"\".concat(HEADER_PANEL_CELL_CLASS, \" \").concat(HORIZONTAL_SIZES_CLASS);\r\n return this._groupedStrategy.addAdditionalGroupCellClasses(cellClass, i + 1, void 0, void 0, this.isGroupedByDate())\r\n }\r\n _renderAllDayPanel(index) {\r\n var cellCount = this._getCellCount();\r\n if (!this._isVerticalGroupedWorkSpace()) {\r\n cellCount *= this._getGroupCount() || 1\r\n }\r\n var cellTemplates = this._renderTableBody({\r\n container: this._allDayPanels.length ? getPublicElement(this._allDayTables[index]) : getPublicElement(this._$allDayTable),\r\n rowCount: 1,\r\n cellCount: cellCount,\r\n cellClass: this._getAllDayPanelCellClass.bind(this),\r\n rowClass: ALL_DAY_TABLE_ROW_CLASS,\r\n cellTemplate: this.option(\"dataCellTemplate\"),\r\n getCellData: this._oldRender_getAllDayCellData(index),\r\n groupIndex: index\r\n }, true);\r\n this._toggleAllDayVisibility(true);\r\n this._applyCellTemplates(cellTemplates)\r\n }\r\n _renderGroupAllDayPanel() {\r\n if (this._isVerticalGroupedWorkSpace()) {\r\n var groupCount = this._getGroupCount();\r\n for (var i = 0; i < groupCount; i++) {\r\n this._renderAllDayPanel(i)\r\n }\r\n }\r\n }\r\n _getAllDayPanelCellClass(i, j) {\r\n var cellClass = \"\".concat(ALL_DAY_TABLE_CELL_CLASS, \" \").concat(HORIZONTAL_SIZES_CLASS);\r\n return this._groupedStrategy.addAdditionalGroupCellClasses(cellClass, j + 1)\r\n }\r\n _renderTimePanel() {\r\n var repeatCount = this._groupedStrategy.calculateTimeCellRepeatCount();\r\n var getData = (rowIndex, field) => {\r\n var allDayPanelsCount = 0;\r\n if (this.isAllDayPanelVisible) {\r\n allDayPanelsCount = 1\r\n }\r\n if (this.isGroupedAllDayPanel()) {\r\n allDayPanelsCount = Math.ceil((rowIndex + 1) / this._getRowCount())\r\n }\r\n var validRowIndex = rowIndex + allDayPanelsCount;\r\n return this.viewDataProvider.completeTimePanelMap[validRowIndex][field]\r\n };\r\n this._renderTableBody({\r\n container: getPublicElement(this._$timePanel),\r\n rowCount: this._getTimePanelRowCount() * repeatCount,\r\n cellCount: 1,\r\n cellClass: this._getTimeCellClass.bind(this),\r\n rowClass: TIME_PANEL_ROW_CLASS,\r\n cellTemplate: this.option(\"timeCellTemplate\"),\r\n getCellText: rowIndex => getData(rowIndex, \"text\"),\r\n getCellDate: rowIndex => getData(rowIndex, \"startDate\"),\r\n groupCount: this._getGroupCount(),\r\n allDayElements: this._insertAllDayRowsIntoDateTable() ? this._allDayTitles : void 0,\r\n getTemplateData: (rowIndex => {\r\n if (!this._isVerticalGroupedWorkSpace()) {\r\n return {}\r\n }\r\n var groupIndex = this._getGroupIndex(rowIndex, 0);\r\n var groupsArray = getCellGroups(groupIndex, this.option(\"groups\"));\r\n var groups = getGroupsObjectFromGroupsArray(groupsArray);\r\n return {\r\n groupIndex: groupIndex,\r\n groups: groups\r\n }\r\n }).bind(this)\r\n })\r\n }\r\n _getTimeCellClass(i) {\r\n var cellClass = \"\".concat(TIME_PANEL_CELL_CLASS, \" \").concat(VERTICAL_SIZES_CLASS);\r\n return this._isVerticalGroupedWorkSpace() ? this._groupedStrategy.addAdditionalGroupCellClasses(cellClass, i, i) : cellClass\r\n }\r\n _renderDateTable() {\r\n var groupCount = this._getGroupCount();\r\n this._renderTableBody({\r\n container: getPublicElement(this._$dateTable),\r\n rowCount: this._getTotalRowCount(groupCount),\r\n cellCount: this._getTotalCellCount(groupCount),\r\n cellClass: this._getDateTableCellClass.bind(this),\r\n rowClass: DATE_TABLE_ROW_CLASS,\r\n cellTemplate: this.option(\"dataCellTemplate\"),\r\n getCellData: (_, rowIndex, columnIndex) => {\r\n var isGroupedAllDayPanel = this.isGroupedAllDayPanel();\r\n var validRowIndex = rowIndex;\r\n if (isGroupedAllDayPanel) {\r\n var rowCount = this._getRowCount();\r\n var allDayPanelsCount = Math.ceil(rowIndex / rowCount);\r\n validRowIndex += allDayPanelsCount\r\n }\r\n var {\r\n cellData: cellData\r\n } = this.viewDataProvider.viewDataMap.dateTableMap[validRowIndex][columnIndex];\r\n return {\r\n value: this._filterCellDataFields(cellData),\r\n fullValue: cellData,\r\n key: CELL_DATA\r\n }\r\n },\r\n allDayElements: this._insertAllDayRowsIntoDateTable() ? this._allDayPanels : void 0,\r\n groupCount: groupCount,\r\n groupByDate: this.option(\"groupByDate\")\r\n })\r\n }\r\n _insertAllDayRowsIntoDateTable() {\r\n return this._groupedStrategy.insertAllDayRowsIntoDateTable()\r\n }\r\n _renderTableBody(options, delayCellTemplateRendering) {\r\n var result = [];\r\n if (!delayCellTemplateRendering) {\r\n this._applyCellTemplates(tableCreator.makeTable(options))\r\n } else {\r\n result = tableCreator.makeTable(options)\r\n }\r\n return result\r\n }\r\n}\r\nvar createDragBehaviorConfig = (container, rootElement, isDefaultDraggingMode, dragBehavior, enableDefaultDragging, disableDefaultDragging, getDroppableCell, getDateTables, removeDroppableCellClass, getCellWidth, options) => {\r\n var state = {\r\n dragElement: void 0,\r\n itemData: void 0\r\n };\r\n var isItemDisabled = () => {\r\n var {\r\n itemData: itemData\r\n } = state;\r\n if (itemData) {\r\n var getter = compileGetter(\"disabled\");\r\n return getter(itemData)\r\n }\r\n return true\r\n };\r\n var cursorOffset = options.isSetCursorOffset ? () => {\r\n var $dragElement = $(state.dragElement);\r\n return {\r\n x: getWidth($dragElement) / 2,\r\n y: getHeight($dragElement) / 2\r\n }\r\n } : void 0;\r\n return {\r\n container: container,\r\n dragTemplate: () => state.dragElement,\r\n onDragStart: e => {\r\n if (!isDefaultDraggingMode) {\r\n disableDefaultDragging()\r\n }\r\n var canceled = e.cancel;\r\n var {\r\n event: event\r\n } = e;\r\n var $itemElement = $(e.itemElement);\r\n var appointments = e.component._appointments;\r\n state.itemData = options.getItemData(e.itemElement, appointments);\r\n var settings = options.getItemSettings($itemElement, e);\r\n var {\r\n initialPosition: initialPosition\r\n } = options;\r\n if (!isItemDisabled()) {\r\n event.data = event.data || {};\r\n if (!canceled) {\r\n if (!settings.isCompact) {\r\n dragBehavior.updateDragSource(state.itemData, settings)\r\n }\r\n state.dragElement = ((itemData, settings, appointments) => {\r\n var appointmentIndex = appointments.option(\"items\").length;\r\n settings.isCompact = false;\r\n settings.virtual = false;\r\n var items = appointments._renderItem(appointmentIndex, {\r\n itemData: itemData,\r\n settings: [settings]\r\n });\r\n return items[0]\r\n })(state.itemData, settings, appointments);\r\n event.data.itemElement = state.dragElement;\r\n event.data.initialPosition = null !== initialPosition && void 0 !== initialPosition ? initialPosition : locate($(state.dragElement));\r\n event.data.itemData = state.itemData;\r\n event.data.itemSettings = settings;\r\n dragBehavior.onDragStart(event.data);\r\n resetPosition($(state.dragElement))\r\n }\r\n }\r\n },\r\n onDragMove: () => {\r\n if (isDefaultDraggingMode) {\r\n return\r\n }\r\n var elements = (() => {\r\n var appointmentWidth = getWidth(state.dragElement);\r\n var cellWidth = getCellWidth();\r\n var isWideAppointment = appointmentWidth > cellWidth;\r\n var isNarrowAppointment = appointmentWidth <= DRAGGING_MOUSE_FAULT;\r\n var dragElementContainer = $(state.dragElement).parent();\r\n var boundingRect = getBoundingRect(dragElementContainer.get(0));\r\n var newX = boundingRect.left;\r\n var newY = boundingRect.top;\r\n if (isWideAppointment) {\r\n return domAdapter.elementsFromPoint(newX + DRAGGING_MOUSE_FAULT, newY + DRAGGING_MOUSE_FAULT)\r\n }\r\n if (isNarrowAppointment) {\r\n return domAdapter.elementsFromPoint(newX, newY)\r\n }\r\n return domAdapter.elementsFromPoint(newX + appointmentWidth / 2, newY + DRAGGING_MOUSE_FAULT)\r\n })();\r\n var isMoveUnderControl = !!elements.find(el => el === rootElement.get(0));\r\n var dateTables = getDateTables();\r\n var droppableCell = elements.find(el => {\r\n var {\r\n classList: classList\r\n } = el;\r\n var isCurrentSchedulerElement = 1 === dateTables.find(el).length;\r\n return isCurrentSchedulerElement && (classList.contains(DATE_TABLE_CELL_CLASS) || classList.contains(ALL_DAY_TABLE_CELL_CLASS))\r\n });\r\n if (droppableCell) {\r\n if (!getDroppableCell().is(droppableCell)) {\r\n removeDroppableCellClass()\r\n }\r\n $(droppableCell).addClass(DATE_TABLE_DROPPABLE_CELL_CLASS)\r\n } else if (!isMoveUnderControl) {\r\n removeDroppableCellClass()\r\n }\r\n },\r\n onDragEnd: e => {\r\n var _a;\r\n if (!isDefaultDraggingMode) {\r\n enableDefaultDragging()\r\n }\r\n if (!isItemDisabled()) {\r\n dragBehavior.onDragEnd(e)\r\n }\r\n null === (_a = state.dragElement) || void 0 === _a ? void 0 : _a.remove();\r\n removeDroppableCellClass()\r\n },\r\n onDragCancel: e => {\r\n var _a, _b;\r\n if (!isDefaultDraggingMode) {\r\n enableDefaultDragging()\r\n }\r\n removeDroppableCellClass();\r\n null === (_b = null === (_a = e.itemElement) || void 0 === _a ? void 0 : _a.removeClass) || void 0 === _b ? void 0 : _b.call(_a, APPOINTMENT_DRAG_SOURCE_CLASS)\r\n },\r\n cursorOffset: cursorOffset,\r\n filter: options.filter\r\n }\r\n};\r\nexport default SchedulerWorkSpace;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_agenda.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\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 dateUtils from \"../../../core/utils/date\";\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 setHeight,\r\n setOuterHeight\r\n} from \"../../../core/utils/size\";\r\nimport dateLocalization from \"../../../localization/date\";\r\nimport {\r\n agendaUtils,\r\n formatWeekday,\r\n getVerticalGroupCountClass\r\n} from \"../../scheduler/r1/utils/index\";\r\nimport {\r\n DATE_TABLE_CLASS,\r\n DATE_TABLE_ROW_CLASS,\r\n GROUP_HEADER_CONTENT_CLASS,\r\n GROUP_ROW_CLASS,\r\n TIME_PANEL_CLASS\r\n} from \"../m_classes\";\r\nimport {\r\n VIEWS\r\n} from \"../m_constants\";\r\nimport tableCreatorModule from \"../m_table_creator\";\r\nimport {\r\n createReducedResourcesTree,\r\n getDataAccessors,\r\n getPathToLeaf\r\n} from \"../resources/m_utils\";\r\nimport WorkSpace from \"./m_work_space\";\r\nvar {\r\n tableCreator: tableCreator\r\n} = tableCreatorModule;\r\nvar AGENDA_CLASS = \"dx-scheduler-agenda\";\r\nvar AGENDA_DATE_CLASS = \"dx-scheduler-agenda-date\";\r\nvar GROUP_TABLE_CLASS = \"dx-scheduler-group-table\";\r\nvar TIME_PANEL_ROW_CLASS = \"dx-scheduler-time-panel-row\";\r\nvar TIME_PANEL_CELL_CLASS = \"dx-scheduler-time-panel-cell\";\r\nvar NODATA_CONTAINER_CLASS = \"dx-scheduler-agenda-nodata\";\r\nvar LAST_ROW_CLASS = \"dx-scheduler-date-table-last-row\";\r\nvar INNER_CELL_MARGIN = 5;\r\nvar OUTER_CELL_MARGIN = 20;\r\nclass SchedulerAgenda extends WorkSpace {\r\n get type() {\r\n return VIEWS.AGENDA\r\n }\r\n get renderingStrategy() {\r\n return this.invoke(\"getLayoutManager\").getRenderingStrategyInstance()\r\n }\r\n get appointmentDataProvider() {\r\n return this.option(\"getAppointmentDataProvider\")()\r\n }\r\n getStartViewDate() {\r\n return this._startViewDate\r\n }\r\n _init() {\r\n super._init();\r\n this._activeStateUnit = void 0\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n agendaDuration: 7,\r\n rowHeight: 60,\r\n noDataText: \"\"\r\n })\r\n }\r\n _optionChanged(args) {\r\n var {\r\n name: name\r\n } = args;\r\n var {\r\n value: value\r\n } = args;\r\n switch (name) {\r\n case \"agendaDuration\":\r\n break;\r\n case \"noDataText\":\r\n case \"rowHeight\":\r\n this._recalculateAgenda(this._rows);\r\n break;\r\n case \"groups\":\r\n if (!value || !value.length) {\r\n if (this._$groupTable) {\r\n this._$groupTable.remove();\r\n this._$groupTable = null;\r\n this._detachGroupCountClass()\r\n }\r\n } else if (!this._$groupTable) {\r\n this._initGroupTable();\r\n this._dateTableScrollable.$content().prepend(this._$groupTable)\r\n }\r\n super._optionChanged(args);\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _renderFocusState() {\r\n return noop()\r\n }\r\n _renderFocusTarget() {\r\n return noop()\r\n }\r\n _cleanFocusState() {\r\n return noop()\r\n }\r\n supportAllDayRow() {\r\n return false\r\n }\r\n _isVerticalGroupedWorkSpace() {\r\n return false\r\n }\r\n _getElementClass() {\r\n return AGENDA_CLASS\r\n }\r\n _calculateStartViewDate() {\r\n return agendaUtils.calculateStartViewDate(this.option(\"currentDate\"), this.option(\"startDayHour\"))\r\n }\r\n _getRowCount() {\r\n return this.option(\"agendaDuration\")\r\n }\r\n _getCellCount() {\r\n return 1\r\n }\r\n _getTimePanelRowCount() {\r\n return this.option(\"agendaDuration\")\r\n }\r\n _renderAllDayPanel() {\r\n return noop()\r\n }\r\n _toggleAllDayVisibility() {\r\n return noop()\r\n }\r\n _initWorkSpaceUnits() {\r\n this._initGroupTable();\r\n this._$timePanel = $(\"<table>\").addClass(TIME_PANEL_CLASS);\r\n this._$dateTable = $(\"<table>\").addClass(DATE_TABLE_CLASS);\r\n this._$dateTableScrollableContent = $(\"<div>\").addClass(\"dx-scheduler-date-table-scrollable-content\");\r\n this._$dateTableContainer = $(\"<div>\").addClass(\"dx-scheduler-date-table-container\")\r\n }\r\n _initGroupTable() {\r\n var groups = this.option(\"groups\");\r\n if (groups && groups.length) {\r\n this._$groupTable = $(\"<table>\").addClass(GROUP_TABLE_CLASS)\r\n }\r\n }\r\n _renderView() {\r\n this._startViewDate = this._calculateStartViewDate();\r\n this._rows = [];\r\n this._initPositionHelper()\r\n }\r\n _recalculateAgenda(rows) {\r\n var cellTemplates = [];\r\n this._cleanView();\r\n if (this._rowsIsEmpty(rows)) {\r\n this._renderNoData();\r\n return\r\n }\r\n this._rows = rows;\r\n if (this._$groupTable) {\r\n cellTemplates = this._renderGroupHeader();\r\n this._setGroupHeaderCellsHeight()\r\n }\r\n this._renderTimePanel();\r\n this._renderDateTable();\r\n this.invoke(\"onAgendaReady\", rows);\r\n this._applyCellTemplates(cellTemplates);\r\n this._dateTableScrollable.update()\r\n }\r\n _renderNoData() {\r\n this._$noDataContainer = $(\"<div>\").addClass(NODATA_CONTAINER_CLASS).html(this.option(\"noDataText\"));\r\n this._dateTableScrollable.$content().append(this._$noDataContainer)\r\n }\r\n _setTableSizes() {\r\n return noop()\r\n }\r\n _toggleHorizontalScrollClass() {\r\n return noop()\r\n }\r\n _createCrossScrollingConfig(argument) {\r\n return noop()\r\n }\r\n _setGroupHeaderCellsHeight() {\r\n var $cells = this._getGroupHeaderCells().filter((_, element) => !element.getAttribute(\"rowSpan\"));\r\n var rows = this._removeEmptyRows(this._rows);\r\n if (!rows.length) {\r\n return\r\n }\r\n for (var i = 0; i < $cells.length; i++) {\r\n var $cellContent = $cells.eq(i).find(\".dx-scheduler-group-header-content\");\r\n setOuterHeight($cellContent, this._getGroupRowHeight(rows[i]))\r\n }\r\n }\r\n _rowsIsEmpty(rows) {\r\n var result = true;\r\n for (var i = 0; i < rows.length; i++) {\r\n var groupRow = rows[i];\r\n for (var j = 0; j < groupRow.length; j++) {\r\n if (groupRow[j]) {\r\n result = false;\r\n break\r\n }\r\n }\r\n }\r\n return result\r\n }\r\n _attachGroupCountClass() {\r\n var className = getVerticalGroupCountClass(this.option(\"groups\"));\r\n this.$element().addClass(className)\r\n }\r\n _removeEmptyRows(rows) {\r\n var result = [];\r\n for (var i = 0; i < rows.length; i++) {\r\n if (rows[i].length && !(data = rows[i], !data.some(value => value > 0))) {\r\n result.push(rows[i])\r\n }\r\n }\r\n var data;\r\n return result\r\n }\r\n _getGroupHeaderContainer() {\r\n return this._$groupTable\r\n }\r\n _makeGroupRows() {\r\n var tree = createReducedResourcesTree(this.option(\"loadedResources\"), (field, action) => getDataAccessors(this.option(\"getResourceDataAccessors\")(), field, action), this.option(\"getFilteredItems\")());\r\n var cellTemplate = this.option(\"resourceCellTemplate\");\r\n var getGroupHeaderContentClass = GROUP_HEADER_CONTENT_CLASS;\r\n var cellTemplates = [];\r\n var table = tableCreator.makeGroupedTableFromJSON(tableCreator.VERTICAL, tree, {\r\n cellTag: \"th\",\r\n groupTableClass: GROUP_TABLE_CLASS,\r\n groupRowClass: GROUP_ROW_CLASS,\r\n groupCellClass: this._getGroupHeaderClass(),\r\n groupCellCustomContent(cell, cellTextElement, index, data) {\r\n var container = domAdapter.createElement(\"div\");\r\n container.className = getGroupHeaderContentClass;\r\n if (cellTemplate && cellTemplate.render) {\r\n cellTemplates.push(cellTemplate.render.bind(cellTemplate, {\r\n model: {\r\n data: data.data,\r\n id: data.value,\r\n color: data.color,\r\n text: cellTextElement.textContent\r\n },\r\n container: getPublicElement($(container)),\r\n index: index\r\n }))\r\n } else {\r\n var contentWrapper = domAdapter.createElement(\"div\");\r\n contentWrapper.appendChild(cellTextElement);\r\n container.appendChild(contentWrapper)\r\n }\r\n cell.appendChild(container)\r\n },\r\n cellTemplate: cellTemplate\r\n });\r\n return {\r\n elements: $(table).find(\".\".concat(GROUP_ROW_CLASS)),\r\n cellTemplates: cellTemplates\r\n }\r\n }\r\n _cleanView() {\r\n this._$dateTable.empty();\r\n this._$timePanel.empty();\r\n if (this._$groupTable) {\r\n this._$groupTable.empty()\r\n }\r\n if (this._$noDataContainer) {\r\n this._$noDataContainer.empty();\r\n this._$noDataContainer.remove();\r\n delete this._$noDataContainer\r\n }\r\n }\r\n _createWorkSpaceElements() {\r\n this._createWorkSpaceStaticElements()\r\n }\r\n _createWorkSpaceStaticElements() {\r\n this._$dateTableContainer.append(this._$dateTable);\r\n this._dateTableScrollable.$content().append(this._$dateTableScrollableContent);\r\n if (this._$groupTable) {\r\n this._$dateTableScrollableContent.prepend(this._$groupTable)\r\n }\r\n this._$dateTableScrollableContent.append(this._$timePanel, this._$dateTableContainer);\r\n this.$element().append(this._dateTableScrollable.$element())\r\n }\r\n _renderDateTable() {\r\n this._renderTableBody({\r\n container: getPublicElement(this._$dateTable),\r\n rowClass: DATE_TABLE_ROW_CLASS,\r\n cellClass: this._getDateTableCellClass()\r\n })\r\n }\r\n _attachTablesEvents() {\r\n return noop()\r\n }\r\n _attachEvents() {\r\n return noop()\r\n }\r\n _cleanCellDataCache() {\r\n return noop()\r\n }\r\n isIndicationAvailable() {\r\n return false\r\n }\r\n _prepareCellTemplateOptions(text, date, rowIndex, $cell) {\r\n var groupsOpt = this.option(\"groups\");\r\n var groups = {};\r\n var isGroupedView = !!groupsOpt.length;\r\n var path = isGroupedView && getPathToLeaf(rowIndex, groupsOpt) || [];\r\n path.forEach((resourceValue, resourceIndex) => {\r\n var resourceName = groupsOpt[resourceIndex].name;\r\n groups[resourceName] = resourceValue\r\n });\r\n var groupIndex = isGroupedView ? this._getGroupIndexByResourceId(groups) : void 0;\r\n return {\r\n model: {\r\n text: text,\r\n date: date,\r\n groups: groups,\r\n groupIndex: groupIndex\r\n },\r\n container: getPublicElement($cell),\r\n index: rowIndex\r\n }\r\n }\r\n _renderTableBody(options, delayCellTemplateRendering) {\r\n var cellTemplates = [];\r\n var cellTemplateOpt = options.cellTemplate;\r\n this._$rows = [];\r\n var i;\r\n var fillTableBody = function(rowIndex, rowSize) {\r\n if (rowSize) {\r\n var date;\r\n var cellDateNumber;\r\n var cellDayName;\r\n var $row = $(\"<tr>\");\r\n var $td = $(\"<td>\");\r\n setHeight($td, this._getRowHeight(rowSize));\r\n if (options.getStartDate) {\r\n date = options.getStartDate && options.getStartDate(rowIndex);\r\n cellDateNumber = dateLocalization.format(date, \"d\");\r\n cellDayName = dateLocalization.format(date, formatWeekday)\r\n }\r\n if (cellTemplateOpt && cellTemplateOpt.render) {\r\n var templateOptions = this._prepareCellTemplateOptions(\"\".concat(cellDateNumber, \" \").concat(cellDayName), date, i, $td);\r\n cellTemplates.push(cellTemplateOpt.render.bind(cellTemplateOpt, templateOptions))\r\n } else if (cellDateNumber && cellDayName) {\r\n $td.addClass(AGENDA_DATE_CLASS).text(\"\".concat(cellDateNumber, \" \").concat(cellDayName))\r\n }\r\n if (options.rowClass) {\r\n $row.addClass(options.rowClass)\r\n }\r\n if (options.cellClass) {\r\n $td.addClass(options.cellClass)\r\n }\r\n $row.append($td);\r\n this._$rows.push($row)\r\n }\r\n }.bind(this);\r\n for (i = 0; i < this._rows.length; i++) {\r\n each(this._rows[i], fillTableBody);\r\n this._setLastRowClass()\r\n }\r\n $(options.container).append($(\"<tbody>\").append(this._$rows));\r\n this._applyCellTemplates(cellTemplates)\r\n }\r\n _setLastRowClass() {\r\n if (this._rows.length > 1 && this._$rows.length) {\r\n var $lastRow = this._$rows[this._$rows.length - 1];\r\n $lastRow.addClass(LAST_ROW_CLASS)\r\n }\r\n }\r\n _renderTimePanel() {\r\n this._renderTableBody({\r\n container: getPublicElement(this._$timePanel),\r\n rowCount: this._getTimePanelRowCount(),\r\n cellCount: 1,\r\n rowClass: TIME_PANEL_ROW_CLASS,\r\n cellClass: TIME_PANEL_CELL_CLASS,\r\n cellTemplate: this.option(\"dateCellTemplate\"),\r\n getStartDate: this._getTimePanelStartDate.bind(this)\r\n })\r\n }\r\n _getTimePanelStartDate(rowIndex) {\r\n var current = new Date(this.option(\"currentDate\"));\r\n var cellDate = new Date(current.setDate(current.getDate() + rowIndex));\r\n return cellDate\r\n }\r\n _getRowHeight(rowSize) {\r\n var baseHeight = this.option(\"rowHeight\");\r\n var innerOffset = (rowSize - 1) * INNER_CELL_MARGIN;\r\n return rowSize ? baseHeight * rowSize + innerOffset + OUTER_CELL_MARGIN : 0\r\n }\r\n _getGroupRowHeight(groupRows) {\r\n if (!groupRows) {\r\n return\r\n }\r\n var result = 0;\r\n for (var i = 0; i < groupRows.length; i++) {\r\n result += this._getRowHeight(groupRows[i])\r\n }\r\n return result\r\n }\r\n _calculateRows(appointments) {\r\n return this.renderingStrategy.calculateRows(appointments, this.option(\"agendaDuration\"), this.option(\"currentDate\"))\r\n }\r\n onDataSourceChanged(appointments) {\r\n super.onDataSourceChanged();\r\n this._renderView();\r\n var rows = this._calculateRows(appointments);\r\n this._recalculateAgenda(rows)\r\n }\r\n getAgendaVerticalStepHeight() {\r\n return this.option(\"rowHeight\")\r\n }\r\n getEndViewDate() {\r\n var currentDate = new Date(this.option(\"currentDate\"));\r\n var agendaDuration = this.option(\"agendaDuration\");\r\n currentDate.setHours(this.option(\"endDayHour\"));\r\n var result = currentDate.setDate(currentDate.getDate() + agendaDuration - 1) - 6e4;\r\n return new Date(result)\r\n }\r\n getEndViewDateByEndDayHour() {\r\n return this.getEndViewDate()\r\n }\r\n getCellDataByCoordinates() {\r\n return {\r\n startDate: null,\r\n endDate: null\r\n }\r\n }\r\n updateScrollPosition(date) {\r\n var newDate = this.timeZoneCalculator.createDate(date, {\r\n path: \"toGrid\"\r\n });\r\n var bounds = this.getVisibleBounds();\r\n var startDateHour = newDate.getHours();\r\n var startDateMinutes = newDate.getMinutes();\r\n if (this.needUpdateScrollPosition(startDateHour, startDateMinutes, bounds, newDate)) {\r\n this.scrollToTime(startDateHour, startDateMinutes, newDate)\r\n }\r\n }\r\n needUpdateScrollPosition(hours, minutes, bounds, newData) {\r\n var isUpdateNeeded = false;\r\n if (hours < bounds.top.hours || hours > bounds.bottom.hours) {\r\n isUpdateNeeded = true\r\n }\r\n if (hours === bounds.top.hours && minutes < bounds.top.minutes) {\r\n isUpdateNeeded = true\r\n }\r\n if (hours === bounds.bottom.hours && minutes > bounds.top.minutes) {\r\n isUpdateNeeded = true\r\n }\r\n return isUpdateNeeded\r\n }\r\n renovatedRenderSupported() {\r\n return false\r\n }\r\n _setSelectedCellsByCellData() {}\r\n _getIntervalDuration() {\r\n return dateUtils.dateToMilliseconds(\"day\") * this.option(\"intervalCount\")\r\n }\r\n getDOMElementsMetaData() {\r\n return {\r\n dateTableCellsMeta: [\r\n [{}]\r\n ],\r\n allDayPanelCellsMeta: [{}]\r\n }\r\n }\r\n}\r\nregisterComponent(\"dxSchedulerAgenda\", SchedulerAgenda);\r\nexport default SchedulerAgenda;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/shaders/m_current_time_shader_horizontal.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getBoundingRect\r\n} from \"../../../core/utils/position\";\r\nimport {\r\n setWidth\r\n} from \"../../../core/utils/size\";\r\nimport CurrentTimeShader from \"./m_current_time_shader\";\r\nclass HorizontalCurrentTimeShader extends CurrentTimeShader {\r\n renderShader() {\r\n var groupCount = this._workSpace._isHorizontalGroupedWorkSpace() ? this._workSpace._getGroupCount() : 1;\r\n for (var i = 0; i < groupCount; i += 1) {\r\n var isFirstShader = 0 === i;\r\n var $shader = isFirstShader ? this._$shader : this.createShader();\r\n if (this._workSpace.isGroupedByDate()) {\r\n this._customizeGroupedByDateShader($shader, i)\r\n } else {\r\n this._customizeShader($shader, i)\r\n }!isFirstShader && this._shader.push($shader)\r\n }\r\n }\r\n _customizeShader($shader, groupIndex) {\r\n var shaderWidth = this._workSpace.getIndicationWidth();\r\n this._applyShaderWidth($shader, shaderWidth);\r\n if (groupIndex >= 1) {\r\n var workSpace = this._workSpace;\r\n var indicationWidth = workSpace._getCellCount() * workSpace.getCellWidth();\r\n $shader.css(\"left\", indicationWidth)\r\n } else {\r\n $shader.css(\"left\", 0)\r\n }\r\n }\r\n _applyShaderWidth($shader, width) {\r\n var maxWidth = getBoundingRect(this._$container.get(0)).width;\r\n if (width > maxWidth) {\r\n width = maxWidth\r\n }\r\n if (width > 0) {\r\n setWidth($shader, width)\r\n }\r\n }\r\n _customizeGroupedByDateShader($shader, groupIndex) {\r\n var cellCount = this._workSpace.getIndicationCellCount();\r\n var integerPart = Math.floor(cellCount);\r\n var fractionPart = cellCount - integerPart;\r\n var isFirstShaderPart = 0 === groupIndex;\r\n var workSpace = this._workSpace;\r\n var shaderWidth = isFirstShaderPart ? workSpace.getIndicationWidth() : fractionPart * workSpace.getCellWidth();\r\n var shaderLeft;\r\n this._applyShaderWidth($shader, shaderWidth);\r\n if (isFirstShaderPart) {\r\n shaderLeft = workSpace._getCellCount() * workSpace.getCellWidth() * groupIndex\r\n } else {\r\n shaderLeft = workSpace.getCellWidth() * integerPart * workSpace._getGroupCount() + groupIndex * workSpace.getCellWidth()\r\n }\r\n $shader.css(\"left\", shaderLeft)\r\n }\r\n}\r\nexport default HorizontalCurrentTimeShader;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_work_space_indicator.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport $ from \"../../../core/renderer\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../core/utils/position\";\r\nimport {\r\n setWidth\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport {\r\n dateUtilsTs\r\n} from \"../../core/utils/date\";\r\nimport {\r\n getToday\r\n} from \"../../scheduler/r1/utils/index\";\r\nimport {\r\n HEADER_CURRENT_TIME_CELL_CLASS\r\n} from \"../m_classes\";\r\nimport timezoneUtils from \"../m_utils_time_zone\";\r\nimport SchedulerWorkSpace from \"./m_work_space\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nvar SCHEDULER_DATE_TIME_INDICATOR_CLASS = \"dx-scheduler-date-time-indicator\";\r\nvar TIME_PANEL_CURRENT_TIME_CELL_CLASS = \"dx-scheduler-time-panel-current-time-cell\";\r\nclass SchedulerWorkSpaceIndicator extends SchedulerWorkSpace {\r\n _getToday() {\r\n var viewOffset = this.option(\"viewOffset\");\r\n var today = getToday(this.option(\"indicatorTime\"), this.timeZoneCalculator);\r\n return dateUtilsTs.addOffsets(today, [-viewOffset])\r\n }\r\n isIndicationOnView() {\r\n if (this.option(\"showCurrentTimeIndicator\")) {\r\n var today = this._getToday();\r\n var endViewDate = dateUtils.trimTime(this.getEndViewDate());\r\n return dateUtils.dateInRange(today, this.getStartViewDate(), new Date(endViewDate.getTime() + toMs(\"day\")))\r\n }\r\n return false\r\n }\r\n isIndicationAvailable() {\r\n if (!hasWindow()) {\r\n return false\r\n }\r\n var today = this._getToday();\r\n return today >= dateUtils.trimTime(new Date(this.getStartViewDate()))\r\n }\r\n isIndicatorVisible() {\r\n var today = this._getToday();\r\n var endViewDate = new Date(this.getEndViewDate().getTime() + toMs(\"minute\") - 1);\r\n var firstViewDate = new Date(this.getStartViewDate());\r\n firstViewDate.setFullYear(today.getFullYear(), today.getMonth(), today.getDate());\r\n endViewDate.setFullYear(today.getFullYear(), today.getMonth(), today.getDate());\r\n return dateUtils.dateInRange(today, firstViewDate, endViewDate)\r\n }\r\n _renderIndicator(height, rtlOffset, $container, groupCount) {\r\n var groupedByDate = this.isGroupedByDate();\r\n var repeatCount = groupedByDate ? 1 : groupCount;\r\n for (var i = 0; i < repeatCount; i++) {\r\n var $indicator = this._createIndicator($container);\r\n setWidth($indicator, groupedByDate ? this.getCellWidth() * groupCount : this.getCellWidth());\r\n this._groupedStrategy.shiftIndicator($indicator, height, rtlOffset, i)\r\n }\r\n }\r\n _createIndicator($container) {\r\n var $indicator = $(\"<div>\").addClass(SCHEDULER_DATE_TIME_INDICATOR_CLASS);\r\n $container.append($indicator);\r\n return $indicator\r\n }\r\n _getRtlOffset(width) {\r\n return this.option(\"rtlEnabled\") ? getBoundingRect(this._dateTableScrollable.$content().get(0)).width - this.getTimePanelWidth() - width : 0\r\n }\r\n _setIndicationUpdateInterval() {\r\n if (!this.option(\"showCurrentTimeIndicator\") || 0 === this.option(\"indicatorUpdateInterval\")) {\r\n return\r\n }\r\n this._clearIndicatorUpdateInterval();\r\n this._indicatorInterval = setInterval(() => {\r\n this.renderCurrentDateTimeIndication()\r\n }, this.option(\"indicatorUpdateInterval\"))\r\n }\r\n _clearIndicatorUpdateInterval() {\r\n if (this._indicatorInterval) {\r\n clearInterval(this._indicatorInterval);\r\n delete this._indicatorInterval\r\n }\r\n }\r\n _isVerticalShader() {\r\n return true\r\n }\r\n getIndicationWidth(groupIndex) {\r\n var maxWidth = this.getCellWidth() * this._getCellCount();\r\n var difference = this._getIndicatorDuration();\r\n if (difference > this._getCellCount()) {\r\n difference = this._getCellCount()\r\n }\r\n var width = difference * this.getRoundedCellWidth(groupIndex, groupIndex * this._getCellCount(), difference);\r\n return maxWidth < width ? maxWidth : width\r\n }\r\n getIndicatorOffset(groupIndex) {\r\n var difference = this._getIndicatorDuration() - 1;\r\n var offset = difference * this.getRoundedCellWidth(groupIndex, groupIndex * this._getCellCount(), difference);\r\n return offset\r\n }\r\n _getIndicatorDuration() {\r\n var today = this._getToday();\r\n var firstViewDate = new Date(this.getStartViewDate());\r\n var timeDiff = today.getTime() - firstViewDate.getTime();\r\n if (\"workWeek\" === this.option(\"type\")) {\r\n timeDiff -= this._getWeekendsCount(Math.round(timeDiff / toMs(\"day\"))) * toMs(\"day\")\r\n }\r\n return Math.ceil((timeDiff + 1) / toMs(\"day\"))\r\n }\r\n getIndicationHeight() {\r\n var today = timezoneUtils.getDateWithoutTimezoneChange(this._getToday());\r\n var cellHeight = this.getCellHeight();\r\n var date = new Date(this.getStartViewDate());\r\n if (this.isIndicationOnView()) {\r\n date.setFullYear(today.getFullYear(), today.getMonth(), today.getDate())\r\n }\r\n var duration = today.getTime() - date.getTime();\r\n var cellCount = duration / this.getCellDuration();\r\n return cellCount * cellHeight\r\n }\r\n _dispose() {\r\n this._clearIndicatorUpdateInterval();\r\n super._dispose.apply(this, arguments)\r\n }\r\n renderCurrentDateTimeIndication() {\r\n this.renderCurrentDateTimeLineAndShader();\r\n if (this.isRenovatedRender()) {\r\n this.renderWorkSpace({\r\n generateNewData: true,\r\n renderComponents: {\r\n header: true,\r\n timePanel: true\r\n }\r\n })\r\n }\r\n }\r\n renderCurrentDateTimeLineAndShader() {\r\n var _a;\r\n this._cleanDateTimeIndicator();\r\n null === (_a = this._shader) || void 0 === _a ? void 0 : _a.clean();\r\n this._renderDateTimeIndication()\r\n }\r\n _isCurrentTimeHeaderCell(headerIndex) {\r\n if (this.isIndicationOnView()) {\r\n var {\r\n completeDateHeaderMap: completeDateHeaderMap\r\n } = this.viewDataProvider;\r\n var date = completeDateHeaderMap[completeDateHeaderMap.length - 1][headerIndex].startDate;\r\n return dateUtils.sameDate(date, this._getToday())\r\n }\r\n return false\r\n }\r\n _getHeaderPanelCellClass(i) {\r\n var cellClass = super._getHeaderPanelCellClass(i);\r\n if (this._isCurrentTimeHeaderCell(i)) {\r\n return \"\".concat(cellClass, \" \").concat(HEADER_CURRENT_TIME_CELL_CLASS)\r\n }\r\n return cellClass\r\n }\r\n _cleanView() {\r\n super._cleanView();\r\n this._cleanDateTimeIndicator()\r\n }\r\n _dimensionChanged() {\r\n super._dimensionChanged();\r\n this.renderCurrentDateTimeLineAndShader()\r\n }\r\n _cleanDateTimeIndicator() {\r\n this.$element().find(\".\".concat(SCHEDULER_DATE_TIME_INDICATOR_CLASS)).remove()\r\n }\r\n _cleanWorkSpace() {\r\n super._cleanWorkSpace();\r\n this._renderDateTimeIndication();\r\n this._setIndicationUpdateInterval()\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"showCurrentTimeIndicator\":\r\n case \"indicatorTime\":\r\n this._cleanWorkSpace();\r\n break;\r\n case \"indicatorUpdateInterval\":\r\n this._setIndicationUpdateInterval();\r\n break;\r\n case \"showAllDayPanel\":\r\n case \"allDayExpanded\":\r\n case \"crossScrollingEnabled\":\r\n super._optionChanged(args);\r\n this.renderCurrentDateTimeIndication();\r\n break;\r\n case \"shadeUntilCurrentTime\":\r\n this.renderCurrentDateTimeIndication();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n showCurrentTimeIndicator: true,\r\n indicatorTime: new Date,\r\n indicatorUpdateInterval: 5 * toMs(\"minute\"),\r\n shadeUntilCurrentTime: true\r\n })\r\n }\r\n _getCurrentTimePanelCellIndices() {\r\n var rowCountPerGroup = this._getTimePanelRowCount();\r\n var today = this._getToday();\r\n var index = this.getCellIndexByDate(today);\r\n var {\r\n rowIndex: currentTimeRowIndex\r\n } = this._getCellCoordinatesByIndex(index);\r\n if (void 0 === currentTimeRowIndex) {\r\n return []\r\n }\r\n var cellIndices;\r\n if (0 === currentTimeRowIndex) {\r\n cellIndices = [currentTimeRowIndex]\r\n } else {\r\n cellIndices = currentTimeRowIndex % 2 === 0 ? [currentTimeRowIndex - 1, currentTimeRowIndex] : [currentTimeRowIndex, currentTimeRowIndex + 1]\r\n }\r\n var verticalGroupCount = this._isVerticalGroupedWorkSpace() ? this._getGroupCount() : 1;\r\n return [...new Array(verticalGroupCount)].reduce((currentIndices, _, groupIndex) => [...currentIndices, ...cellIndices.map(cellIndex => rowCountPerGroup * groupIndex + cellIndex)], [])\r\n }\r\n _renderDateTimeIndication() {\r\n if (!this.isIndicationAvailable()) {\r\n return\r\n }\r\n if (this.option(\"shadeUntilCurrentTime\")) {\r\n this._shader.render()\r\n }\r\n if (!this.isIndicationOnView() || !this.isIndicatorVisible()) {\r\n return\r\n }\r\n var groupCount = this._getGroupCount() || 1;\r\n var $container = this._dateTableScrollable.$content();\r\n var height = this.getIndicationHeight();\r\n var rtlOffset = this._getRtlOffset(this.getCellWidth());\r\n this._renderIndicator(height, rtlOffset, $container, groupCount);\r\n if (!this.isRenovatedRender()) {\r\n this._setCurrentTimeCells()\r\n }\r\n }\r\n _setCurrentTimeCells() {\r\n var timePanelCells = this._getTimePanelCells();\r\n var currentTimeCellIndices = this._getCurrentTimePanelCellIndices();\r\n currentTimeCellIndices.forEach(timePanelCellIndex => {\r\n timePanelCells.eq(timePanelCellIndex).addClass(TIME_PANEL_CURRENT_TIME_CELL_CLASS)\r\n })\r\n }\r\n _cleanCurrentTimeCells() {\r\n this.$element().find(\".\".concat(TIME_PANEL_CURRENT_TIME_CELL_CLASS)).removeClass(TIME_PANEL_CURRENT_TIME_CELL_CLASS)\r\n }\r\n}\r\nregisterComponent(\"dxSchedulerWorkSpace\", SchedulerWorkSpaceIndicator);\r\nexport default SchedulerWorkSpaceIndicator;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_timeline.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../core/utils/position\";\r\nimport {\r\n getOuterHeight,\r\n getOuterWidth,\r\n setHeight\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport {\r\n HeaderPanelTimelineComponent\r\n} from \"../../scheduler/r1/components/index\";\r\nimport {\r\n formatWeekdayAndDay,\r\n timelineWeekUtils\r\n} from \"../../scheduler/r1/utils/index\";\r\nimport {\r\n GROUP_HEADER_CONTENT_CLASS,\r\n GROUP_ROW_CLASS,\r\n HEADER_CURRENT_TIME_CELL_CLASS\r\n} from \"../m_classes\";\r\nimport tableCreatorModule from \"../m_table_creator\";\r\nimport timezoneUtils from \"../m_utils_time_zone\";\r\nimport HorizontalShader from \"../shaders/m_current_time_shader_horizontal\";\r\nimport SchedulerWorkSpace from \"./m_work_space_indicator\";\r\nvar {\r\n tableCreator: tableCreator\r\n} = tableCreatorModule;\r\nvar TIMELINE_CLASS = \"dx-scheduler-timeline\";\r\nvar GROUP_TABLE_CLASS = \"dx-scheduler-group-table\";\r\nvar HORIZONTAL_GROUPED_WORKSPACE_CLASS = \"dx-scheduler-work-space-horizontal-grouped\";\r\nvar HEADER_PANEL_CELL_CLASS = \"dx-scheduler-header-panel-cell\";\r\nvar HEADER_PANEL_WEEK_CELL_CLASS = \"dx-scheduler-header-panel-week-cell\";\r\nvar HEADER_ROW_CLASS = \"dx-scheduler-header-row\";\r\nvar HORIZONTAL = \"horizontal\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nclass SchedulerTimeline extends SchedulerWorkSpace {\r\n constructor() {\r\n super(...arguments);\r\n this.viewDirection = \"horizontal\"\r\n }\r\n get verticalGroupTableClass() {\r\n return GROUP_TABLE_CLASS\r\n }\r\n get renovatedHeaderPanelComponent() {\r\n return HeaderPanelTimelineComponent\r\n }\r\n getGroupTableWidth() {\r\n return this._$sidebarTable ? getOuterWidth(this._$sidebarTable) : 0\r\n }\r\n _getTotalRowCount(groupCount) {\r\n if (this._isHorizontalGroupedWorkSpace()) {\r\n return this._getRowCount()\r\n }\r\n groupCount = groupCount || 1;\r\n return this._getRowCount() * groupCount\r\n }\r\n _getFormat() {\r\n return \"shorttime\"\r\n }\r\n _getWorkSpaceHeight() {\r\n if (this.option(\"crossScrollingEnabled\") && hasWindow()) {\r\n return getBoundingRect(this._$dateTable.get(0)).height\r\n }\r\n return getBoundingRect(this.$element().get(0)).height\r\n }\r\n _dateTableScrollableConfig() {\r\n var config = super._dateTableScrollableConfig();\r\n var timelineConfig = {\r\n direction: HORIZONTAL\r\n };\r\n return this.option(\"crossScrollingEnabled\") ? config : extend(config, timelineConfig)\r\n }\r\n _needCreateCrossScrolling() {\r\n return true\r\n }\r\n _headerScrollableConfig() {\r\n var config = super._headerScrollableConfig();\r\n return extend(config, {\r\n scrollByContent: true\r\n })\r\n }\r\n supportAllDayRow() {\r\n return false\r\n }\r\n _getGroupHeaderContainer() {\r\n if (this._isHorizontalGroupedWorkSpace()) {\r\n return this._$thead\r\n }\r\n return this._$sidebarTable\r\n }\r\n _insertAllDayRowsIntoDateTable() {\r\n return false\r\n }\r\n _needRenderWeekHeader() {\r\n return false\r\n }\r\n _incrementDate(date) {\r\n date.setDate(date.getDate() + 1)\r\n }\r\n getIndicationCellCount() {\r\n var timeDiff = this._getTimeDiff();\r\n return this._calculateDurationInCells(timeDiff)\r\n }\r\n _getTimeDiff() {\r\n var today = this._getToday();\r\n var date = this._getIndicationFirstViewDate();\r\n var startViewDate = this.getStartViewDate();\r\n var dayLightOffset = timezoneUtils.getDaylightOffsetInMs(startViewDate, today);\r\n if (dayLightOffset) {\r\n today = new Date(today.getTime() + dayLightOffset)\r\n }\r\n return today.getTime() - date.getTime()\r\n }\r\n _calculateDurationInCells(timeDiff) {\r\n var today = this._getToday();\r\n var differenceInDays = Math.floor(timeDiff / toMs(\"day\"));\r\n var duration = (timeDiff - differenceInDays * toMs(\"day\") - this.option(\"startDayHour\") * toMs(\"hour\")) / this.getCellDuration();\r\n if (today.getHours() > this.option(\"endDayHour\")) {\r\n duration = this._getCellCountInDay()\r\n }\r\n if (duration < 0) {\r\n duration = 0\r\n }\r\n return differenceInDays * this._getCellCountInDay() + duration\r\n }\r\n getIndicationWidth() {\r\n if (this.isGroupedByDate()) {\r\n var cellCount = this.getIndicationCellCount();\r\n var integerPart = Math.floor(cellCount);\r\n var fractionPart = cellCount - integerPart;\r\n return this.getCellWidth() * (integerPart * this._getGroupCount() + fractionPart)\r\n }\r\n return this.getIndicationCellCount() * this.getCellWidth()\r\n }\r\n _isVerticalShader() {\r\n return false\r\n }\r\n _isCurrentTimeHeaderCell() {\r\n return false\r\n }\r\n _setTableSizes() {\r\n super._setTableSizes();\r\n var minHeight = this._getWorkSpaceMinHeight();\r\n setHeight(this._$sidebarTable, minHeight);\r\n setHeight(this._$dateTable, minHeight);\r\n this.virtualScrollingDispatcher.updateDimensions()\r\n }\r\n _getWorkSpaceMinHeight() {\r\n var minHeight = this._getWorkSpaceHeight();\r\n var workspaceContainerHeight = getOuterHeight(this._$flexContainer, true);\r\n if (minHeight < workspaceContainerHeight) {\r\n minHeight = workspaceContainerHeight\r\n }\r\n return minHeight\r\n }\r\n _getCellCoordinatesByIndex(index) {\r\n return {\r\n columnIndex: index % this._getCellCount(),\r\n rowIndex: 0\r\n }\r\n }\r\n _getCellByCoordinates(cellCoordinates, groupIndex) {\r\n var indexes = this._groupedStrategy.prepareCellIndexes(cellCoordinates, groupIndex);\r\n return this._$dateTable.find(\"tr\").eq(indexes.rowIndex).find(\"td\").eq(indexes.columnIndex)\r\n }\r\n _getWorkSpaceWidth() {\r\n return getOuterWidth(this._$dateTable, true)\r\n }\r\n _getIndicationFirstViewDate() {\r\n return dateUtils.trimTime(new Date(this.getStartViewDate()))\r\n }\r\n _getIntervalBetween(currentDate, allDay) {\r\n var startDayHour = this.option(\"startDayHour\");\r\n var endDayHour = this.option(\"endDayHour\");\r\n var firstViewDate = this.getStartViewDate();\r\n var firstViewDateTime = firstViewDate.getTime();\r\n var hiddenInterval = (24 - endDayHour + startDayHour) * toMs(\"hour\");\r\n var timeZoneOffset = dateUtils.getTimezonesDifference(firstViewDate, currentDate);\r\n var apptStart = currentDate.getTime();\r\n var fullInterval = apptStart - firstViewDateTime - timeZoneOffset;\r\n var fullDays = Math.floor(fullInterval / toMs(\"day\"));\r\n var tailDuration = fullInterval - fullDays * toMs(\"day\");\r\n var tailDelta = 0;\r\n var cellCount = this._getCellCountInDay() * (fullDays - this._getWeekendsCount(fullDays));\r\n var gapBeforeAppt = apptStart - dateUtils.trimTime(new Date(currentDate)).getTime();\r\n var result = cellCount * this.option(\"hoursInterval\") * toMs(\"hour\");\r\n if (!allDay) {\r\n if (currentDate.getHours() < startDayHour) {\r\n tailDelta = tailDuration - hiddenInterval + gapBeforeAppt\r\n } else if (currentDate.getHours() >= startDayHour && currentDate.getHours() < endDayHour) {\r\n tailDelta = tailDuration\r\n } else if (currentDate.getHours() >= startDayHour && currentDate.getHours() >= endDayHour) {\r\n tailDelta = tailDuration - (gapBeforeAppt - endDayHour * toMs(\"hour\"))\r\n } else if (!fullDays) {\r\n result = fullInterval\r\n }\r\n result += tailDelta\r\n }\r\n return result\r\n }\r\n _getWeekendsCount(argument) {\r\n return 0\r\n }\r\n getAllDayContainer() {\r\n return null\r\n }\r\n getTimePanelWidth() {\r\n return 0\r\n }\r\n getIntervalDuration(allDay) {\r\n return this.getCellDuration()\r\n }\r\n getCellMinWidth() {\r\n return 0\r\n }\r\n getWorkSpaceLeftOffset() {\r\n return 0\r\n }\r\n scrollToTime(hours, minutes, date) {\r\n var coordinates = this._getScrollCoordinates(hours, minutes, date);\r\n var scrollable = this.getScrollable();\r\n var offset = this.option(\"rtlEnabled\") ? getBoundingRect(this.getScrollableContainer().get(0)).width : 0;\r\n if (this.option(\"templatesRenderAsynchronously\")) {\r\n setTimeout(() => {\r\n scrollable.scrollBy({\r\n left: coordinates.left - scrollable.scrollLeft() - offset,\r\n top: 0\r\n })\r\n })\r\n } else {\r\n scrollable.scrollBy({\r\n left: coordinates.left - scrollable.scrollLeft() - offset,\r\n top: 0\r\n })\r\n }\r\n }\r\n renderRAllDayPanel() {}\r\n renderRTimeTable() {}\r\n _renderGroupAllDayPanel() {}\r\n generateRenderOptions(argument) {\r\n var options = super.generateRenderOptions(true);\r\n return _extends(_extends({}, options), {\r\n isGenerateWeekDaysHeaderData: this._needRenderWeekHeader(),\r\n getDateForHeaderText: timelineWeekUtils.getDateForHeaderText\r\n })\r\n }\r\n _init() {\r\n super._init();\r\n this.$element().addClass(TIMELINE_CLASS);\r\n this._$sidebarTable = $(\"<div>\").addClass(GROUP_TABLE_CLASS)\r\n }\r\n _getDefaultGroupStrategy() {\r\n return \"vertical\"\r\n }\r\n _toggleGroupingDirectionClass() {\r\n this.$element().toggleClass(HORIZONTAL_GROUPED_WORKSPACE_CLASS, this._isHorizontalGroupedWorkSpace())\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n groupOrientation: \"vertical\"\r\n })\r\n }\r\n _createWorkSpaceElements() {\r\n this._createWorkSpaceScrollableElements()\r\n }\r\n _toggleAllDayVisibility() {\r\n return noop()\r\n }\r\n _changeAllDayVisibility() {\r\n return noop()\r\n }\r\n _getDateHeaderTemplate() {\r\n return this.option(\"timeCellTemplate\")\r\n }\r\n _renderView() {\r\n var groupCellTemplates;\r\n if (!this.isRenovatedRender()) {\r\n groupCellTemplates = this._renderGroupHeader()\r\n }\r\n this.renderWorkSpace();\r\n if (this.isRenovatedRender()) {\r\n this.virtualScrollingDispatcher.updateDimensions()\r\n }\r\n this._shader = new HorizontalShader(this);\r\n this._$sidebarTable.appendTo(this._sidebarScrollable.$content());\r\n if (this.isRenovatedRender() && this._isVerticalGroupedWorkSpace()) {\r\n this.renderRGroupPanel()\r\n }\r\n this.updateHeaderEmptyCellWidth();\r\n this._applyCellTemplates(groupCellTemplates)\r\n }\r\n _setHorizontalGroupHeaderCellsHeight() {\r\n return noop()\r\n }\r\n _getTimePanelCells() {\r\n return this.$element().find(\".\".concat(HEADER_PANEL_CELL_CLASS, \":not(.\").concat(HEADER_PANEL_WEEK_CELL_CLASS, \")\"))\r\n }\r\n _getCurrentTimePanelCellIndices() {\r\n var columnCountPerGroup = this._getCellCount();\r\n var today = this._getToday();\r\n var index = this.getCellIndexByDate(today);\r\n var {\r\n columnIndex: currentTimeColumnIndex\r\n } = this._getCellCoordinatesByIndex(index);\r\n if (void 0 === currentTimeColumnIndex) {\r\n return []\r\n }\r\n var horizontalGroupCount = this._isHorizontalGroupedWorkSpace() && !this.isGroupedByDate() ? this._getGroupCount() : 1;\r\n return [...new Array(horizontalGroupCount)].map((_, groupIndex) => columnCountPerGroup * groupIndex + currentTimeColumnIndex)\r\n }\r\n _renderTimePanel() {\r\n return noop()\r\n }\r\n _renderAllDayPanel() {\r\n return noop()\r\n }\r\n _createAllDayPanelElements() {\r\n return noop()\r\n }\r\n _renderDateHeader() {\r\n var $headerRow = super._renderDateHeader();\r\n if (this._needRenderWeekHeader()) {\r\n var firstViewDate = new Date(this.getStartViewDate());\r\n var currentDate = new Date(firstViewDate);\r\n var $cells = [];\r\n var groupCount = this._getGroupCount();\r\n var cellCountInDay = this._getCellCountInDay();\r\n var colSpan = this.isGroupedByDate() ? cellCountInDay * groupCount : cellCountInDay;\r\n var cellTemplate = this.option(\"dateCellTemplate\");\r\n var horizontalGroupCount = this._isHorizontalGroupedWorkSpace() && !this.isGroupedByDate() ? groupCount : 1;\r\n var cellsInGroup = this.viewDataProvider.viewDataGenerator.daysInInterval * this.option(\"intervalCount\");\r\n var cellsCount = cellsInGroup * horizontalGroupCount;\r\n for (var templateIndex = 0; templateIndex < cellsCount; templateIndex++) {\r\n var $th = $(\"<th>\");\r\n var text = formatWeekdayAndDay(currentDate);\r\n if (cellTemplate) {\r\n var templateOptions = {\r\n model: _extends({\r\n text: text,\r\n date: new Date(currentDate)\r\n }, this._getGroupsForDateHeaderTemplate(templateIndex, colSpan)),\r\n container: $th,\r\n index: templateIndex\r\n };\r\n cellTemplate.render(templateOptions)\r\n } else {\r\n $th.text(text)\r\n }\r\n $th.addClass(HEADER_PANEL_CELL_CLASS).addClass(HEADER_PANEL_WEEK_CELL_CLASS).attr(\"colSpan\", colSpan);\r\n $cells.push($th);\r\n if (templateIndex % cellsInGroup === cellsInGroup - 1) {\r\n currentDate = new Date(firstViewDate)\r\n } else {\r\n this._incrementDate(currentDate)\r\n }\r\n }\r\n var $row = $(\"<tr>\").addClass(HEADER_ROW_CLASS).append($cells);\r\n $headerRow.before($row)\r\n }\r\n }\r\n _renderIndicator(height, rtlOffset, $container, groupCount) {\r\n var $indicator;\r\n var width = this.getIndicationWidth();\r\n if (\"vertical\" === this.option(\"groupOrientation\")) {\r\n $indicator = this._createIndicator($container);\r\n setHeight($indicator, getBoundingRect($container.get(0)).height);\r\n $indicator.css(\"left\", rtlOffset ? rtlOffset - width : width)\r\n } else {\r\n for (var i = 0; i < groupCount; i++) {\r\n var offset = this.isGroupedByDate() ? i * this.getCellWidth() : this._getCellCount() * this.getCellWidth() * i;\r\n $indicator = this._createIndicator($container);\r\n setHeight($indicator, getBoundingRect($container.get(0)).height);\r\n $indicator.css(\"left\", rtlOffset ? rtlOffset - width - offset : width + offset)\r\n }\r\n }\r\n }\r\n _makeGroupRows(groups, groupByDate) {\r\n var tableCreatorStrategy = \"vertical\" === this.option(\"groupOrientation\") ? tableCreator.VERTICAL : tableCreator.HORIZONTAL;\r\n return tableCreator.makeGroupedTable(tableCreatorStrategy, groups, {\r\n groupRowClass: GROUP_ROW_CLASS,\r\n groupHeaderRowClass: GROUP_ROW_CLASS,\r\n groupHeaderClass: this._getGroupHeaderClass.bind(this),\r\n groupHeaderContentClass: GROUP_HEADER_CONTENT_CLASS\r\n }, this._getCellCount() || 1, this.option(\"resourceCellTemplate\"), this._getTotalRowCount(this._getGroupCount()), groupByDate)\r\n }\r\n _setCurrentTimeCells() {\r\n var timePanelCells = this._getTimePanelCells();\r\n var currentTimeCellIndices = this._getCurrentTimePanelCellIndices();\r\n currentTimeCellIndices.forEach(timePanelCellIndex => {\r\n timePanelCells.eq(timePanelCellIndex).addClass(HEADER_CURRENT_TIME_CELL_CLASS)\r\n })\r\n }\r\n _cleanCurrentTimeCells() {\r\n this.$element().find(\".\".concat(HEADER_CURRENT_TIME_CELL_CLASS)).removeClass(HEADER_CURRENT_TIME_CELL_CLASS)\r\n }\r\n}\r\nregisterComponent(\"dxSchedulerTimeline\", SchedulerTimeline);\r\nexport default SchedulerTimeline;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_timeline_day.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport {\r\n VIEWS\r\n} from \"../m_constants\";\r\nimport SchedulerTimeline from \"./m_timeline\";\r\nvar TIMELINE_CLASS = \"dx-scheduler-timeline-day\";\r\nclass SchedulerTimelineDay extends SchedulerTimeline {\r\n get type() {\r\n return VIEWS.TIMELINE_DAY\r\n }\r\n _getElementClass() {\r\n return TIMELINE_CLASS\r\n }\r\n _needRenderWeekHeader() {\r\n return this._isWorkSpaceWithCount()\r\n }\r\n}\r\nregisterComponent(\"dxSchedulerTimelineDay\", SchedulerTimelineDay);\r\nexport default SchedulerTimelineDay;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_timeline_month.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport {\r\n HeaderPanelComponent\r\n} from \"../../scheduler/r1/components/index\";\r\nimport {\r\n formatWeekdayAndDay,\r\n monthUtils\r\n} from \"../../scheduler/r1/utils/index\";\r\nimport {\r\n VIEWS\r\n} from \"../m_constants\";\r\nimport SchedulerTimeline from \"./m_timeline\";\r\nvar TIMELINE_CLASS = \"dx-scheduler-timeline-month\";\r\nclass SchedulerTimelineMonth extends SchedulerTimeline {\r\n constructor() {\r\n super(...arguments);\r\n this.viewDirection = \"horizontal\"\r\n }\r\n get type() {\r\n return VIEWS.TIMELINE_MONTH\r\n }\r\n get renovatedHeaderPanelComponent() {\r\n return HeaderPanelComponent\r\n }\r\n _renderView() {\r\n super._renderView();\r\n this._updateScrollable()\r\n }\r\n _getElementClass() {\r\n return TIMELINE_CLASS\r\n }\r\n _getDateHeaderTemplate() {\r\n return this.option(\"dateCellTemplate\")\r\n }\r\n _calculateDurationInCells(timeDiff) {\r\n return timeDiff / this.getCellDuration()\r\n }\r\n isIndicatorVisible() {\r\n return true\r\n }\r\n _getFormat() {\r\n return formatWeekdayAndDay\r\n }\r\n _getIntervalBetween(currentDate) {\r\n var firstViewDate = this.getStartViewDate();\r\n var timeZoneOffset = dateUtils.getTimezonesDifference(firstViewDate, currentDate);\r\n return currentDate.getTime() - (firstViewDate.getTime() - 36e5 * this.option(\"startDayHour\")) - timeZoneOffset\r\n }\r\n _getViewStartByOptions() {\r\n return monthUtils.getViewStartByOptions(this.option(\"startDate\"), this.option(\"currentDate\"), this.option(\"intervalCount\"), dateUtils.getFirstMonthDate(this.option(\"startDate\")))\r\n }\r\n generateRenderOptions() {\r\n var options = super.generateRenderOptions(true);\r\n return _extends(_extends({}, options), {\r\n getDateForHeaderText: (_, date) => date\r\n })\r\n }\r\n keepOriginalHours() {\r\n return true\r\n }\r\n}\r\nregisterComponent(\"dxSchedulerTimelineMonth\", SchedulerTimelineMonth);\r\nexport default SchedulerTimelineMonth;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_timeline_week.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../core/utils/position\";\r\nimport {\r\n VIEWS\r\n} from \"../m_constants\";\r\nimport SchedulerTimeline from \"./m_timeline\";\r\nvar TIMELINE_CLASS = \"dx-scheduler-timeline-week\";\r\nexport default class SchedulerTimelineWeek extends SchedulerTimeline {\r\n get type() {\r\n return VIEWS.TIMELINE_WEEK\r\n }\r\n _getElementClass() {\r\n return TIMELINE_CLASS\r\n }\r\n _getHeaderPanelCellWidth($headerRow) {\r\n return getBoundingRect($headerRow.children().first().get(0)).width\r\n }\r\n _needRenderWeekHeader() {\r\n return true\r\n }\r\n _incrementDate(date) {\r\n date.setDate(date.getDate() + 1)\r\n }\r\n}\r\nregisterComponent(\"dxSchedulerTimelineWeek\", SchedulerTimelineWeek);\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_timeline_work_week.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport {\r\n getWeekendsCount\r\n} from \"../../scheduler/r1/utils/index\";\r\nimport {\r\n VIEWS\r\n} from \"../m_constants\";\r\nimport SchedulerTimelineWeek from \"./m_timeline_week\";\r\nvar TIMELINE_CLASS = \"dx-scheduler-timeline-work-week\";\r\nvar LAST_DAY_WEEK_INDEX = 5;\r\nclass SchedulerTimelineWorkWeek extends SchedulerTimelineWeek {\r\n get type() {\r\n return VIEWS.TIMELINE_WORK_WEEK\r\n }\r\n constructor() {\r\n super(...arguments);\r\n this._getWeekendsCount = getWeekendsCount\r\n }\r\n _getElementClass() {\r\n return TIMELINE_CLASS\r\n }\r\n _incrementDate(date) {\r\n var day = date.getDay();\r\n if (day === LAST_DAY_WEEK_INDEX) {\r\n date.setDate(date.getDate() + 2)\r\n }\r\n super._incrementDate(date)\r\n }\r\n}\r\nregisterComponent(\"dxSchedulerTimelineWorkWeek\", SchedulerTimelineWorkWeek);\r\nexport default SchedulerTimelineWorkWeek;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_work_space_vertical.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n formatWeekdayAndDay\r\n} from \"../../scheduler/r1/utils/index\";\r\nimport SchedulerWorkSpaceIndicator from \"./m_work_space_indicator\";\r\nclass SchedulerWorkspaceVertical extends SchedulerWorkSpaceIndicator {\r\n _getFormat() {\r\n return formatWeekdayAndDay\r\n }\r\n generateRenderOptions() {\r\n var options = super.generateRenderOptions();\r\n return _extends(_extends({}, options), {\r\n isGenerateTimePanelData: true\r\n })\r\n }\r\n _isRenderHeaderPanelEmptyCell() {\r\n return true\r\n }\r\n}\r\nexport default SchedulerWorkspaceVertical;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_work_space_day.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport {\r\n VIEWS\r\n} from \"../m_constants\";\r\nimport SchedulerWorkSpaceVertical from \"./m_work_space_vertical\";\r\nvar DAY_CLASS = \"dx-scheduler-work-space-day\";\r\nclass SchedulerWorkSpaceDay extends SchedulerWorkSpaceVertical {\r\n get type() {\r\n return VIEWS.DAY\r\n }\r\n _getElementClass() {\r\n return DAY_CLASS\r\n }\r\n _renderDateHeader() {\r\n return 1 === this.option(\"intervalCount\") ? null : super._renderDateHeader()\r\n }\r\n renderRHeaderPanel() {\r\n if (1 === this.option(\"intervalCount\")) {\r\n super.renderRHeaderPanel(false)\r\n } else {\r\n super.renderRHeaderPanel(true)\r\n }\r\n }\r\n}\r\nregisterComponent(\"dxSchedulerWorkSpaceDay\", SchedulerWorkSpaceDay);\r\nexport default SchedulerWorkSpaceDay;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_work_space_month.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport dateUtils from \"../../../core/utils/date\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../core/utils/position\";\r\nimport {\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport {\r\n DateTableMonthComponent\r\n} from \"../../scheduler/r1/components/index\";\r\nimport {\r\n formatWeekday,\r\n monthUtils\r\n} from \"../../scheduler/r1/utils/index\";\r\nimport {\r\n VIEWS\r\n} from \"../m_constants\";\r\nimport {\r\n utils\r\n} from \"../m_utils\";\r\nimport SchedulerWorkSpace from \"./m_work_space_indicator\";\r\nvar MONTH_CLASS = \"dx-scheduler-work-space-month\";\r\nvar DATE_TABLE_CURRENT_DATE_CLASS = \"dx-scheduler-date-table-current-date\";\r\nvar DATE_TABLE_CELL_TEXT_CLASS = \"dx-scheduler-date-table-cell-text\";\r\nvar DATE_TABLE_FIRST_OF_MONTH_CLASS = \"dx-scheduler-date-table-first-of-month\";\r\nvar DATE_TABLE_OTHER_MONTH_DATE_CLASS = \"dx-scheduler-date-table-other-month\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nclass SchedulerWorkSpaceMonth extends SchedulerWorkSpace {\r\n get type() {\r\n return VIEWS.MONTH\r\n }\r\n _getElementClass() {\r\n return MONTH_CLASS\r\n }\r\n _getFormat() {\r\n return formatWeekday\r\n }\r\n _getIntervalBetween(currentDate) {\r\n var firstViewDate = this.getStartViewDate();\r\n var timeZoneOffset = dateUtils.getTimezonesDifference(firstViewDate, currentDate);\r\n return currentDate.getTime() - (firstViewDate.getTime() - 36e5 * this.option(\"startDayHour\")) - timeZoneOffset\r\n }\r\n _getDateGenerationOptions() {\r\n return _extends(_extends({}, super._getDateGenerationOptions()), {\r\n cellCountInDay: 1\r\n })\r\n }\r\n getCellWidth() {\r\n return this.cache.get(\"cellWidth\", () => {\r\n var averageWidth = 0;\r\n var cells = this._getCells().slice(0, 7);\r\n cells.each((index, element) => {\r\n averageWidth += hasWindow() ? getBoundingRect(element).width : 0\r\n });\r\n return 0 === cells.length ? void 0 : averageWidth / 7\r\n })\r\n }\r\n _insertAllDayRowsIntoDateTable() {\r\n return false\r\n }\r\n _getCellCoordinatesByIndex(index) {\r\n var rowIndex = Math.floor(index / this._getCellCount());\r\n var columnIndex = index - this._getCellCount() * rowIndex;\r\n return {\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex\r\n }\r\n }\r\n _needCreateCrossScrolling() {\r\n return this.option(\"crossScrollingEnabled\") || this._isVerticalGroupedWorkSpace()\r\n }\r\n _getViewStartByOptions() {\r\n return monthUtils.getViewStartByOptions(this.option(\"startDate\"), this.option(\"currentDate\"), this.option(\"intervalCount\"), dateUtils.getFirstMonthDate(this.option(\"startDate\")))\r\n }\r\n _updateIndex(index) {\r\n return index\r\n }\r\n isIndicationAvailable() {\r\n return false\r\n }\r\n getIntervalDuration() {\r\n return toMs(\"day\")\r\n }\r\n getTimePanelWidth() {\r\n return 0\r\n }\r\n supportAllDayRow() {\r\n return false\r\n }\r\n keepOriginalHours() {\r\n return true\r\n }\r\n getWorkSpaceLeftOffset() {\r\n return 0\r\n }\r\n needApplyCollectorOffset() {\r\n return true\r\n }\r\n _getHeaderDate() {\r\n return this._getViewStartByOptions()\r\n }\r\n scrollToTime() {\r\n return noop()\r\n }\r\n renderRAllDayPanel() {}\r\n renderRTimeTable() {}\r\n renderRDateTable() {\r\n utils.renovation.renderComponent(this, this._$dateTable, DateTableMonthComponent, \"renovatedDateTable\", this._getRDateTableProps())\r\n }\r\n _createWorkSpaceElements() {\r\n if (this._isVerticalGroupedWorkSpace()) {\r\n this._createWorkSpaceScrollableElements()\r\n } else {\r\n super._createWorkSpaceElements()\r\n }\r\n }\r\n _toggleAllDayVisibility() {\r\n return noop()\r\n }\r\n _changeAllDayVisibility() {\r\n return noop()\r\n }\r\n _renderTimePanel() {\r\n return noop()\r\n }\r\n _renderAllDayPanel() {\r\n return noop()\r\n }\r\n _setMonthClassesToCell($cell, data) {\r\n $cell.toggleClass(DATE_TABLE_CURRENT_DATE_CLASS, data.isCurrentDate).toggleClass(DATE_TABLE_FIRST_OF_MONTH_CLASS, data.firstDayOfMonth).toggleClass(DATE_TABLE_OTHER_MONTH_DATE_CLASS, data.otherMonth)\r\n }\r\n _createAllDayPanelElements() {}\r\n _renderTableBody(options) {\r\n options.getCellText = (rowIndex, columnIndex) => {\r\n var date = this.viewDataProvider.completeViewDataMap[rowIndex][columnIndex].startDate;\r\n return monthUtils.getCellText(date, this.option(\"intervalCount\"))\r\n };\r\n options.getCellTextClass = DATE_TABLE_CELL_TEXT_CLASS;\r\n options.setAdditionalClasses = this._setMonthClassesToCell.bind(this);\r\n super._renderTableBody(options)\r\n }\r\n}\r\nregisterComponent(\"dxSchedulerWorkSpaceMonth\", SchedulerWorkSpaceMonth);\r\nexport default SchedulerWorkSpaceMonth;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_work_space_week.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport {\r\n weekUtils\r\n} from \"../../scheduler/r1/utils/index\";\r\nimport {\r\n VIEWS\r\n} from \"../m_constants\";\r\nimport SchedulerWorkSpaceVertical from \"./m_work_space_vertical\";\r\nvar WEEK_CLASS = \"dx-scheduler-work-space-week\";\r\nclass SchedulerWorkSpaceWeek extends SchedulerWorkSpaceVertical {\r\n get type() {\r\n return VIEWS.WEEK\r\n }\r\n _getElementClass() {\r\n return WEEK_CLASS\r\n }\r\n _calculateViewStartDate() {\r\n return weekUtils.calculateViewStartDate(this.option(\"startDate\"), this._firstDayOfWeek())\r\n }\r\n}\r\nregisterComponent(\"dxSchedulerWorkSpaceWeek\", SchedulerWorkSpaceWeek);\r\nexport default SchedulerWorkSpaceWeek;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/workspaces/m_work_space_work_week.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport {\r\n getWeekendsCount\r\n} from \"../../scheduler/r1/utils/index\";\r\nimport {\r\n VIEWS\r\n} from \"../m_constants\";\r\nimport SchedulerWorkSpaceWeek from \"./m_work_space_week\";\r\nvar WORK_WEEK_CLASS = \"dx-scheduler-work-space-work-week\";\r\nclass SchedulerWorkSpaceWorkWeek extends SchedulerWorkSpaceWeek {\r\n get type() {\r\n return VIEWS.WORK_WEEK\r\n }\r\n constructor() {\r\n super(...arguments);\r\n this._getWeekendsCount = getWeekendsCount\r\n }\r\n _getElementClass() {\r\n return WORK_WEEK_CLASS\r\n }\r\n}\r\nregisterComponent(\"dxSchedulerWorkSpaceWorkWeek\", SchedulerWorkSpaceWorkWeek);\r\nexport default SchedulerWorkSpaceWorkWeek;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/m_scheduler.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport config from \"../../core/config\";\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 BindableTemplate\r\n} from \"../../core/templates/bindable_template\";\r\nimport {\r\n EmptyTemplate\r\n} from \"../../core/templates/empty_template\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport {\r\n Deferred,\r\n fromPromise,\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 getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport {\r\n isDeferred,\r\n isDefined,\r\n isEmptyObject,\r\n isFunction,\r\n isObject,\r\n isPromise,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport DataHelperMixin from \"../../data_helper\";\r\nimport {\r\n triggerResizeEvent\r\n} from \"../../events/visibility_change\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n custom as customDialog\r\n} from \"../../ui/dialog\";\r\nimport {\r\n isMaterial,\r\n isMaterialBased\r\n} from \"../../ui/themes\";\r\nimport errors from \"../../ui/widget/ui.errors\";\r\nimport Widget from \"../../ui/widget/ui.widget\";\r\nimport {\r\n dateUtilsTs\r\n} from \"../core/utils/date\";\r\nimport {\r\n createTimeZoneCalculator\r\n} from \"../scheduler/r1/timezone_calculator/index\";\r\nimport {\r\n excludeFromRecurrence,\r\n getAppointmentTakesAllDay,\r\n getPreparedDataItems,\r\n isDateAndTimeView as _isDateAndTimeView,\r\n isTimelineView,\r\n viewsUtils\r\n} from \"../scheduler/r1/utils/index\";\r\nimport {\r\n AppointmentForm\r\n} from \"./appointment_popup/m_form\";\r\nimport {\r\n ACTION_TO_APPOINTMENT,\r\n AppointmentPopup\r\n} from \"./appointment_popup/m_popup\";\r\nimport {\r\n AppointmentDataProvider\r\n} from \"./appointments/data_provider/m_appointment_data_provider\";\r\nimport AppointmentCollection from \"./appointments/m_appointment_collection\";\r\nimport {\r\n SchedulerHeader\r\n} from \"./header/m_header\";\r\nimport {\r\n createAppointmentAdapter\r\n} from \"./m_appointment_adapter\";\r\nimport AppointmentLayoutManager from \"./m_appointments_layout_manager\";\r\nimport {\r\n CompactAppointmentsHelper\r\n} from \"./m_compact_appointments_helper\";\r\nimport {\r\n VIEWS\r\n} from \"./m_constants\";\r\nimport {\r\n AppointmentTooltipInfo\r\n} from \"./m_data_structures\";\r\nimport {\r\n ExpressionUtils\r\n} from \"./m_expression_utils\";\r\nimport {\r\n hide as hideLoading,\r\n show as showLoading\r\n} from \"./m_loading\";\r\nimport {\r\n getRecurrenceProcessor\r\n} from \"./m_recurrence\";\r\nimport subscribes from \"./m_subscribes\";\r\nimport {\r\n utils\r\n} from \"./m_utils\";\r\nimport timeZoneUtils from \"./m_utils_time_zone\";\r\nimport {\r\n SchedulerOptionsValidator,\r\n SchedulerOptionsValidatorErrorsHandler\r\n} from \"./options_validator/index\";\r\nimport {\r\n AgendaResourceProcessor\r\n} from \"./resources/m_agenda_resource_processor\";\r\nimport {\r\n createExpressions,\r\n createResourceEditorModel as _createResourceEditorModel,\r\n getAppointmentColor,\r\n getCellGroups,\r\n loadResources,\r\n setResourceToAppointment\r\n} from \"./resources/m_utils\";\r\nimport {\r\n DesktopTooltipStrategy\r\n} from \"./tooltip_strategies/m_desktop_tooltip_strategy\";\r\nimport {\r\n MobileTooltipStrategy\r\n} from \"./tooltip_strategies/m_mobile_tooltip_strategy\";\r\nimport SchedulerAgenda from \"./workspaces/m_agenda\";\r\nimport SchedulerTimelineDay from \"./workspaces/m_timeline_day\";\r\nimport SchedulerTimelineMonth from \"./workspaces/m_timeline_month\";\r\nimport SchedulerTimelineWeek from \"./workspaces/m_timeline_week\";\r\nimport SchedulerTimelineWorkWeek from \"./workspaces/m_timeline_work_week\";\r\nimport SchedulerWorkSpaceDay from \"./workspaces/m_work_space_day\";\r\nimport SchedulerWorkSpaceMonth from \"./workspaces/m_work_space_month\";\r\nimport SchedulerWorkSpaceWeek from \"./workspaces/m_work_space_week\";\r\nimport SchedulerWorkSpaceWorkWeek from \"./workspaces/m_work_space_work_week\";\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nvar DEFAULT_AGENDA_DURATION = 7;\r\nvar WIDGET_CLASS = \"dx-scheduler\";\r\nvar WIDGET_SMALL_CLASS = \"\".concat(WIDGET_CLASS, \"-small\");\r\nvar WIDGET_ADAPTIVE_CLASS = \"\".concat(WIDGET_CLASS, \"-adaptive\");\r\nvar WIDGET_READONLY_CLASS = \"\".concat(WIDGET_CLASS, \"-readonly\");\r\nvar WIDGET_SMALL_WIDTH = 400;\r\nvar FULL_DATE_FORMAT = \"yyyyMMddTHHmmss\";\r\nvar UTC_FULL_DATE_FORMAT = \"\".concat(FULL_DATE_FORMAT, \"Z\");\r\nvar DEFAULT_APPOINTMENT_TEMPLATE_NAME = \"item\";\r\nvar DEFAULT_APPOINTMENT_COLLECTOR_TEMPLATE_NAME = \"appointmentCollector\";\r\nvar DEFAULT_DROP_DOWN_APPOINTMENT_TEMPLATE_NAME = \"dropDownAppointment\";\r\nvar VIEWS_CONFIG = {\r\n day: {\r\n workSpace: SchedulerWorkSpaceDay,\r\n renderingStrategy: \"vertical\"\r\n },\r\n week: {\r\n workSpace: SchedulerWorkSpaceWeek,\r\n renderingStrategy: \"vertical\"\r\n },\r\n workWeek: {\r\n workSpace: SchedulerWorkSpaceWorkWeek,\r\n renderingStrategy: \"vertical\"\r\n },\r\n month: {\r\n workSpace: SchedulerWorkSpaceMonth,\r\n renderingStrategy: \"horizontalMonth\"\r\n },\r\n timelineDay: {\r\n workSpace: SchedulerTimelineDay,\r\n renderingStrategy: \"horizontal\"\r\n },\r\n timelineWeek: {\r\n workSpace: SchedulerTimelineWeek,\r\n renderingStrategy: \"horizontal\"\r\n },\r\n timelineWorkWeek: {\r\n workSpace: SchedulerTimelineWorkWeek,\r\n renderingStrategy: \"horizontal\"\r\n },\r\n timelineMonth: {\r\n workSpace: SchedulerTimelineMonth,\r\n renderingStrategy: \"horizontalMonthLine\"\r\n },\r\n agenda: {\r\n workSpace: SchedulerAgenda,\r\n renderingStrategy: \"agenda\"\r\n }\r\n};\r\nvar StoreEventNames = {\r\n ADDING: \"onAppointmentAdding\",\r\n ADDED: \"onAppointmentAdded\",\r\n DELETING: \"onAppointmentDeleting\",\r\n DELETED: \"onAppointmentDeleted\",\r\n UPDATING: \"onAppointmentUpdating\",\r\n UPDATED: \"onAppointmentUpdated\"\r\n};\r\nvar RECURRENCE_EDITING_MODE = {\r\n SERIES: \"editSeries\",\r\n OCCURENCE: \"editOccurence\",\r\n CANCEL: \"cancel\"\r\n};\r\nclass Scheduler extends Widget {\r\n _getDefaultOptions() {\r\n var defaultOptions = extend(super._getDefaultOptions(), {\r\n views: [\"day\", \"week\"],\r\n currentView: \"day\",\r\n currentDate: dateUtils.trimTime(new Date),\r\n min: void 0,\r\n max: void 0,\r\n dateSerializationFormat: void 0,\r\n firstDayOfWeek: void 0,\r\n groups: [],\r\n resources: [],\r\n loadedResources: [],\r\n resourceLoaderMap: new Map,\r\n dataSource: null,\r\n customizeDateNavigatorText: void 0,\r\n appointmentTemplate: DEFAULT_APPOINTMENT_TEMPLATE_NAME,\r\n dropDownAppointmentTemplate: DEFAULT_DROP_DOWN_APPOINTMENT_TEMPLATE_NAME,\r\n appointmentCollectorTemplate: DEFAULT_APPOINTMENT_COLLECTOR_TEMPLATE_NAME,\r\n dataCellTemplate: null,\r\n timeCellTemplate: null,\r\n resourceCellTemplate: null,\r\n dateCellTemplate: null,\r\n startDayHour: 0,\r\n endDayHour: 24,\r\n offset: 0,\r\n editing: {\r\n allowAdding: true,\r\n allowDeleting: true,\r\n allowDragging: true,\r\n allowResizing: true,\r\n allowUpdating: true,\r\n allowTimeZoneEditing: false\r\n },\r\n showAllDayPanel: true,\r\n showCurrentTimeIndicator: true,\r\n shadeUntilCurrentTime: false,\r\n indicatorUpdateInterval: 3e5,\r\n indicatorTime: void 0,\r\n recurrenceEditMode: \"dialog\",\r\n cellDuration: 30,\r\n maxAppointmentsPerCell: \"auto\",\r\n selectedCellData: [],\r\n groupByDate: false,\r\n onAppointmentRendered: null,\r\n onAppointmentClick: null,\r\n onAppointmentDblClick: null,\r\n onAppointmentContextMenu: null,\r\n onCellClick: null,\r\n onCellContextMenu: null,\r\n onAppointmentAdding: null,\r\n onAppointmentAdded: null,\r\n onAppointmentUpdating: null,\r\n onAppointmentUpdated: null,\r\n onAppointmentDeleting: null,\r\n onAppointmentDeleted: null,\r\n onAppointmentFormOpening: null,\r\n onAppointmentTooltipShowing: null,\r\n appointmentTooltipTemplate: \"appointmentTooltip\",\r\n appointmentPopupTemplate: \"appointmentPopup\",\r\n crossScrollingEnabled: false,\r\n useDropDownViewSwitcher: false,\r\n startDateExpr: \"startDate\",\r\n endDateExpr: \"endDate\",\r\n textExpr: \"text\",\r\n descriptionExpr: \"description\",\r\n allDayExpr: \"allDay\",\r\n recurrenceRuleExpr: \"recurrenceRule\",\r\n recurrenceExceptionExpr: \"recurrenceException\",\r\n disabledExpr: \"disabled\",\r\n remoteFiltering: false,\r\n timeZone: \"\",\r\n startDateTimeZoneExpr: \"startDateTimeZone\",\r\n endDateTimeZoneExpr: \"endDateTimeZone\",\r\n noDataText: messageLocalization.format(\"dxCollectionWidget-noDataText\"),\r\n adaptivityEnabled: false,\r\n allowMultipleCellSelection: true,\r\n scrolling: {\r\n mode: \"standard\"\r\n },\r\n allDayPanelMode: \"all\",\r\n renovateRender: true,\r\n _draggingMode: \"outlook\",\r\n _appointmentTooltipOffset: {\r\n x: 0,\r\n y: 0\r\n },\r\n _appointmentTooltipButtonsPosition: \"bottom\",\r\n _appointmentTooltipOpenButtonText: messageLocalization.format(\"dxScheduler-openAppointment\"),\r\n _appointmentCountPerCell: 2,\r\n _collectorOffset: 0,\r\n _appointmentOffset: 26,\r\n toolbar: [{\r\n location: \"before\",\r\n defaultElement: \"dateNavigator\"\r\n }, {\r\n location: \"after\",\r\n defaultElement: \"viewSwitcher\"\r\n }]\r\n });\r\n return extend(true, defaultOptions, {\r\n integrationOptions: {\r\n useDeferUpdateForTemplates: false\r\n }\r\n })\r\n }\r\n get filteredItems() {\r\n if (!this._filteredItems) {\r\n this._filteredItems = []\r\n }\r\n return this._filteredItems\r\n }\r\n set filteredItems(value) {\r\n this._filteredItems = value\r\n }\r\n get preparedItems() {\r\n if (!this._preparedItems) {\r\n this._preparedItems = []\r\n }\r\n return this._preparedItems\r\n }\r\n set preparedItems(value) {\r\n this._preparedItems = value\r\n }\r\n get currentView() {\r\n return viewsUtils.getCurrentView(this.option(\"currentView\"), this.option(\"views\"))\r\n }\r\n get currentViewType() {\r\n return isObject(this.currentView) ? this.currentView.type : this.currentView\r\n }\r\n get timeZoneCalculator() {\r\n if (!this._timeZoneCalculator) {\r\n this._timeZoneCalculator = createTimeZoneCalculator(this.option(\"timeZone\"))\r\n }\r\n return this._timeZoneCalculator\r\n }\r\n _setDeprecatedOptions() {\r\n super._setDeprecatedOptions();\r\n extend(this._deprecatedOptions, {\r\n dropDownAppointmentTemplate: {\r\n since: \"19.2\",\r\n message: \"appointmentTooltipTemplate\"\r\n }\r\n })\r\n }\r\n _defaultOptionsRules() {\r\n return super._defaultOptionsRules().concat([{\r\n device: () => \"desktop\" === devices.real().deviceType && !devices.isSimulator(),\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: () => !devices.current().generic,\r\n options: {\r\n useDropDownViewSwitcher: true,\r\n editing: {\r\n allowDragging: false,\r\n allowResizing: false\r\n }\r\n }\r\n }, {\r\n device: () => isMaterialBased(),\r\n options: {\r\n useDropDownViewSwitcher: true,\r\n dateCellTemplate(data, index, element) {\r\n var {\r\n text: text\r\n } = data;\r\n text.split(\" \").forEach((text, index) => {\r\n var span = $(\"<span>\").text(text).addClass(\"dx-scheduler-header-panel-cell-date\");\r\n $(element).append(span);\r\n if (!index) {\r\n $(element).append(\" \")\r\n }\r\n })\r\n },\r\n _appointmentTooltipButtonsPosition: \"top\",\r\n _appointmentTooltipOpenButtonText: null,\r\n _appointmentCountPerCell: 1,\r\n _collectorOffset: 20,\r\n _appointmentOffset: 30\r\n }\r\n }, {\r\n device: () => isMaterial(),\r\n options: {\r\n _appointmentTooltipOffset: {\r\n x: 0,\r\n y: 11\r\n }\r\n }\r\n }])\r\n }\r\n _postponeDataSourceLoading(promise) {\r\n this.postponedOperations.add(\"_reloadDataSource\", this._reloadDataSource.bind(this), promise)\r\n }\r\n _postponeResourceLoading() {\r\n var whenLoaded = this.postponedOperations.add(\"loadResources\", () => {\r\n var groups = this._getCurrentViewOption(\"groups\");\r\n return loadResources(groups, this.option(\"resources\"), this.option(\"resourceLoaderMap\"))\r\n });\r\n var resolveCallbacks = new Deferred;\r\n whenLoaded.done(resources => {\r\n this.option(\"loadedResources\", resources);\r\n resolveCallbacks.resolve(resources)\r\n });\r\n this._postponeDataSourceLoading(whenLoaded);\r\n return resolveCallbacks.promise()\r\n }\r\n _optionChanged(args) {\r\n var _a, _b, _c, _d;\r\n this.validateOptions();\r\n var {\r\n value: value\r\n } = args;\r\n var {\r\n name: name\r\n } = args;\r\n switch (args.name) {\r\n case \"customizeDateNavigatorText\":\r\n this._updateOption(\"header\", name, value);\r\n break;\r\n case \"firstDayOfWeek\":\r\n this._updateOption(\"workSpace\", name, value);\r\n this._updateOption(\"header\", name, value);\r\n break;\r\n case \"currentDate\":\r\n value = this._dateOption(name);\r\n value = dateUtils.trimTime(new Date(value));\r\n this.option(\"selectedCellData\", []);\r\n this._workSpace.option(name, new Date(value));\r\n null === (_a = this._header) || void 0 === _a ? void 0 : _a.option(name, new Date(value));\r\n null === (_b = this._header) || void 0 === _b ? void 0 : _b.option(\"startViewDate\", this.getStartViewDate());\r\n this._appointments.option(\"items\", []);\r\n this._filterAppointmentsByDate();\r\n this._postponeDataSourceLoading();\r\n break;\r\n case \"dataSource\":\r\n this._initDataSource();\r\n this.appointmentDataProvider.setDataSource(this._dataSource);\r\n this._postponeResourceLoading().done(() => {\r\n this._filterAppointmentsByDate();\r\n this._updateOption(\"workSpace\", \"showAllDayPanel\", this.option(\"showAllDayPanel\"))\r\n });\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n value = this._dateOption(name);\r\n this._updateOption(\"header\", name, new Date(value));\r\n this._updateOption(\"workSpace\", name, new Date(value));\r\n break;\r\n case \"views\":\r\n if (this._getCurrentViewOptions()) {\r\n this.repaint()\r\n } else {\r\n null === (_c = this._header) || void 0 === _c ? void 0 : _c.option(name, value)\r\n }\r\n break;\r\n case \"useDropDownViewSwitcher\":\r\n null === (_d = this._header) || void 0 === _d ? void 0 : _d.option(name, value);\r\n break;\r\n case \"currentView\":\r\n this._appointments.option({\r\n items: [],\r\n allowDrag: this._allowDragging(),\r\n allowResize: this._allowResizing(),\r\n itemTemplate: this._getAppointmentTemplate(\"appointmentTemplate\")\r\n });\r\n this._postponeResourceLoading().done(resources => {\r\n var _a;\r\n this._refreshWorkSpace(resources);\r\n null === (_a = this._header) || void 0 === _a ? void 0 : _a.option(this._headerConfig());\r\n this._filterAppointmentsByDate();\r\n this._appointments.option(\"allowAllDayResize\", \"day\" !== value)\r\n });\r\n this.postponedOperations.callPostponedOperations();\r\n break;\r\n case \"appointmentTemplate\":\r\n this._appointments.option(\"itemTemplate\", value);\r\n break;\r\n case \"dateCellTemplate\":\r\n case \"resourceCellTemplate\":\r\n case \"dataCellTemplate\":\r\n case \"timeCellTemplate\":\r\n this.repaint();\r\n break;\r\n case \"groups\":\r\n this._postponeResourceLoading().done(resources => {\r\n this._refreshWorkSpace(resources);\r\n this._filterAppointmentsByDate()\r\n });\r\n break;\r\n case \"resources\":\r\n this._dataAccessors.resources = createExpressions(this.option(\"resources\"));\r\n this.agendaResourceProcessor.initializeState(this.option(\"resources\"));\r\n this.updateInstances();\r\n this._postponeResourceLoading().done(resources => {\r\n this._appointments.option(\"items\", []);\r\n this._refreshWorkSpace(resources);\r\n this._filterAppointmentsByDate();\r\n this._createAppointmentPopupForm()\r\n });\r\n break;\r\n case \"startDayHour\":\r\n case \"endDayHour\":\r\n this.updateInstances();\r\n this._appointments.option(\"items\", []);\r\n this._updateOption(\"workSpace\", name, value);\r\n this._appointments.repaint();\r\n this._filterAppointmentsByDate();\r\n this._postponeDataSourceLoading();\r\n break;\r\n case \"offset\":\r\n this.updateInstances();\r\n this._appointments.option(\"items\", []);\r\n this._updateOption(\"workSpace\", \"viewOffset\", this.normalizeViewOffsetValue(value));\r\n this._appointments.repaint();\r\n this._filterAppointmentsByDate();\r\n this._postponeDataSourceLoading();\r\n break;\r\n case StoreEventNames.ADDING:\r\n case StoreEventNames.ADDED:\r\n case StoreEventNames.UPDATING:\r\n case StoreEventNames.UPDATED:\r\n case StoreEventNames.DELETING:\r\n case StoreEventNames.DELETED:\r\n case \"onAppointmentFormOpening\":\r\n case \"onAppointmentTooltipShowing\":\r\n this._actions[name] = this._createActionByOption(name);\r\n break;\r\n case \"onAppointmentRendered\":\r\n this._appointments.option(\"onItemRendered\", this._getAppointmentRenderedAction());\r\n break;\r\n case \"onAppointmentClick\":\r\n this._appointments.option(\"onItemClick\", this._createActionByOption(name));\r\n break;\r\n case \"onAppointmentDblClick\":\r\n this._appointments.option(name, this._createActionByOption(name));\r\n break;\r\n case \"onAppointmentContextMenu\":\r\n this._appointments.option(\"onItemContextMenu\", this._createActionByOption(name));\r\n this._appointmentTooltip._options.onItemContextMenu = this._createActionByOption(name);\r\n break;\r\n case \"noDataText\":\r\n case \"allowMultipleCellSelection\":\r\n case \"selectedCellData\":\r\n case \"accessKey\":\r\n case \"onCellClick\":\r\n case \"onCellContextMenu\":\r\n this._workSpace.option(name, value);\r\n break;\r\n case \"crossScrollingEnabled\":\r\n this._postponeResourceLoading().done(resources => {\r\n this._appointments.option(\"items\", []);\r\n this._refreshWorkSpace(resources);\r\n if (this._readyToRenderAppointments) {\r\n this._appointments.option(\"items\", this._getAppointmentsToRepaint())\r\n }\r\n });\r\n break;\r\n case \"cellDuration\":\r\n this._updateOption(\"workSpace\", name, value);\r\n this._appointments.option(\"items\", []);\r\n if (this._readyToRenderAppointments) {\r\n this._updateOption(\"workSpace\", \"hoursInterval\", value / 60);\r\n this._appointments.option(\"items\", this._getAppointmentsToRepaint())\r\n }\r\n break;\r\n case \"tabIndex\":\r\n case \"focusStateEnabled\":\r\n this._updateOption(\"header\", name, value);\r\n this._updateOption(\"workSpace\", name, value);\r\n this._appointments.option(name, value);\r\n super._optionChanged(args);\r\n break;\r\n case \"width\":\r\n this._updateOption(\"header\", name, value);\r\n if (this.option(\"crossScrollingEnabled\")) {\r\n this._updateOption(\"workSpace\", \"width\", value)\r\n }\r\n this._updateOption(\"workSpace\", \"schedulerWidth\", value);\r\n super._optionChanged(args);\r\n this._dimensionChanged(null, true);\r\n break;\r\n case \"height\":\r\n super._optionChanged(args);\r\n this._dimensionChanged(null, true);\r\n this._updateOption(\"workSpace\", \"schedulerHeight\", value);\r\n break;\r\n case \"editing\":\r\n this._initEditing();\r\n var editing = this._editing;\r\n this._bringEditingModeToAppointments(editing);\r\n this.hideAppointmentTooltip();\r\n this._cleanPopup();\r\n break;\r\n case \"showAllDayPanel\":\r\n this.updateInstances();\r\n this.repaint();\r\n break;\r\n case \"showCurrentTimeIndicator\":\r\n case \"indicatorTime\":\r\n case \"indicatorUpdateInterval\":\r\n case \"shadeUntilCurrentTime\":\r\n case \"groupByDate\":\r\n this._updateOption(\"workSpace\", name, value);\r\n this.repaint();\r\n break;\r\n case \"appointmentDragging\":\r\n case \"appointmentTooltipTemplate\":\r\n case \"appointmentPopupTemplate\":\r\n case \"recurrenceEditMode\":\r\n case \"remoteFiltering\":\r\n case \"timeZone\":\r\n this.updateInstances();\r\n this.repaint();\r\n break;\r\n case \"dropDownAppointmentTemplate\":\r\n case \"appointmentCollectorTemplate\":\r\n case \"_appointmentTooltipOffset\":\r\n case \"_appointmentTooltipButtonsPosition\":\r\n case \"_appointmentTooltipOpenButtonText\":\r\n case \"_appointmentCountPerCell\":\r\n case \"_collectorOffset\":\r\n case \"_appointmentOffset\":\r\n this.repaint();\r\n break;\r\n case \"dateSerializationFormat\":\r\n case \"maxAppointmentsPerCell\":\r\n break;\r\n case \"startDateExpr\":\r\n case \"endDateExpr\":\r\n case \"startDateTimeZoneExpr\":\r\n case \"endDateTimeZoneExpr\":\r\n case \"textExpr\":\r\n case \"descriptionExpr\":\r\n case \"allDayExpr\":\r\n case \"recurrenceRuleExpr\":\r\n case \"recurrenceExceptionExpr\":\r\n case \"disabledExpr\":\r\n this._updateExpression(name, value);\r\n this.appointmentDataProvider.updateDataAccessors(this._dataAccessors);\r\n this._initAppointmentTemplate();\r\n this.repaint();\r\n break;\r\n case \"adaptivityEnabled\":\r\n this._toggleAdaptiveClass();\r\n this.repaint();\r\n break;\r\n case \"scrolling\":\r\n this.option(\"crossScrollingEnabled\", this._isHorizontalVirtualScrolling() || this.option(\"crossScrollingEnabled\"));\r\n this._updateOption(\"workSpace\", args.fullName, value);\r\n break;\r\n case \"allDayPanelMode\":\r\n this.updateInstances();\r\n this._updateOption(\"workSpace\", args.fullName, value);\r\n break;\r\n case \"renovateRender\":\r\n this._updateOption(\"workSpace\", name, value);\r\n break;\r\n case \"_draggingMode\":\r\n this._workSpace.option(\"draggingMode\", value);\r\n break;\r\n case \"toolbar\":\r\n this._header ? this._header.option(\"items\", value) : this.repaint();\r\n break;\r\n case \"loadedResources\":\r\n case \"resourceLoaderMap\":\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _dateOption(optionName) {\r\n var optionValue = this._getCurrentViewOption(optionName);\r\n return dateSerialization.deserializeDate(optionValue)\r\n }\r\n _getSerializationFormat(optionName) {\r\n var value = this._getCurrentViewOption(optionName);\r\n if (\"number\" === typeof value) {\r\n return \"number\"\r\n }\r\n if (!isString(value)) {\r\n return\r\n }\r\n return dateSerialization.getDateSerializationFormat(value)\r\n }\r\n _bringEditingModeToAppointments(editing) {\r\n var editingConfig = {\r\n allowDelete: editing.allowUpdating && editing.allowDeleting\r\n };\r\n if (!this._isAgenda()) {\r\n editingConfig.allowDrag = editing.allowDragging;\r\n editingConfig.allowResize = editing.allowResizing;\r\n editingConfig.allowAllDayResize = editing.allowResizing && this._supportAllDayResizing()\r\n }\r\n this._appointments.option(editingConfig);\r\n this.repaint()\r\n }\r\n _isAgenda() {\r\n return \"agenda\" === this.getLayoutManager().appointmentRenderingStrategyName\r\n }\r\n _allowDragging() {\r\n return this._editing.allowDragging && !this._isAgenda()\r\n }\r\n _allowResizing() {\r\n return this._editing.allowResizing && !this._isAgenda()\r\n }\r\n _allowAllDayResizing() {\r\n return this._editing.allowResizing && this._supportAllDayResizing()\r\n }\r\n _supportAllDayResizing() {\r\n return \"day\" !== this.currentViewType || this.currentView.intervalCount > 1\r\n }\r\n _isAllDayExpanded() {\r\n return this.option(\"showAllDayPanel\") && this.appointmentDataProvider.hasAllDayAppointments(this.filteredItems, this.preparedItems)\r\n }\r\n _getTimezoneOffsetByOption(date) {\r\n return timeZoneUtils.calculateTimezoneByValue(this.option(\"timeZone\"), date)\r\n }\r\n _filterAppointmentsByDate() {\r\n var dateRange = this._workSpace.getDateRange();\r\n var startDate = this.timeZoneCalculator.createDate(dateRange[0], {\r\n path: \"fromGrid\"\r\n });\r\n var endDate = this.timeZoneCalculator.createDate(dateRange[1], {\r\n path: \"fromGrid\"\r\n });\r\n this.appointmentDataProvider.filterByDate(startDate, endDate, this.option(\"remoteFiltering\"), this.option(\"dateSerializationFormat\"))\r\n }\r\n _reloadDataSource() {\r\n var result = new Deferred;\r\n if (this._dataSource) {\r\n this._dataSource.load().done(() => {\r\n hideLoading();\r\n this._fireContentReadyAction(result)\r\n }).fail(() => {\r\n hideLoading();\r\n result.reject()\r\n });\r\n this._dataSource.isLoading() && showLoading({\r\n container: this.$element(),\r\n position: {\r\n of: this.$element()\r\n }\r\n })\r\n } else {\r\n this._fireContentReadyAction(result)\r\n }\r\n return result.promise()\r\n }\r\n _fireContentReadyAction(result) {\r\n var _a;\r\n var contentReadyBase = super._fireContentReadyAction.bind(this);\r\n var fireContentReady = () => {\r\n contentReadyBase();\r\n null === result || void 0 === result ? void 0 : result.resolve()\r\n };\r\n if (this._workSpaceRecalculation) {\r\n null === (_a = this._workSpaceRecalculation) || void 0 === _a ? void 0 : _a.done(() => {\r\n fireContentReady()\r\n })\r\n } else {\r\n fireContentReady()\r\n }\r\n }\r\n _dimensionChanged(value) {\r\n var isForce = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : false;\r\n var isFixedHeight = \"number\" === typeof this.option(\"height\");\r\n var isFixedWidth = \"number\" === typeof this.option(\"width\");\r\n if (!this._isVisible()) {\r\n return\r\n }\r\n this._toggleSmallClass();\r\n var workspace = this.getWorkSpace();\r\n if (!this._isAgenda() && this.filteredItems && workspace) {\r\n if (isForce || !isFixedHeight || !isFixedWidth) {\r\n workspace.option(\"allDayExpanded\", this._isAllDayExpanded());\r\n workspace._dimensionChanged();\r\n var appointments = this.getLayoutManager().createAppointmentsMap(this.filteredItems);\r\n this._appointments.option(\"items\", appointments)\r\n }\r\n }\r\n this.hideAppointmentTooltip();\r\n this._appointmentPopup.triggerResize();\r\n this._appointmentPopup.updatePopupFullScreenMode()\r\n }\r\n _clean() {\r\n this._cleanPopup();\r\n super._clean()\r\n }\r\n _toggleSmallClass() {\r\n var {\r\n width: width\r\n } = getBoundingRect(this.$element().get(0));\r\n this.$element().toggleClass(WIDGET_SMALL_CLASS, width < WIDGET_SMALL_WIDTH)\r\n }\r\n _toggleAdaptiveClass() {\r\n this.$element().toggleClass(WIDGET_ADAPTIVE_CLASS, this.option(\"adaptivityEnabled\"))\r\n }\r\n _visibilityChanged(visible) {\r\n visible && this._dimensionChanged(null, true)\r\n }\r\n _dataSourceOptions() {\r\n return {\r\n paginate: false\r\n }\r\n }\r\n _initAllDayPanel() {\r\n if (\"hidden\" === this.option(\"allDayPanelMode\")) {\r\n this.option(\"showAllDayPanel\", false)\r\n }\r\n }\r\n _init() {\r\n this._initExpressions({\r\n startDate: this.option(\"startDateExpr\"),\r\n endDate: this.option(\"endDateExpr\"),\r\n startDateTimeZone: this.option(\"startDateTimeZoneExpr\"),\r\n endDateTimeZone: this.option(\"endDateTimeZoneExpr\"),\r\n allDay: this.option(\"allDayExpr\"),\r\n text: this.option(\"textExpr\"),\r\n description: this.option(\"descriptionExpr\"),\r\n recurrenceRule: this.option(\"recurrenceRuleExpr\"),\r\n recurrenceException: this.option(\"recurrenceExceptionExpr\"),\r\n disabled: this.option(\"disabledExpr\")\r\n });\r\n super._init();\r\n this._initAllDayPanel();\r\n this._initDataSource();\r\n this._customizeDataSourceLoadOptions();\r\n this.$element().addClass(WIDGET_CLASS);\r\n this._initEditing();\r\n this.updateInstances();\r\n this._initActions();\r\n this._compactAppointmentsHelper = new CompactAppointmentsHelper(this);\r\n this._asyncTemplatesTimers = [];\r\n this._dataSourceLoadedCallback = Callbacks();\r\n this._subscribes = subscribes;\r\n this.agendaResourceProcessor = new AgendaResourceProcessor(this.option(\"resources\"));\r\n this._optionsValidator = new SchedulerOptionsValidator;\r\n this._optionsValidatorErrorHandler = new SchedulerOptionsValidatorErrorsHandler\r\n }\r\n createAppointmentDataProvider() {\r\n var _a;\r\n null === (_a = this.appointmentDataProvider) || void 0 === _a ? void 0 : _a.destroy();\r\n this.appointmentDataProvider = new AppointmentDataProvider({\r\n dataSource: this._dataSource,\r\n dataAccessors: this._dataAccessors,\r\n timeZoneCalculator: this.timeZoneCalculator,\r\n dateSerializationFormat: this.option(\"dateSerializationFormat\"),\r\n resources: this.option(\"resources\"),\r\n startDayHour: this._getCurrentViewOption(\"startDayHour\"),\r\n endDayHour: this._getCurrentViewOption(\"endDayHour\"),\r\n viewOffset: this.getViewOffsetMs(),\r\n appointmentDuration: this._getCurrentViewOption(\"cellDuration\"),\r\n allDayPanelMode: this._getCurrentViewOption(\"allDayPanelMode\"),\r\n showAllDayPanel: this.option(\"showAllDayPanel\"),\r\n getLoadedResources: () => this.option(\"loadedResources\"),\r\n getIsVirtualScrolling: () => this.isVirtualScrolling(),\r\n getSupportAllDayRow: () => this._workSpace.supportAllDayRow(),\r\n getViewType: () => this._workSpace.type,\r\n getViewDirection: () => this._workSpace.viewDirection,\r\n getDateRange: () => this._workSpace.getDateRange(),\r\n getGroupCount: () => this._workSpace._getGroupCount(),\r\n getViewDataProvider: () => this._workSpace.viewDataProvider\r\n })\r\n }\r\n updateInstances() {\r\n this._timeZoneCalculator = null;\r\n if (this.getWorkSpace()) {\r\n this.createAppointmentDataProvider()\r\n }\r\n }\r\n _customizeDataSourceLoadOptions() {\r\n var _a;\r\n null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.on(\"customizeStoreLoadOptions\", _ref => {\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = _ref;\r\n storeLoadOptions.startDate = this.getStartViewDate();\r\n storeLoadOptions.endDate = this.getEndViewDate()\r\n })\r\n }\r\n _initTemplates() {\r\n this._initAppointmentTemplate();\r\n this._templateManager.addDefaultTemplates({\r\n appointmentTooltip: new EmptyTemplate,\r\n dropDownAppointment: new EmptyTemplate\r\n });\r\n super._initTemplates()\r\n }\r\n _initAppointmentTemplate() {\r\n var {\r\n expr: expr\r\n } = this._dataAccessors;\r\n var createGetter = property => compileGetter(\"appointmentData.\".concat(property));\r\n var getDate = getter => data => {\r\n var value = getter(data);\r\n if (value instanceof Date) {\r\n return value.valueOf()\r\n }\r\n return value\r\n };\r\n this._templateManager.addDefaultTemplates({\r\n item: new BindableTemplate(($container, data, model) => this.getAppointmentsInstance()._renderAppointmentTemplate($container, data, model), [\"html\", \"text\", \"startDate\", \"endDate\", \"allDay\", \"description\", \"recurrenceRule\", \"recurrenceException\", \"startDateTimeZone\", \"endDateTimeZone\"], this.option(\"integrationOptions.watchMethod\"), {\r\n text: createGetter(expr.textExpr),\r\n startDate: getDate(createGetter(expr.startDateExpr)),\r\n endDate: getDate(createGetter(expr.endDateExpr)),\r\n startDateTimeZone: createGetter(expr.startDateTimeZoneExpr),\r\n endDateTimeZone: createGetter(expr.endDateTimeZoneExpr),\r\n allDay: createGetter(expr.allDayExpr),\r\n recurrenceRule: createGetter(expr.recurrenceRuleExpr)\r\n })\r\n })\r\n }\r\n _renderContent() {\r\n this._renderContentImpl()\r\n }\r\n _updatePreparedItems(items) {\r\n this.preparedItems = getPreparedDataItems(items, this._dataAccessors, this._getCurrentViewOption(\"cellDuration\"), this.timeZoneCalculator)\r\n }\r\n _dataSourceChangedHandler(result) {\r\n if (this._readyToRenderAppointments) {\r\n this._workSpaceRecalculation.done(() => {\r\n this._updatePreparedItems(result);\r\n this._renderAppointments();\r\n this.getWorkSpace().onDataSourceChanged(this.filteredItems)\r\n })\r\n }\r\n }\r\n isVirtualScrolling() {\r\n var _a;\r\n var workspace = this.getWorkSpace();\r\n if (workspace) {\r\n return workspace.isVirtualScrolling()\r\n }\r\n var currentViewOptions = this._getCurrentViewOptions();\r\n var scrolling = this.option(\"scrolling\");\r\n return \"virtual\" === (null === scrolling || void 0 === scrolling ? void 0 : scrolling.mode) || \"virtual\" === (null === (_a = null === currentViewOptions || void 0 === currentViewOptions ? void 0 : currentViewOptions.scrolling) || void 0 === _a ? void 0 : _a.mode)\r\n }\r\n _filterAppointments() {\r\n this.filteredItems = this.appointmentDataProvider.filter(this.preparedItems)\r\n }\r\n _renderAppointments() {\r\n var workspace = this.getWorkSpace();\r\n this._filterAppointments();\r\n workspace.option(\"allDayExpanded\", this._isAllDayExpanded());\r\n var viewModel = [];\r\n if (this._isVisible()) {\r\n viewModel = this._getAppointmentsToRepaint()\r\n }\r\n this._appointments.option(\"items\", viewModel);\r\n this.appointmentDataProvider.cleanState()\r\n }\r\n _getAppointmentsToRepaint() {\r\n var layoutManager = this.getLayoutManager();\r\n var appointmentsMap = layoutManager.createAppointmentsMap(this.filteredItems);\r\n return layoutManager.getRepaintedAppointments(appointmentsMap, this.getAppointmentsInstance().option(\"items\"))\r\n }\r\n _initExpressions(fields) {\r\n this._dataAccessors = utils.dataAccessors.create(fields, this._dataAccessors, config().forceIsoDateParsing, this.option(\"dateSerializationFormat\"));\r\n this._dataAccessors.resources = createExpressions(this.option(\"resources\"))\r\n }\r\n _updateExpression(name, value) {\r\n var exprObj = {};\r\n exprObj[name.replace(\"Expr\", \"\")] = value;\r\n this._initExpressions(exprObj)\r\n }\r\n getResourceDataAccessors() {\r\n return this._dataAccessors.resources\r\n }\r\n _initEditing() {\r\n var editing = this.option(\"editing\");\r\n this._editing = {\r\n allowAdding: !!editing,\r\n allowUpdating: !!editing,\r\n allowDeleting: !!editing,\r\n allowResizing: !!editing,\r\n allowDragging: !!editing\r\n };\r\n if (isObject(editing)) {\r\n this._editing = extend(this._editing, editing)\r\n }\r\n this._editing.allowDragging = this._editing.allowDragging && this._editing.allowUpdating;\r\n this._editing.allowResizing = this._editing.allowResizing && this._editing.allowUpdating;\r\n this.$element().toggleClass(WIDGET_READONLY_CLASS, this._isReadOnly())\r\n }\r\n _isReadOnly() {\r\n var result = true;\r\n var editing = this._editing;\r\n for (var prop in editing) {\r\n if (Object.prototype.hasOwnProperty.call(editing, prop)) {\r\n result = result && !editing[prop]\r\n }\r\n }\r\n return result\r\n }\r\n _dispose() {\r\n var _a;\r\n this._appointmentTooltip && this._appointmentTooltip.dispose();\r\n null === (_a = this._recurrenceDialog) || void 0 === _a ? void 0 : _a.hide(RECURRENCE_EDITING_MODE.CANCEL);\r\n this.hideAppointmentPopup();\r\n this.hideAppointmentTooltip();\r\n this._asyncTemplatesTimers.forEach(clearTimeout);\r\n this._asyncTemplatesTimers = [];\r\n super._dispose()\r\n }\r\n _initActions() {\r\n this._actions = {\r\n onAppointmentAdding: this._createActionByOption(StoreEventNames.ADDING),\r\n onAppointmentAdded: this._createActionByOption(StoreEventNames.ADDED),\r\n onAppointmentUpdating: this._createActionByOption(StoreEventNames.UPDATING),\r\n onAppointmentUpdated: this._createActionByOption(StoreEventNames.UPDATED),\r\n onAppointmentDeleting: this._createActionByOption(StoreEventNames.DELETING),\r\n onAppointmentDeleted: this._createActionByOption(StoreEventNames.DELETED),\r\n onAppointmentFormOpening: this._createActionByOption(\"onAppointmentFormOpening\"),\r\n onAppointmentTooltipShowing: this._createActionByOption(\"onAppointmentTooltipShowing\")\r\n }\r\n }\r\n _getAppointmentRenderedAction() {\r\n return this._createActionByOption(\"onAppointmentRendered\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n }\r\n _renderFocusTarget() {\r\n return noop()\r\n }\r\n _initMarkup() {\r\n super._initMarkup();\r\n this._renderMainContainer();\r\n this._renderHeader();\r\n this._layoutManager = new AppointmentLayoutManager(this);\r\n this._appointments = this._createComponent(\"<div>\", AppointmentCollection, this._appointmentsConfig());\r\n this._appointments.option(\"itemTemplate\", this._getAppointmentTemplate(\"appointmentTemplate\"));\r\n this._appointmentTooltip = new(this.option(\"adaptivityEnabled\") ? MobileTooltipStrategy : DesktopTooltipStrategy)(this._getAppointmentTooltipOptions());\r\n this._createAppointmentPopupForm();\r\n if (this._isDataSourceLoaded() || this._isDataSourceLoading()) {\r\n this._initMarkupCore(this.option(\"loadedResources\"));\r\n this._dataSourceChangedHandler(this._dataSource.items());\r\n this._fireContentReadyAction()\r\n } else {\r\n var groups = this._getCurrentViewOption(\"groups\");\r\n loadResources(groups, this.option(\"resources\"), this.option(\"resourceLoaderMap\")).done(resources => {\r\n this.option(\"loadedResources\", resources);\r\n this._initMarkupCore(resources);\r\n this._reloadDataSource()\r\n })\r\n }\r\n }\r\n _createAppointmentPopupForm() {\r\n var _a, _b;\r\n if (this._appointmentForm) {\r\n null === (_a = this._appointmentForm.form) || void 0 === _a ? void 0 : _a.dispose()\r\n }\r\n this._appointmentForm = this.createAppointmentForm();\r\n null === (_b = this._appointmentPopup) || void 0 === _b ? void 0 : _b.dispose();\r\n this._appointmentPopup = this.createAppointmentPopup(this._appointmentForm)\r\n }\r\n _renderMainContainer() {\r\n this._mainContainer = $(\"<div>\").addClass(\"dx-scheduler-container\");\r\n this.$element().append(this._mainContainer)\r\n }\r\n createAppointmentForm() {\r\n var scheduler = {\r\n createResourceEditorModel: () => _createResourceEditorModel(this.option(\"resources\"), this.option(\"loadedResources\")),\r\n getDataAccessors: () => this._dataAccessors,\r\n createComponent: (element, component, options) => this._createComponent(element, component, options),\r\n getEditingConfig: () => this._editing,\r\n getFirstDayOfWeek: () => this.option(\"firstDayOfWeek\"),\r\n getStartDayHour: () => this.option(\"startDayHour\"),\r\n getCalculatedEndDate: startDateWithStartHour => this._workSpace.calculateEndDate(startDateWithStartHour),\r\n getTimeZoneCalculator: () => this.timeZoneCalculator\r\n };\r\n return new AppointmentForm(scheduler)\r\n }\r\n createAppointmentPopup(form) {\r\n var scheduler = {\r\n getElement: () => this.$element(),\r\n createComponent: (element, component, options) => this._createComponent(element, component, options),\r\n focus: () => this.focus(),\r\n getResources: () => this.option(\"resources\"),\r\n getEditingConfig: () => this._editing,\r\n getTimeZoneCalculator: () => this.timeZoneCalculator,\r\n getDataAccessors: () => this._dataAccessors,\r\n getAppointmentFormOpening: () => this._actions.onAppointmentFormOpening,\r\n processActionResult: (arg, canceled) => this._processActionResult(arg, canceled),\r\n addAppointment: appointment => this.addAppointment(appointment),\r\n updateAppointment: (sourceAppointment, updatedAppointment) => this.updateAppointment(sourceAppointment, updatedAppointment),\r\n updateScrollPosition: (startDate, resourceItem, inAllDayRow) => {\r\n this._workSpace.updateScrollPosition(startDate, resourceItem, inAllDayRow)\r\n }\r\n };\r\n return new AppointmentPopup(scheduler, form)\r\n }\r\n _getAppointmentTooltipOptions() {\r\n return {\r\n createComponent: this._createComponent.bind(this),\r\n container: this.$element(),\r\n getScrollableContainer: this.getWorkSpaceScrollableContainer.bind(this),\r\n addDefaultTemplates: this._templateManager.addDefaultTemplates.bind(this._templateManager),\r\n getAppointmentTemplate: this._getAppointmentTemplate.bind(this),\r\n showAppointmentPopup: this.showAppointmentPopup.bind(this),\r\n checkAndDeleteAppointment: this.checkAndDeleteAppointment.bind(this),\r\n isAppointmentInAllDayPanel: this.isAppointmentInAllDayPanel.bind(this),\r\n createFormattedDateText: (appointment, targetedAppointment, format) => this.fire(\"getTextAndFormatDate\", appointment, targetedAppointment, format),\r\n getAppointmentDisabled: appointment => createAppointmentAdapter(appointment, this._dataAccessors, this.timeZoneCalculator).disabled,\r\n onItemContextMenu: this._createActionByOption(\"onAppointmentContextMenu\"),\r\n createEventArgs: this._createEventArgs.bind(this)\r\n }\r\n }\r\n _createEventArgs(e) {\r\n var config = {\r\n itemData: e.itemData.appointment,\r\n itemElement: e.itemElement,\r\n targetedAppointment: e.itemData.targetedAppointment\r\n };\r\n return extend({}, this.fire(\"mapAppointmentFields\", config), {\r\n component: e.component,\r\n element: e.element,\r\n event: e.event,\r\n model: e.model\r\n })\r\n }\r\n checkAndDeleteAppointment(appointment, targetedAppointment) {\r\n var targetedAdapter = createAppointmentAdapter(targetedAppointment, this._dataAccessors, this.timeZoneCalculator);\r\n var deletingOptions = this.fireOnAppointmentDeleting(appointment, targetedAdapter);\r\n this._checkRecurringAppointment(appointment, targetedAppointment, targetedAdapter.startDate, () => {\r\n this.processDeleteAppointment(appointment, deletingOptions)\r\n }, true)\r\n }\r\n _getExtraAppointmentTooltipOptions() {\r\n return {\r\n rtlEnabled: this.option(\"rtlEnabled\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n editing: this.option(\"editing\"),\r\n offset: this.option(\"_appointmentTooltipOffset\")\r\n }\r\n }\r\n isAppointmentInAllDayPanel(appointmentData) {\r\n var workSpace = this._workSpace;\r\n var itTakesAllDay = this.appointmentTakesAllDay(appointmentData);\r\n return itTakesAllDay && workSpace.supportAllDayRow() && workSpace.option(\"showAllDayPanel\")\r\n }\r\n _initMarkupCore(resources) {\r\n this._readyToRenderAppointments = hasWindow();\r\n this._workSpace && this._cleanWorkspace();\r\n this._renderWorkSpace(resources);\r\n this._appointments.option({\r\n fixedContainer: this._workSpace.getFixedContainer(),\r\n allDayContainer: this._workSpace.getAllDayContainer()\r\n });\r\n this._waitAsyncTemplate(() => {\r\n var _a;\r\n return null === (_a = this._workSpaceRecalculation) || void 0 === _a ? void 0 : _a.resolve()\r\n });\r\n this.createAppointmentDataProvider();\r\n this._filterAppointmentsByDate();\r\n this._validateKeyFieldIfAgendaExist()\r\n }\r\n _isDataSourceLoaded() {\r\n return this._dataSource && this._dataSource.isLoaded()\r\n }\r\n _render() {\r\n var _a;\r\n this._toggleSmallClass();\r\n this._toggleAdaptiveClass();\r\n null === (_a = this.getWorkSpace()) || void 0 === _a ? void 0 : _a.updateHeaderEmptyCellWidth();\r\n super._render()\r\n }\r\n _renderHeader() {\r\n if (0 !== this.option(\"toolbar\").length) {\r\n var $header = $(\"<div>\").appendTo(this._mainContainer);\r\n this._header = this._createComponent($header, SchedulerHeader, this._headerConfig())\r\n }\r\n }\r\n _headerConfig() {\r\n var currentViewOptions = this._getCurrentViewOptions();\r\n var countConfig = this._getViewCountConfig();\r\n var result = extend({\r\n firstDayOfWeek: this.getFirstDayOfWeek(),\r\n currentView: this.option(\"currentView\"),\r\n isAdaptive: this.option(\"adaptivityEnabled\"),\r\n tabIndex: this.option(\"tabIndex\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n rtlEnabled: this.option(\"rtlEnabled\"),\r\n useDropDownViewSwitcher: this.option(\"useDropDownViewSwitcher\"),\r\n customizeDateNavigatorText: this.option(\"customizeDateNavigatorText\"),\r\n agendaDuration: currentViewOptions.agendaDuration || DEFAULT_AGENDA_DURATION\r\n }, currentViewOptions);\r\n result.intervalCount = countConfig.intervalCount;\r\n result.views = this.option(\"views\");\r\n result.min = new Date(this._dateOption(\"min\"));\r\n result.max = new Date(this._dateOption(\"max\"));\r\n result.currentDate = dateUtils.trimTime(new Date(this._dateOption(\"currentDate\")));\r\n result.onCurrentViewChange = name => {\r\n this.option(\"currentView\", name)\r\n };\r\n result.onCurrentDateChange = date => {\r\n this.option(\"currentDate\", date)\r\n };\r\n result.items = this.option(\"toolbar\");\r\n result.startViewDate = this.getStartViewDate();\r\n result.todayDate = () => {\r\n var result = this.timeZoneCalculator.createDate(new Date, {\r\n path: \"toGrid\"\r\n });\r\n return result\r\n };\r\n return result\r\n }\r\n _appointmentsConfig() {\r\n var config = {\r\n getResources: () => this.option(\"resources\"),\r\n getResourceDataAccessors: this.getResourceDataAccessors.bind(this),\r\n getAgendaResourceProcessor: () => this.agendaResourceProcessor,\r\n getAppointmentColor: this.createGetAppointmentColor(),\r\n getAppointmentDataProvider: () => this.appointmentDataProvider,\r\n dataAccessors: this._dataAccessors,\r\n observer: this,\r\n onItemRendered: this._getAppointmentRenderedAction(),\r\n onItemClick: this._createActionByOption(\"onAppointmentClick\"),\r\n onItemContextMenu: this._createActionByOption(\"onAppointmentContextMenu\"),\r\n onAppointmentDblClick: this._createActionByOption(\"onAppointmentDblClick\"),\r\n tabIndex: this.option(\"tabIndex\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n allowDrag: this._allowDragging(),\r\n allowDelete: this._editing.allowUpdating && this._editing.allowDeleting,\r\n allowResize: this._allowResizing(),\r\n allowAllDayResize: this._allowAllDayResizing(),\r\n rtlEnabled: this.option(\"rtlEnabled\"),\r\n currentView: this.currentView,\r\n groups: this._getCurrentViewOption(\"groups\"),\r\n timeZoneCalculator: this.timeZoneCalculator,\r\n getResizableStep: () => this._workSpace ? this._workSpace.positionHelper.getResizableStep() : 0,\r\n getDOMElementsMetaData: () => {\r\n var _a;\r\n return null === (_a = this._workSpace) || void 0 === _a ? void 0 : _a.getDOMElementsMetaData()\r\n },\r\n getViewDataProvider: () => {\r\n var _a;\r\n return null === (_a = this._workSpace) || void 0 === _a ? void 0 : _a.viewDataProvider\r\n },\r\n isVerticalViewDirection: () => \"vertical\" === this.getRenderingStrategyInstance().getDirection(),\r\n isVerticalGroupedWorkSpace: () => this._workSpace._isVerticalGroupedWorkSpace(),\r\n isDateAndTimeView: () => _isDateAndTimeView(this._workSpace.type),\r\n onContentReady: () => {\r\n var _a;\r\n null === (_a = this._workSpace) || void 0 === _a ? void 0 : _a.option(\"allDayExpanded\", this._isAllDayExpanded())\r\n }\r\n };\r\n return config\r\n }\r\n getCollectorOffset() {\r\n if (this._workSpace.needApplyCollectorOffset() && !this.option(\"adaptivityEnabled\")) {\r\n return this.option(\"_collectorOffset\")\r\n }\r\n return 0\r\n }\r\n getAppointmentDurationInMinutes() {\r\n return this._getCurrentViewOption(\"cellDuration\")\r\n }\r\n _getCurrentViewType() {\r\n return this.currentViewType\r\n }\r\n _renderWorkSpace(groups) {\r\n var _a;\r\n this._readyToRenderAppointments && this._toggleSmallClass();\r\n var $workSpace = $(\"<div>\").appendTo(this._mainContainer);\r\n var countConfig = this._getViewCountConfig();\r\n var workSpaceComponent = VIEWS_CONFIG[this._getCurrentViewType()].workSpace;\r\n var workSpaceConfig = this._workSpaceConfig(groups, countConfig);\r\n this._workSpace = this._createComponent($workSpace, workSpaceComponent, workSpaceConfig);\r\n this._allowDragging() && this._workSpace.initDragBehavior(this, this._all);\r\n this._workSpace._attachTablesEvents();\r\n this._workSpace.getWorkArea().append(this._appointments.$element());\r\n this._recalculateWorkspace();\r\n countConfig.startDate && (null === (_a = this._header) || void 0 === _a ? void 0 : _a.option(\"currentDate\", this._workSpace._getHeaderDate()));\r\n this._appointments.option(\"_collectorOffset\", this.getCollectorOffset())\r\n }\r\n _getViewCountConfig() {\r\n var currentView = this.option(\"currentView\");\r\n var view = this._getViewByName(currentView);\r\n var viewCount = view && view.intervalCount || 1;\r\n var startDate = view && view.startDate || null;\r\n return {\r\n intervalCount: viewCount,\r\n startDate: startDate\r\n }\r\n }\r\n _getViewByName(name) {\r\n var views = this.option(\"views\");\r\n for (var i = 0; i < views.length; i++) {\r\n if (views[i].name === name || views[i].type === name || views[i] === name) {\r\n return views[i]\r\n }\r\n }\r\n }\r\n _recalculateWorkspace() {\r\n this._workSpaceRecalculation = new Deferred;\r\n this._waitAsyncTemplate(() => {\r\n triggerResizeEvent(this._workSpace.$element());\r\n this._workSpace.renderCurrentDateTimeLineAndShader()\r\n })\r\n }\r\n _workSpaceConfig(groups, countConfig) {\r\n var _a;\r\n var currentViewOptions = this._getCurrentViewOptions();\r\n var scrolling = this.option(\"scrolling\");\r\n var isVirtualScrolling = \"virtual\" === scrolling.mode || \"virtual\" === (null === (_a = currentViewOptions.scrolling) || void 0 === _a ? void 0 : _a.mode);\r\n var horizontalVirtualScrollingAllowed = isVirtualScrolling && (!isDefined(scrolling.orientation) || [\"horizontal\", \"both\"].filter(item => {\r\n var _a;\r\n return scrolling.orientation === item || (null === (_a = currentViewOptions.scrolling) || void 0 === _a ? void 0 : _a.orientation) === item\r\n }).length > 0);\r\n var crossScrollingEnabled = this.option(\"crossScrollingEnabled\") || horizontalVirtualScrollingAllowed || isTimelineView(this.currentViewType);\r\n var result = extend({\r\n resources: this.option(\"resources\"),\r\n loadedResources: this.option(\"loadedResources\"),\r\n getFilteredItems: () => this.filteredItems,\r\n getResourceDataAccessors: this.getResourceDataAccessors.bind(this),\r\n noDataText: this.option(\"noDataText\"),\r\n firstDayOfWeek: this.option(\"firstDayOfWeek\"),\r\n startDayHour: this.option(\"startDayHour\"),\r\n endDayHour: this.option(\"endDayHour\"),\r\n viewOffset: this.getViewOffsetMs(),\r\n tabIndex: this.option(\"tabIndex\"),\r\n accessKey: this.option(\"accessKey\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n cellDuration: this.option(\"cellDuration\"),\r\n showAllDayPanel: this.option(\"showAllDayPanel\"),\r\n showCurrentTimeIndicator: this.option(\"showCurrentTimeIndicator\"),\r\n indicatorTime: this.option(\"indicatorTime\"),\r\n indicatorUpdateInterval: this.option(\"indicatorUpdateInterval\"),\r\n shadeUntilCurrentTime: this.option(\"shadeUntilCurrentTime\"),\r\n allDayExpanded: this._appointments.option(\"items\"),\r\n crossScrollingEnabled: crossScrollingEnabled,\r\n dataCellTemplate: this.option(\"dataCellTemplate\"),\r\n timeCellTemplate: this.option(\"timeCellTemplate\"),\r\n resourceCellTemplate: this.option(\"resourceCellTemplate\"),\r\n dateCellTemplate: this.option(\"dateCellTemplate\"),\r\n allowMultipleCellSelection: this.option(\"allowMultipleCellSelection\"),\r\n selectedCellData: this.option(\"selectedCellData\"),\r\n onSelectionChanged: args => {\r\n this.option(\"selectedCellData\", args.selectedCellData)\r\n },\r\n groupByDate: this._getCurrentViewOption(\"groupByDate\"),\r\n scrolling: scrolling,\r\n draggingMode: this.option(\"_draggingMode\"),\r\n timeZoneCalculator: this.timeZoneCalculator,\r\n schedulerHeight: this.option(\"height\"),\r\n schedulerWidth: this.option(\"width\"),\r\n allDayPanelMode: this.option(\"allDayPanelMode\"),\r\n onSelectedCellsClick: this.showAddAppointmentPopup.bind(this),\r\n onRenderAppointments: this._renderAppointments.bind(this),\r\n onShowAllDayPanel: value => this.option(\"showAllDayPanel\", value),\r\n getHeaderHeight: () => utils.DOM.getHeaderHeight(this._header),\r\n onScrollEnd: () => this._appointments.updateResizableArea(),\r\n renovateRender: this._isRenovatedRender(isVirtualScrolling)\r\n }, currentViewOptions);\r\n result.observer = this;\r\n result.intervalCount = countConfig.intervalCount;\r\n result.startDate = countConfig.startDate;\r\n result.groups = groups;\r\n result.onCellClick = this._createActionByOption(\"onCellClick\");\r\n result.onCellContextMenu = this._createActionByOption(\"onCellContextMenu\");\r\n result.currentDate = dateUtils.trimTime(new Date(this._dateOption(\"currentDate\")));\r\n result.hoursInterval = result.cellDuration / 60;\r\n result.allDayExpanded = false;\r\n result.dataCellTemplate = result.dataCellTemplate ? this._getTemplate(result.dataCellTemplate) : null;\r\n result.timeCellTemplate = result.timeCellTemplate ? this._getTemplate(result.timeCellTemplate) : null;\r\n result.resourceCellTemplate = result.resourceCellTemplate ? this._getTemplate(result.resourceCellTemplate) : null;\r\n result.dateCellTemplate = result.dateCellTemplate ? this._getTemplate(result.dateCellTemplate) : null;\r\n result.getAppointmentDataProvider = () => this.appointmentDataProvider;\r\n return result\r\n }\r\n _isRenovatedRender(isVirtualScrolling) {\r\n return this.option(\"renovateRender\") && hasWindow() || isVirtualScrolling\r\n }\r\n _waitAsyncTemplate(callback) {\r\n if (this._options.silent(\"templatesRenderAsynchronously\")) {\r\n var timer = setTimeout(() => {\r\n callback();\r\n clearTimeout(timer)\r\n });\r\n this._asyncTemplatesTimers.push(timer)\r\n } else {\r\n callback()\r\n }\r\n }\r\n _getCurrentViewOptions() {\r\n return this.currentView\r\n }\r\n _getCurrentViewOption(optionName) {\r\n if (this.currentView && void 0 !== this.currentView[optionName]) {\r\n return this.currentView[optionName]\r\n }\r\n return this.option(optionName)\r\n }\r\n _getAppointmentTemplate(optionName) {\r\n var currentViewOptions = this._getCurrentViewOptions();\r\n if (currentViewOptions && currentViewOptions[optionName]) {\r\n return this._getTemplate(currentViewOptions[optionName])\r\n }\r\n return this._getTemplateByOption(optionName)\r\n }\r\n _updateOption(viewName, optionName, value) {\r\n var currentViewOptions = this._getCurrentViewOptions();\r\n if (!currentViewOptions || !isDefined(currentViewOptions[optionName])) {\r\n this[\"_\".concat(viewName)].option(optionName, value)\r\n }\r\n }\r\n _refreshWorkSpace(groups) {\r\n this._cleanWorkspace();\r\n delete this._workSpace;\r\n this._renderWorkSpace(groups);\r\n if (this._readyToRenderAppointments) {\r\n this._appointments.option({\r\n fixedContainer: this._workSpace.getFixedContainer(),\r\n allDayContainer: this._workSpace.getAllDayContainer()\r\n });\r\n this._waitAsyncTemplate(() => this._workSpaceRecalculation.resolve())\r\n }\r\n }\r\n _cleanWorkspace() {\r\n this._appointments.$element().detach();\r\n this._workSpace._dispose();\r\n this._workSpace.$element().remove();\r\n this.option(\"selectedCellData\", [])\r\n }\r\n getWorkSpaceScrollable() {\r\n return this._workSpace.getScrollable()\r\n }\r\n getWorkSpaceScrollableContainer() {\r\n return this._workSpace.getScrollableContainer()\r\n }\r\n getWorkSpace() {\r\n return this._workSpace\r\n }\r\n getHeader() {\r\n return this._header\r\n }\r\n _cleanPopup() {\r\n var _a;\r\n null === (_a = this._appointmentPopup) || void 0 === _a ? void 0 : _a.dispose()\r\n }\r\n _checkRecurringAppointment(rawAppointment, singleAppointment, exceptionDate, callback, isDeleted, isPopupEditing, dragEvent, recurrenceEditMode) {\r\n var recurrenceRule = ExpressionUtils.getField(this._dataAccessors, \"recurrenceRule\", rawAppointment);\r\n if (!getRecurrenceProcessor().evalRecurrenceRule(recurrenceRule).isValid || !this._editing.allowUpdating) {\r\n callback();\r\n return\r\n }\r\n var editMode = recurrenceEditMode || this.option(\"recurrenceEditMode\");\r\n switch (editMode) {\r\n case \"series\":\r\n callback();\r\n break;\r\n case \"occurrence\":\r\n this._excludeAppointmentFromSeries(rawAppointment, singleAppointment, exceptionDate, isDeleted, isPopupEditing, dragEvent);\r\n break;\r\n default:\r\n if (dragEvent) {\r\n dragEvent.cancel = new Deferred\r\n }\r\n this._showRecurrenceChangeConfirm(isDeleted).done(editingMode => {\r\n editingMode === RECURRENCE_EDITING_MODE.SERIES && callback();\r\n editingMode === RECURRENCE_EDITING_MODE.OCCURENCE && this._excludeAppointmentFromSeries(rawAppointment, singleAppointment, exceptionDate, isDeleted, isPopupEditing, dragEvent)\r\n }).fail(() => this._appointments.moveAppointmentBack(dragEvent))\r\n }\r\n }\r\n _excludeAppointmentFromSeries(rawAppointment, newRawAppointment, exceptionDate, isDeleted, isPopupEditing, dragEvent) {\r\n var appointment = excludeFromRecurrence(rawAppointment, exceptionDate, this._dataAccessors, this._timeZoneCalculator);\r\n var singleRawAppointment = _extends({}, newRawAppointment);\r\n delete singleRawAppointment[this._dataAccessors.expr.recurrenceExceptionExpr];\r\n delete singleRawAppointment[this._dataAccessors.expr.recurrenceRuleExpr];\r\n var keyPropertyName = this.appointmentDataProvider.keyName;\r\n delete singleRawAppointment[keyPropertyName];\r\n var canCreateNewAppointment = !isDeleted && !isPopupEditing;\r\n if (canCreateNewAppointment) {\r\n this.addAppointment(singleRawAppointment)\r\n }\r\n if (isPopupEditing) {\r\n this._appointmentPopup.show(singleRawAppointment, {\r\n isToolbarVisible: true,\r\n action: ACTION_TO_APPOINTMENT.EXCLUDE_FROM_SERIES,\r\n excludeInfo: {\r\n sourceAppointment: rawAppointment,\r\n updatedAppointment: appointment.source()\r\n }\r\n });\r\n this._editAppointmentData = rawAppointment\r\n } else {\r\n this._updateAppointment(rawAppointment, appointment.source(), () => {\r\n this._appointments.moveAppointmentBack(dragEvent)\r\n }, dragEvent)\r\n }\r\n }\r\n _createRecurrenceException(appointment, exceptionDate) {\r\n var result = [];\r\n if (appointment.recurrenceException) {\r\n result.push(appointment.recurrenceException)\r\n }\r\n result.push(this._getSerializedDate(exceptionDate, appointment.startDate, appointment.allDay));\r\n return result.join()\r\n }\r\n _getSerializedDate(date, startDate, isAllDay) {\r\n isAllDay && date.setHours(startDate.getHours(), startDate.getMinutes(), startDate.getSeconds(), startDate.getMilliseconds());\r\n return dateSerialization.serializeDate(date, UTC_FULL_DATE_FORMAT)\r\n }\r\n _showRecurrenceChangeConfirm(isDeleted) {\r\n var title = messageLocalization.format(isDeleted ? \"dxScheduler-confirmRecurrenceDeleteTitle\" : \"dxScheduler-confirmRecurrenceEditTitle\");\r\n var message = messageLocalization.format(isDeleted ? \"dxScheduler-confirmRecurrenceDeleteMessage\" : \"dxScheduler-confirmRecurrenceEditMessage\");\r\n var seriesText = messageLocalization.format(isDeleted ? \"dxScheduler-confirmRecurrenceDeleteSeries\" : \"dxScheduler-confirmRecurrenceEditSeries\");\r\n var occurrenceText = messageLocalization.format(isDeleted ? \"dxScheduler-confirmRecurrenceDeleteOccurrence\" : \"dxScheduler-confirmRecurrenceEditOccurrence\");\r\n this._recurrenceDialog = customDialog({\r\n title: title,\r\n messageHtml: message,\r\n showCloseButton: true,\r\n showTitle: true,\r\n buttons: [{\r\n text: seriesText,\r\n onClick: () => RECURRENCE_EDITING_MODE.SERIES\r\n }, {\r\n text: occurrenceText,\r\n onClick: () => RECURRENCE_EDITING_MODE.OCCURENCE\r\n }],\r\n popupOptions: {\r\n wrapperAttr: {\r\n class: \"dx-dialog\"\r\n }\r\n }\r\n });\r\n return this._recurrenceDialog.show()\r\n }\r\n _getUpdatedData(rawAppointment) {\r\n var viewOffset = this.getViewOffsetMs();\r\n var getConvertedFromGrid = date => {\r\n if (!date) {\r\n return\r\n }\r\n var result = this.timeZoneCalculator.createDate(date, {\r\n path: \"fromGrid\"\r\n });\r\n return dateUtilsTs.addOffsets(result, [-viewOffset])\r\n };\r\n var isValidDate = date => !isNaN(new Date(date).getTime());\r\n var targetCell = this.getTargetCellData();\r\n var appointment = createAppointmentAdapter(rawAppointment, this._dataAccessors, this.timeZoneCalculator);\r\n var cellStartDate = getConvertedFromGrid(targetCell.startDate);\r\n var cellEndDate = getConvertedFromGrid(targetCell.endDate);\r\n var appointmentStartDate = new Date(appointment.startDate);\r\n appointmentStartDate = dateUtilsTs.addOffsets(appointmentStartDate, [-viewOffset]);\r\n var appointmentEndDate = new Date(appointment.endDate);\r\n appointmentEndDate = dateUtilsTs.addOffsets(appointmentEndDate, [-viewOffset]);\r\n var resultedStartDate = null !== cellStartDate && void 0 !== cellStartDate ? cellStartDate : appointmentStartDate;\r\n if (!isValidDate(appointmentStartDate)) {\r\n appointmentStartDate = resultedStartDate\r\n }\r\n if (!isValidDate(appointmentEndDate)) {\r\n appointmentEndDate = cellEndDate\r\n }\r\n var duration = appointmentEndDate.getTime() - appointmentStartDate.getTime();\r\n var isKeepAppointmentHours = this._workSpace.keepOriginalHours() && isValidDate(appointment.startDate) && isValidDate(cellStartDate);\r\n if (isKeepAppointmentHours) {\r\n var startDate = this.timeZoneCalculator.createDate(appointmentStartDate, {\r\n path: \"toGrid\"\r\n });\r\n var timeInMs = startDate.getTime() - dateUtils.trimTime(startDate).getTime();\r\n var targetCellStartDate = dateUtilsTs.addOffsets(targetCell.startDate, [-viewOffset]);\r\n resultedStartDate = new Date(dateUtils.trimTime(targetCellStartDate).getTime() + timeInMs);\r\n resultedStartDate = this.timeZoneCalculator.createDate(resultedStartDate, {\r\n path: \"fromGrid\"\r\n })\r\n }\r\n var result = createAppointmentAdapter({}, this._dataAccessors, this.timeZoneCalculator);\r\n if (void 0 !== targetCell.allDay) {\r\n result.allDay = targetCell.allDay\r\n }\r\n result.startDate = resultedStartDate;\r\n var resultedEndDate = new Date(resultedStartDate.getTime() + duration);\r\n if (this.appointmentTakesAllDay(rawAppointment) && !result.allDay && this._workSpace.supportAllDayRow()) {\r\n resultedEndDate = this._workSpace.calculateEndDate(resultedStartDate)\r\n }\r\n if (appointment.allDay && !this._workSpace.supportAllDayRow() && !this._workSpace.keepOriginalHours()) {\r\n var dateCopy = new Date(resultedStartDate);\r\n dateCopy.setHours(0);\r\n resultedEndDate = new Date(dateCopy.getTime() + duration);\r\n if (0 !== resultedEndDate.getHours()) {\r\n resultedEndDate.setHours(this._getCurrentViewOption(\"endDayHour\"))\r\n }\r\n }\r\n result.startDate = dateUtilsTs.addOffsets(result.startDate, [viewOffset]);\r\n result.endDate = dateUtilsTs.addOffsets(resultedEndDate, [viewOffset]);\r\n var rawResult = result.source();\r\n setResourceToAppointment(this.option(\"resources\"), this.getResourceDataAccessors(), rawResult, targetCell.groups);\r\n return rawResult\r\n }\r\n getTargetedAppointment(appointment, element) {\r\n var settings = utils.dataAccessors.getAppointmentSettings(element);\r\n var info = utils.dataAccessors.getAppointmentInfo(element);\r\n var appointmentIndex = $(element).data(this._appointments._itemIndexKey());\r\n var adapter = createAppointmentAdapter(appointment, this._dataAccessors, this.timeZoneCalculator);\r\n var targetedAdapter = adapter.clone();\r\n if (this._isAgenda() && adapter.isRecurrent) {\r\n var {\r\n agendaSettings: agendaSettings\r\n } = settings;\r\n targetedAdapter.startDate = ExpressionUtils.getField(this._dataAccessors, \"startDate\", agendaSettings);\r\n targetedAdapter.endDate = ExpressionUtils.getField(this._dataAccessors, \"endDate\", agendaSettings)\r\n } else if (settings) {\r\n targetedAdapter.startDate = info ? info.sourceAppointment.startDate : adapter.startDate;\r\n targetedAdapter.endDate = info ? info.sourceAppointment.endDate : adapter.endDate\r\n }\r\n var rawTargetedAppointment = targetedAdapter.source();\r\n if (element) {\r\n this.setTargetedAppointmentResources(rawTargetedAppointment, element, appointmentIndex)\r\n }\r\n if (info) {\r\n rawTargetedAppointment.displayStartDate = new Date(info.appointment.startDate);\r\n rawTargetedAppointment.displayEndDate = new Date(info.appointment.endDate)\r\n }\r\n return rawTargetedAppointment\r\n }\r\n subscribe(subject, action) {\r\n this._subscribes[subject] = subscribes[subject] = action\r\n }\r\n fire(subject) {\r\n var callback = this._subscribes[subject];\r\n var args = Array.prototype.slice.call(arguments);\r\n if (!isFunction(callback)) {\r\n throw errors.Error(\"E1031\", subject)\r\n }\r\n return callback.apply(this, args.slice(1))\r\n }\r\n getTargetCellData() {\r\n return this._workSpace.getDataByDroppableCell()\r\n }\r\n _updateAppointment(target, rawAppointment, onUpdatePrevented, dragEvent) {\r\n var updatingOptions = {\r\n newData: rawAppointment,\r\n oldData: extend({}, target),\r\n cancel: false\r\n };\r\n var performFailAction = function(err) {\r\n if (onUpdatePrevented) {\r\n onUpdatePrevented.call(this)\r\n }\r\n if (err && \"Error\" === err.name) {\r\n throw err\r\n }\r\n }.bind(this);\r\n this._actions[StoreEventNames.UPDATING](updatingOptions);\r\n if (dragEvent && !isDeferred(dragEvent.cancel)) {\r\n dragEvent.cancel = new Deferred\r\n }\r\n return this._processActionResult(updatingOptions, (function(canceled) {\r\n var deferred = new Deferred;\r\n if (!canceled) {\r\n this._expandAllDayPanel(rawAppointment);\r\n try {\r\n deferred = this.appointmentDataProvider.update(target, rawAppointment).done(() => {\r\n dragEvent && dragEvent.cancel.resolve(false)\r\n }).always(storeAppointment => this._onDataPromiseCompleted(StoreEventNames.UPDATED, storeAppointment)).fail(() => performFailAction())\r\n } catch (err) {\r\n performFailAction(err);\r\n deferred.resolve()\r\n }\r\n } else {\r\n performFailAction();\r\n deferred.resolve()\r\n }\r\n return deferred.promise()\r\n }))\r\n }\r\n _processActionResult(actionOptions, callback) {\r\n var deferred = new Deferred;\r\n var resolveCallback = callbackResult => {\r\n when(fromPromise(callbackResult)).always(deferred.resolve)\r\n };\r\n if (isPromise(actionOptions.cancel)) {\r\n when(fromPromise(actionOptions.cancel)).always(cancel => {\r\n if (!isDefined(cancel)) {\r\n cancel = \"rejected\" === actionOptions.cancel.state()\r\n }\r\n resolveCallback(callback.call(this, cancel))\r\n })\r\n } else {\r\n resolveCallback(callback.call(this, actionOptions.cancel))\r\n }\r\n return deferred.promise()\r\n }\r\n _expandAllDayPanel(appointment) {\r\n if (!this._isAllDayExpanded() && this.appointmentTakesAllDay(appointment)) {\r\n this._workSpace.option(\"allDayExpanded\", true)\r\n }\r\n }\r\n _onDataPromiseCompleted(handlerName, storeAppointment, appointment) {\r\n var args = {\r\n appointmentData: appointment || storeAppointment\r\n };\r\n if (storeAppointment instanceof Error) {\r\n args.error = storeAppointment\r\n } else {\r\n this._appointmentPopup.visible && this._appointmentPopup.hide()\r\n }\r\n this._actions[handlerName](args);\r\n this._fireContentReadyAction()\r\n }\r\n getAppointmentsInstance() {\r\n return this._appointments\r\n }\r\n getLayoutManager() {\r\n return this._layoutManager\r\n }\r\n getRenderingStrategyInstance() {\r\n return this.getLayoutManager().getRenderingStrategyInstance()\r\n }\r\n getActions() {\r\n return this._actions\r\n }\r\n appointmentTakesAllDay(rawAppointment) {\r\n var appointment = createAppointmentAdapter(rawAppointment, this._dataAccessors, this.timeZoneCalculator);\r\n return getAppointmentTakesAllDay(appointment, this._getCurrentViewOption(\"allDayPanelMode\"))\r\n }\r\n dayHasAppointment(day, rawAppointment, trimTime) {\r\n var getConvertedToTimeZone = date => this.timeZoneCalculator.createDate(date, {\r\n path: \"toGrid\"\r\n });\r\n var appointment = createAppointmentAdapter(rawAppointment, this._dataAccessors, this.timeZoneCalculator);\r\n var startDate = new Date(appointment.startDate);\r\n var endDate = new Date(appointment.endDate);\r\n startDate = getConvertedToTimeZone(startDate);\r\n endDate = getConvertedToTimeZone(endDate);\r\n if (day.getTime() === endDate.getTime()) {\r\n return startDate.getTime() === endDate.getTime()\r\n }\r\n if (trimTime) {\r\n day = dateUtils.trimTime(day);\r\n startDate = dateUtils.trimTime(startDate);\r\n endDate = dateUtils.trimTime(endDate)\r\n }\r\n var dayTimeStamp = day.getTime();\r\n var startDateTimeStamp = startDate.getTime();\r\n var endDateTimeStamp = endDate.getTime();\r\n return startDateTimeStamp <= dayTimeStamp && dayTimeStamp <= endDateTimeStamp\r\n }\r\n setTargetedAppointmentResources(rawAppointment, element, appointmentIndex) {\r\n var groups = this._getCurrentViewOption(\"groups\");\r\n if (null === groups || void 0 === groups ? void 0 : groups.length) {\r\n var resourcesSetter = this.getResourceDataAccessors().setter;\r\n var workSpace = this._workSpace;\r\n var getGroups;\r\n var setResourceCallback;\r\n if (this._isAgenda()) {\r\n getGroups = function() {\r\n var apptSettings = this.getLayoutManager()._positionMap[appointmentIndex];\r\n return getCellGroups(apptSettings[0].groupIndex, this.getWorkSpace().option(\"groups\"))\r\n };\r\n setResourceCallback = function(_, group) {\r\n resourcesSetter[group.name](rawAppointment, group.id)\r\n }\r\n } else {\r\n getGroups = function() {\r\n var setting = utils.dataAccessors.getAppointmentSettings(element) || {};\r\n return workSpace.getCellDataByCoordinates({\r\n left: setting.left,\r\n top: setting.top\r\n }).groups\r\n };\r\n setResourceCallback = function(field, value) {\r\n resourcesSetter[field](rawAppointment, value)\r\n }\r\n }\r\n each(getGroups.call(this), setResourceCallback)\r\n }\r\n }\r\n getStartViewDate() {\r\n var _a;\r\n return null === (_a = this._workSpace) || void 0 === _a ? void 0 : _a.getStartViewDate()\r\n }\r\n getEndViewDate() {\r\n return this._workSpace.getEndViewDate()\r\n }\r\n showAddAppointmentPopup(cellData, cellGroups) {\r\n var appointmentAdapter = createAppointmentAdapter({}, this._dataAccessors, this.timeZoneCalculator);\r\n appointmentAdapter.allDay = cellData.allDay;\r\n appointmentAdapter.startDate = this.timeZoneCalculator.createDate(cellData.startDate, {\r\n path: \"fromGrid\"\r\n });\r\n appointmentAdapter.endDate = this.timeZoneCalculator.createDate(cellData.endDate, {\r\n path: \"fromGrid\"\r\n });\r\n var resultAppointment = extend(appointmentAdapter.source(), cellGroups);\r\n this.showAppointmentPopup(resultAppointment, true)\r\n }\r\n showAppointmentPopup(rawAppointment, createNewAppointment, rawTargetedAppointment) {\r\n var newRawTargetedAppointment = _extends({}, rawTargetedAppointment);\r\n if (newRawTargetedAppointment) {\r\n delete newRawTargetedAppointment.displayStartDate;\r\n delete newRawTargetedAppointment.displayEndDate\r\n }\r\n var appointment = createAppointmentAdapter(newRawTargetedAppointment || rawAppointment, this._dataAccessors, this.timeZoneCalculator);\r\n var newTargetedAppointment = extend({}, rawAppointment, newRawTargetedAppointment);\r\n var isCreateAppointment = null !== createNewAppointment && void 0 !== createNewAppointment ? createNewAppointment : isEmptyObject(rawAppointment);\r\n if (isEmptyObject(rawAppointment)) {\r\n rawAppointment = this.createPopupAppointment()\r\n }\r\n if (isCreateAppointment) {\r\n delete this._editAppointmentData;\r\n this._editing.allowAdding && this._appointmentPopup.show(rawAppointment, {\r\n isToolbarVisible: true,\r\n action: ACTION_TO_APPOINTMENT.CREATE\r\n })\r\n } else {\r\n this._checkRecurringAppointment(rawAppointment, newTargetedAppointment, appointment.startDate, () => {\r\n this._editAppointmentData = rawAppointment;\r\n this._appointmentPopup.show(rawAppointment, {\r\n isToolbarVisible: this._editing.allowUpdating,\r\n action: ACTION_TO_APPOINTMENT.UPDATE\r\n })\r\n }, false, true)\r\n }\r\n }\r\n createPopupAppointment() {\r\n var result = {};\r\n var toMs = dateUtils.dateToMilliseconds;\r\n var startDate = new Date(this.option(\"currentDate\"));\r\n var endDate = new Date(startDate.getTime() + this.option(\"cellDuration\") * toMs(\"minute\"));\r\n ExpressionUtils.setField(this._dataAccessors, \"startDate\", result, startDate);\r\n ExpressionUtils.setField(this._dataAccessors, \"endDate\", result, endDate);\r\n return result\r\n }\r\n hideAppointmentPopup(saveChanges) {\r\n var _a;\r\n if (null === (_a = this._appointmentPopup) || void 0 === _a ? void 0 : _a.visible) {\r\n saveChanges && this._appointmentPopup.saveChangesAsync();\r\n this._appointmentPopup.hide()\r\n }\r\n }\r\n showAppointmentTooltip(appointment, element, targetedAppointment) {\r\n if (appointment) {\r\n var settings = utils.dataAccessors.getAppointmentSettings(element);\r\n var appointmentConfig = {\r\n itemData: targetedAppointment || appointment,\r\n groupIndex: null === settings || void 0 === settings ? void 0 : settings.groupIndex,\r\n groups: this.option(\"groups\")\r\n };\r\n var _getAppointmentColor = this.createGetAppointmentColor();\r\n var deferredColor = _getAppointmentColor(appointmentConfig);\r\n var info = new AppointmentTooltipInfo(appointment, targetedAppointment, deferredColor);\r\n this.showAppointmentTooltipCore(element, [info])\r\n }\r\n }\r\n createGetAppointmentColor() {\r\n return appointmentConfig => {\r\n var resourceConfig = {\r\n resources: this.option(\"resources\"),\r\n dataAccessors: this.getResourceDataAccessors(),\r\n loadedResources: this.option(\"loadedResources\"),\r\n resourceLoaderMap: this.option(\"resourceLoaderMap\")\r\n };\r\n return getAppointmentColor(resourceConfig, appointmentConfig)\r\n }\r\n }\r\n showAppointmentTooltipCore(target, data, options) {\r\n var arg = {\r\n cancel: false,\r\n appointments: data.map(item => {\r\n var result = {\r\n appointmentData: item.appointment,\r\n currentAppointmentData: _extends({}, item.targetedAppointment),\r\n color: item.color\r\n };\r\n if (item.settings.info) {\r\n var {\r\n startDate: startDate,\r\n endDate: endDate\r\n } = item.settings.info.appointment;\r\n result.currentAppointmentData.displayStartDate = startDate;\r\n result.currentAppointmentData.displayEndDate = endDate\r\n }\r\n return result\r\n }),\r\n targetElement: getPublicElement(target)\r\n };\r\n this._createActionByOption(\"onAppointmentTooltipShowing\")(arg);\r\n if (this._appointmentTooltip.isAlreadyShown(target)) {\r\n this.hideAppointmentTooltip()\r\n } else {\r\n this._processActionResult(arg, canceled => {\r\n !canceled && this._appointmentTooltip.show(target, data, _extends(_extends({}, this._getExtraAppointmentTooltipOptions()), options))\r\n })\r\n }\r\n }\r\n hideAppointmentTooltip() {\r\n this._appointmentTooltip && this._appointmentTooltip.hide()\r\n }\r\n scrollToTime(hours, minutes, date) {\r\n errors.log(\"W0002\", \"dxScheduler\", \"scrollToTime\", \"21.1\", 'Use the \"scrollTo\" method instead');\r\n this._workSpace.scrollToTime(hours, minutes, date)\r\n }\r\n scrollTo(date, groups, allDay) {\r\n this._workSpace.scrollTo(date, groups, allDay)\r\n }\r\n _isHorizontalVirtualScrolling() {\r\n var scrolling = this.option(\"scrolling\");\r\n var {\r\n orientation: orientation,\r\n mode: mode\r\n } = scrolling;\r\n var isVirtualScrolling = \"virtual\" === mode;\r\n return isVirtualScrolling && (\"horizontal\" === orientation || \"both\" === orientation)\r\n }\r\n addAppointment(rawAppointment) {\r\n var appointment = createAppointmentAdapter(rawAppointment, this._dataAccessors, this.timeZoneCalculator);\r\n appointment.text = appointment.text || \"\";\r\n var serializedAppointment = appointment.source(true);\r\n var addingOptions = {\r\n appointmentData: serializedAppointment,\r\n cancel: false\r\n };\r\n this._actions[StoreEventNames.ADDING](addingOptions);\r\n return this._processActionResult(addingOptions, canceled => {\r\n if (canceled) {\r\n return (new Deferred).resolve()\r\n }\r\n this._expandAllDayPanel(serializedAppointment);\r\n return this.appointmentDataProvider.add(serializedAppointment).always(storeAppointment => this._onDataPromiseCompleted(StoreEventNames.ADDED, storeAppointment))\r\n })\r\n }\r\n updateAppointment(target, appointment) {\r\n return this._updateAppointment(target, appointment)\r\n }\r\n deleteAppointment(rawAppointment) {\r\n var deletingOptions = this.fireOnAppointmentDeleting(rawAppointment);\r\n this.processDeleteAppointment(rawAppointment, deletingOptions)\r\n }\r\n fireOnAppointmentDeleting(rawAppointment, targetedAppointmentData) {\r\n var deletingOptions = {\r\n appointmentData: rawAppointment,\r\n targetedAppointmentData: targetedAppointmentData,\r\n cancel: false\r\n };\r\n this._actions[StoreEventNames.DELETING](deletingOptions);\r\n return deletingOptions\r\n }\r\n processDeleteAppointment(rawAppointment, deletingOptions) {\r\n this._processActionResult(deletingOptions, (function(canceled) {\r\n if (!canceled) {\r\n this.appointmentDataProvider.remove(rawAppointment).always(storeAppointment => this._onDataPromiseCompleted(StoreEventNames.DELETED, storeAppointment, rawAppointment))\r\n }\r\n }))\r\n }\r\n deleteRecurrence(appointment, date, recurrenceEditMode) {\r\n if (\"string\" === typeof date) {\r\n date = new Date(date)\r\n }\r\n this._checkRecurringAppointment(appointment, {}, date, () => {\r\n this.processDeleteAppointment(appointment, {\r\n cancel: false\r\n })\r\n }, true, false, null, recurrenceEditMode)\r\n }\r\n focus() {\r\n if (this._editAppointmentData) {\r\n this._appointments.focus()\r\n } else {\r\n this._workSpace.focus()\r\n }\r\n }\r\n getFirstDayOfWeek() {\r\n return isDefined(this.option(\"firstDayOfWeek\")) ? this.option(\"firstDayOfWeek\") : dateLocalization.firstDayOfWeekIndex()\r\n }\r\n _validateKeyFieldIfAgendaExist() {\r\n if (!this.appointmentDataProvider.isDataSourceInit) {\r\n return\r\n }\r\n var hasAgendaView = !!this._getViewByName(\"agenda\");\r\n var isKeyExist = !!this.appointmentDataProvider.keyName;\r\n if (hasAgendaView && !isKeyExist) {\r\n errors.log(\"W1023\")\r\n }\r\n }\r\n _getDragBehavior() {\r\n return this._workSpace.dragBehavior\r\n }\r\n getViewOffsetMs() {\r\n var offsetFromOptions = this._getCurrentViewOption(\"offset\");\r\n return this.normalizeViewOffsetValue(offsetFromOptions)\r\n }\r\n normalizeViewOffsetValue(viewOffset) {\r\n if (!isDefined(viewOffset) || this.currentViewType === VIEWS.AGENDA) {\r\n return 0\r\n }\r\n return viewOffset * toMs(\"minute\")\r\n }\r\n validateOptions() {\r\n var currentViewOptions = _extends(_extends({}, this.option()), {\r\n startDayHour: this._getCurrentViewOption(\"startDayHour\"),\r\n endDayHour: this._getCurrentViewOption(\"endDayHour\"),\r\n offset: this._getCurrentViewOption(\"offset\"),\r\n cellDuration: this._getCurrentViewOption(\"cellDuration\")\r\n });\r\n var validationResult = this._optionsValidator.validate(currentViewOptions);\r\n this._optionsValidatorErrorHandler.handleValidationResult(validationResult)\r\n }\r\n}\r\nScheduler.include(DataHelperMixin);\r\nregisterComponent(\"dxScheduler\", Scheduler);\r\nexport default Scheduler;\r\n","/**\r\n * DevExtreme (esm/__internal/scheduler/r1/utils/data.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n replaceWrongEndDate\r\n} from \"../../appointments/data_provider/m_utils\";\r\nimport {\r\n createAppointmentAdapter\r\n} from \"../../m_appointment_adapter\";\r\nvar RECURRENCE_FREQ = \"freq\";\r\nexport var getPreparedDataItems = (dataItems, dataAccessors, cellDurationInMinutes, timeZoneCalculator) => {\r\n var result = [];\r\n null === dataItems || void 0 === dataItems ? void 0 : dataItems.forEach(rawAppointment => {\r\n var _a;\r\n var startDate = new Date(dataAccessors.getter.startDate(rawAppointment));\r\n var endDate = new Date(dataAccessors.getter.endDate(rawAppointment));\r\n replaceWrongEndDate(rawAppointment, startDate, endDate, cellDurationInMinutes, dataAccessors);\r\n var adapter = createAppointmentAdapter(rawAppointment, dataAccessors, timeZoneCalculator);\r\n var comparableStartDate = adapter.startDate && adapter.calculateStartDate(\"toGrid\");\r\n var comparableEndDate = adapter.endDate && adapter.calculateEndDate(\"toGrid\");\r\n var regex = new RegExp(RECURRENCE_FREQ, \"gi\");\r\n var recurrenceRule = adapter.recurrenceRule;\r\n var hasRecurrenceRule = !!(null === (_a = null === recurrenceRule || void 0 === recurrenceRule ? void 0 : recurrenceRule.match(regex)) || void 0 === _a ? void 0 : _a.length);\r\n var visible = isDefined(rawAppointment.visible) ? !!rawAppointment.visible : true;\r\n if (comparableStartDate && comparableEndDate) {\r\n result.push({\r\n allDay: !!adapter.allDay,\r\n startDate: comparableStartDate,\r\n startDateTimeZone: rawAppointment.startDateTimeZone,\r\n endDate: comparableEndDate,\r\n endDateTimeZone: rawAppointment.endDateTimeZone,\r\n recurrenceRule: adapter.recurrenceRule,\r\n recurrenceException: adapter.recurrenceException,\r\n hasRecurrenceRule: hasRecurrenceRule,\r\n visible: visible,\r\n rawAppointment: rawAppointment\r\n })\r\n }\r\n });\r\n return result\r\n};\r\nexport var resolveDataItems = options => Array.isArray(options) ? options : options.data;\r\n","/**\r\n * DevExtreme (esm/ui/scheduler.js)\r\n * Version: 23.2.12\r\n * Build date: Mon Feb 10 2025\r\n *\r\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Scheduler from \"./scheduler/ui.scheduler\";\r\nexport default Scheduler;\r\n","/*!\n * devextreme-react\n * Version: 23.2.12\n * Build date: Mon Feb 10 2025\n *\n * Copyright (c) 2012 - 2025 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-react\n */\n\n\"use client\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport dxScheduler from \"devextreme/ui/scheduler\";\nimport * as PropTypes from \"prop-types\";\nimport { Component as BaseComponent } from \"./core/component\";\nimport NestedOption from \"./core/nested-option\";\nvar Scheduler = /** @class */ (function (_super) {\n __extends(Scheduler, _super);\n function Scheduler() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._WidgetClass = dxScheduler;\n _this.subscribableOptions = [\"currentDate\", \"currentView\"];\n _this.independentEvents = [\"onAppointmentAdded\", \"onAppointmentAdding\", \"onAppointmentClick\", \"onAppointmentContextMenu\", \"onAppointmentDblClick\", \"onAppointmentDeleted\", \"onAppointmentDeleting\", \"onAppointmentFormOpening\", \"onAppointmentRendered\", \"onAppointmentTooltipShowing\", \"onAppointmentUpdated\", \"onAppointmentUpdating\", \"onCellClick\", \"onCellContextMenu\", \"onContentReady\", \"onDisposing\", \"onInitialized\"];\n _this._defaults = {\n defaultCurrentDate: \"currentDate\",\n defaultCurrentView: \"currentView\"\n };\n _this._expectedChildren = {\n appointmentDragging: { optionName: \"appointmentDragging\", isCollectionItem: false },\n editing: { optionName: \"editing\", isCollectionItem: false },\n resource: { optionName: \"resources\", isCollectionItem: true },\n scrolling: { optionName: \"scrolling\", isCollectionItem: false },\n view: { optionName: \"views\", isCollectionItem: true }\n };\n _this._templateProps = [{\n tmplOption: \"appointmentCollectorTemplate\",\n render: \"appointmentCollectorRender\",\n component: \"appointmentCollectorComponent\",\n keyFn: \"appointmentCollectorKeyFn\"\n }, {\n tmplOption: \"appointmentTemplate\",\n render: \"appointmentRender\",\n component: \"appointmentComponent\",\n keyFn: \"appointmentKeyFn\"\n }, {\n tmplOption: \"appointmentTooltipTemplate\",\n render: \"appointmentTooltipRender\",\n component: \"appointmentTooltipComponent\",\n keyFn: \"appointmentTooltipKeyFn\"\n }, {\n tmplOption: \"dataCellTemplate\",\n render: \"dataCellRender\",\n component: \"dataCellComponent\",\n keyFn: \"dataCellKeyFn\"\n }, {\n tmplOption: \"dateCellTemplate\",\n render: \"dateCellRender\",\n component: \"dateCellComponent\",\n keyFn: \"dateCellKeyFn\"\n }, {\n tmplOption: \"dropDownAppointmentTemplate\",\n render: \"dropDownAppointmentRender\",\n component: \"dropDownAppointmentComponent\",\n keyFn: \"dropDownAppointmentKeyFn\"\n }, {\n tmplOption: \"resourceCellTemplate\",\n render: \"resourceCellRender\",\n component: \"resourceCellComponent\",\n keyFn: \"resourceCellKeyFn\"\n }, {\n tmplOption: \"timeCellTemplate\",\n render: \"timeCellRender\",\n component: \"timeCellComponent\",\n keyFn: \"timeCellKeyFn\"\n }];\n return _this;\n }\n Object.defineProperty(Scheduler.prototype, \"instance\", {\n get: function () {\n return this._instance;\n },\n enumerable: false,\n configurable: true\n });\n return Scheduler;\n}(BaseComponent));\nScheduler.propTypes = {\n accessKey: PropTypes.string,\n adaptivityEnabled: PropTypes.bool,\n allDayExpr: PropTypes.string,\n allDayPanelMode: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.oneOf([\n \"all\",\n \"allDay\",\n \"hidden\"\n ])\n ]),\n appointmentDragging: PropTypes.object,\n cellDuration: PropTypes.number,\n crossScrollingEnabled: PropTypes.bool,\n currentDate: PropTypes.oneOfType([\n PropTypes.instanceOf(Date),\n PropTypes.number,\n PropTypes.string\n ]),\n currentView: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.oneOf([\n \"agenda\",\n \"day\",\n \"month\",\n \"timelineDay\",\n \"timelineMonth\",\n \"timelineWeek\",\n \"timelineWorkWeek\",\n \"week\",\n \"workWeek\"\n ])\n ]),\n customizeDateNavigatorText: PropTypes.func,\n dateSerializationFormat: PropTypes.string,\n descriptionExpr: PropTypes.string,\n disabled: PropTypes.bool,\n editing: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.object\n ]),\n elementAttr: PropTypes.object,\n endDateExpr: PropTypes.string,\n endDateTimeZoneExpr: PropTypes.string,\n endDayHour: PropTypes.number,\n firstDayOfWeek: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.oneOf([\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6\n ])\n ]),\n focusStateEnabled: PropTypes.bool,\n groupByDate: PropTypes.bool,\n groups: PropTypes.array,\n height: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.number,\n PropTypes.string\n ]),\n hint: PropTypes.string,\n indicatorUpdateInterval: PropTypes.number,\n max: PropTypes.oneOfType([\n PropTypes.instanceOf(Date),\n PropTypes.number,\n PropTypes.string\n ]),\n maxAppointmentsPerCell: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.oneOf([\n \"auto\",\n \"unlimited\"\n ])\n ])\n ]),\n min: PropTypes.oneOfType([\n PropTypes.instanceOf(Date),\n PropTypes.number,\n PropTypes.string\n ]),\n noDataText: PropTypes.string,\n offset: PropTypes.number,\n onAppointmentAdded: PropTypes.func,\n onAppointmentAdding: PropTypes.func,\n onAppointmentClick: PropTypes.func,\n onAppointmentContextMenu: PropTypes.func,\n onAppointmentDblClick: PropTypes.func,\n onAppointmentDeleted: PropTypes.func,\n onAppointmentDeleting: PropTypes.func,\n onAppointmentFormOpening: PropTypes.func,\n onAppointmentRendered: PropTypes.func,\n onAppointmentTooltipShowing: PropTypes.func,\n onAppointmentUpdated: PropTypes.func,\n onAppointmentUpdating: PropTypes.func,\n onCellClick: PropTypes.func,\n onCellContextMenu: PropTypes.func,\n onContentReady: PropTypes.func,\n onDisposing: PropTypes.func,\n onInitialized: PropTypes.func,\n onOptionChanged: PropTypes.func,\n recurrenceEditMode: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.oneOf([\n \"dialog\",\n \"occurrence\",\n \"series\"\n ])\n ]),\n recurrenceExceptionExpr: PropTypes.string,\n recurrenceRuleExpr: PropTypes.string,\n remoteFiltering: PropTypes.bool,\n resources: PropTypes.array,\n rtlEnabled: PropTypes.bool,\n scrolling: PropTypes.object,\n selectedCellData: PropTypes.array,\n shadeUntilCurrentTime: PropTypes.bool,\n showAllDayPanel: PropTypes.bool,\n showCurrentTimeIndicator: PropTypes.bool,\n startDateExpr: PropTypes.string,\n startDateTimeZoneExpr: PropTypes.string,\n startDayHour: PropTypes.number,\n tabIndex: PropTypes.number,\n textExpr: PropTypes.string,\n timeZone: PropTypes.string,\n useDropDownViewSwitcher: PropTypes.bool,\n views: PropTypes.array,\n visible: PropTypes.bool,\n width: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.number,\n PropTypes.string\n ])\n};\nvar AppointmentDragging = /** @class */ (function (_super) {\n __extends(AppointmentDragging, _super);\n function AppointmentDragging() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AppointmentDragging.OptionName = \"appointmentDragging\";\n return AppointmentDragging;\n}(NestedOption));\nvar Editing = /** @class */ (function (_super) {\n __extends(Editing, _super);\n function Editing() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Editing.OptionName = \"editing\";\n return Editing;\n}(NestedOption));\nvar Resource = /** @class */ (function (_super) {\n __extends(Resource, _super);\n function Resource() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Resource.OptionName = \"resources\";\n Resource.IsCollectionItem = true;\n return Resource;\n}(NestedOption));\nvar Scrolling = /** @class */ (function (_super) {\n __extends(Scrolling, _super);\n function Scrolling() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Scrolling.OptionName = \"scrolling\";\n return Scrolling;\n}(NestedOption));\nvar View = /** @class */ (function (_super) {\n __extends(View, _super);\n function View() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n View.OptionName = \"views\";\n View.IsCollectionItem = true;\n View.ExpectedChildren = {\n scrolling: { optionName: \"scrolling\", isCollectionItem: false }\n };\n View.TemplateProps = [{\n tmplOption: \"appointmentCollectorTemplate\",\n render: \"appointmentCollectorRender\",\n component: \"appointmentCollectorComponent\",\n keyFn: \"appointmentCollectorKeyFn\"\n }, {\n tmplOption: \"appointmentTemplate\",\n render: \"appointmentRender\",\n component: \"appointmentComponent\",\n keyFn: \"appointmentKeyFn\"\n }, {\n tmplOption: \"appointmentTooltipTemplate\",\n render: \"appointmentTooltipRender\",\n component: \"appointmentTooltipComponent\",\n keyFn: \"appointmentTooltipKeyFn\"\n }, {\n tmplOption: \"dataCellTemplate\",\n render: \"dataCellRender\",\n component: \"dataCellComponent\",\n keyFn: \"dataCellKeyFn\"\n }, {\n tmplOption: \"dateCellTemplate\",\n render: \"dateCellRender\",\n component: \"dateCellComponent\",\n keyFn: \"dateCellKeyFn\"\n }, {\n tmplOption: \"dropDownAppointmentTemplate\",\n render: \"dropDownAppointmentRender\",\n component: \"dropDownAppointmentComponent\",\n keyFn: \"dropDownAppointmentKeyFn\"\n }, {\n tmplOption: \"resourceCellTemplate\",\n render: \"resourceCellRender\",\n component: \"resourceCellComponent\",\n keyFn: \"resourceCellKeyFn\"\n }, {\n tmplOption: \"timeCellTemplate\",\n render: \"timeCellRender\",\n component: \"timeCellComponent\",\n keyFn: \"timeCellKeyFn\"\n }];\n return View;\n}(NestedOption));\nexport default Scheduler;\nexport { Scheduler, AppointmentDragging, Editing, Resource, Scrolling, View };\n","import { toDate } from \"./toDate.js\";\n\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * @param dateLeft - The first date to compare\n * @param dateRight - The second date to compare\n *\n * @returns The result of the comparison\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * const result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\nexport function compareAsc(dateLeft, dateRight) {\n const diff = +toDate(dateLeft) - +toDate(dateRight);\n\n if (diff < 0) return -1;\n else if (diff > 0) return 1;\n\n // Return 0 if diff is 0; return NaN if diff is NaN\n return diff;\n}\n\n// Fallback for modularized imports:\nexport default compareAsc;\n","import { addMilliseconds } from \"./addMilliseconds.js\";\nimport { millisecondsInHour } from \"./constants.js\";\n\n/**\n * The {@link addHours} function options.\n */\n\n/**\n * @name addHours\n * @category Hour Helpers\n * @summary Add the specified number of hours to the given date.\n *\n * @description\n * Add the specified number of hours to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of hours to be added\n * @param options - An object with options\n *\n * @returns The new date with the hours added\n *\n * @example\n * // Add 2 hours to 10 July 2014 23:00:00:\n * const result = addHours(new Date(2014, 6, 10, 23, 0), 2)\n * //=> Fri Jul 11 2014 01:00:00\n */\nexport function addHours(date, amount, options) {\n return addMilliseconds(date, amount * millisecondsInHour, options);\n}\n\n// Fallback for modularized imports:\nexport default addHours;\n","import { millisecondsInMinute } from \"./constants.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addMinutes} function options.\n */\n\n/**\n * @name addMinutes\n * @category Minute Helpers\n * @summary Add the specified number of minutes to the given date.\n *\n * @description\n * Add the specified number of minutes to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of minutes to be added.\n * @param options - An object with options\n *\n * @returns The new date with the minutes added\n *\n * @example\n * // Add 30 minutes to 10 July 2014 12:00:00:\n * const result = addMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 12:30:00\n */\nexport function addMinutes(date, amount, options) {\n const _date = toDate(date, options?.in);\n _date.setTime(_date.getTime() + amount * millisecondsInMinute);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default addMinutes;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addMilliseconds} function options.\n */\n\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of milliseconds to be added.\n * @param options - The options object\n *\n * @returns The new date with the milliseconds added\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nexport function addMilliseconds(date, amount, options) {\n return constructFrom(options?.in || date, +toDate(date) + amount);\n}\n\n// Fallback for modularized imports:\nexport default addMilliseconds;\n"],"names":["addSeconds","date","amount","options","addMilliseconds","isBefore","dateToCompare","toDate","BindableTemplate","TemplateBase","constructor","render","fields","watchMethod","fieldsMap","super","this","_render","_fields","_fieldsMap","_watchMethod","_renderCore","$container","$","container","dispose","rawData","callback","fieldsDispose","globalDispose","data","dataWithRawFields","isPrimitive","resolvedData","missedFields","slice","watchHandlers","map","name","fieldGetter","value","length","index","indexOf","splice","forEach","watchChanges","model","empty","eventsEngine","on","removeEvent","contents","getDefaultAlignment","isRtlEnabled","config","rtlEnabled","getBoundingRect","element","_element$getBoundingC","isWindow","width","outerWidth","height","outerHeight","getBoundingClientRect","call","TRANSLATOR_DATA_KEY","TRANSFORM_MATRIX_REGEX","TRANSLATE_REGEX","locate","$element","translate","getTranslate","left","x","top","y","isPercentValue","type","cacheTranslate","elementData","get","clearCache","removeData","getTranslateCss","result","matrix","css","match","is3D","split","push","parseFloat","z","move","position","transform","resetPosition","finishTransition","originalTransition","stylesConfig","transition","offsetHeight","CSS_TRANSITION_EASING_REGEX","TransitionTimingFuncMap","linear","swing","ease","easing","convertTransitionTimingFuncToEasing","cssTransitionEasing","forceName","coeffs","i","easingName","join","replace","isFunction","t","b","c","d","x1","y1","x2","y2","Cx","Bx","Ax","Cy","By","Ay","bezierX","derivativeX","Math","abs","polynomBezier","scrollbarWidth","window","getWindow","horzRe","vertRe","collisionRe","scaleRe","IS_SAFARI","browser","safari","normalizeAlign","raw","h","v","pair","splitPair","each","w","String","toLowerCase","test","normalizeOffset","preventRound","pairToObject","getAlignFactor","align","inverseAlign","calculateOversize","bounds","oversize","myLocation","min","max","collisionSide","direction","initMyLocation","atLocation","atAlign","atSize","myAlign","mySize","offset","collisionResolvers","fit","flip","inverseData","extend","flipfit","none","calculateScrollbarWidth","$scrollDiv","overflow","appendTo","offsetWidth","clientWidth","remove","defaultPositionResult","location","calculatePosition","what","$what","currentOffset","my","at","of","precise","collision","normalizeCollision","boundary","boundaryOffset","getOuterWidth","getOuterHeight","preventDefault","pageX","pageY","scrollLeft","scrollTop","devices","real","deviceType","visualViewport","offsetLeft","offsetTop","innerWidth","getWidth","innerHeight","getHeight","nodeType","ofRect","o","getOffsetWithoutScale","win","windowWidth","windowHeight","documentElement","domAdapter","getDocumentElement","hZoomLevel","touch","vZoomLevel","clientHeight","boundaryWidth","boundaryHeight","$boundary","boundaryPosition","preciser","number","round","setScaleProperty","scale","styleAttr","isEmpty","stylePropIsValid","isDefined","style","isNode","newStyleValue","setStyle","styleAttributeNode","createAttribute","setAttributeNode","$startElement","_currentElement$getAt","_style$match","$currentElement","arguments","currentElement","getAttribute","parent","targetPosition","calculate","setup","removeEventName","addNamespace","RELATIVE_VALUE_REGEX","ANIM_DATA_KEY","ANIM_QUEUE_KEY","TRANSFORM_PROP","TransitionAnimationStrategy","initAnimation","transitionProperty","from","addClass","setProps","that","deferred","Deferred","cleanupWhen","transitionAnimation","finish","_finishTransition","when","always","_cleanup","resolveWith","_completeAnimationCallback","done","fail","rejectWith","duration","animate","_startAnimation","promise","simulatedEndEventTimer","startTime","Date","now","delay","transitionEndFired","simulatedTransitionEndFired","transitionEndEventFullName","transitionEndEventName","cleanup","clearTimeout","waitForJSCompleteTimer","off","one","reject","stop","setTimeout","fx","_simulatedTransitionEndDelay","resolve","bind","transitionDelay","transitionDuration","transitionTimingFunction","to","className","removeClass","jumpToEnd","isPlainObject","key","FrameAnimationStrategy","prop","_normalizeValue","_parseTransform","frameAnimation","currentValue","valueOf","draw","cancelAnimationFrame","animationFrameId","substr","delayTimeout","_animationStep","transformString","part","translateData","translateString","parseTranslate","scaleData","rotateData","_calcStepValue","requestAnimationFrame","currentDuration","calcValueRecursively","Array","isArray","propName","endPropValue","numericValue","FallbackToNoAnimationStrategy","noop","isSynchronous","baseConfigValidator","animationType","validate","typeMessage","errors","Error","isObjectConfigValidator","target","positionAliases","bottom","right","SlideAnimationConfigurator","validateConfig","positioningConfig","setupPosition","_setUpConfig","_initNewPosition","relativeValue","_getRelativeValue","exec","parseInt","FadeAnimationConfigurator","_from$opacity","_to$opacity","defaultFromOpacity","defaultToOpacity","fromOpacity","opacity","toOpacity","skipElementInitialStyles","visibility","animationConfigurators","custom","slide","slideIn","slideOut","fade","fadeIn","fadeOut","pop","fromScale","toScale","_getCssTransform","isStringConfigValidator","defaultJSConfig","start","complete","defaultCssConfig","setupAnimationOnElement","configurator","strategy","getPublicElement","apply","startAnimationOnElement","animation","isStarted","onElementAnimationComplete","stopAnimationOnElement","startTimeout","scopedRemoveEvent","createAnimation","initialConfig","defaultConfig","getAnimationConfigurator","animationStrategies","frame","noAnimation","getAnimationStrategy","subscribeToRemoveEvent","getAnimQueueData","destroyAnimQueueData","isAnimating","shiftFromAnimationQueue","queueData","shift","executeAnimation","positionUtils","currentPosition","props","e","animationTypes","writeAnimQueueData","pushInAnimationQueue","_","SelectionStrategy","_setOption","_clearItemKeys","onSelectionChanged","addedItemKeys","removedItemKeys","addedItems","removedItems","selectedItems","selectedItemKeys","equalKeys","key1","key2","equalByReference","isObject","equalByValue","getSelectableItems","items","filter","item","disabled","_clearSelection","keys","preserve","isDeselect","isSelectAll","_removeTemplateProperty","remoteFilter","f","template","_loadFilteredData","localFilter","select","filterLength","encodeURI","JSON","stringify","needLoadAllData","maxFilterLengthInRequest","loadOptions","dataFields","load","filteredItems","dataQuery","toArray","updateSelectedItemKeyHash","keyHash","getKeyHash","keyHashIndices","_isAnyItemSelected","isItemSelected","_getFullSelectAllState","plainItems","dataFilter","ignoreDisabledItems","selectedItemsLength","disabledItemsLength","totalCount","_getVisibleSelectAllState","hasSelectedItems","hasUnselectedItems","itemData","getItemData","keyOf","isSelectableItem","isItemKeySelected","DeferredStrategy","getSelectedItems","selectionFilter","getSelectedItemKeys","isString","_addSelectionFilter","removeSelectedItem","addSelectedItem","setSelectedItems","isItemDataSelected","_getKeyExpr","keyField","_normalizeKey","keyExpr","_getFilterByKey","skipFilter","_findSubFilter","filterString","subFilter","_isLastSubFilter","_addFilterOperator","filterOperator","_denormalizeFilter","_isOnlyNegativeFiltersLeft","filters","every","filterItem","currentFilter","currentOperation","needAddFilter","removedIndex","_removeSameFilter","filterIndex","isKeyOperatorsAfterRemoved","_isKeyFilter","_hasKeyFiltersOnlyStartingFromIndex","_normalizeFilter","_removeFilterByIndex","operation","_isSimpleKeyFilter","inverted","_filterIndex","getSelectAllState","loadSelectedItemsWithFilter","componentFilter","getKeyWrapper","getKey","getSameNewByOld","oldItem","newItems","newIndexByKey","SelectionFilterCreator","selectedItemKeyHashesMap","getLocalFilter","keyGetter","functionFilter","getExpr","filterExpr","filterExprPart","getFilterForPlainKey","itemKeyValue","currentKeyExpr","keyValueGetter","compileGetter","getCombinedFilter","dataSourceFilter","forceCombinedFilter","combinedFilter","normalizeKeys","selectedKeyHashesMap","normalizedKeys","keyValue","StandardStrategy","_initSelectedItemKeyHash","_preserveSelectionUpdate","keyIndicesToRemoveMap","keyIndex","isBatchDeselect","_batchRemoveSelectedItems","_loadSelectedItemsCore","selectionFilterCreator","deselectedItems","_replaceSelectionUpdate","internalKeys","_warnOnIncorrectKeys","allowNullValue","log","_isMultiSelectEnabled","mode","_requestInProgress","_a","_lastLoadDeferred","state","_concatRequestsItems","oldRequestItems","updatedKeys","removeDuplicates","added","concat","removed","_collectLastRequestData","isDeselectAll","multiSelectEnabled","lastRequestData","_lastRequestData","_shouldMergeWithLastRequest","oldKeys","newKeys","isKeysEqual","_updateKeysByLastRequestData","_b","currentKeys","getUniqueValues","_loadSelectedItems","disabledItemKeys","_getKeyHash","_indexOfSelectedItemKey","_getSelectedIndexByKey","ignoreIndicesMap","_getSelectedIndexByHash","indices","_shiftSelectedKeyIndices","currentKeyIndex","currentKey","currentKeyHash","currentKeyIndices","isDisabled","keyIndices","_updateAddedItemKeys","_updateRemovedItemKeys","oldSelectedKeys","oldSelectedItems","_isItemSelectionInProgress","checkPending","includes","visibleOnly","Selection","_getDefaultOptions","selectedKeys","_selectionStrategy","deferredStrategy","standardStrategy","_focusedItemIndex","filterIsChanged","setSelection","deselect","clearSelection","_addSelectedItem","_removeSelectedItem","_setSelectedItems","changeItemSelection","itemIndex","setFocusOnly","isSelectedItemsChanged","indexOffset","isVirtualPaging","allowLoadByRange","alwaysSelectByShift","focusedItemNotInLoadedRange","shiftFocusedItemNotInLoadedRange","itemIsNotInLoadedRange","it","loadIndex","_shiftFocusedItemIndex","isSelectable","isDataItem","itemKey","allowSelectByShift","changeItemSelectionWhenShiftKeyInVirtualPaging","changeItemSelectionWhenShiftKeyPressed","control","_resetItemSelectionWhenShiftKeyPressed","isSelected","clearSelectedItems","arg","_resetFocusedItemIndex","getLoadOptions","skip","itemIndexStep","startIndex","endIndex","indexOffsetDefined","focusedItem","focusedData","focusedKey","isFocusedItemSelected","selectAll","isOnePage","_onePageSelectAll","deselectAll","HOLD_EVENT_NAME","HoldEmitter","Emitter","inherit","_startEventData","eventData","_startTimer","holdTimeout","timeout","_holdTimer","_requestAccept","_fireEvent","_forgetAccept","_touchWasMoved","_cancel","delta","eventDelta","end","_stopTimer","cancel","registerEmitter","emitter","bubble","events","CONTEXTMENU_NAMESPACE","CONTEXTMENU_NAMESPACED_EVENT_NAME","HOLD_NAMESPACED_EVENT_NAME","holdEvent","CONTEXTMENU_EVENT_NAME","ContextMenu","Class","_contextMenuHandler","isSimulator","_holdHandler","isMouseEvent","_fireContextMenu","fireEvent","originalEvent","teardown","registerEvent","compare","maxLevel","normalizeArg","isFinite","xItem","yItem","activeFeedback","ACTIVE_EVENT_NAME","INACTIVE_EVENT_NAME","FeedbackEvent","ctor","fire","_timeout","_fire","_schedule","force","fn","_timer","_fired","fired","FeedbackEmitter","callBase","_active","_inactive","configure","eventName","activeTimeout","inactiveTimeout","activeChildExists","contains","getElement","childJustActivated","_initEvents","eventTarget","_getEmitterTarget","mouseEvent","deferFeedback","ensureDefined","skipTimers","pointerEvents","up","lockInactive","lock","setAttribute","toString","attr","Widget","DOMComponent","_feedbackHideTimeout","_feedbackShowTimeout","_supportedKeys","hoveredElement","isActive","visible","hint","activeStateEnabled","onContentReady","hoverStateEnabled","focusStateEnabled","tabIndex","accessKey","onFocusIn","onFocusOut","onKeyboardHandled","ignoreParentReadOnly","useResizeObserver","_defaultOptionsRules","device","platform","version","compareVersions","_init","_initContentReadyAction","_innerWidgetOptionChanged","innerWidget","args","getOptionsFromContainer","option","_options","cache","_bindInnerWidgetOptions","optionsContainer","syncOptions","silent","_getAriaTarget","_focusTarget","_contentReadyAction","_createActionByOption","excludeValidators","_initMarkup","_toggleDisabledState","_toggleVisibility","_renderHint","_isFocusable","_renderFocusTarget","_renderContent","_renderFocusState","_attachFeedbackEvents","_attachHoverEvents","_toggleIndependentState","deferRender","_disposed","_renderContentImpl","_fireContentReadyAction","deferRenderer","_dispose","_detachKeyboardEvents","_resetActiveState","_toggleActiveState","_eventBindingTarget","_clean","_cleanFocusState","toggleClass","_attachKeyboardEvents","_attachFocusEvents","_renderAccessKey","$el","_getActiveElement","_isFocusTarget","_findActiveTarget","find","_activeStateUnit","not","activeElement","_keyboardEventBindingTarget","_refreshFocusEvent","_detachFocusEvents","_focusEventTarget","_focusInHandler","event","isDefaultPrevented","beforeExecute","_updateFocusState","_focusOutHandler","_ref","isFocused","_toggleFocusClass","_hasFocusClass","hasClass","_isFocused","_getKeyboardListeners","hasChildListeners","_keyboardListenerId","keyboard","opts","_keyboardHandler","onlyChildProcessing","keyName","which","func","handler","keyboardListeners","listener","_refreshFocusState","removeAttr","selector","hover","namespace","Action","_ref2","_hoverStartHandler","_hoverEndHandler","active","_ref3","_ref4","showTimeout","hideTimeout","focus","NAME","isFocusable","el","is","focusableSelector","_updatedHover","_hover","_findHoverTarget","closest","$previous","newHoveredElement","Boolean","setAria","_setWidgetOption","widgetName","optionName","widgetOptionMap","_optionChanged","previousValue","_isVisibilityChangeSupported","_checkVisibilityChanged","_isVisible","beginUpdate","_ready","endUpdate","_initialized","_isReady","isReady","repaint","_refresh","trigger","registerKeyHandler","_ref5","fullName","CollectionItem","_$element","_rawData","attachInstanceToElement","$placeholder","append","_watchers","_renderWatchers","_startWatcher","_renderDisabled","_renderVisible","field","exprGetter","watcher","oldValue","filteredCallback","forcibleWatcher","_dirty","setDataField","_updateOwnerFocus","ownerComponent","owner","_resetItemFocus","getInstance","getInstanceByElement","ITEM_CLASS","CONTENT_CLASS_POSTFIX","ITEM_CONTENT_PLACEHOLDER_CLASS","TEMPLATE_WRAPPER_CLASS","ITEM_PATH_REGEX","FOCUS_UP","FOCUS_DOWN","FOCUS_LEFT","FOCUS_RIGHT","FOCUS_LAST","FOCUS_FIRST","CollectionWidget","isCommandKeyPressed","stopPropagation","_moveFocus","space","_enterKeyHandler","enter","leftArrow","rightArrow","upArrow","downArrow","pageUp","pageDown","home","$itemElement","_getItemData","onClick","_itemEventHandlerByHandler","_itemClickHandler","currentTarget","selectOnFocus","loopItemFocus","itemTemplate","onItemRendered","onItemClick","onItemHold","itemHoldTimeout","onItemContextMenu","onFocusedItemChanged","noDataText","messageLocalization","format","encodeNoDataText","dataSource","_dataController","_itemAttributes","itemTemplateProperty","focusOnSelectedItem","focusedElement","displayExpr","disabledExpr","visibleExpr","_compileDisplayGetter","_initDataController","_cleanRenderedItems","_refreshDataSource","_displayGetter","_initTemplates","_initItemsFromMarkup","_initDefaultItemTemplate","_getAnonymousTemplateName","_getFieldsMap","_templateManager","addDefaultTemplates","_prepareDefaultItemTemplate","text","_getBindableFields","html","rawItems","findTemplates","innerHTML","_prepareItemTemplate","templateId","Guid","$template","detach","clone","_saveTemplate","_dataSourceOptions","paginate","_renderedItemsCount","$focusedElement","_setFocusedItem","$activeItem","_getActiveItem","$target","_updateFocusedItemState","last","activeElements","lastIndex","eq","$newTarget","$items","_getAvailableItems","_prevItem","_nextItem","first","_getVisibleItems","$itemElements","_itemElements","targetIndex","$last","$item","loop","$first","_selectFocusedItem","selectItem","needCleanItemId","_refreshActiveDescendant","_refreshItemId","_updateParentActiveDescendant","getFocusedItemId","_isDisabled","isTargetDisabled","_findItemElementByItem","itemElements","_itemDataKey","_getIndexByItem","_itemOptionChanged","property","ItemClass","_refreshItem","_itemIndexKey","_renderItem","matches","itemPath","_invalidate","_renderEmptyMessage","_createItemRenderAction","_attachHoldEvent","_attachContextMenuEvent","_loadNextPage","_expectNextPageLoading","loadNextPage","_startIndexForAppendedItems","_expectLastItemLoading","_forgetNextPageLoading","_dataSourceChangedHandler","_shouldAppendItems","_isLastPage","_refreshContent","_prepareContent","_dataSourceLoadErrorHandler","_allowDynamicItemsAppend","_cleanItemContainer","_inkRipple","_itemContainer","_itemFocusTimeout","_itemClass","_itemContentClass","_selectedItemClass","_itemResponseWaitClass","_itemSelector","_attachClickEvent","_getPointerEvent","down","itemSelector","pointerEvent","clickEventNamespace","clickEventName","pointerEventNamespace","pointerAction","_itemPointerDownHandler","execute","_itemDXEventHandler","_itemFocusHandler","$closestItem","$closestFocusable","_closestFocusable","_forcePointerDownFocus","focusable","isDocument","isDocumentFragment","$itemContainer","_getHoldTimeout","_itemHoldHandler","_shouldFireHoldEvent","hasActionSubscription","contextMenuEventName","_itemContextMenuHandler","_shouldFireContextMenuEvent","_renderItems","_getItemsContainer","_setAttributes","attributes","_extends","class","customClassValue","currentClassValue","$itemToReplace","$itemFrame","_renderItemFrame","_setElementData","_attachItemClickEvent","$itemContent","_getItemContent","renderContentPromise","_renderItemContent","contentClass","defaultTemplateName","_postprocessRenderItem","itemElement","itemContent","_executeItemRenderAction","itemTemplateName","_getItemTemplateName","_getTemplate","_addItemContentClasses","$templateResult","_createItemByTemplate","_renderItemContentByNode","$node","replaceWith","classes","_appendItemToContainer","_itemOptions","displayValue","expr","_getItemRenderAction","_itemRenderAction","category","templateProperty","renderArgs","onRendered","_onItemTemplateRendered","_emptyMessageContainer","hideNoData","isLoading","_$noData","dxEvent","handlerOptionName","actionArgs","actionConfig","_itemEventHandler","initiator","action","validatingTargetName","_itemEventHandlerImpl","_createAction","_closestItemElement","_extendActionArgs","_getSummaryItemsSize","dimension","includeMargin","_focusedItemId","itemsContainer","include","DataHelperMixin","CollectionWidgetItem","abstract","PlainEditStrategy","collectionWidget","_collectionWidget","getIndexByItemData","getItemDataByIndex","getKeysByItems","getItemsByKeys","itemsGetter","getKeyByIndex","resultIndex","_denormalizeItemIndex","_equalKeys","_isKeySpecified","beginCache","_cache","endCache","getIndexByKey","getNormalizedIndex","_isNormalizedItemIndex","_isItemIndex","_normalizeItemIndex","_isNode","_getNormalizedItemIndex","getIndex","getItemElement","_getItemByNormalizedIndex","normalizedItemIndex","isRenderer","deleteItemAtIndex","itemPlacementFunc","movingIndex","destinationIndex","_itemsFromSameParent","moveItemAtIndexToIndex","_getPlainItems","movedItemData","ITEM_DELETING_DATA_KEY","indexExists","BaseCollectionWidget","_setOptionsByReference","_optionsByReference","selectedItem","selectionMode","selectionRequired","selectByClick","selectedIndex","onItemReordered","onItemDeleting","onItemDeleted","_userOptions","_initEditStrategy","_initKeyGetter","_initSelectionModule","_keyGetter","_getKeysByItems","_editStrategy","_getItemsByKeys","_getKeyByIndex","_getIndexByKey","_getIndexByItemData","_getCombinedFilter","store","_nullValueSelectionSupported","_selection","_updateSelectedItems","_getItemsCount","dataController","customQueryParams","userData","loadFromStore","loadResult","normalizeLoadResult","applyMapFunction","reduce","itemsCount","Strategy","_getSelectedItemIndices","_rendering","_syncSelectionOptions","_normalizeSelectedItems","_rendered","byOption","_chooseSelectOption","_setOptionWithoutOptionChange","selectedItemIndex","isOptionDefined","optionValue","_compareKeys","newSelection","currentSelection","normalizedSelection","itemSelectPromise","_itemSelectHandler","unselectItem","_selectedItemElement","_isItemSelected","_processSelectableItem","_setAriaSelectionAttribute","selectionChangePromise","_selectionChangePromise","normalizedIndex","addedSelection","removedSelection","_addSelection","_i","_removeSelection","_updateSelection","_fireSelectionChangeEvent","triggerHandler","_clearSelectedItems","_waitDeletingPrepare","deletingActionArgs","deletePromise","deletePromiseExists","deletePromiseResolved","shouldDelete","fromPromise","_deleteItemFromDS","disabledState","dataStore","_tryRefreshLastPage","_refreshLastPage","_updateSelectionAfterDelete","_updateIndicesAfterIndex","_simulateOptionChange","DataSource","_optionChangedAction","_deleteItemElementByIndex","_afterItemElementDeleted","deletedActionArgs","changingOption","getDataSource","deleteItem","itemResponseWaitClass","reorderItem","toItemElement","$movingItem","$destinationItem","fromIndex","toIndex","AsyncCollectionWidget","CollectionWidgetEdit","_deferredItems","renderContentDeferred","itemDeferred","_postProcessRenderItems","_renderItemsAsync","TOOLBAR_CLASS","TOOLBAR_BEFORE_CLASS","TOOLBAR_AFTER_CLASS","TOOLBAR_LABEL_CLASS","TOOLBAR_COMPACT_CLASS","TEXT_BUTTON_MODE","ToolbarBase","_getSynchronizableOptionsForCreateComponent","rawModel","_c","_d","_e","widget","wrapInner","stylingMode","menuItem","renderAs","grouped","useFlatButtons","useDefaultButtons","isMaterialBased","_$toolbarItemsContainer","_dimensionChanged","_arrangeItems","_applyCompactMode","_renderToolbar","_renderSections","_updateDimensionsInMaterial","section","sectionClass","elementWidth","_$centerSection","margin","float","beforeRect","_$beforeSection","afterRect","_$afterSection","_alignCenterSection","$label","$section","labelOffset","widthBeforeSection","widthAfterSection","elemsAtSectionWidth","children","freeSpace","sectionMaxWidth","_alignSection","labelPaddings","isRTL","leftRect","rightRect","centerRect","marginLeft","marginRight","maxWidth","labels","_getCurrentLabelsPaddings","currentWidth","_getCurrentLabelsWidth","difference","reverse","_alignSectionLabels","expanding","getRealLabelWidth","label","currentLabelWidth","ceil","labelMaxWidth","possibleLabelWidth","padding","itemContainer","$after","itemHasText","cssClass","_renderGroupedItems","groupIndex","group","groupItems","_getToolbarItems","_visibilityChanged","prevValue","_waitParentAnimationTimeout","isMaterial","Promise","all","check","readyToResolve","parents","runCheck","$labels","promises","fontWeight","waitWebFont","then","registerComponent","EMAIL_VALIDATION_REGEX","STATUS","BaseRuleValidator","defaultMessage","getFormatter","defaultFormattedMessage","_isValueEmpty","rulesValidators","required","rule","valueArray","itemValue","_validate","CustomRuleValidator","ignoreEmptyValue","validator","dataGetter","extraParams","params","validationCallback","trim","numeric","useCultureSettings","isNaN","numberLocalization","parse","isNumeric","range","validNumber","validValue","isDate","stringLength","async","reevaluate","callbackResult","isPromise","_getWrappedPromise","res","err","isValid","message","comparisonTarget","otherValue","comparisonType","pattern","RegExp","email","GroupConfig","isRemovable","validators","_isRemovable","_pendingValidators","_onValidatorStatusChanged","_resetValidationInfo","_eventsStrategy","EventsStrategy","brokenRules","status","_unsubscribeFromAllChangeEvents","validatorResult","_addPendingValidator","_subscribeToChangeEvents","_raiseValidatedEvent","_updateValidationInfo","_validationInfo","_unsubscribeFromChangeEvents","grep","val","_removePendingValidator","_orderBrokenRules","orderedRules","foundRules","_updateBrokenRules","rules","_resolveIfComplete","_synchronizeValidationInfo","removeRegisteredValidator","registerValidator","reset","eventHandler","ValidationEngine","groups","getGroupConfig","findGroup","validationGroup","dxComponents","dxValidationGroup","$dxGroup","initGroups","addGroup","removeGroup","_setDefaultMessage","info","_addBrokenRule","brokenRule","validationRules","pendingRules","asyncRuleItems","ruleValidationResult","ruleValidator","_validateAsyncRules","_synchronizeGroupValidationInfo","groupConfig","_validationGroup","asyncResults","validateResult","asyncResult","ruleResult","_getPatchedRuleResult","_updateRuleConfig","values","_getAsyncRulesResult","isBoolean","registerValidatorInGroup","validatorsInGroup","initValidationOptions","initedOptions","synchronizeValidationOptions","validationStatus","newStatus","validationError","validationErrors","validateGroup","resetGroup","isStringOrNumber","isNullOrUndef","isInvalid","isNull","combineFrom","second","out","key$1","isLinkEventObject","EMPTY_OBJ","normalizeEventName","appendChild","parentDOM","dom","insertOrAppend","newNode","nextNode","insertBefore","removeChild","childNode","callAll","arrayFn","findChildVNode","vNode","startEdge","flags","$LI","childFlags","findDOMfromVNode","removeVNodeDOM","len","moveVNodeDOM","createDerivedState","instance","nextProps","getDerivedStateFromProps","renderCheck","componentComparator","createVNode","renderComplete","setTextContent","textContent","isLastValueSameLinkEvent","lastValue","nextValue","mergeUnsetProperties","safeCall1","method","arg1","keyPrefix","V","ref","childFlag","normalizeChildren","createComponentVNode","prototype","resolveComponentFlags","defaultProps","mergeDefaultProps","defaultHooks","mergeDefaultHooks","createTextVNode","createFragment","fragment","createVoidVNode","normalizeProps","undefined","directClone","vNodeToClone","propsToClone","oldChildren","cloneFragment","_normalizeVNodes","nodes","n","newKey","oldKey","isPrefixedKey","substring","newChildren","newChildFlags","needsCloning","isNullKey","isPrefixed","normalizeRoot","input","xlinkNS","xmlNS","namespaces","getDelegatedEventObject","onDblClick","onKeyDown","onKeyPress","onKeyUp","onMouseDown","onMouseMove","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","attachedEventCounts","attachedEvents","syntheticEvents","updateOrAddSyntheticEvent","eventsObject","$EV","attachedEvent","button","dispatchEvents","extendEventProperties","rootClickEvent","rootEvent","document","addEventListener","attachEventToDocument","unmountSyntheticEvent","removeEventListener","isClick","composedPath","getTargetNode","currentEvent","cancelBubble","parentNode","immediatePropagationStopped","stopImmediatePropagation","defaultPrevented","isPropagationStopped","Object","defineProperty","configurable","triggerEventListener","methodName","nativeListenerName","createWrappedFunction","applyValue","fnMethod","$V","newVNode","newProps","enumerable","writable","attachEvent","previousKey","previousArgs","wrapped","isCheckedType","onTextInputChange","applyValueInput","wrappedOnChange","emptywrapper","nextPropsOrEmpty","checked","multiple","defaultValue","hasValue","updateChildOptions","selected","updateChildOption","onSelectChange","applyValueSelect","mounting","multiplePropInBoolean","p","onTextareaInputChange","applyValueTextArea","wrappedOnChange$1","domValue","processElement","isControlled","addFormElementEventHandlers","inputEvents","selectEvents","onChange","textAreaEvents","isControlledFormElement","unmountRef","current","mountRef","lifecycle","unmount","unmountAllChildren","componentWillUnmount","$UN","onComponentWillUnmount","clearDOM","removeAllChildren","patchDangerInnerHTML","lastVNode","lastHtml","__html","nextHtml","tempdom","createElement","isSameInnerHTML","patchProp","isSVG","hasControlledValue","autofocus","lastAttrValue","nextAttrValue","removeAttribute","domStyle","cssText","setProperty","removeProperty","patchStyle","lastEvent","nextEvent","handleSyntheticEvent","charCodeAt","ev","wrapLinkEvent","patchEvent","setAttributeNS","mountProps","isFormElement","renderNewInput","context","nextInput","childContext","getChildContext","$CX","createClassComponentInstance","Component","usesNewAPI","$N","getSnapshotBeforeUpdate","$SVG","$L","$BS","componentWillMount","$BR","pending","$PS","renderFunctionalComponent","mount","mountElement","mountClassComponentCallbacks","mountClassComponent","mountFunctionalComponent","mountFunctionalComponentCallbacks","mountText","mountArrayChildren","mountFragment","placeHolderVNode","mountPortal","createTextNode","tag","createElementNS","documentCreateElement","childrenIsSVG","child","componentDidMount","createClassMountCallback","onComponentWillMount","onComponentDidMount","createOnMountCallback","patch","nextVNode","nextFlags","newDom","lastDom","replaceChild","replaceWithNewNode","lastProps","lastPropsOrEmpty","prop$1","nextChildren","nextClassName","patchContentEditableChildren","patchChildren","nextRef","lastRef","patchElement","nextState","componentWillReceiveProps","updateClassComponent","patchClassComponent","shouldUpdate","nextHooksDefined","lastInput","onComponentShouldUpdate","onComponentWillUpdate","onComponentDidUpdate","patchFunctionalComponent","nextText","nodeValue","patchText","lastChildren","lastChildFlags","nextChildFlags","nextIsSingle","lastLen","nextSibling","patchFragment","lastContainer","nextContainer","node","patchPortal","parentVNode","replaceOneVNodeWithMultipleVNodes","firstChild","patchSingleTextChild","lastLength","nextLength","a","aLength","bLength","outerEdge","nextPos","aEnd","bEnd","j","aNode","bNode","outer","aStart","bStart","aLeft","bLeft","sources","Int32Array","canRemoveWholeContent","moved","pos","patched","seq","arr","arrI","k","u","maxLen","lis_algorithm","patchKeyedChildrenComplex","patchKeyedChildren","lastChildrenLength","nextChildrenLength","nextChild","lastChild","commonLength","patchNonKeyedChildren","lastState","hasSCU","shouldComponentUpdate","componentWillUpdate","snapshot","componentDidUpdate","createDidUpdate","rootInput","__render","Node","QUEUE","nextTick","microTaskPending","queueStateChanges","component","newState","stateKey","applyState","$F","rerender","QU","$QU","callSetStateCallbacks","queue","pendingState","forceUpdate","setState","_nextProps","_nextState","_nextContext","InfernoEffectHost","lockCount","callbacks","callEffects","effects","areObjectsEqual","firstObject","secondObject","firstObjectKeys","secondObjectKeys","some","BaseInfernoComponent","_pendingContext","InfernoComponent","_effects","createEffects","updateEffects","_context","destroyEffects","InfernoWrapperComponent","vDomElement","vDomUpdateClasses","currentClasses","addedClasses","dxClasses","previous","removedClasses","indexInRemoved","indexInAdded","classList","add","contextId","InfernoEffect","effect","dependency","destroy","update","currentDependency","createReRenderEffect","reRender","isSamePropsInnerHTML","dangerouslySetInnerHTML","hydrateChildren","currentNode","_M","hydrateVNode","childNodes","prevVNodeIsTextNode","hydrateText","currentDom","isClass","_CI","_MCCC","_HI","_MFCC","hydrateComponent","_ME","_MP","_MR","hydrateElement","findLastDOMFromVNode","hydrateFragment","throwError","isUndefined","componentHooks","_children","arguments$1","childLen","getFlagsForElementVnode","NUMBER_STYLES","Set","uppercasePattern","normalizeStyles","styles","entries","acc","str","Number","getNumberStyleValue","has","cleanDataRecursive","injector","_createElement","onAfterRender","onPreRender","rootNode","mountNode","createDocumentFragment","hydrate","shallowEquals","_excluded","TemplateWrapper","renderTemplate","$oldContainerContent","content","_props$model","rendered","transclude","renovated","renderTemplateContent","$actualContainerContent","newElement","oldElement","isEqual","nextModel","nextTemplate","equalityComparer","nextData","nextIndex","cloneObjectValue","cloneObjectProp","fullNameParts","updatePropsImmutable","currentPropsValue","prevPropsValue","getPathParts","setDefaultOptionValue","defaultValueGetter","hasOwnProperty","ComponentWrapper","_shouldRaiseContentReady","validateKeyDownHandler","_propsInfo","allowNull","twoWay","elements","templates","hasComponentDefaultKeyHandlers","getSupportedKeyNames","hasComponentKeyDownMethod","_viewComponent","keyDown","viewRef","_this$_viewRef","_viewRef","_checkContentReadyOption","contentReadyOptions","_getContentReadyOptions","_fireContentReady","_actionsMap","viewDefaultProps","_getViewComponentDefaultProps","defaultName","_getUnwrappedOption","unwrappedProps","_initializeComponent","_this$_templateManage","getDefaultTemplates","optionProxy","_props","_optionsWithDefaultTemplates","_componentTemplates","_createTemplateComponent","_getActionConfigsFull","_addAction","defaultKeyHandlers","_createDefaultKeyHandlers","getProps","_renderWrapper","containerNode","_isNodeReplaced","renderer","_silent","_removeWidget","elementAttr","_elementAttr","attrs","_attributes$attr$name","specified","updatedAttributes","isDomAttr","_storedClasses","elemStyle","getPropertyValue","_getAdditionalActionConfigs","_getAdditionalProps","_patchOptionValues","defaultWidgetPropsKeys","defaultOptions","widgetProps","event_options","_patchElementParam","prepareStyleProp","_this$elementAttr$cla","_elementAttr$class","_extractDefaultSlot","aria","_aria","_getActionConfigs","defaultTemplates","_templatesInfo","templateOptions","_options$templateName","templateName","templateValue","customKeyHandlers","KeyboardProcessor","createKeyDownOptions","actionToAdd","actionByOption","actArgs","anonymousTemplateName","templateOption","_model$data","_objectWithoutPropertiesLoose","buildTemplateArgs","_wrapKeyDownHandler","initialHandler","_toPublicElement","error","IS_RENOVATED_WIDGET","ICON_CLASS","getImageSourceType","source","getImageContainer","ButtonWrapper","_validationGroupConfig","_findGroup","getDefaultTemplateNames","_clickAction","icon","iconTemplate","activate","deactivate","_getSubmitAction","needValidate","submitInput","validationResult","click","_createClickAction","$content","$input","templateData","_templateData","_modelByElement","combineClasses","classesMap","Icon","sourceType","iconClassName","generalClasses","restAttributes","_this$props","TemplateProp","IconTemplate","alt","src","viewFunction","INKRIPPLE_CLASS","INKRIPPLE_WAVE_CLASS","INKRIPPLE_SHOWING_CLASS","INKRIPPLE_HIDING_CLASS","initConfig","useHoldAnimation","waveSizeCoefficient","isCentered","wavesNumber","durations","getDurations","showWave","hideWave","getWaves","inkRipple","getInkRipple","$currentWave","getWaveStyleConfig","elementHeight","elementDiagonal","sqrt","waveSize","$wave","wave","hidingTimeout","hideSelectedWave","showingTimeout","showingWaveHandler","durationCss","showingScale","hidingScale","hidingOpacity","animationDuration","InkRippleProps","freeze","InkRipple","__getterCache","getConfig","realDevice","SCROLL_EVENT","SCROLL_INIT_EVENT","SCROLL_START_EVENT","SCROLL_MOVE_EVENT","SCROLL_END_EVENT","SCROLL_STOP_EVENT","SCROLL_CANCEL_EVENT","Locker","NAMESPACED_SCROLL_EVENT","_element","_locked","_proxiedScroll","_scroll","TimeoutLocker","_prepare","_forget","_clearTimer","WheelLocker","_lastWheelDirection","_checkDirectionChanged","isDxMouseWheelEvent","shiftKey","directionChange","PointerLocker","ios","isIos","android","isAndroid","_scrollFrame","_checkFrame","ScrollEmitter","GestureEmitter","FRAME_DURATION","_pointerLocker","_wheelLocker","scrollTarget","_accept","skipCheck","isNative","_prevEventData","isScrollingEvent","_start","_savedEventData","_move","currentEventData","time","_end","endEventDelta","velocity","velocityMultiplier","_stop","_toggleGestureCover","subscribeToEvent","clickEvent","scrollEvents","subscribeToDxActiveEvent","subscribeToDxInactiveEvent","subscribeToDxHoverStartEvent","subscribeToDxHoverEndEvent","subscribeToDxFocusInEvent","subscribeToDxFocusOutEvent","BaseWidgetProps","ConfigContext","id","Provider","assign","createContext","ConfigProvider","WidgetProps","create","getOwnPropertyDescriptors","addWidgetClass","widgetElementRef","focused","hovered","setRootElementRef","activeEffect","inactiveEffect","clickEffect","blur","focusInEffect","focusOutEffect","hoverStartEffect","hoverEndEffect","keyboardEffect","resizeEffect","windowResizeEffect","visibilityEffect","checkDeprecation","applyCssTextEffect","activeStateUnit","onActive","onInactive","onHoverStart","onHoverEnd","onDimensionChanged","onVisibilityChange","_this$_effects$","_this$_effects$2","_this$_effects$3","_this$_effects$4","_this$_effects$5","_this$_effects$6","_this$_effects$7","_this$_effects$8","_this$_effects$9","_this$_effects$10","_this$_effects$11","_this$_effects$12","_this$_effects$13","onRootElementRendered","rootElementRef","__state_argument","dxClick","resize","resizeCallbacks","shouldRenderConfigProvider","rtlProp","isPropDefined","onlyGlobalDefined","globalConfig","resolveRtlEnabledDefinition","hidden","r","computedWidth","normalizeStyleProp","computedHeight","cssClasses","isHoverable","canBeActive","getActiveElement","viewModel","title","stylingModes","ButtonProps","iconPosition","useInkRipple","useSubmitBehavior","defaultOptionRules","createDefaultOptionRules","getTemplate","Button","contentRef","inkRippleRef","submitInputRef","widgetRef","submitEffect","onWidgetClick","emitClickEvent","onSubmit","camelize","_titleRegexp$exec$","_titleRegexp$exec","role","isValidStylingMode","getCssClasses","iconSource","inkRippleConfig","buttonTemplateData","ButtonTemplate","renderText","isIconLeft","iconComponent","convertRulesToOptions","__defaultOptionRules","BaseComponent","_this$viewRef","_this$viewRef2","_this$viewRef3","ButtonComponent","hideCallback","indexOfCallback","hasCallback","SWATCH_CONTAINER_CLASS_PREFIX","swatchContainer","viewport","swatchClassRegex","swatchClass","viewportSwatchContainer","OVERLAY_POSITION_ALIASES","center","OVERLAY_DEFAULT_BOUNDARY_OFFSET","OverlayPositionController","visualContainer","$root","$wrapper","onPositioned","onVisualPositionChanged","restorePosition","_fixWrapperPosition","_skipContentPositioning","_$root","_$content","_$wrapper","_$markupContainer","_$visualContainer","_shouldRenderContentInitialPosition","_visualPosition","_initialPosition","_previousVisualPosition","updateContainer","updatePosition","updateVisualContainer","$visualContainer","_position","fixWrapperPosition","styleWrapperPosition","restorePositionOnNextRender","openingHandled","shouldRestorePosition","positionProp","_normalizePosition","containerProp","swatch","_getVisualContainer","detectVisualPositionChange","_updateVisualPositionValue","_raisePositionedEvents","positionContent","_renderContentInitialPosition","positionWrapper","positionStyle","_renderBoundaryOffset","wrapperOverflow","resultPosition","previousPosition","newPosition","visualContainerProp","positionOf","isEvent","defaultPositionConfig","_positionToObject","baseZIndex","zIndexStack","baseIndex","zIndex","ready","readyCallbacks","viewPortChanged","changeCallback","INNER_OVERLAY_CLASS","INVISIBLE_STATE_CLASS","OVERLAY_STACK","PREVENT_SAFARI_SCROLLING_CLASS","subscribeGlobal","getDocument","_proxiedDocumentDownHandler","Overlay","escape","hide","deferRendering","shading","shadingColor","wrapperAttr","minWidth","minHeight","maxHeight","show","closeOnOutsideClick","hideOnOutsideClick","copyRootClassesToWrapper","_ignoreCopyRootClassesToWrapperDeprecation","_ignoreElementAttrDeprecation","_ignorePreventScrollEventsDeprecation","onShowing","onShown","onHiding","onHidden","contentTemplate","innerOverlay","hideTopOverlayHandler","hideOnParentScroll","preventScrollEvents","propagateOutsideClick","ignoreChildEvents","_checkParentVisibility","_hideOnParentScrollTarget","hasWindow","_setDeprecatedOptions","_deprecatedOptions","since","alias","_logDeprecatedOptionWarning","_logDeprecatedPreventScrollEventsInfo","_initActions","_initHideOnOutsideClickHandler","_initTabTerminatorHandler","_customWrapperClass","_initInnerOverlayClass","_toggleViewPortSubscription","_initHideTopOverlayHandler","_parentsScrollSubscriptionInfo","_hideOnParentsScrollHandler","warnPositionAsFunction","_hideTopOverlayHandler","_getActionsList","_actions","actions","_this","_documentDownHandler","_renderWrapperAttributes","_initPositionController","_showAnimationProcessing","_stopAnimation","isAttachedTarget","isInnerOverlay","_shouldHideOnOutsideClick","_outsideClickHandler","EmptyTemplate","_isTopOverlay","overlayStack","_overlayStack","tabbableElements","_findTabbableBounds","_zIndexInitValue","toggle","_this2","_viewPortChangeHandle","_viewPortChangeHandler","_positionController","classNames","_renderVisibilityAnimate","_show","_hide","_getAnimationConfig","_getOptionValue","_toggleBodyScroll","_animateShowing","_this3","showAnimation","_normalizeAnimation","startShowAnimation","completeShowAnimation","_animate","_isAnimationPaused","_len","_key","_isHidden","_toggleSafariScrolling","_showingDeferred","_len2","_key2","_processShowingHidingCancel","cancelArg","applyFunction","cancelFunction","shouldCancel","catch","_parentHidden","_isParentHidden","_currentVisible","_isHidingActionCanceled","_updateZIndexStackPosition","showingArgs","_renderVisibility","_isShowingActionCanceled","_moveFromContainer","_stopShowTimer","_asyncShowTimeout","showHideConfig","_animateHiding","_this4","hideAnimation","startHideAnimation","completeHideAnimation","_len3","_key3","_hideAnimationProcessing","_hidingDeferred","_len4","_key4","hidingArgs","_forceFocusLost","_toggleShading","_toggleSubscriptions","resetActiveElement","completeCallback","startCallback","triggerHidingEvent","_checkContainerExists","_moveToContainer","_renderGeometry","triggerShownEvent","triggerResizeEvent","pushToStack","_zIndex","zIndexPool","_toggleTabTerminator","_this5","_proxiedTabTerminatorHandler","_tabKeyHandler","enabled","$elements","elementsCount","tabbable","normalizeKeyName","$firstTabbable","$lastTabbable","isTabOnLast","isShiftTabOnFirst","isEmptyTabList","isOutsideTarget","$focusElement","_toggleHideTopOverlayCallback","_toggleHideOnParentsScrollSubscription","subscribe","hideTopOverlayCallback","needSubscribe","scrollEvent","prevTargets","hideOnScroll","$parents","_getHideOnParentScrollTarget","hideHandled","$hideOnParentScrollTarget","_appendContentToElement","shouldDeferRendering","_contentAlreadyRendered","$parent","isHidden","getBody","whenContentRendered","contentTemplateOption","noModel","_toggleWrapperScrollEventsSubscription","_getPositionControllerConfig","dragEventMove","getDirection","_toggleGestureCoverImpl","isWheel","isMouseMove","isScrollByWheel","_cancelPreventDefault","cancelable","$wrapperContainer","uiErrors","_renderGeometryImpl","_renderDimensions","_renderPosition","_isAllWindowCovered","$body","isIosSafari","isAllWindowCovered","isScrollingPrevented","shouldPreventScrolling","shouldEnableScrolling","scrollTo","_cachedBodyScrollTop","pageYOffset","_renderWrapperDimensions","isVisualContainerWindow","wrapperWidth","wrapperHeight","isRenovated","_deferShowTimer","_toggleRTLDirection","rtl","_animateDeferred","showing","animateDeferred","forceStopAnimation","ZIndex","RESIZABLE","RESIZABLE_HANDLE_CLASS","RESIZABLE_HANDLE_CORNER_CLASS","DRAGSTART_START_EVENT_NAME","dragEventStart","DRAGSTART_EVENT_NAME","DRAGSTART_END_EVENT_NAME","dragEventEnd","SIDE_BORDER_WIDTH_STYLES","Resizable","handles","step","stepPrecision","area","onResizeStart","onResize","onResizeEnd","roundStepValue","keepAspectRatio","_renderHandles","_renderActions","_resizeStartAction","_resizeEndAction","_resizeAction","_handles","directions","activeHandlesMap","handleName","_renderHandle","_attachEventHandlers","$handle","handlers","_dragStartHandler","_dragHandler","_dragEndHandler","handleElement","immediate","_detachEventHandlers","_toggleEventHandlers","shouldAttachEvents","_getElementSize","_toggleResizingClass","_movingSides","_getMovingSides","_elementLocation","_elementSize","_renderDragOffsets","targetElements","_getArea","handleWidth","handleHeight","handleOffset","areaOffset","scrollOffset","_getAreaScrollOffset","maxLeftOffset","_leftMaxOffset","scrollX","maxRightOffset","_rightMaxOffset","maxTopOffset","_topMaxOffset","scrollY","maxBottomOffset","_bottomMaxOffset","_getBorderWidth","borderWidth","_proportionate","size","_getProportionalDelta","proportionalY","proportionalX","_getDirectionName","axis","sides","_fitIntoArea","directionName","_fitDeltaProportionally","fittedDelta","isInArea","isFittedX","inRange","isFittedY","fitIntoRange","_fitDelta","_getDeltaByOffset","shouldKeepAspectRatio","_isCornerHandler","proportionalDelta","_roundByStep","_updatePosition","elementRect","_getOffset","dimensions","_updateDimensions","_triggerResizeAction","isAbsoluteSize","isStepPrecisionStrict","elementStyle","shouldRenderWidth","shouldRenderHeight","xor","_roundStrict","_roundNotStrict","_getSteps","steps","xPos","yPos","newXShift","newYShift","sign","separatorOffset","isSmallOffset","newOffsetX","newOffsetY","roundedOffset_x","roundedOffset_y","hasCornerTopLeftClass","hasCornerTopRightClass","hasCornerBottomLeftClass","hasCornerBottomRightClass","_getAreaFromObject","_getAreaFromElement","areaElement","pageXOffset","_correctAreaGeometry","$area","getInnerWidth","getInnerHeight","areaBorderLeft","areaBorderTop","_renderWidth","_renderHeight","_useTemplates","init","dragEnabled","handle","draggableElement","positionController","_draggableElement","_handle","_dragEnabled","unsubscribe","moveDown","_moveTo","moveUp","moveLeft","moveRight","eventNames","_getEventNames","startEventName","updateEventName","_dragUpdateHandler","endEventName","dragStartEvent","dragMoveEvent","dragEndEvent","allowedOffsets","_getAllowedOffsets","_prevOffset","targetOffset","_moveByOffset","dragHandled","_fitOffsetIntoAllowedRange","_getContainerDimensions","$dragResizeContainer","containerWidth","containerHeight","body","_getContainerPosition","getOffset","_getElementPosition","_getInnerDelta","containerDimensions","elementDimensions","_getElementDimensions","_getOuterDelta","outsideDragFactor","_getFullDelta","fullDelta","outerDelta","elementPosition","containerPosition","overflowManagerMock","setOverflow","restoreOverflow","__rest","s","getOwnPropertySymbols","propertyIsEnumerable","PopupPositionController","fullScreen","forceApplyBindings","dragOutsideBoundary","dragAndResizeArea","_$dragResizeContainer","_updateDragResizeContainer","_fullScreenEnabled","_fullScreenDisabled","resizeHandled","_getDragResizeContainer","originalViewPort","POPUP_CLASS","POPUP_WRAPPER_CLASS","POPUP_TITLE_CLASS","POPUP_BOTTOM_CLASS","ALLOWED_TOOLBAR_ITEM_ALIASES","BUTTON_CONTAINED_MODE","IS_OLD_SAFARI","HEIGHT_STRATEGIES","static","flex","Popup","_drag","showTitle","titleTemplate","onTitleRendered","enableBodyScroll","resizeEnabled","toolbarItems","showCloseButton","bottomTemplate","useDefaultToolbarButtons","useFlatToolbarButtons","autoResizeEnabled","_iosAnimation","_androidAnimation","popupWrapperClassExternal","popupWrapperClasses","_createBodyOverflowManager","_updateResizeCallbackSkipCondition","_$popupContent","_toggleContentScrollClass","$overlayContent","isFullscreen","_toggleFullScreenClass","_bodyOverflowManager","createBodyOverflowManager","isIosDevice","prevSettings","overflowX","overflowY","paddingRight","scrollBarWidth","getComputedStyle","computedBodyPaddingRight","propertyInKebabCase","symbol","_contentResizeHandler","entry","_shouldSkipContentResize","shouldOnlyReposition","_doesShowAnimationChangeDimensions","doesShowAnimationChangeDimensions","_areContentDimensionsRendered","_observeContentResize","shouldObserve","contentElement","resizeObserverSingleton","observe","unobserve","contentBox","contentBoxSize","inlineSize","_renderedDimensions","blockSize","contentRect","_renderTitle","_renderResize","_renderBottom","unshift","_$title","$title","_renderTemplateByType","_renderDrag","_executeTitleRenderAction","_hasCloseButton","_toggleAriaLabel","titleId","additionalToolbarOptions","_getTemplateByOption","integrationOptions","skipTemplates","toolbarOptions","_getToolbarName","$toolbar","$result","$titleElement","_getTitleRenderAction","titleElement","_titleRenderAction","_createTitleRenderAction","_getCloseButton","toolbar","_getCloseButtonRenderer","__","$button","_createComponent","_createToolbarItemAction","toolbarsItems","_toolbarItemClasses","currentPlatform","isShortcut","shortcut","getButtonPlace","_getToolbarItemByAlias","isLTROrder","_getLocalizationKey","itemType","_getToolbarButtonStylingMode","isFluent","_getToolbarButtonType","itemConfig","itemClass","$toolbarItem","clickAction","afterExecute","_$bottom","$bottom","insertAfter","compactMode","_toggleClasses","aliases","isNativeScrollingEnabled","_getDragTarget","topToolbar","shouldRepeatAnimation","isDimensionChange","_cacheDimensions","_resetContentHeight","_setContentHeight","$dragTarget","PopupDrag","_resizable","_resizeEndHandler","overlayContent","currentHeightStrategyClass","_chooseHeightStrategy","_getHeightCssStyles","_setHeightClasses","_heightStrategyChangeOffset","popupVerticalPaddings","isAutoWidth","_isAutoHeight","cssStyles","contentMaxHeight","contentMinHeight","popupHeightParts","_splitPopupHeight","toolbarsAndVerticalOffsetsHeight","header","footer","contentVerticalOffsets","popupVerticalOffsets","contentHeight","maxHeightValue","addOffsetToMaxHeight","addOffsetToMinHeight","currentClass","excessClasses","bottomToolbar","getVisibleHeight","getVerticalOffsets","_renderFullscreenWidthClass","refreshPosition","shouldRenderGeometry","getFocusableElements","PathTimeZoneConversion","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","getViewport","isMessageHtmlDefined","messageHtml","messageId","$message","popupToolbarItems","popupInstance","$firstButton","popupOptions","buttons","dateUtilsTs","addOffsets","offsets","newDateMs","getTime","fromSourceToAppointment","fromAppointmentToSource","fromSourceToGrid","fromGridToSource","toMs","dateUtils","dateToMilliseconds","TimeZoneCalculator","createDate","sourceDate","path","getConvertedDate","appointmentTimeZone","getOffsets","appointmentTimezone","clientOffset","getClientOffset","commonOffset","getCommonOffset","appointmentOffset","getAppointmentOffset","client","common","appointment","getConvertedDateByOffsets","isBack","resultDate","getOriginStartDateOffsetInMs","timezone","isUTCDate","getOffsetInHours","tryGetCommonOffset","tryGetAppointmentOffset","useAppointmentTimeZone","newDate","DateAdapterCore","_source","getTimezoneOffset","setTime","addTime","setMinutes","addMinutes","getMinutes","subtractMinutes","parseTimezone","timeZoneConfig","accumulator","offsetIndices","untils","offsetList","offsetIndexList","dateList","until","tzCache","Map","tryGet","timeZoneDataUtils","getTimezoneById","timeZoneInfo","set","_tzCache","_timeZones","getDisplayedTimeZones","timestamp","timeZones","getUtcOffset","formatOffset","formatId","query","sortBy","hours","floor","minutesInDecimal","tzList","getTimeZoneOffsetById","getTimeZoneDeclarationTuple","year","getTimeZoneDeclarationTupleCore","tupleResult","currentDate","currentYear","getFullYear","dateTimeStamp","createUTCDate","UTC","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getTimezoneOffsetChangeInMinutes","startDate","endDate","updatedStartDate","updatedEndDate","getDaylightOffset","getDaylightOffsetInMs","calculateTimezoneByValue","dateUtc","_getDaylightOffsetByTimezone","timeZone","isTimezoneChangeInDate","startDayDate","setHours","endDayDate","getClientTimezoneOffset","hasDSTInLocalTimeZone","getExtremeDates","isEqualLocalTimeZoneByDeclaration","timeZoneName","getDateAndMoveHourBack","dateStamp","configTuple","summerTime","winterTime","localSummerOffset","localWinterOffset","nowDate","setFullYear","utils","getTimezoneOffsetChangeInMs","getCorrectedDateByDaylightOffsets","convertedOriginalStartDate","convertedDate","startDateTimezone","diff","isSameAppointmentDates","sameDate","correctRecurrenceExceptionByTimezone","exception","exceptionByStartDate","startDateTimeZone","isBackConversion","timezoneOffset","getDiffBetweenClientTimezoneOffsets","firstDate","secondDate","createUTCDateWithLocalOffset","getMonth","getDate","getHours","getSeconds","createDateFromUTCWithLocalOffset","DateAdapter","timezoneOffsetBeforeInMin","getDateWithoutTimezoneChange","clonedDate","setDate","isEqualLocalTimeZone","Intl","DateTimeFormat","resolvedOptions","getTimeZones","dateInUTC","setOffsetsToDate","targetDate","offsetsArray","addOffsetsWithoutDST","daylightShift","correctLocalDate","getThemeType","theme","isCompact","FIXED_CONTAINER_CLASS","REDUCED_APPOINTMENT_PARTS_CLASSES","head","tail","DIRECTION_APPOINTMENT_CLASSES","horizontal","vertical","APPOINTMENT_DRAG_SOURCE_CLASS","APPOINTMENT_CONTENT_CLASSES","HEADER_CURRENT_TIME_CELL_CLASS","VIRTUAL_CELL_CLASS","TIME_PANEL_CLASS","DATE_TABLE_CLASS","DATE_TABLE_ROW_CLASS","GROUP_ROW_CLASS","GROUP_HEADER_CONTENT_CLASS","LAST_GROUP_CELL_CLASS","FIRST_GROUP_CELL_CLASS","VERTICAL_GROUP_COUNT_CLASSES","LIST_ITEM_DATA_KEY","APPOINTMENT_SETTINGS_KEY","HORIZONTAL_GROUP_ORIENTATION","VIEWS","DAY","WEEK","WORK_WEEK","MONTH","TIMELINE_DAY","TIMELINE_WEEK","TIMELINE_WORK_WEEK","TIMELINE_MONTH","AGENDA","VERTICAL_GROUP_ORIENTATION","TIMELINE_VIEWS","timelineDay","timelineWeek","timelineWorkWeek","timelineMonth","VIEW_TYPES","HOUR_IN_MS","getDatesWithoutTime","newMin","trimTime","newMax","getAppointmentTakesAllDay","appointmentAdapter","allDayPanelMode","allDay","getDurationInHours","getAppointmentKey","geometry","hasResourceValue","resourceValues","getVerticalGroupCountClass","setOptionHour","optionHour","nextDate","calculateDayDuration","startDayHour","endDayHour","getStartViewDateTimeOffset","startViewDate","validStartDayHour","timeZoneUtils","getValidCellDateForLocalTimeFormat","cellIndexShift","viewOffset","originDate","startViewDateWithoutDST","startViewDateOffset","getTotalCellCountByCompleteData","completeData","getDisplayedCellCount","displayedCellCount","isVerticalGroupingApplied","groupOrientation","getGroupCount","getHorizontalGroupCount","groupCount","isTimelineView","viewType","isDateAndTimeView","isHorizontalView","isDateInRange","dateInRange","isFirstCellInMonthWithIntervalCount","cellDate","intervalCount","getViewStartByOptions","intervalDuration","currentStartDate","calculateIsGroupedAllDayPanel","isAllDayPanelVisible","getCellDuration","hoursInterval","getTotalRowCountByCompleteData","getDisplayedRowCount","displayedRowCount","getIsGroupedAllDayPanel","hasAllDayRow","isVerticalGrouping","getKeyByGroup","getToday","indicatorTime","timeZoneCalculator","todayDate","getCalculatedFirstDayOfWeek","firstDayOfWeekOption","dateLocalization","firstDayOfWeekIndex","isHorizontalGroupingApplied","isGroupingByDate","groupByDate","isHorizontalGrouping","getSkippedHoursInRange","viewDataProvider","isAllDay","endDateWithStartHour","getViewOptions","dayHours","isSkippedDate","startDateHours","endDateHours","isDataOnWeekend","day","getDay","getWeekendsCount","days","getGroupPanelData","columnCountPerGroup","baseColSpan","repeatCount","groupPanelItems","resourceName","_loop","iterator","color","extendGroupItemsForGroupingByDate","groupRenderItems","currentGroupItems","groupsRow","rowIndex","columnIndex","isFirstGroupCell","isLastGroupCell","splitNumber","splitValue","validStartViewDate","setMonth","addToStyles","nextStyle","getValidStartDate","firstDayOfWeek","getFirstWeekDate","ExpressionUtils","getField","dataAccessors","obj","getter","setField","setter","getAppointmentTakesSeveralDays","adapter","_convertRecurrenceException","exceptionString","getConvertedToTimeZone","exceptionDate","dateSerialization","deserializeDate","convertedStartDate","convertedExceptionDate","serializeDate","replaceWrongEndDate","rawAppointment","appointmentDuration","_isEndDateWrong","calculatedEndDate","setToDayEnd","sortAppointmentsByStartDate","appointments","sort","settings","ALL_WEEKDAYS","Weekday","weekday","fromStr","nth","equals","other","getJsWeekday","isPresent","isNumber","isWeekdayStr","rang","repeat","times","array","padStart","targetLength","padString","pymod","divmod","div","mod","notEmpty","datetime","m","MONTH_DAYS","ONE_DAY","ORDINAL_BASE","PY_WEEKDAYS","isLeapYear","isValidDate","toOrdinal","date1","date2","differencems","daysBetween","fromOrdinal","ordinal","getMonthDays","month","getWeekday","getUTCDay","monthRange","combine","getMilliseconds","cloneDates","dates","clones","timeToUntilString","utc","getUTCSeconds","untilStringToDate","bits","dateTZtoISO8601","toLocaleString","IterResult","minDate","maxDate","_result","total","inc","before","after","dt","accept","tooEarly","tooLate","getValue","extendStatics","setPrototypeOf","__proto__","__extends","TypeError","__assign","__spreadArray","pack","ar","l","SuppressedError","CallbackIterResult","_super","dayNames","monthNames","tokens","SKIP","numberAsText","the","third","for","monday","tuesday","wednesday","thursday","friday","saturday","sunday","january","february","march","april","may","june","july","august","september","october","november","december","comma","defaultGetText","defaultDateFormatter","ToText","rrule","gettext","language","dateFormatter","ENGLISH","origOptions","bymonthday","bynmonthday","byweekday","allWeeks","someWeeks","isWeekdays","isEveryDay","sortWeekDays","isFullyConvertible","freq","IMPLEMENTED","count","RRule","FREQUENCIES","plural","HOURLY","interval","MINUTELY","DAILY","bymonth","_bymonth","_bymonthday","_byweekday","byhour","_byhour","WEEKLY","MONTHLY","YEARLY","byyearday","list","byweekno","weekdaytext","monthtext","npos","wday","finalDelim","delim","realCallback","delimiter","finalDelimiter","delimJoin","Frequency","Parser","nextSymbol","isDone","best","bestSymbol","name_1","acceptNumber","expect","parseText","ttr","AT","F","MO","TU","WE","TH","FR","ON","toUpperCase","wkd","decodeWKD","decodeNTH","MDAYs","decodeM","S","freqIsDailyOrGreater","fromText","Time","hour","minute","millisecond","DateTime","fromDate","getYear","addYears","years","addMonths","months","yearDiv","monthMod","addWeekly","wkst","fixDay","addDaily","addHours","filtered","dayDiv","hourMod","minutes","byminute","hourDiv","minuteMod","seconds","bysecond","minuteDiv","secondMod","daysinmonth","SECONDLY","initializeOptions","invalid","keys_1","defaultKeys","parseOptions","DEFAULT_OPTIONS","byeaster","dtstart","setMilliseconds","bysetpos","bynweekday","parsedOptions","parseString","rfcString","parseLine","parseDtstart","line","dtstartWithZone","tzid","parseRrule","Days","num","parseIndividualNumber","parseNumber","optionKey","parts","SyntaxError","wdaypart","parseWeekday","DateWithZone","RangeError","datestr","isUTC","rezonedDate","localTimeZone","dateInLocalTZ","tzOffset","dateInTimeZone","optionsToString","outValue","buildDtstart","strValues","ruleString","argsMatch","Cache","between","_cacheAdd","_value","_cacheGet","cached","argsKeys","findCacheDiff","cachedObject","iterResult","M365MASK","M366MASK","M28","M29","M30","M31","MDAY366MASK","MDAY365MASK","NM28","NM29","NM30","NM31","NMDAY366MASK","NMDAY365MASK","M366RANGE","M365RANGE","WDAYMASK","wdaymask","rebuildYear","firstwkst","wyearlen","firstyday","yearlen","nextyearlen","yearordinal","yearweekday","mmask","mdaymask","nmdaymask","mrange","baseYearMasks","wnomask","no1wkst","numweeks","lnumweeks","lyearweekday","lno1wkst","lyearlen","weekst","Iterinfo","rebuild","lastyear","yearinfo","lastmonth","monthinfo","nwdaymask","ranges","rebuildMonth","eastermask","g","yearStart","easter","ydayset","mdayset","wdayset","ddayset","htimeset","mtimeset","stimeset","getdayset","gettimeset","buildPoslist","timeset","ii","dayset","poslist","daypos","timepos","tmp","iter","emitResult","counterDate","millisecondModulo","buildTimeset","makeTimeset","removeFilteredDays","rezoneIfNeeded","currentDay","isFiltered","dayCounter","SA","SU","noCache","fromString","_iter","toText","isFullyConvertibleToText","unfold","forceset","compatible","parseInput","rrulevals","rdatevals","exrulevals","exdatevals","parsedDtstart","lines","splitIntoLines","sep","splits","extractName","parms","breakDownLine","rdateTzid","parseRDate","rrulestr","rset_1","RRuleSet","groomRruleOptions","rdate","exrule","exdate","buildRule","rdateval","parm","validateDateParm","createGetterSetter","fieldName","_rrule","field_1","_rdate","_exrule","_exdate","_exdateHash","evalExdate","zonedDate","iterSet","_addRule","_addDate","rrules","exrules","rdates","exdates","_dtstart","rdatesToString","rrs","collection","param","dateString","ruleNames","freqNames","loggedWarnings","MS_IN_HOUR","RRULE_BROKEN_TIMEZONES","recurrence","getRecurrenceProcessor","RecurrenceProcessor","rRule","rRuleSet","RecurrenceValidator","generateDates","recurrenceRule","evalRecurrenceRule","rruleIntervalParams","_createRruleIntervalParams","_initializeRRule","startIntervalDate","minViewDate","maxViewDate","minViewTime","_convertRruleResult","appointmentTimezoneOffset","clientOffsets_startDate","clientOffsets_minViewDate","clientOffsets_maxViewDate","startDateDSTDifferenceMs","startIntervalDateDSTShift","rruleDate","convertedBackDate","_getLocalMachineOffset","convertedDateDSTShift","switchToSummerTime","resultDateDSTShift","machineTimezoneOffset","machineTimezoneName","getMachineTimezoneName","isTimezoneOffsetInBrokenRange","isTimezoneNameInBrokenNames","hasRecurrence","_parseRecurrenceRule","validateRRule","isValidRecurrenceRule","daysFromByDayRule","byday","getAsciiStringByDate","offsetDate","getRecurrenceString","object","_parseExceptionToRawArray","getDateByAsciiString","exceptionText","isUtc","_createDateTuple","_getTimeZoneOffset","startDateUtc","ruleOptions","_createRRule","getPostProcessedException","utcDate","ruleObject","ruleParts","ruleName","ruleValue","parseResult","_brokenRuleNameExists","_wrongCountRule","_wrongIntervalRule","_wrongDayOfWeek","_wrongByMonthDayRule","_wrongByMonth","_wrongUntilRule","_logBrokenRule","wrongUntil","wrongCount","wrongByMonthDay","byMonthDay","wrongByMonth","byMonth","wrongInterval","byDay","daysByRule","brokenDaysExist","brokenRuleExists","PROPERTY_NAMES","AppointmentAdapter","description","endDateTimeZone","recurrenceException","isRecurrent","calculateStartDate","pathTimeZoneConversion","calculateDate","calculateEndDate","deepExtendArraySafe","pathTimeZone","clonedAdapter","createAppointmentAdapter","UTC_FULL_DATE_FORMAT","createRecurrenceException","formatWeekday","getDayNames","formatWeekdayAndDay","agendaUtils","calculateStartViewDate","validCurrentDate","dayUtils","firstViewDate","weekUtils","getTimePanelCellText","cellDuration","validTimeDate","viewStart","calculateViewStartDate","startDateOption","validFirstDayOfWeek","workWeekUtils","distance","MONDAY_INDEX","monthUtils","getCellText","getMonthNames","calculateCellIndex","columnCount","getFirstMonthDate","firstMonthDate","timelineWeekUtils","getDateForHeaderText","cellCountInDay","timelineMonthUtils","viewsUtils","getCurrentView","currentView","views","currentViewProps","view","renderUtils","addWidthToStyle","addHeightToStyle","getCellSizeHorizontalClass","crossScrollingEnabled","isAllDayCell","themeUtils","DataExpressionMixin","_dataExpressionDefaultOptions","valueExpr","_initDataExpressions","_compileValueGetter","_initDynamicTemplates","_initDataSource","_itemsToDataSource","_dataSource","ArrayStore","pageSize","_displayGetterExpr","_valueGetter","_valueGetterExpr","_loadValue","_unwrappedValue","_loadSingle","_isValueEquals","_loadValueDeferred","_rejectValueLoading","shouldSkipCallback","_getCurrentValue","_getItemKey","variableWrapper","unwrap","value1","value2","dataSourceKey","_compareValues","_compareByCompositeKey","_compareByKey","isObjectType","unwrapObservable","valueKey1","valueKey2","toComparable","_setCollectionWidgetItemTemplate","_setCollectionWidgetOption","_getCollectionKeyExpr","_dataExpressionOptionChanged","INVALID_MESSAGE","ValidationMessage","templatesRenderAsynchronously","_renderInnerHtml","positionSide","contentId","updateMaxWidth","_ensureMessageNotEmpty","_updatePositionByTarget","_toggleModeClass","_updateContentId","_textMarkup","_getTextMarkup","shouldShowMessage","_toggleVisibilityClasses","validationErrorMessage","encodeHtml","targetWidth","_getPositionsArray","rtlSide","componentOffset","positions","INVALID_MESSAGE_AUTO","VALIDATION_TARGET","VALIDATION_STATUS_INVALID","ALLOWED_STYLING_MODES","VALIDATION_MESSAGE_KEYS_MAP","validationMessageMode","validationMessagePosition","validationMessageOffset","validationBoundary","Editor","showValidationMessageTimeout","validationRequest","Callbacks","_initOptions","_initialValue","onValueChanged","readOnly","validationTooltipOptions","_showValidationMessage","isDirty","_createValueChangeAction","_valueChangeAction","_suppressValueChangeAction","_valueChangeActionSuppressed","_resumeValueChangeAction","_toggleReadOnlyState","_setSubmitElementName","_renderValidationState","_raiseValueChangeAction","_valueChangeArgs","_valueChangeEventInstance","_saveValueChangeEvent","isValidationMessageShownOnFocus","_canValueBeChangedByClick","$validationMessageWrapper","_validationMessage","_getStylingModePrefix","_renderStylingMode","prefix","allowedStylingClasses","stylingModeClass","defaultOptionValue","platformOptionValue","_convertRulesToOptions","_getValidationErrors","_disposeValidationMessage","_$validationMessage","_toggleValidationClasses","validationMessageContentId","_getValidationMessageTarget","_getValidationMessagePosition","_toggleBackspaceHandler","isReadOnly","$eventTarget","EventsEngine","$submitElement","_getSubmitElement","_setValidationMessageOption","_hasActiveElement","editor","_resetToInitialValue","clear","isEditor","RADIO_BUTTON_ICON_CLASS","$radio","$radioContainer","prepend","RadioGroup","tablet","layout","_getItemValue","_$submitElement","_renderSubmitElement","_renderRadios","_renderLayout","newValue","_getSelectedItemKeys","_setSelection","_setSubmitValue","_updateItemsSize","_areRadiosCreated","$radios","RadioCollection","onInitialized","_radios","scrollingEnabled","submitValue","BUTTON_GROUP_CLASS","BUTTON_GROUP_WRAPPER_CLASS","BUTTON_GROUP_ITEM_CLASS","BUTTON_GROUP_FIRST_ITEM_CLASS","BUTTON_GROUP_LAST_ITEM_CLASS","BUTTON_GROUP_ITEM_HAS_WIDTH","BUTTON_GROUP_STYLING_MODE_CLASS","contained","outlined","ButtonCollection","_prepareItemStyles","_getBasicButtonOptions","_hasCustomTemplate","ButtonGroup","buttonTemplate","_createItemClickAction","_itemClickAction","_renderButtons","$buttons","_buttonsCollection","navigator","getNavigator","LOADINDICATOR_SEGMENT_CLASS","LoadIndicator","indicatorSrc","_animatingSegmentCount","_animatingSegmentInner","themeName","userAgent","viaImage","isGeneric","_renderIndicatorContent","_renderMarkup","_renderMarkupForImage","_renderMarkupForAnimation","animatingSegmentInner","_$indicator","$segment","_updateContentSizeForAnimation","minDimension","fontSize","_removeMarkupForAnimation","_removeMarkupForImage","TextEditorButton","$placeMarker","_addPlaceMarker","_addToContainer","_attachEvents","_create","_isRendered","_shouldRender","pointerDown","pointer","ClearButton","_isClearButtonVisible","editorName","pointerType","_clearValueHandler","_legacyRender","$editor","isVisible","TEXTEDITOR_LABEL_CLASS","TEXTEDITOR_WITH_LABEL_CLASS","TEXTEDITOR_LABEL_OUTSIDE_CLASS","TEXTEDITOR_WITH_FLOATING_LABEL_CLASS","TEXTEDITOR_WITH_BEFORE_BUTTONS_CLASS","CUSTOM_BUTTON_HOVERED_CLASS","CustomButton","_prepareIntegrationOptions","isUpdated","checkNamesUniqueness","existingNames","newName","TextEditorButtonCollection","defaultButtonsInfo","_compileButtonInfo","names","buttonInfo","isStringButton","isDefaultButton","predefinedButtonsInfo","isPredefinedButtonName","defaultButtonInfo","Ctor","_createButton","buttonsInfo","targetLocation","$buttonsContainer","clean","getButton","buttonName","renderAfterButtons","renderBeforeButtons","updateButtons","TEXTEDITOR_CLASS","TEXTEDITOR_INPUT_CLASS","TEXTEDITOR_INPUT_SELECTOR","TEXTEDITOR_PLACEHOLDER_CLASS","TEXTEDITOR_VALIDATION_PENDING_CLASS","EVENTS_LIST","CONTROL_KEYS","TextEditorLabelCreator","_id","_toggleMarkupVisibility","_$before","_$labelSpan","_$label","_$after","_updateMark","_updateText","_updateBeforeWidth","_updateMaxWidth","_updateEditorBeforeButtonsClass","_updateEditorLabelClass","hoverStartEventName","hoverStart","activeEventName","_isOutsideMode","getSelection","onClickHandler","onHoverHandler","onActiveHandler","labelClass","beforeButtonsClass","containsButtonsBefore","mark","beforeWidth","getBeforeWidth","_updateLabelTransform","labelTranslateX","getContainerWidth","getId","updateMode","updateText","updateMark","updateContainsButtonsBefore","updateBeforeWidth","checkButtonsOptionType","TextEditorBase","_buttonCollection","_getDefaultButtons","_$beforeButtonsContainer","_$afterButtonsContainer","_labelContainerElement","spellcheck","showClearButton","valueChangeEvent","placeholder","inputAttr","onInput","onCut","onCopy","onPaste","onEnterKey","displayValueFormatter","editorStylingMode","showValidationMark","labelMode","labelMark","_input","_inputWrapper","_buttonsContainer","_isControlKey","_updateButtonsStyling","_renderInput","_renderButtonContainers","_renderInputType","_renderPlaceholder","_renderProps","_renderValue","_renderLabel","_refreshValueChangeEvent","_refreshEvents","_renderEnterKeyAction","_renderEmptinessEvent","_$textEditorContainer","_$textEditorInputContainer","_createInput","_getInputContainer","_renderPendingIndicator","$inputContainer","$indicatorElement","_pendingIndicator","_disposePendingIndicator","_showValidMark","_toggleValidMark","_getButtonsContainer","_cleanButtonContainers","_unobserveLabelContainerResize","_applyInputAttributes","inputAttrName","customAttributes","inputAttributes","_getDefaultAttributes","_setInputMinHeight","_getPlaceholderAttr","mac","autocomplete","_updateButtons","buttonInstance","_renderInputValue","_renderDisplayText","_toggleEmptinessEventHandler","_isValueValid","validity","valid","_toggleEmptiness","_togglePlaceholder","_toggleSpellcheckState","_toggleTabIndex","_readOnlyPropValue","_getLabelContainer","_getLabelContainerWidth","_getLabelBeforeWidth","buttonsBeforeWidth","_updateLabelWidth","_label","_getFieldElement","_setFieldAria","ariaLabel","labelId","labelledby","labelConfig","_renderPlaceholderMarkup","_attachPlaceholderEvents","_$placeholder","placeholderAttributes","startEvent","_placeholder","_clearValue","_renderEvents","_keyPressHandler","_keyDownHandler","isCtrlEnter","ctrlKey","isNewValue","_getValueChangeEventOptionName","_renderValueChangeEvent","keyPressEvent","_renderValueEventName","keyDownEvent","_valueChangeEventHandler","_cleanValueChangeEvent","valueChangeNamespace","textChangeNamespace","_isInput","_preventNestedFocusEvent","shouldPrevent","_isNestedTarget","relatedTarget","_focusClassTarget","formattedValue","_enterKeyAction","_enterKeyHandlerUp","_updateValue","_setInputType","charAt","EMPTY_CHAR","BaseMaskRule","next","_next","_prepareHandlingArgs","handlingProperty","isAccepted","caret","adjustedCaret","isForwardDirection","char","_adjustedForward","_adjustedBackward","rawValue","EmptyMaskRule","MaskRule","maskChar","rest","_tryAcceptChar","_accepted","_isAllowed","acceptedChar","fullText","_isAccepted","_isValid","allowedChars","StubMaskRule","hasValueProperty","nextArgs","MASK_EVENT_NAMESPACE","DELETE_INPUT_TYPES","HISTORY_INPUT_TYPES","EVENT_NAMES","getEmptyString","MaskStrategy","_editorOption","_editorInput","_editorCaret","newCaret","_caret","_attachChangeEventHandler","_changeHandler","_beforeInputHandler","_previousText","_prevCaret","_inputHandler","inputType","_handleHistoryInputEvent","_handleBackwardDeleteInputEvent","currentCaret","_clearSelectedText","_autoFillHandler","_handleInsertTextInputEvent","_updateEditorMask","setForwardDirection","_adjustCaret","setBackwardDirection","_isAutoFill","textLength","processedCharsCount","_handleChain","_displayMask","correction","_showMaskPlaceholder","_maskRulesChain","_caretTimeout","_delHandler","_maskKeyHandler","_hasSelection","_handleKey","_cutHandler","selectedText","getClipboardText","_dropHandler","_clearDragTimer","_dragTimer","_convertToValue","_pasteHandler","pastedText","restText","accepted","inputVal","_inputHandlerTimer","_validateMask","webkit","_clearTimers","getHandler","handlerName","attachEvents","detachEvents","isFocusingOnCaretChange","selectionStart","selectionEnd","getCaret","getRootNode","host","setCaret","caretUtils","TEXTEDITOR_MASKED_CLASS","FORWARD_DIRECTION","buildInMaskRules","L","isLiteralChar","isSpaceChar","C","A","isNumericChar","code","TextEditorMask","mask","maskRules","maskInvalidMessage","useMaskedValue","showMaskMode","keyHandlerMap","del","_maskStrategy","parentHandler","_$hiddenElement","_initMaskStrategy","_renderHiddenElement","_attachMouseWheelEventHandlers","_onMouseWheel","wheelEventName","mouseWheelAction","_useMaskBehavior","_attachDropEventHandler","_renderMask","_removeHiddenElement","_parseMask","_renderMaskedValue","inputValue","_changedValue","changeEvent","createEvent","_maskRules","_parseMaskRule","currentMaskChar","isEscapedChar","_getMaskRule","ruleConfig","rulePattern","_normalizeChainArguments","chainArgs","_isMaskedValueMode","_replaceSelectedText","selection","_shouldShowMask","submitElementValue","_getPreparedValue","_isControlKeyFired","handledCount","_updateMaskInfo","_replaceMaskCharWithEmpty","_textValue","keyHandler","_handleSelection","previousText","raiseInputEvent","handled","_direction","_handleKeyChain","_moveCaret","emptyChars","chars","_tryMoveCaretBackward","caretStart","maskRuleIndex","_typingDirection","editorSpecific","_updateHiddenElement","_updateMaskOption","_processEmptyMask","ignoreKeys","SEARCHBOX_CLASS","TextBox","TextEditor","_showClearButton","maxLength","_renderSearchMode","_toggleMaxLengthProp","_getMaxLength","_renderSearchIcon","_$searchIcon","$searchIcon","prependTo","labelBeforeWidth","_onKeyDownCutOffHandler","actualMaxLength","_cutOffExtraChar","_onChangeCutOffHandler","textInput","DropDownButton","currentTemplate","_shouldCallOpenHandler","_openHandler","_getOptions","_addTemplate","_isSameTemplate","getElementWidth","getSizeValue","DROP_DOWN_EDITOR_CLASS","DROP_DOWN_EDITOR_INPUT_WRAPPER","DROP_DOWN_EDITOR_OVERLAY","isIOs","DropDownEditor","tab","_popup","$focusableElement","_getLastPopupElement","_getFirstPopupElement","close","altKey","_validatedOpening","onOpened","onClosed","opened","acceptCustomValue","applyValueMode","dropDownButtonTemplate","fieldTemplate","openOnFieldClick","showDropDownButton","dropDownOptions","popupPosition","_getDefaultPopupPosition","onPopupInitialized","applyButtonText","cancelButtonText","buttonsLocation","useHiddenSubmitElement","_initVisibilityActions","_initPopupInitializedAction","_updatePopupPosition","_openAction","_closeAction","_popupInitializedAction","_getAriaRole","_renderOpenHandler","_attachFocusOutHandler","_renderOpenedState","_createPopup","_renderTemplateWrapper","_wrapInput","_setDefaultAria","_$container","_getAriaHasPopup","_getAriaAutocomplete","haspopup","_isEditable","_getFieldTemplate","_renderField","_renderTemplatedField","_fieldRenderData","_$templateWrapper","$templateWrapper","currentRenderContext","Symbol","_activeRenderContext","_integrateInput","_refreshEmptinessEvent","dropDownButton","FunctionTemplate","$icon","$inputWrapper","_getInputClickHandler","_openOnFieldClickAction","_detachFocusOutEvents","newTarget","_isTargetOutOfComponent","popupWrapper","_$popup","_executeOpenAction","_focusInput","_toggleOpenState","_resetCaretPosition","ignoreEditable","inputElement","caretPosition","_getControlsAria","_popupContentId","_setPopupOption","arias","expanded","controls","_renderPopup","_renderPopupContent","popupConfig","_popupConfig","_popupShowingHandler","shown","_popupShownHandler","hiding","_popupHidingHandler","_popupHiddenHandler","contentReady","_contentReadyHandler","_attachPopupKeyHandler","_setPopupContentId","_popupKeyHandler","_popupTabHandler","_popupEscHandler","moveBackward","$popupContent","_getPopupInitializedHandler","_ignoreFunctionValueDeprecation","_closeOutsideDropDownHandler","_getPopupToolbarItems","_popupPositionedHandler","_wrapperClassExternal","_popupInitializedHandler","popup","_updatePopupWidth","$popupOverlayContent","isOverlayFlipped","shouldIndentForLabel","_getValidationMessagePositionSide","myTop","animationPosition","popupTop","$dropDownButton","isInputClicked","isDropDownButtonClicked","_popupToolbarItemsConfig","buttonsConfig","_applyButtonHandler","_cancelButtonHandler","_applyButtonsLocation","resultConfig","_popupOptionChanged","optionsKeys","open","SWIPE_START_EVENT","SWIPE_EVENT","SWIPE_END_EVENT","STRATEGIES","defaultItemSizeFunc","getBounds","_maxLeftOffset","_maxRightOffset","calcOffsetRatio","_itemSizeFunc","isFastSwipe","endEventData","FAST_SWIPE_SPEED_LIMIT","_tickData","_maxTopOffset","_maxBottomOffset","SwipeEmitter","TICK_INTERVAL","elastic","_getStrategy","_defaultItemSizeFunc","itemSizeFunc","moveEventData","_fitOffset","offsetRatio","isFast","startOffset","_calcTargetOffset","DX_SWIPEABLE","ACTION_TO_EVENT_MAP","onStart","swipeEventStart","onUpdated","swipeEventSwipe","onEnd","swipeEventEnd","onCancel","Swipeable","immediateTimeout","_createEventData","actionName","_eventData","calendar","dateOption","_dateOption","dateValue","_dateValue","skipNavigate","_skipNavigate","updateAriaSelected","_updateAriaSelected","_updateAriaId","processValueChanged","_convertToDate","_updateViewsValue","_currentDateChanged","_initCurrentDate","_isDateDisabled","isLessThanMin","isBiggerThanMax","_view","isDateDisabled","_getLowestDateInArray","_isMaxZoomLevel","_updateViewsOption","_updateCurrentDate","_shouldHandleWeekNumberClick","selectWeekOnClick","CalendarSelectionStrategy","onWeekNumberClick","_weekNumberClickHandler","selectValue","selectedValue","alreadySelectedIndex","findIndex","toDateString","getDefaultCurrentDate","restoreValue","rowDates","selectedDates","onCaptionClick","_captionClickAction","_renderCaption","_prevButton","$prevButton","_nextButton","$nextButton","_caption","captionText","$caption","toggleButton","buttonPrefix","_getValue","_getDaysInRange","onCellHover","_cellHoverHandler","_valueSelected","_getRange","_allowChangeSelectionOrder","_currentSelection","viewsCount","isAdditionalViewDate","_isAdditionalViewDate","firstDateInViews","lastDateInViews","getLastMonthDate","rangeStartDate","rangeEndDate","getDatesOfInterval","isMaxZoomLevel","CALENDAR_CELL_CLASS","CALENDAR_WEEK_NUMBER_CELL_CLASS","CALENDAR_EMPTY_CELL_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","CALENDAR_DATE_VALUE_KEY","BaseView","_getViewName","cellTemplate","disabledDates","onCellClick","rowCount","colCount","allowValueSelection","_todayDate","_renderImpl","_createTable","_createDisabledDatesHandler","_renderBody","_renderContouredDate","_renderRange","_$table","localizedWidgetName","rowData","_getFirstCellData","prevCellDate","row","_createRow","colIndex","_renderCell","_renderWeekNumberCell","_createCell","cellIndex","cell","$cell","_getClassNameByDate","coreDateUtils","getShortDateFormat","getCellAriaLabel","fixTimezoneGap","_prepareCellTemplateData","_getCellText","_getNextCellData","_isTodayCell","_isDateOutOfRange","_isOtherView","_isStartDayOfMonth","_isEndDayOfMonth","isDateCell","_createCellClickAction","_cellClickAction","_createCellHoverAction","_cellHoverAction","_createWeekNumberCellClickAction","$row","firstDateInRow","lastDateInRow","_weekNumberCellClickAction","_disabledDatesHandler","_getDefaultDisabledDatesHandler","dateParts","contouredDate","$oldContouredCell","_getContouredCell","$newContouredCell","_getCellByDate","_updateSelectedClass","_isRangeMode","_isMonthView","_$selectedCells","_f","_g","_h","_$rangeCells","_$hoveredRangeCells","_$rangeStartHoverCell","_$rangeEndHoverCell","_$rangeStartDateCell","_$rangeEndDateCell","_renderHoveredRange","hoveredRange","_getFirstAvailableDate","getViewFirstCellDate","isBoundary","_getCurrentDateFormat","_renderHeader","$headerRow","$header","_renderHeaderCell","_renderWeekHeaderCell","full","fullCaption","abbreviated","abbrCaption","_getDayCaption","scope","abbr","$weekNumberHeaderCell","showWeekNumbers","weekNumber","_getWeekNumber","weekNumberRule","getWeekNumber","getNavigatorCaption","today","dayIndex","firstDay","firstMonthDayOffset","daysInWeek","sameMonthAndYear","foundDate","sameYear","decade","sameDecade","getFirstYearInDecade","createDateWithFullYear","firstYearInDecade","_isValueOnCurrentView","century","minDecade","maxDecade","sameCentury","getFirstDecadeInCentury","firstDecadeInCentury","CALENDAR_CLASS","CALENDAR_VIEW_CLASS","ANIMATION_DURATION_SHOW_VIEW","CALENDAR_DXHOVEREND_EVENT_NAME","hoverEndEventName","LEVEL_COMPARE_MAP","ZOOM_LEVEL","SELECTION_STRATEGIES","SingleSelection","CalendarSingleSelectionStrategy","MultipleSelection","CalendarMultipleSelectionStrategy","RangeSelection","CalendarRangeSelectionStrategy","Calendar","dateSerializationFormat","zoomLevel","maxZoomLevel","minZoomLevel","showTodayButton","onContouredChanged","skipFocusCheck","_waitRenderView","_moveCurrentDateByOffset","_getRtlCorrection","_navigateUp","_navigateDown","sameView","_moveToClosestAvailableDate","getViewLastCellDate","_updateTimeComponent","_getSerializationFormat","getDateSerializationFormat","cellElement","_isSingleMode","serializationFormat","serializedValue","_shiftDate","baseDate","_getMaxDate","_getMinDate","isDateForwardInNeighborView","_areDatesInNeighborView","isDateForwardInRange","dateForward","_isNextViewDisabled","_isPrevViewDisabled","_navigator","_areDatesInSameView","isDateForwardInStartView","isDateBackwardInStartView","isCurrentDateAvailable","_isDateNotAvailable","isDateForwardAvailable","isDateBackwardAvailable","dateBackward","_initSelectionStrategy","_correctZoomLevel","strategyName","_getSelectionStrategyName","_refreshSelectionStrategy","_getNormalizedDate","normalizeDate","_getDate","_onContouredChanged","_$viewsWrapper","normalizedDate","_getViewsOffset","_isOtherViewCellClicked","_suppressNavigation","_additionalView","_refreshViews","_setViewContoured","_renderNavigator","_navigate","_getActiveView","_rangeMin","_rangeMax","zoomCorrection","_getMonthsOffset","_alreadyViewRender","_getDateByOffset","_waitRenderViewTimeout","getDifferenceInMonth","lastDay","_renderViews","_renderSwipeable","_renderFooter","_updateNavigatorLabels","_renderSpecificView","beforeDate","_beforeView","_isViewAvailable","afterDate","_afterView","_translateViews","specificView","Views","$view","_viewConfig","_injectComponent","_cellClickHandler","getViewMinBoundaryDate","getViewMaxBoundaryDate","_moveViewElement","coefficient","_getViewPosition","rtlCorrection","nextView","getViewDown","setSeconds","newCurrentDate","_animateShowView","Navigator","_navigatorConfig","_getViewsCaption","_updateButtonsVisibility","_navigatorClickHandler","additionalViewActive","getViewUp","_isMinZoomLevel","_swipeable","_swipeStartHandler","_swipeUpdateHandler","_swipeEndHandler","_viewWidth","_toggleGestureCoverCursor","_getRequiredView","cursor","isRtl","_updateNavigatorCaption","moveOffset","shouldDoubleOffset","_isDateInInvalidRange","_animateWrapper","_viewWidthValue","additionalView","isMultiView","caption","additionalViewCaption","$todayButton","_toTodayView","_$footer","_popAnimationView","newView","endPosition","_preventViewChangeAnimation","_wrapperAnimationEndHandler","_rearrangeViews","_resetLocation","viewToCreateKey","viewToRemoveKey","viewBeforeCreateKey","viewAfterRemoveKey","destinationDate","dateByOffset","_clearViewWidthCache","_disposeViews","_shouldSkipFocusEvent","_setViewsMinOption","_restoreViewsMinMaxOptions","_setViewsMaxOption","captionButtonText","localizedPrevButtonLabel","localizedCaptionLabel","localizedNextButtonLabel","ariaId","$newCell","_suppressingNavigation","getContouredDate","dateBox","widgetOption","_widget","_renderWidget","_createWidget","_getWidgetContainer","_getWidgetName","widgetOptions","_getWidgetOptions","getDefaultOptions","getDisplayFormat","supportedKeys","getKeyboardListener","customizeButtons","getParsedText","renderInputMinMax","renderOpenedState","_getPopup","renderPopupContent","_preventFocusOnPopup","popupShowingHandler","popupHiddenHandler","dateBoxValue","useCurrentDateByDefault","getDefaultDate","textChangedHandler","renderValue","isAdaptivityChanged","CalendarStrategy","DateBoxStrategy","todayButtonText","homeEndHandler","viewValue","_getContouredValue","lastActionElement","_lastActionElement","shouldCloseDropDown","_closeDropDownByEnter","displayFormat","_valueChangedHandler","actionValue","_getTodayButtonConfig","_isCalendarVisible","calendarOptions","isEmptyObject","sameHoursAndMinutes","BOX_ITEM_DATA_KEY","MINSIZE_MAP","col","MAXSIZE_MAP","FLEX_JUSTIFY_CONTENT_MAP","FLEX_ALIGN_ITEMS_MAP","stretch","FLEX_DIRECTION_MAP","setFlexProp","styleProp","cssName","dasherize","styleExpr","LayoutStrategy","_option","renderBox","display","stylePropPrefix","renderAlign","justifyContent","_normalizedAlign","renderCrossAlign","alignItems","_normalizedCrossAlign","crossAlign","renderItems","flexPropPrefix","maxSize","minSize","baseSize","ratio","shrink","flexBasis","flexDirection","Box","onItemStateChanged","_queue","_initLayout","_initBoxQueue","_layout","_queueIsNotEmpty","_pushItemToQueue","_shiftItemFromQueue","_renderAlign","_onItemStateChanged","$itemNode","boxConfig","box","oldState","fireItemStateChangedAction","DATE_COMPONENTS","TIME_COMPONENTS","SUPPORTED_FORMATS","ONE_MINUTE","ONE_YEAR","MIN_DATEVIEW_DEFAULT_DATE","MAX_DATEVIEW_DEFAULT_DATE","FORMATS_INFO","getStandardPattern","components","standardPattern","FORMATS_MAP","SUBMIT_FORMATS_MAP","toStandardDateFormat","fromStandardDateFormat","dateParser","getMaxMonthDay","mergeDates","formatInfo","componentInfo","DATE_COMPONENTS_INFO","getLongestCaptionIndex","captionArray","longestIndex","longestCaptionLength","formatUsesMonthName","formatUsesDayName","getLongestDate","stringFormat","formatType","getStringFormat","longestDate","normalizeTime","formatter","formatDate","startValue","endValue","milliseconds","DBLCLICK_EVENT_NAME","NAMESPACED_CLICK_EVENT","dblClick","_handlerCount","_forgetLastClick","_firstClickTarget","_lastClickTimeStamp","_clickHandler","timeStamp","timeBetweenClicks","closestCommonParent","_lastClickClearTimeout","NUMBER_BOX","POINTERUP_EVENT_NAME","POINTERCANCEL_EVENT_NAME","_spinIcon","_spinDownHandler","_spinChangeHandler","_feedBackDeferred","setInterval","clearInterval","SpinButtons","$spinContainer","$spinContainerChildren","pointerDownAction","_spinButtonsPointerDownHandler","SpinButton","_spinUpChangeHandler","_spinDownChangeHandler","$spinUp","$spinDown","_isTouchFriendly","isTouchFriendly","$spinButtons","spinUp","spinDown","math","FIREFOX_CONTROL_KEYS","NumberBoxBase","showSpinButtons","useLargeSpinButtons","invalidValueMessage","_isSupportInputMode","chrome","generic","inputmode","_validateValue","applyServerDecimalSeparator","getChar","_keyPressed","_spinValueChange","_forceValueRender","valueText","valuenow","valuetext","_applyDisplayValueFormatter","valuemin","valuemax","_normalizeInputValue","_correctRounding","regex","isFloatValue","isFloatStep","valueAccuracy","stepAccuracy","accuracy","_round","precision","multiplier","forceValueChangeEvent","_forceRefreshInputValue","_normalizeText","_parseValue","valueHasDigits","_applyValueBoundaries","parsedValue","isValueIncomplete","_isValueIncomplete","isValueCorrect","_isValueInRange","_replaceCommaWithPoint","_inputIsInvalid","isNumberMode","validityState","badInput","_isNumber","isValueValid","getRealSeparatorIndex","quoteBalance","separatorCount","occurrence","getNthOccurrence","splitByIndex","getCaretBoundaries","signParts","getSign","prefixStubLength","postfixStubLength","_getDigitCountBeforeIndex","decimalSeparator","getDecimalSeparator","regExp","escapeRegExp","_reverseText","_getDigitPositionByIndex","digitIndex","counter","getCaretWithOffset","getCaretInBoundaries","boundaries","NUMBER_FORMATTER_NAMESPACE","MINUS_KEY","NumberBoxMask","useMaskBehavior","_isDeleteKey","minus","_revertSign","_removeHandler","backspace","_arrowHandler","_moveCaretToBoundaryEventHandler","_updateFormattedValue","_getTextSeparatorIndex","realSeparatorOccurrenceIndex","clearCaretTimeout","_getInputVal","decimalSeparatorIndex","shouldHandleEvent","_focusOutOccurs","_hasValueBeenChanged","_getFormatPattern","_format","_updateParsedValue","_adjustParsedValue","_setTextByParsedValue","_parsedValue","nextCaret","isCaretInBoundaries","_moveCaretToBoundary","_shouldMoveCaret","isDecimalSeparatorNext","_lastKey","convertDigits","_lastKeyName","_shouldHandleKey","enteredChar","normalizedText","_tryParse","isDeleteKey","isBackspaceKey","_isStub","search","valueAfterRemoving","_isNonStubAfter","_isPercentFormat","_parse","formatOption","isCustomParser","parser","integerPartStartIndex","formatPointIndex","textPointIndex","formatIntegerPartLength","textIntegerPartLength","customFormatter","_currentFormat","_updateFormat","isLDMLPattern","isExponentialFormat","shouldUseFormatAsIs","getLDMLFormat","_getFormatForSign","_sign","_removeStubs","excludeComma","thousandsSeparator","getThousandsSeparator","stubs","_getStubs","prefixStubs","postfixRegex","decoratorsRegex","regExpResult","stub","_truncateToPrecision","maxPrecision","strValue","isTextSelected","isWholeTextSelected","editedText","_getParsedValue","_getPrecisionLimits","isValueChanged","isDecimalPointRestricted","isUselessCharRestricted","adjust","textWithoutStubs","parsedValueSign","point","pointIndex","isCaretOnFloat","textParts","floatLength","isPrecisionInRange","endsWithZero","_setInputText","formatted","isSeparatorBasedText","isSeparatorBasedString","pointPosition","newPointPosition","formattedParts","relativeIndex","digitsBefore","formattedIntPart","_trimNonNumericCharsFromEnd","positionFromEnd","digitsFromEnd","newPositionFromEnd","getCaretAfterFormat","_formattedValue","isNumberType","isDesktop","_isChar","isSpecialChar","isMinusKey","_renderFormatter","_clearCache","_detachFormatterEvents","_attachFormatterEvents","_isInputFromPaste","_isValuePasted","_formatValue","dxDblClickEvent","escapedDecimalSeparator","regExpString","currentFormat","realSeparatorIndex","floatPart","_applyRevertedSign","preserveSelectedText","currentText","newText","previousBoundaries","getCaretOffset","caretInBoundaries","_removeMinusFromText","parsed","textWithoutMinus","wasMinusRemoved","_el$getRootNode","_el$getRootNode2","querySelector","querySelectorInSameDocument","saveValueChangeEvent","_this$option","innerWidgetOptions","_raiseValidation","areValuesEmpty","_this$_valueChangeAct","prevIsEditor","OldEditor","newIsEditor","CheckBox","defaultNotDeepCopyArrays","propsToIgnore","getDiffItem","resultPaths","item1","item2","fullPropName","notDeepCopyArrays","type1","type2","diffPaths","objectDiffs","_diffPaths","objectDiffsFiltered","propsEnumerator","oldProps","processItem","reactProps","objectDiffsWithoutReactProps","_excluded2","DomComponentWrapper","setupWidget","updateWidget","componentProps","templateNames","componentInstance","componentType","properties","updatedOptions","getUpdatedOptions","prevProps","_this$config","normalizedProps","valueChange","restProps","hasTemplate","getContainer","ValidationMessageProps","isReactComponentWrapper","LegacyValidationMessage","EditorProps","EditorPropsType","validationMessageGuid","isValidationMessageVisible","updateValidationMessageVisibility","shouldShowValidationMessage","_this$validationError","readonly","describedBy","allValidationErrors","validationMessageTarget","_this$rootElementRef","_this$props$value","defaultIconSizes","defaultFontSizes","isMaterialTheme","isCompactTheme","getFontSizeByIconSize","iconSize","isChecked","defaultFontSize","getDefaultFontSize","fontToIconSizeRatio","getDefaultIconSize","CheckBoxIcon","elementRef","updateFontSize","setIconFontSize","getIconSize","getComputedIconSize","newFontSize","endsWith","iconComputedStyle","_window$getComputedSt","getElementComputedStyle","CheckBoxProps","enableThreeStateBehavior","CheckBoxPropsType","editorRef","__newValue","_newValue","CheckBoxComponent","twoWayProps","propValue","defaultPropName","__processTwoWayProps","RadioButton","_renderIcon","_renderCheckedState","_renderClick","_$icon","LIST_EDIT_DECORATOR","SWIPE_START_EVENT_NAME","SWIPE_UPDATE_EVENT_NAME","SWIPE_END_EVENT_NAME","_list","_shouldHandleSwipe","_attachSwipeEvent","swipeConfig","_clearSwipeCache","_itemWidthCache","_itemSwipeStartHandler","_itemSwipeUpdateHandler","_itemSwipeEndHandler","_inkRippleTimer","beforeBag","afterBag","_commonOptions","modifyElement","afterRender","handleClick","handleKeyboardEvents","handleEnterPressing","handleContextMenu","visibilityChange","getExcludedSelectors","registry","SELECT_DECORATOR_ENABLED_CLASS","CLICK_EVENT_NAME","decoratorClass","decoratorsRegistry","decoratorConfig","registerDecorator","EditDecorator","_singleStrategy","_containerClass","_controlClass","_controlWidget","$control","_isSelected","_saveSelectionChangeEvent","_processCheckedState","_updateSelectAllState","_$selectAll","_selectAllCheckBox","_renderSelectAll","currentFocusedIndex","moveFocusUp","moveFocusDown","$selectAll","lastItemIndex","_getLastItemIndex","scrollToItem","downArrowHandler","_attachSelectAllHandler","_selectAllHandler","_selectAllClickHandler","isSelectedAll","_selectAllItems","_unselectAllItems","_checkSelectAllCapability","_disposeSelectAll","componentName","EditorClass","searchMode","searchExpr","searchValue","searchEnabled","searchEditorOptions","_renderSearch","searchBoxClassName","_addWidgetPrefix","rootElementClassName","_removeSearchBox","editorOptions","_getSearchEditorOptions","_searchEditor","_$searchEditorElement","userEditorOptions","searchText","searchTimeout","_valueChangeDeferred","_valueChangeTimeout","getOperationBySearchMode","searchOperation","_cleanAria","activedescendant","setEditorClass","getElementStyle","_getWindow$getCompute","_getWindow","getElementMargin","side","attribute","titleize","PRIVATE_KEY_FIELD","repaintChangesOnly","_customizeStoreLoadOptions","isLoaded","_correctionIndex","storeLoadOptions","reload","_refreshItemsCache","_findItemElementByKey","keysEqual","_isItemEquals","changes","_modifyByChanges","_isItemStrictEquals","_shouldAddNewGroup","change","_partialRefresh","oldItems","isItemEquals","oldIndexByKey","addedCount","removeCount","itemCount","newItem","oldNextIndex","nextOldItem","oldIndex","findChanges","_itemsCache","itemCache","_updateByChange","keyInfo","isPartialRefresh","changedItem","indexByKey","_insertByChange","insert","_beforeItemElementInserted","_afterItemElementInserted","_updateSelectionAfterRemoveByChange","removeIndex","_removeByChange","$removedItemElement","nextSiblingElement","insertElement","LOADPANEL_INDICATOR_CLASS","LOADPANEL_MESSAGE_CLASS","LoadPanel","showIndicator","showPane","_setWrapperAria","defaultLabel","_$loadPanelContentWrapper","_togglePaneVisible","_cleanPreviousContent","_renderLoadIndicator","_renderMessage","_clearShowTimeout","_showTimeout","SCROLLBAR","SCROLLABLE_SCROLLBAR_CLASS","SCROLLABLE_SCROLLBAR_ACTIVE_CLASS","HORIZONTAL","SCROLLBAR_VISIBLE","activeScrollbar","Scrollbar","visibilityMode","containerSize","contentSize","expandable","scaleRatio","_isHovered","_renderThumb","_renderDirection","_update","_attachPointerDownHandler","_isHoverMode","_$thumb","isThumb","_dimension","_prop","feedbackOn","feedbackOff","cursorEnter","_needScrollbar","cursorLeave","_adjustVisibility","_baseContainerToContentRatio","moveTo","scrollBarLocation","_calculateScrollBarPosition","_thumbRatio","baseContainerSize","baseContentSize","_realContainerToContentRatio","thumbSize","containerToContentRatio","_normalizeSize","readyCallback","SCROLLABLE_NATIVE","SCROLLABLE_NATIVE_CLASS","VERTICAL","scrollable","_component","_useSimulatedScrollbar","_isLocked","_isDirection","_allowedDirection","_getMaxOffset","_isRtlNativeStrategy","_isScrollbarVisible","_renderScrollbars","updateRtlPosition","isFirstRender","_moveScrollbars","_scrollbars","_hideScrollbarTimeout","_renderScrollbar","handleInit","handleStart","handleMove","handleEnd","handleCancel","handleStop","_eachScrollbar","scrollbar","createActions","_scrollAction","_updateAction","_createActionArgs","_eventForUserAction","_getScrollOffset","reachedLeft","_isReachedRight","_isReachedLeft","reachedRight","reachedTop","reachedBottom","_normalizeOffsetLeft","showScrollbar","handleScroll","_hideScrollbars","disabledChanged","_updateScrollbars","_containerSize","_componentContentSize","_contentSize","_allowedDirections","scrollableNativeRegexp","_removeScrollbars","scrollBy","_isScrolledInMaxDirection","SCROLLVIEW_PULLDOWN_REFRESHING_CLASS","SCROLLVIEW_PULLDOWN_READY_CLASS","PullDownNativeScrollViewStrategy","NativeStrategy","scrollView","_$topPocket","_$pullDown","_$refreshingText","_$scrollViewContent","_initCallbacks","pullDownCallbacks","releaseCallbacks","reachBottomCallbacks","_renderPullDown","_releaseState","$image","$loadContainer","$loadIndicator","$text","_$pullDownText","_$pullingDownText","_$pulledDownText","_state","_refreshPullDownText","pullDownTextItems","visibleState","_setTopPocketOffset","_topPocketSize","contentEl","containerEl","_bottomBoundary","allowedDirections","_pullDownEnabled","_complete","_setPullDownOffset","_pullDownRefreshTimeout","_pullDownRefreshing","currentLocation","scrollDelta","_location","_isPullDown","_pullDownReady","_isReachBottom","_reachBottom","_stateReleased","_reachBottomEnabled","pullDownEnable","reachBottomEnable","pendingRelease","release","_releaseTimeout","SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS","_releasePullDown","_startClientY","_deltaY","_movePullDown","pullDownHeight","_getPullDownHeight","_getPullDownStartPosition","angle","_pullDownRefreshHandler","_refreshPullDown","_finished","_stopped","_proxiedStepCore","_stepCore","_stepAnimationFrame","_isStopped","_isFinished","_step","inProgress","hoveredScrollable","activeScrollable","SCROLLABLE_SIMULATED","SCROLLABLE_SIMULATED_CURSOR","SCROLLABLE_SIMULATED_KEYBOARD","SCROLLABLE_SIMULATED_CLASS","ACCELERATION","BOUNCE_ACCELERATION_SUM","KEY_CODES","InertiaAnimator","Animator","scroller","VELOCITY_LIMIT","_velocity","_scrollStep","_acceleration","_inBounds","_scrollComplete","BounceAnimator","MIN_VELOCITY_LIMIT","_crossBoundOnNextStep","_bounceLocation","Scroller","_initAnimators","_initScrollbar","_topReached","_bottomReached","_axis","_scrollProp","_inertiaAnimator","_bounceAnimator","_scrollbar","_scrollByThumb","_visibilityModeNormalize","_scrollbarVisible","_$scrollbar","prevLocation","_suppressBounce","_bounceEnabled","_boundLocation","_maxOffset","_minOffset","_getScaleRatio","_moveContent","_moveScrollbar","_moveContentByTranslator","_scaleRatio","realDimension","_getRealDimension","baseDimension","_getBaseDimension","translateOffset","minOffset","_maxScrollPropValue","_translateOffset","_hideScrollbar","_completeDeferred","_scrollToBounds","_bounceAction","_setupBounce","bounceDistance","nextLocation","_initHandler","_stopScrolling","_prepareThumbScrolling","scrollbarClicked","_isScrollbar","_moveToMouseLocation","_thumbScrolling","_isThumb","_crossThumbScrolling","_isAnyThumbScrolling","_isThumbScrollingHandler","mouseLocation","_containerToContentRatio","_startHandler","_showScrollbar","_moveHandler","_scrollBy","_scrollByHandler","_endHandler","_inertiaHandler","_resetThumbScrolling","_suppressInertia","_inertiaEnabled","_stopHandler","_disposeHandler","_updateHandler","_moveToBounds","deferUpdate","_resetScaleRatio","_updateLocation","_updateBounds","_updateScrollbar","_getMinOffset","deferUpdater","locationChanged","_createActionsHandler","scroll","bounce","isOverflowHidden","containerScrollSize","_validateEvent","_reachedMin","_reachedMax","_cursorEnterHandler","_cursorLeaveHandler","SimulatedStrategy","_createScrollers","_attachKeyboardHandler","_attachCursorHandlers","_scrollers","_createScroller","_scrollerOptions","scrollByThumb","scrollbarVisible","bounceEnabled","inertiaEnabled","isAnyThumbScrolling","_applyScaleRatio","_getPropByDirection","_eventHandler","isThumbScrollingVertical","isThumbScrollingHorizontal","_suppressDirections","_prepareDirections","_eachScroller","_isContent","_validDirections","_startAction","_saveActive","_resetActive","_adjustDistance","devicePixelRatio","_tryGetDevicePixelRatio","_refreshCursorState","_endAction","_updateRtlConfig","addEventNamespace","_updateHandlerTimeout","_scrollByLine","_scrollByPage","_scrollToHome","_scrollToEnd","page","_wheelProp","_dimensionByProp","_createActionHandler","_createScrollerActions","actionHandler","scrollerX","scrollerY","_scrollOffset","deferreds","_hoverHandled","$scrollable","targetScrollable","touchDirection","verticalScroller","horizontalScroller","_isHorizontalAndRtlEnabled","needInitializeRtlConfig","_rtlConfig","scrollRight","windowPixelRatio","_getWindowDevicePixelRatio","skipUpdating","_validateWheel","_validateMove","_wheelDirection","reachedMin","reachedMax","contentGreaterThanContainer","locatedNotAtBound","scrollFromMin","scrollFromMax","validated","_validateWheelTimer","ScrollViewScroller","_bottomPocketSize","_$bottomPocket","_reachBottomReady","_reachBottomLoading","_releaseHandler","_releaseTask","abort","executeAsync","_release","_reachBottomEnablingHandler","_pullDownEnablingHandler","_considerTopPocketChange","_pendingReleaseHandler","$topPocket","$bottomPocket","$pullDown","$pullDownText","$pullingDownText","$pulledDownText","$refreshingText","DIRECTION_VERTICAL","DIRECTION_BOTH","deviceDependentOptions","nativeScrolling","useNative","scrollByContent","SCROLLABLE","SCROLLABLE_CLASS","SCROLLABLE_CONTENT_CLASS","BOTH","Scrollable","onScroll","onBounce","useSimulatedScrollbar","useKeyboard","updateManually","_onVisibilityChanged","mozilla","_setUseSimulatedScrollbar","initialOption","_initScrollableMarkup","_updateRtlPosition","_savedScrollOffset","_renderStrategy","_renderDisabledState","_createActions","_strategy","scrollWidth","scrollHeight","initEventData","_updateIfNeed","_moveIsAllowed","_lock","_unlock","_createStrategy","_resetInactiveDirection","inactiveProp","_getInactiveProp","_normalizeLocation","_updateAllowedDirection","_allowedDirectionValue","scrollToElement","elementInsideContent","elementIsInsideContent","scrollPosition","getScrollElementPosition","targetElement","containerElement","additionalOffset","isVertical","inverseProp","containerOffsetSize","containerClientSize","elementSize","relativeElementOffset","targetElementClass","sourceElement","offsetParent","parentElement","parentElementRect","getRelativeOffset","containerScrollOffset","relativeStartOffset","relativeEndOffset","getElementLocationInternal","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","PullDownStrategy","swipeDown","SwipeDownStrategy","simulated","isServerSide","scrollViewServerConfig","finishLoading","refresh","ScrollView","pullingDownText","pulledDownText","refreshingText","reachBottomText","onPullDown","onReachBottom","refreshStrategy","_loadingIndicatorEnabled","_initContent","_initTopPocket","_initBottomPocket","_initLoadPanel","$reachBottom","_$reachBottom","_$reachBottomText","_updateReachBottomText","$loadPanelElement","loadPanelOptions","_loadPanel","strategyClass","_pullDownHandler","_reachBottomHandler","_pullDownAction","_reachBottomAction","_tryRefreshPocketState","_pullDownEnable","_reachBottomEnable","_loadingIndicator","_pullDownLoading","startLoading","preventReachBottom","toggleLoading","showOrHide","_getSpecificDataSourceOption","hasSimpleItems","_getGroupedOption","isCorrectStructure","innerItem","keepInitialKeyOrder","LIST_ITEM_BADGE_CONTAINER_CLASS","LIST_ITEM_CHEVRON_CONTAINER_CLASS","_renderBadge","_renderShowChevron","badge","$badge","$chevron","showChevron","$chevronContainer","_scrollView","LIST_ITEM_CLASS","LIST_ITEM_SELECTOR","LIST_GROUP_CLASS","LIST_GROUP_HEADER_CLASS","LIST_GROUP_BODY_CLASS","LIST_GROUP_COLLAPSED_CLASS","groupItemsGetter","ListBase","moveFocusPerPage","getEdgeVisibleItem","isItemVisible","$nextItem","nextItemLocation","pullRefreshEnabled","useNativeScrolling","pageLoadingText","onPullRefresh","onPageLoading","pageLoadMode","nextButtonText","onItemSwipe","onGroupRendered","collapsibleGroups","groupTemplate","indicateLoading","wrapItemText","_swipeEnabled","showChevronExpr","badgeExpr","_updateLoadingState","_$listContainer","listContainer","_selectionChangeEventInstance","_getSelectionChangeEvent","_refreshItemElements","_itemElementsCache","resetDataSourcePageIndex","_initScrollView","_createGroupRenderAction","_scrollBottomMode","_nextButtonMode","scrollBottom","nextButton","_getGroupContainerByIndex","_dataSourceFromUrlLoadMode","autoPagingEnabled","_scrollHandler","_scrollBottomHandler","_toggleWrapItemText","_createScrollViewActions","_pullRefreshAction","_pageLoadingAction","$iconContainer","tryLoadMore","shouldLoadNextPage","_shouldContinueLoading","_infiniteDataLoading","_toggleNextButton","_shouldRenderNextButton","_loadIndicationSuppressed","_isDataSourceFirstLoadCompleted","_isFirstLoadCompleted","_dataSourceLoadingChangedHandler","_showLoadingIndicatorTimer","_hideLoadingIfLoadIndicationOff","_isLoadIndicationSuppressed","_scrollViewIsFull","pageIndex","isBottomReached","_loadNextPageTimer","_renderGroup","_attachGroupCollapseEvent","attachGroupHeaderInkRippleEvents","$group","_collapseGroupHandler","$groupBody","startHeight","endHeight","setHeight","updateDimensions","_renderInkRipple","roledescription","_setListAria","listArea","LIST_FEEDBACK_SHOW_TIMEOUT","_nextButtonHandler","_$nextButton","$groupElement","groupAria","$groupHeaderElement","groupTemplateName","_renderingGroupIndex","_groupRenderAction","groupElement","groupData","downInkRippleHandler","upInkRippleHandler","_downInkRippleHandler","_upInkRippleHandler","downArguments","upArguments","_getNextButton","_createNextButton","expandGroup","collapseGroup","DataConverterMixin","ListItem","editOptionsRegistry","registerOption","enabledFunc","decoratorTypeFunc","decoratorSubTypeFunc","decoratorType","decoratorSubType","EditProvider","_fetchRequiredDecorators","_decorators","decorator","_createDecorator","subType","_findDecorator","foundDecorator","modifyItemElement","_prependBeforeBags","_appendAfterBags","_applyDecorators","afterItemsRendered","$beforeBags","_collectDecoratorsMarkup","$afterBags","containerClass","$collector","_handlerExists","decorators","response","contextMenuHandlerExists","getExcludedItemSelectors","excludedSelectors","combineIndex","splitIndex","combinedIndex","GroupedEditStrategy","EditStrategy","_groupElements","_groupItemElements","resultItems","_getGroups","storeHelper","queryByOptions","groupItemByKeyMap","getItemMeta","groupKey","itemMeta","selectedGroup","movingIndices","destinationIndices","movingItemGroup","destinationItemGroup","firstIndex","secondIndex","moveFocusedItem","editStrategy","focusedItemIndex","nextItemIndex","_editProvider","privateKey","__dx_key__","showSelectionControls","selectAllMode","onSelectAllValueChanged","selectAllText","localizationMessage","menuItems","menuMode","allowItemDeleting","itemDeleteMode","itemDragging","_device","_initEditProvider","_isPageSelectAll","requireTotalCount","_disposeEditProvider","_refreshEditProvider","isTouchEvent","handledByEditProvider","_getItemContainer","changeData","focusListItem","unselectAll","getFlatIndexByItemElement","getItemElementByFlatIndex","flatIndex","getItemByIndex","deletingElementIndex","nextFocusedItem","ListEdit","searchBoxMixin","addSearchFilter","SEARCH_MODES","useCompositionEvents","DropDownList","_allowSelectItemByTab","$focusedItem","_setSelectedElement","_setValue","minSearchLength","showDataBeforeSearch","useItemTextAsTitle","_setListDataSource","_validateSearchMode","_clearSelectedItem","_initItems","_setListFocusedElementOptionChange","_updateActiveDescendant","_initSelectionChangedAction","_initItemClickAction","_selectionChangedAction","ChildDefaultTemplate","_saveFocusOnWidget","_fitIntoRange","_items","_calcNextItem","_getSelectedIndex","_updateCustomBoundaryContainer","_popupWrapperClass","customContainer","$containerWithParents","_$customBoundaryContainer","_loadInputValue","_setSelectedItem","_loadItem","_getItemFromPlain","itemByValue","listFocusedItemId","isElementOnDom","_displayValue","_refreshSelected","_listItemElements","_isSelectedValue","_setFocusPolicy","normalizedSearchMode","_processDataSourceChanging","_setListOption","_isCustomValueAllowed","_clearFilter","_$list","_getMaxHeight","_renderList","canListHaveFocus","_canListHaveFocus","_listId","$list","List","_listConfig","_refreshList","_renderPreventBlurOnListClick","_shouldRefreshDataSource","_needPassDataSourceToList","_isDesktopDevice","_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","isLastPage","$customBoundaryContainer","_shouldUseDisplayValue","SELECTBOX_POPUP_WRAPPER_CLASS","SelectBox","clearSelectBox","_valueSubstituted","_preventFiltering","_savedTextRemoveEvent","_preventSubstitution","searchIfNeeded","popupHasFocusableElements","_cancelSearchIfNeed","_setNextValue","_cancelEditing","isOpened","inputText","isCustomText","isSearchEnabled","customItemCreateEvent","onCustomItemCreating","customItem","allowClearing","tooltipEnabled","displayCustomValue","_initCustomItemCreatingAction","_renderTooltip","_focusListElement","_updateField","_scrollToSelectedItem","_focusSelectedElement","$listItems","_isCustomItemSelected","_renderFocusedElement","_preventInputValueRender","_renderInputValueAsync","_renderInputValueImpl","_setNextItem","hasPages","isLastItem","isUnknownItem","_getSelectionChangeHandler","_listFocusedItemChangeHandler","_selectionChangeHandler","addedItem","_getActualSearchValue","_shouldClearFilter","_restoreInputText","_wasSearch","_isValueEqualInputText","initialSelectedItem","_shouldCancelSearch","saveEditingValue","_loadItemDeferred","_isValueChanging","_createCustomItem","_clearTextValue","newSelectedItem","_valueChangeEventIncludesBlur","_isPreventedFocusOutEvent","_isOverlayNestedTarget","isOverlayTarget","isPopupVisible","_shouldCancelSearchValue","selectedItemText","$listFocused","_shouldCloseOnItemClick","_completeSelection","_customItemAddedHandler","_customItemCreatingAction","actionResult","_setCustomItem","_wasSearchValue","_renderInputSubstitution","currentSearchLength","isAllSelected","inputHasSelection","isLastSymbolSelected","_shouldSubstitutionBeRendered","valueLength","rotateArrow","$arrow","cssRotate","TimeView","use24HourFormat","_showClock","_arrowOffset","_renderBox","_updateTime","$box","_renderClock","_$hourArrow","_$minuteArrow","_updateClock","hourArrowAngle","minuteArrowAngle","_getBoxItems","is12HourFormat","_hourBox","getTimeSeparator","_minuteBox","_format12","_createHourBox","_createMinuteBox","_createFormat12Box","NumberBox","_onHourBoxValueChanged","_getNumberBoxConfig","_isPM","newHours","_convertMaxHourToMin","maxHoursValue","newMinutes","periodNames","getPeriodNames","_refreshFormat12","_silentEditorValueUpdate","_normalizeHours","DATEBOX_TIMEVIEW_SIDE_CLASS","_is24HourFormat","is24HourFormat","viewDate","_updateDateTime","_timeView","_isShrinkView","_isSmallScreen","_repaintTimer","isAdaptiveMode","currentAdaptiveMode","_currentAdaptiveMode","preventDefaultValue","uiDateUtils","_box","calendarPopupConfig","_removeMinWidthTimer","ScrollDirection","DIRECTION_HORIZONTAL","isHorizontal","isBoth","DATEVIEW_ROLLER_ITEM_CLASS","DateViewRoller","showOnClick","onSelectedIndexChanged","_visibilityChangedHandler","_endActionHandler","_renderSelectedItemFrame","_renderContainerClick","_renderSelectedValue","_renderItemsClick","_renderWheelEvent","_renderSelectedIndexChanged","_selectedIndexChanged","_isWheelScrolled","_$items","_fitIndex","_getItemPosition","_renderActiveStateItem","_itemHeight","_getItemSelector","_itemElementIndex","_shouldScrollToNeighborItem","convertToLocation","_animation","_fitSelectedIndexInRange","_isInNullNeighborhood","_getSelectedIndexAfterScroll","currentSelectedIndex","dy","_getNewSelectedIndex","newSelectedIndex","_toggleActive","_fireSelectedIndexChanged","_visibilityTimer","toggleActiveState","_refreshSelectedIndex","fitIndex","DATEVIEW_CLASS","TYPE","ROLLER_TYPE","DateView","_valueOption","_getDefaultDate","applyCompactClass","_toggleFormatClasses","_toggleCompactClass","previousFormat","_wrapper","_renderRollers","_$rollersContainer","_createRollerConfigs","_rollers","_rollerConfigs","$roller","displayItems","roller","_setActiveRoller","_setRollerState","getFormatParts","partName","_createRollerConfig","valueRange","_calculateRollerConfigValueRange","curDate","_getCurrentDate","setValue","valueItems","currentRoller","activeRoller","_updateRollersPosition","correctIndex","rollerValue","_refreshRollers","_refreshRoller","rollerType","rollerConfig","minYear","minMonth","maxYear","maxMonth","minHour","maxHour","defaultOptionsRules","phone","_isNativeType","onDisposing","BOUNDARY_VALUES","ListStrategy","_widgetItems","_getDateByItemData","_refreshItems","_timeListItemTemplate","_getTimeListItems","_setSelectedItemsByValue","_asyncScrollTimeout","dateIndex","_getDateIndex","_areDatesEqual","_getBoundaryDate","_getRangeItems","rangeDuration","rangeItems","boundaryValue","_updatePopupHeight","dropDownOptionsHeight","popupHeight","_timeList","_getDateBoxType","DATEBOX_CLASS","DATEBOX_WRAPPER_CLASS","PICKER_TYPE","rollers","native","STRATEGY_NAME","STRATEGY_CLASSES","Native","CalendarWithTime","DateBox","showAnalogClock","pickerType","invalidDateMessage","dateOutOfRangeMessage","adaptivityEnabled","_showValidationIcon","_updatePickerOptions","_pickerType","_setShowDropDownButtonOption","isMozillaOnAndroid","isNativePickerType","_initStrategy","_toLowerCaseFirstLetter","string","_getStrategyName","_getFormatType","currentType","isTime","_refreshFormatClass","_refreshPickerTypeClass","_formatValidationIcon","clearButtonWidth","_getClearButtonWidth","longestElementDimensions","_getLongestElementDimensions","curWidth","shouldHideValidationIcon","_storedPadding","leftPadding","rightPadding","paddingLeft","clearButtonElement","longestValue","$longestValueElement","createTextElementHiddenCopy","storedPadding","necessaryWidth","_renderPopupWrapper","defaultItems","_getPopupTitle","classPostfixes","_getDisplayedText","submitFormat","displayedText","_getFormatByMode","parsedDate","_getParsedDate","_getDateByDefault","_applyInternalValidation","_recallInternalValidation","_applyCustomValidation","parsedText","hasText","isDateType","validationMessage","_updateInternalValidationState","_serializeDate","_isValueChanged","_isTextChanged","_refreshStrategy","_updatePopupTitle","forceIsoDateParsing","monthGetter","monthSetter","monthLimits","getLimits","newDay","PATTERN_GETTERS","E","M","H","PATTERN_SETTERS","getPatternSetters","isPM","maxLimitLength","renderDateParts","regExpInfo","regexp","sections","patternChar","patterns","isStub","limits","forcedPattern","dM","getAmPm","BACKWARD","DateBoxMask","DateBoxBase","originalHandlers","callOriginalHandler","originalHandler","applyHandler","maskHandler","_shouldUseOriginalHandler","_revertPart","_isAllSelected","_selectFirstPart","_selectLastPart","_revertChanges","_enterHandler","_selectNextPart","_upDownArrowHandler","isNotDeletingInCalendar","_setNewDateIfEmpty","originalValue","_getActivePartValue","_initialMaskValue","_loadMaskValue","_changePartValue","lockOtherParts","activePartPattern","_getActivePartProp","_toggleAmPm","_partIncrease","defaultDateNames","_setActivePartValue","emptyDateValue","_isSingleCharKey","_isSingleDigitKey","_useBeforeInputEvent","_keyInputHandler","oldInputValue","_processInputKey","_maskInputHandler","_renderSelectedPart","_maskBeforeInputHandler","isBackwardDeletion","_maskValue","_activePartIndex","_searchString","_searchNumber","_formatPattern","_getPatternByFormat","getFormat","_renderDateParts","_partLimitsReached","formatLength","maxSearchLength","isLengthExceeded","isValueOverflowed","_getActivePartLimits","startString","endLimit","_clearSearchValue","actual","_prepareRegExpInfo","_regExpInfo","getRegExpInfo","quantifierRegexp","convertedSource","sourcePart","_initMaskState","_detachMaskEvents","_clearMaskState","_attachMaskEvents","_dateParts","_maskClickHandler","_maskPasteHandler","_maskCompositionEndHandler","_getRealLimitsPattern","limitFunction","_addLeadingZeroes","zeroes","_saveMaskValue","_applyLimits","limitBase","limitClosest","getDatePartIndexByPosition","caretInGroup","clipboardText","_isDateValid","_isValueDirty","_fireChangeEvent","RESPONSIVE_BOX_CLASS","SCREEN_SIZE_CLASS_PREFIX","ResponsiveBox","rows","cols","screenByWidth","singleColumnScreen","onLayoutChanged","currentScreenFactor","defaultScreenFactorFunc","_initLayoutChangedAction","_layoutChangedAction","_setScreenSize","_screenItems","_itemsByScreen","_prepareGrid","_spreadItems","_layoutItems","_linkNodeToItem","_clearItemNodeTemplates","currentScreen","_getCurrentScreen","_removeScreenSizeClass","grid","_grid","_prepareRowsAndCols","_rows","_cols","_createEmptyCell","getSingleColumnRows","screenItemsLength","filteredRows","_filterByScreen","sizeConfig","_defaultSizeConfig","_isSingleColumnScreen","_prepareSingleColumnScreenItems","_sizesByScreen","_screenRegExp","rowspan","colspan","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","_needApplyAutoBaseSize","_isSingleItem","_itemByCell","_layoutDirection","firstCellLocation","isItemRowSpanned","isItemColSpanned","block","crossDirection","_crossDirection","_nextBlock","_isBlockIndivisible","prevBlockOptions","_blockSize","crossStartIndex","crossSpan","crossIndex","lineCrossSpan","_cellByDirection","lineCrossEndIndex","crossEndIndex","defaultMinSize","forceRemoveRoot","$existingRoot","_saveAssistantRoot","_assistantRoots","_cleanUnusedRoots","renderButtonItem","horizontalAlignment","rootElementCssClassList","createComponentCallback","$rootElement","verticalAlignment","convertAlignmentToJustifyContent","buttonOptions","renderEmptyItem","DefaultAdapter","validationRequestsCallbacks","getCurrentValidationError","bypass","applyValidationResults","VALIDATION_STATUS_VALID","VALIDATION_STATUS_PENDING","Validator","_initGroupRegistration","_initAdapter","skipValidation","_groupWasInit","_getEditor","dxStandardEditor","_toggleAccessibilityAttributes","isRequired","isInitialized","_resetValidationRules","_getValidationRules","_validationRules","currentError","currentResult","_applyValidationResult","_updateValidationResult","validatedAction","FORM_GROUP_CLASS","FORM_FIELD_ITEM_COL_CLASS","FIELD_ITEM_CLASS","LAYOUT_MANAGER_ONE_COLUMN","FIELD_ITEM_LABEL_CONTENT_CLASS","FIELD_ITEM_LABEL_CLASS","FIELD_ITEM_CONTENT_CLASS","ROOT_SIMPLE_ITEM_CLASS","FIELD_ITEM_TAB_CLASS","GROUP_COL_COUNT_CLASS","GROUP_COL_COUNT_ATTR","SIMPLE_ITEM_TYPE","EDITORS_WITH_ARRAY_VALUE","EDITORS_WITH_SPECIFIC_LABELS","EDITORS_WITHOUT_LABELS","DROP_DOWN_EDITORS","convertToRenderFieldItemOptions","formOrLayoutManager","labelTemplate","formLabelLocation","requiredMessageTemplate","editorValue","canAssignUndefinedValueToEditor","editorValidationBoundary","showColonAfterLabel","managerLabelLocation","itemId","managerMarkOptions","onLabelTemplateRendered","hasRequiredRule","_hasRequiredRuleInSet","isSimpleItem","helpID","helpText","labelOptions","_ref6","labelLocation","formLabelMode","isEditorWithoutLabels","editorType","showColon","markOptions","convertToLabelMarkOptions","labelID","dataField","captionize","textWithoutColon","_convertToLabelOptions","needRenderLabel","labelNeedBaselineAlign","defaultEditorName","externalEditorOptions","editorInputId","labelText","editorOptionsWithValue","useSpecificLabelOptions","dropDownEditorOptions","isDropDownEditor","initialHideOnOutsideClick","getDropDownEditorOptions","_convertToEditorOptions","showRequiredMark","fromCharCode","requiredMark","showOptionalMark","optionalMark","FIELD_ITEM_REQUIRED_MARK_CLASS","FIELD_ITEM_LABEL_LOCATION_CLASS","FIELD_ITEM_OPTIONAL_MARK_CLASS","renderLabel","alignment","labelTemplateData","$labelContainer","$labelContent","markText","getLabelMarkText","_renderLabelMark","getLabelWidthByHTML","labelContent","FIELD_ITEM_CONTENT_WRAPPER_CLASS","VALIDATION_TARGET_CLASS","renderFieldItem","$fieldEditorContainer","widgetInstance","getTemplateData","isToggleControls","labelAlignment","validationTargetInstance","$validationTarget","tryGetValidationTargetInstance","getValidationTarget","subscribeWrapperInvalidClassToggle","$div","isItemHaveCustomLabel","itemName","requiredMessage","formItem","wrapperClass","toggleInvalidClass","FormItemsRunTimeInfo","_map","_findWidgetInstance","condition","guid","_findFieldByCondition","removeItemsByItems","itemsRunTimeInfo","getItems","removeItemByKey","addItemsOrExtendFrom","itemRunTimeInfo","extendRunTimeItemInfoByKey","findWidgetInstanceByItem","storedItem","findGroupOrTabLayoutManagerByPath","targetPath","findKeyByPath","findWidgetInstanceByName","findWidgetInstanceByDataField","findItemContainerByItem","findItemIndexByItem","targetItem","findPreparedItemByItem","currentItem","removeItemsByPathStartWith","LayoutManager","layoutData","colCountByScreen","onFieldDataChanged","onEditorEnterKey","customizeItem","alignItemLabels","minColWidth","_itemWatchers","_itemsRunTimeInfo","_updateReferencedOptions","_initDataAndItems","_cleanItemWatchers","initialData","_syncDataWithItems","_updateItems","userItems","_getDataByField","_updateFieldValue","_isCheckboxUndefinedStateEnabled","allowIndeterminateState","nameParts","propertyName","isWrapped","isWritableWrapped","_triggerOnFieldDataChanged","isUserItemsExist","_generateItemsByData","processedItems","_isAcceptableItem","_processItem","_updateItemWatchers","_setItems","_sortItems","watch","_getWatch","skipImmediate","itemField","_getEditorTypeByDataType","dataType","normalizeIndexes","_sortIndexes","itemA","itemB","indexA","visibleIndex","indexB","_renderResponsiveBox","templatesInfo","_getColCount","_prepareItemsWithMerging","layoutItems","_generateLayoutItems","_responsiveBox","_getResponsiveBoxConfig","_renderTemplates","_itemStateChangedHandler","itemsWithLabelTemplateCount","_renderButtonItem","_renderFieldItem","xsColCount","xs","isSingleColumnMode","itemRenderedCountInPreviousRows","itemCssClassList","isLastColumn","_getRowsCount","isLastRow","_generateRatio","screenFactor","getTargetScreenFactor","getCurrentScreenFactor","_cashedColCount","_getMaxColCount","maxColCount","isCachedColCountObsolete","itemsMergedByCol","colSpan","_getColByIndex","merged","generatedItem","rowSpan","_renderEmptyItem","_getFormOrThis","getItemID","_getMarkOptions","_incTemplateRenderedCallCount","_shouldAlignLabelsOnTemplateRendered","_alignLabels","_bindDataField","_labelTemplateRenderedCallCount","totalItemsWithLabelTemplate","editorInstance","formOrThis","_createWatcher","linkEditorToDataField","fieldValue","array1","array2","deep","createWatcherDataField","_watch","formInstance","readOnlyState","hasEditorReadOnly","hasOwn","isChangeByForm","isAutoSize","newLayoutData","getOwnPropertyNames","_clearWidget","_disableEditorValueChangedHandler","_cashedRequiredConfig","dataValue","valueGetter","_resetColCount","isValueReferenceType","updateData","getEditor","responsiveBox","getItemsRunTimeInfo","VALIDATION_SUMMARY_CLASS","ITEM_DATA_KEY","ValidationSummary","_unsubscribeGroup","groupSubscription","_groupValidationHandler","_getOrderedItems","orderedItems","foundItems","_validationSummary","_itemValidationHandler","itemsChanged","foundRule","refreshValidationGroup","VALIDATION_ENGINE_CLASS","ValidationGroup","validatorContainer","summaryContainer","_translator","completeAction","MULTIVIEW_ITEM_CLASS","toNumber","MultiView","swipeEnabled","animationEnabled","_$itemContainer","_itemWidth","_itemWidthValue","_clearItemWidthCache","_itemsCount","_normalizeIndex","_getRTLSignCorrection","_findBoundaryIndices","_initSwipeable","selectedItemIndices","_updateItemsVisibility","_setElementAria","_setItemsAria","_getElementAria","_getItemAria","newIndex","_updateItemsPosition","positionSign","_animationDirection","$selectedItem","_renderSpecificItem","hasItemContent","prevIndex","animationDirection","_animateItemContainer","indexDifference","_getItemFocusLoopSignCorrection","directionSignVariable","_getSwipeDisabledState","_boundaryIndices","firstAvailableIndex","lastAvailableIndex","firstTrueIndex","lastTrueIndex","_swipeDirection","swipeDirection","_findNextAvailableIndex","isFirstActive","isLastActive","$selectedElement","_itemFocusLooped","_updateSwipeDisabledState","getScrollLeftMax","isReachedLeft","scrollOffsetLeft","epsilon","isReachedRight","isReachedTop","scrollOffsetTop","isReachedBottom","pocketHeight","getScrollTopMax","TABS_EXPANDED_CLASS","BADGE_CLASS","TABS_STRETCHED_CLASS","TABS_NAV_BUTTONS_CLASS","OVERFLOW_HIDDEN_CLASS","TABS_ITEM_CLASS","STATE_DISABLED_CLASS","FOCUSED_DISABLED_NEXT_TAB_CLASS","FOCUSED_DISABLED_PREV_TAB_CLASS","TABS_ORIENTATION_CLASS","INDICATOR_POSITION_CLASS","TABS_ICON_POSITION_CLASS","TABS_STYLING_MODE_CLASS","primary","secondary","BUTTON_NEXT_ICON","BUTTON_PREV_ICON","ORIENTATION","INDICATOR_POSITION","SCROLLABLE_DIRECTION","ICON_POSITION","STYLING_MODE","Tabs","showNavButtons","orientation","_indicatorPosition","currentTheme","indicatorPosition","_getIndicatorPosition","_toggleScrollingEnabledClass","_toggleOrientationClass","_toggleIndicatorPositionClass","_toggleIconPositionClass","_toggleStylingModeClass","_renderMultiple","$tabTextSpan","$tabTextSpanPseudo","$iconElement","$tabItem","_deferredTemplates","_deferRenderScrolling","_renderScrolling","removeClasses","_isItemsSizeExceeded","_scrollable","_renderScrollable","_renderNavButtons","getScrollable","_updateNavButtonsState","_scrollToItem","_cleanScrolling","_needStretchItems","_isVertical","_isItemsHeightExceeded","_isItemsWidthExceeded","$visibleItems","tabItemTotalWidth","itemsWidth","_cleanNavButtons","_leftButton","_rightButton","_getScrollableDirection","_updateScrollable","_createNavButton","$leftButton","$rightButton","_updateScrollPosition","holdAction","_holdInterval","holdEventName","pointerUpEventName","pointerOutEventName","navButton","$navButton","_clearInterval","_toggleTabsVerticalClass","_toggleTabsHorizontalClass","_getIndicatorPositionClass","newClass","_toggleElementClasses","_getTabsIconPositionClass","classMap","_toggleFocusedDisabledNextClass","currentIndex","isNextDisabled","_toggleFocusedDisabledPrevClass","isPrevDisabled","_toggleFocusedDisabledClasses","prevItemIndex","nextFocusedIndex","shouldNextClassBeSetted","shouldPrevClassBeSetted","_updateFocusedElement","_indicatorPosition2","TabsItem","TABPANEL_TABS_POSITION_CLASS","TABS_POSITION","TABS_INDICATOR_POSITION_BY_TABS_POSITION","TABS_ORIENTATION","TabPanel","itemTitleTemplate","tabsPosition","onTitleClick","onTitleHold","_tabsIndicatorPosition","_toggleTabPanelTabsPositionClass","_createTitleActions","_prepareTabsItemTemplate","_createTitleClickAction","_createTitleHoldAction","_createTitleRenderedAction","_titleClickAction","_titleHoldAction","_titleRenderedAction","_tabs","_$tabContainer","$tabs","_tabConfig","tabs","tabItems","$activeTab","_getTabsIndicatorPosition","tabsIndicatorPosition","onOptionChanged","$value","$newItem","_isFocusOutHandlerExecuting","_getTabsOrientation","_getTabPanelTabsPositionClass","_updateTabsOrientation","_setTabsOption","_toggleWrapperFocusedClass","_toggleDisabledFocusedClass","isTabsTarget","isMultiViewTarget","_updateTabsIndicatorPosition","selectedTabContent","ItemOptionAction","findInstance","findItemContainer","findPreparedItem","tryExecute","createItemPathByIndex","isTabs","concatPaths","path1","path2","getTextWithoutSpaces","getFullOptionName","getOptionNameFromFullName","isFullPathContainsTabs","fullPath","getItemPath","tabOrGroupItems","WidgetOptionItemOptionAction","TabOptionItemOptionAction","tabPanel","SimpleItemTemplateChangedAction","GroupItemTemplateChangedAction","preparedItem","_prepareGroupItemTemplate","_renderGroupContentTemplate","TabsOptionItemOptionAction","ValidationRulesItemOptionAction","filterRequired","oldContainsRequired","newContainsRequired","CssClassItemOptionAction","tryCreateItemOptionAction","itemActionOptions","ITEM_OPTIONS_FOR_VALIDATION_UPDATING","Form","_dirtyFields","_cachedColCountOptions","_groupsColCount","_attachSyncSubscriptions","formID","formData","alignItemLabelsInAllGroups","alignRootItemLabels","showValidationSummary","_getGroupColCount","_applyLabelsWidthByCol","fieldItemClass","inOneColumn","cssExcludeTabbedSelector","excludeTabbed","$targetContainer","labelsSelector","labelWidth","FIELD_ITEM_LABEL_CONTENT_CLASS_Selector","$FIELD_ITEM_LABEL_CONTENT_CLASS_Items","FIELD_ITEM_LABEL_CONTENT_CLASS_Length","setLabelWidthByMaxLabelWidth","_applyLabelsWidth","labelMarkOptions","applyLabelsOptions","_getGroupElementsInColumn","cssColCountSelector","groupSelector","_applyLabelsWidthWithGroups","$rootSimpleItems","_applyLabelsWidthWithNestedGroups","$groups","groupsColIndex","groupColIndex","$groupsByCol","groupColCount","_labelLocation","_alignLabelsInColumn","layoutManager","_checkGrouping","_prepareFormData","_setStylingModeClass","_getValidationGroup","_clearCachedInstances","_renderValidationSummary","_lastMarkupScreenFactor","_targetScreenFactor","_getCurrentScreenFactor","_attachResizeObserverSubscription","formRootElement","_resizeHandler","_cachedLayoutManagers","_clearValidationSummary","_getContent","_$validationSummary","dxValidationSummary","_prepareItems","parentIsTabbedItem","currentPath","_tryPrepareGroupItem","_tryPrepareTabbedItem","_tryPrepareItemTemplate","cssItemClass","groupContentTemplate","_itemGroupTemplate","_itemTabbedTemplate","_rootLayoutManager","_renderLayoutManager","_createLayoutManagerOptions","isRoot","_tryGetItemsForTemplate","$tabPanel","tabPanelOptions","tryUpdateTabPanelInstance","$groupContent","extendedLayoutManagerOptions","form","$formElement","formOptions","onFieldItemRendered","baseOptions","convertToLayoutManagerOptions","_isDataUpdating","nestedItemsRunTimeInfo","layoutManagerOptions","baseColCountByScreen","lg","md","sm","_clearAutoColCountChangedTimeout","autoColCountChangedTimeoutId","_extendConfig","optionFullName","_triggerOnFieldDataChangedByDataSet","splitFullName","_itemsOptionChangedHandler","_formDataOptionChangedHandler","_defaultOptionChangedHandler","_clear","_getItemPath","optionNameWithoutPath","simpleOptionName","itemAction","_tryCreateItemOptionAction","_tryExecuteItemOptionAction","_tryChangeLayoutManagerItemOption","_changeItemOption","_generateItemsFromData","_updateValidationGroupAndSummaryIfNeeded","_setLayoutManagerItemOption","_updateLockCount","postponedOperations","contentReadyHandler","tabPath","pathParts","resultPathParts","tryGetTabPath","tabLayoutManager","endPartIndex","_itemPath","_layoutManager","fullOptionName","formItems","layoutManagerItems","_tryChangeLayoutManagerItemOptions","_updateIsDirty","_getItemByField","resultItem","fieldParts","_getFieldParts","fieldPath","_getItemByFieldPath","subItemsField","_getSubItemField","isEqualToDataFieldOrNameOrTitleOrCaption","separatorIndex","resultPath","isItemWithSubItems","isGroupWithName","nameWithoutSpaces","pathNode","_searchItemInEverySubItem","groupItem","_isColCountChanged","oldScreenSize","newScreenSize","isChanged","editorSelector","delete","updateRunTimeInfoForEachEditor","editorAction","_updateData","isComplexData","_data","resetValues","editorsData","itemOption","allowUpdateItems","LABEL_POSTFIX","WRAPPER_POSTFIX","REPEAT_END_EDITOR","FREQUENCY_EDITOR","INTERVAL_EDITOR","REPEAT_ON_EDITOR","frequenciesMessages","frequencies","repeatEndTypes","getStylingModeFunc","RecurrenceRule","_recurrenceProcessor","_recurrenceRule","makeRules","makeRule","getRepeatEndRule","getRules","getDaysFromByDayRule","RecurrenceEditor","_getFirstDayOfWeek","_prepareEditors","_renderEditors","getEditorByField","getRecurrenceForm","_weekEditor","_repeatCountEditor","_repeatUntilDate","_editors","_createFreqEditor","_createIntervalEditor","_createRepeatOnLabel","_createRepeatOnEditor","_createRepeatEndEditor","_createByDayEditor","_createByMonthEditor","_createByMonthDayEditor","_daysOfWeekByRules","localDaysNames","itemsButtonGroup","_$repeatOnWeek","_getDefaultByDayValue","_changeEditorValue","monthsName","_monthOfYearByRules","_dayOfMonthByRules","repeatType","_renderRepeatCountEditor","_renderRepeatUntilEditor","_renderDefaultRepeatEnd","_repeatEndValueChangedHandler","_recurrenceForm","_disableRepeatEndParts","_setAriaDescribedBy","changeValueByVisibility","_handleDefaults","startDay","dayByRule","monthByRule","$editorTemplate","_getUntilValue","$editorWrapper","_$repeatCountEditor","_repeatCountValueChangeHandler","_formatUntilDate","repeatUntil","_$repeatDateEditor","_repeatUntilValueChangeHandler","getStartDateTimeZone","dateInLocaleTimeZone","_makeRepeatOnRule","_changeRepeatOnVisibility","_changeRepeatIntervalLabel","_changeEditorsValue","previousFreq","_changeDayOfWeekValue","_changeDayOfMonthValue","_changeMonthOfYearValue","_changeIntervalValue","_changeRepeatCountValue","_changeRepeatEndValue","_changeRepeatUntilValue","_days","untilDate","_freqEditor","_switchEditor","allowScroll","scrollTopPos","scrollBottomPos","TextArea","_updateInputHeight","_renderScrollHandler","_updateInputAutoResizeAppearance","_eventY","initScrollData","validateTarget","_needSkipEvent","prepareScrollData","_pointerDownHandler","_pointerMoveHandler","currentEventY","_resetDimensions","_getHeightDifference","getElementBoxParams","autoHeightResizing","heightDifference","_getBoundaryHeight","inputHeight","adjustedMaxHeight","needScroll","parseHeight","isAutoResizeEnabled","TAGBOX_TAG_DATA_KEY","TAGBOX_TAG_CLASS","TAGBOX_MULTI_TAG_CLASS","TAGBOX_CUSTOM_TAG_CLASS","TAGBOX_TAG_REMOVE_BUTTON_CLASS","TAGBOX_SINGLE_LINE_CLASS","TagBox","sendToList","_isCaretAtTheStart","_processKeyboardEvent","_isTagRemoved","$tagToDelete","_$focusedTag","_tagElements","_moveTagFocus","_preserveFocusedTag","_removeTagElement","isListItemFocused","isInputActive","_isEmpty","_scrollContainer","_updateTagsContainer","_$tagsContainer","_updateInputAriaActiveDescendant","clearOnBoundary","tagElements","$nextFocusedTag","_replaceFocusedTag","_clearTagFocus","_getScrollPosition","_getBorderPosition","_getFocusedTagPosition","isScrollLeft","scrollSign","maxFilterQueryLength","tagTemplate","hideSelectedItems","maxDisplayedTags","showMultiTagOnly","onMultiTagPreparing","multiline","_selectedItems","_initSelectAllValueChangedAction","_initMultiTagPreparingAction","_multiTagPreparingAction","_multiTagPreparingHandler","selectedCount","$tagContent","_toggleSubmitElement","$options","useDisplayText","_tagElementsCache","isSingleLineMode","_initTagTemplate","_getNewLabelId","actualId","newId","shouldRemove","_updateElementAria","newLabelId","_renderTagRemoveAction","_renderSingleLineScroll","_tagTemplate","isDefaultFieldTemplate","tagRemoveAction","_removeTagHandler","mouseWheelEvent","isMultiline","_tagContainerMouseWheelHandler","_renderPreventBlurOnInputClick","_renderMultiSelect","_selectAllValueChangeAction","_setListDataSourceFilter","_renderInputSize","_renderTags","shouldClearFilter","isEmptyInput","canTypeText","$calculationElement","includePaddings","_updateWidgetHeight","_multiTagRequired","_renderMultiTag","$tag","multiTagElement","_getFilter","creator","filterQueryLength","_getFilteredItems","_loadFilteredItemsPromise","FilterCreator","listSelectedItems","isListItemsLoaded","clientFilterFunction","selectedItemsAlreadyLoaded","_isDataSourceChanged","expand","extra","mappedItems","_createTagsData","isValueExprSpecified","filteredValues","filteredItem","filteredItemValue","loadItemPromises","_createTagData","_isGroupedData","_getItemsByValues","_getFilteredGroupedItems","_filteredGroupedItemsLoadPromise","operationId","_loadTagsData","tagData","isPlainDataUsed","_shouldGetItemsFromPlain","_valuesToUpdate","_getItemsFromPlain","_renderTagsImpl","_renderTagsCore","_renderEmptyState","_getSelectedItemsFromList","_filterSelectedItems","dataItem","_isInputReady","tagsContainer","_cleanTags","_renderTagsElements","$multiTag","_renderTag","_refreshTagElements","$tags","_applyTagTemplate","_getTag","itemModel","_getItemModel","tagId","_createTag","tagsLength","_removeTagWithUpdate","_removeTag","_lastValue","removedItem","_addTag","listSelectionChangeEvent","_valueIndex","useButtons","valueIndex","indexByValues","originalHeight","currentHeight","_resetListDataSourceFilter","_userFilter","valueGetterExpr","_dataSourceFilterExpr","_dataSourceFilterFunction","_getSortedListValues","listValues","_getListValues","existedItems","getIntersection","_defaultTagTemplate","_getSelectedItemsDifference","previousItems","previousItemsValuesMap","SWITCH_CLASS","SWITCH_WRAPPER_CLASS","SWITCH_CONTAINER_CLASS","SWITCH_INNER_CLASS","SWITCH_HANDLE_CLASS","SWITCH_ON_VALUE_CLASS","SWITCH_ON_CLASS","SWITCH_OFF_CLASS","SWITCH_ANIMATION_DURATION","Switch","_animateValue","switchedOnText","switchedOffText","_animating","_renderContainers","_$switchWrapper","_renderSwitchInner","_renderLabels","_getInnerOffset","_offsetDirection","_getHandleOffset","_$switchInner","_$switchContainer","_$handle","_$labelOn","_$labelOff","_setLabelsText","_getItemSizeFunc","swipeOffset","innerOffset","_swiping","fromInnerOffset","toInnerOffset","fromHandleOffset","toHandleOffset","fromInnerConfig","toInnerConfig","fromHandleConfig","toHandlerConfig","maxOffOffset","maxOnOffset","_feedbackDeferred","offsetDirection","toHandleConfig","pressed","_marginBound","Semaphore","isFree","take","APPOINTMENT_FORM_GROUP_NAMES","Main","Recurrence","E2E_TEST_CLASSES","AppointmentForm","scheduler","semaphore","dxForm","recurrenceRuleExpr","getDataAccessors","recurrenceEditor","triggerResize","changeSize","allowTimeZoneEditing","getEditingConfig","isRecurrence","mainItems","_createMainItems","createResourceEditorModel","_createRecurrenceEditor","createComponent","dataExprs","startDateExpr","endDateExpr","startTimeZoneEditor","startDateTimeZoneExpr","endTimeZoneEditor","endDateTimeZoneExpr","createTimeZoneDataSource","_createAppointmentAdapter","_dateBoxValueChanged","dateExpr","isNeedCorrect","validateAppointmentFormDate","dateEditor","_createTimezoneEditor","timeZoneExpr","secondTimeZoneExpr","isMainTimeZone","noTzTitle","normalizeEditorName","secondTimezoneEditor","_createDateBoxItems","getFirstDayOfWeek","createDateBoxEditor","_changeFormItemDateType","groupName","editorPath","getEditorPath","itemEditorOptions","newEditorOption","textExpr","allDayExpr","startDateEditor","endDateEditor","allDayStartDate","startDateWithStartHour","getStartDateWithStartHour","getStartDayHour","getCalculatedEndDate","updateRecurrenceItemVisibility","descriptionExpr","getTimeZoneCalculator","setEditorsType","startDateItemPath","endDateItemPath","startDateFormItem","endDateFormItem","startDateEditorOptions","endDateEditorOptions","updateRecurrenceEditorStartDate","expression","setEditorOptions","setTimeZoneEditorDataSource","updateFormData","rawStartDate","rawEndDate","normalizedName","POPUP_WIDTH","DEFAULT","FULLSCREEN","isMobile","TOOLBAR_LOCATION","getPopupToolbarItems","allowUpdating","doneClick","doneButton","cancelButton","isPopupFullScreenNeeded","getMaxWidth","loading","removeLoadPanel","viewPort","createLoadPanel","getValueExpr","resource","getDisplayExpr","getFieldExpr","fieldExpr","getWrappedDataSource","normalizeDataSourceOptions","createResourcesTree","leafIndex","make","currentGroupItem","nextGroupIndex","getPathToLeaf","tree","findLeafByIndex","_leaf","makeBranch","leaf","getCellGroups","getGroupsObjectFromGroupsArray","groupsArray","currentGroups","getAllGroups","isResourceMultiple","resources","resourceField","allowMultiple","filterResources","groupAppointmentsByResourcesCore","treeLeaves","getResourceTreeLeaves","hasGroupItem","resourceValue","wrapToArray","reduceResourcesTree","existingAppointments","ok","resourceTitle","resourceData","resourceGetter","resourceFromAppointment","getResourceColor","resourceLoaderMap","colorExpr","colorGetter","getOrLoadResourceItem","wrappedDataSource","filteredData","getAppointmentColor","resourceConfig","appointmentConfig","loadedResources","paintedResources","getPaintedResources","newGroups","useColorAsDefault","newResources","cellGroups","resourcesDataAccessors","groupId","createExpressions","compileSetter","loadResources","dataSourcePromise","getTransformedResourceData","displayGetter","hasEmpty","getNormalizedResources","APPOINTMENT_POPUP_CLASS","DAY_IN_MS","POPUP_CONFIG","ACTION_TO_APPOINTMENT","AppointmentPopup","lastEditData","saveChangesLocker","excludeInfo","_createPopupConfig","isToolbarVisible","_doneButtonClickHandler","popupElement","_createPopupContent","_onShowing","_updateForm","appointmentData","getAppointmentFormOpening","processActionResult","canceled","updatePopupFullScreenMode","_createForm","_createFormData","getResources","normalizedResources","_isReadOnly","isFullScreen","saveChangesAsync","isShowLoadPanel","validation","_showLoadPanel","hideLoading","shouldClearRecurrenceRule","_addMissingDSTTime","addAppointment","updateAppointment","sourceAppointment","updatedAppointment","saveEditDataAsync","_tryLockSaveChanges","endTime","inAllDayRow","resourceList","updateScrollPosition","_unlockSaveChanges","showLoading","formAppointmentAdapter","clonedAppointmentAdapter","_addMissingDSTShiftToDate","originFormDate","shiftDifference","FilterPosition","RemoteFilterCombiner","makeDateFilter","dateFilter","combineFilters","userFilter","serializeRemoteFilter","lastFilterValue","getUserFilter","trimMin","trimMax","STORE_EVENTS","AppointmentDataSource","setDataSource","_updatedAppointmentKeys","isDataSourceInit","_getStoreKey","cleanState","_initStoreChangeHandlers","_updatedAppointment","pushItems","pushItem","getUpdatedAppointment","getUpdatedAppointmentKeys","FilterStrategies","AppointmentFilterBaseStrategy","viewStartDayHour","viewEndDayHour","showAllDayPanel","_resolveOption","supportAllDayRow","viewDirection","dateRange","setDataAccessors","preparedItems","filterLoadedAppointments","supportMultiDayAppointments","hasAllDayAppointments","adapters","_createAllDayAppointmentFilter","_createCombinedFilter","filterOptions","checkIntersectViewport","useRecurrence","hasRecurrenceRule","appointmentTakesAllDay","appointmentTakesSeveralDays","isLongAppointment","_filterAppointmentByResources","getRecurrenceException","exceptions","_filterAppointmentByRRule","isVirtualScrolling","compareDateWithStartDayHour","severalDays","dateTimeFromDecimal","hiddenInterval","apptDuration","apptStartHour","apptStartMinutes","apptIntersectViewport","compareDateWithEndDayHour","_createAppointmentFilter","checkAppointmentResourceValues","resourceIndex","appointmentResourceValues","appointmentStartDate","appointmentEndDate","recurrenceProcessor","_appointmentPartInInterval","apptStartDayHour","apptEndDayHour","filterPreparedItems","filterAllDayAppointments","AppointmentFilterVirtualStrategy","hourMs","isCalculateStartAndEndDayHour","isAllDayWorkspace","showAllDayAppointments","endViewDate","getLastViewDateByEndDayHour","shiftedEndViewDate","getCompletedGroupsInfo","groupStartDate","groupEndDate","_getPrerenderFilterResources","hasAllDayPanel","hasGroupAllDayPanel","supportAllDayAppointment","combinedFilters","itemsToFilter","cellGroup","getCellsGroup","getResourcesDataByGroups","fieldNames","currentResourcesData","currentResource","currentItems","currentData","AppointmentDataProvider","appointmentDataSource","initFilterStrategy","filterStrategyName","getIsVirtualScrolling","getFilterStrategy","filterStrategy","getLoadedResources","getSupportAllDayRow","getViewType","getViewDirection","getDateRange","getViewDataProvider","updateDataAccessors","filterByDate","remoteFiltering","combineRemoteFilter","filterOption","calculateAppointmentEndDate","borderWidthStyles","WEIGHT_OF_SIDES","POPOVER_POSITION_ALIASES","POPOVER_DEFAULT_BOUNDARY_OFFSET","PopoverPositionController","_$arrow","_positionSide","updateTarget","hOffset","vOffset","isVerticalSide","_isVerticalSide","isHorizontalSide","_isHorizontalSide","arrowOffset","_isPopoverInside","_getContentBorderWidth","_getDisplaySide","weightSign","POSITION_FLIP_MAP","getEventNameByOption","getEventName","hideEvent","isSelector","shouldIgnoreHideEvent","getEventDelay","_clearEventsTimeouts","_timeouts","EVENT_HANDLER_NAME","detachEvent","Popover","arrowPosition","_renderArrow","isInteractive","_detachEvents","_isOutsideClick","shouldUpdateDimensions","_renderOverlayPosition","_resetOverlayPosition","_updateContentSize","contentPosition","resultLocation","_getSideByLocation","_togglePositionClass","_toggleFlippedClass","_renderArrowPosition","containerLocation","newContainerWidth","setWidth","newOverlayContentHeight","newPopupContentHeight","isFlippedByVertical","isFlippedByHorizontal","positionClass","isFlippedHorizontal","isFlippedVertical","arrowRect","arrowFlip","arrowLocation","sizeProperty","contentOffset","arrowSize","contentLocation","targetSize","finalArrowLocation","fullUpdate","_clearEventTimeout","Tooltip","_toggleAriaAttributes","_toggleAriaDescription","_contentId","tooltip","removeTooltipElement","removeTooltip","$tooltip","createTooltip","REDUCED_APPOINTMENT_POINTERENTER_EVENT_NAME","REDUCED_APPOINTMENT_POINTERLEAVE_EVENT_NAME","leave","Appointment","coloredElement","allowDrag","allowResize","reduced","resizableConfig","cellHeight","cellWidth","isDragSource","notifyObserver","subject","observer","invoke","funcName","_renderDragSourceClass","_getHorizontalResizingRule","reducedHandles","getResizableStep","_getVerticalResizingRule","_renderAppointmentGeometry","_renderEmptyClass","_renderReducedAppointment","_renderAllDayClass","_renderRecurrenceClass","_renderResizable","_setResourceColor","reducedPart","_renderAppointmentReducedIcon","_getEndDate","tooltipText","_createResizingConfig","AgendaAppointment","createPlainResourceListAsync","_renderResourceList","allDayText","getAppointmentLeftCell","relativeAppointmentRect","appointmentSettings","cellRowIndex","cellColumnIndex","getCellData","getAppointmentDateRange","getRelativeAppointmentRect","appointmentRect","parentAppointmentRect","cellInfo","isVerticalGroupedWorkSpace","DOMMetaData","DOMMetaTable","allDayPanelCellsMeta","dateTableCellsMeta","positionByMap","cellCountInRow","getAppointmentCellsInfo","considerTime","extendedOptions","appointmentLastCell","appointmentLastCellIndex","appointmentFirstCellIndex","appointmentRowIndex","appointmentFirstCell","getDateRangeHorizontalRTL","appointmentCellsAmount","appointmentColumnIndex","getDateRangeHorizontal","dblclickEvent","SchedulerAppointments","_virtualAppointments","isAgendaView","appointmentDataProvider","_appointmentClickTimeout","currentAppointment","_$currentAppointment","resizeOccur","moveAppointmentBack","dxResizable","_getAccessAppointments","sortedIndex","$nextAppointment","_getAppointmentByIndex","_resetTabIndex","$appointment","fixedContainer","allDayContainer","allowAllDayResize","onAppointmentDblClick","_collectorOffset","_clearDropDownItems","_clearDropDownItemsElements","_repaintAppointments","_renderDropDownAppointments","_attachAppointmentsEvents","_isAllDayAppointment","_isRepaintAppointment","_isRepaintAll","_applyFragment","_getAppointmentContainer","_onEachAppointment","isRepaintAll","needRemove","_clearItem","_renderByFragments","$commonFragment","$allDayFragment","renderFunction","_attachAppointmentDblClick","$allDayContainer","_initialSize","_initialCoordinates","_preventSingleAppointmentClick","_renderAppointmentTemplate","formatText","_currentAppointmentSettings","agendaSettings","targetedAppointmentData","createAgendaAppointmentLayout","leftLayoutContainer","rightLayoutContainer","marker","additionalContainer","createAppointmentLayout","$contentDetails","_processItemClick","isFakeClickEvent","_dblClickHandler","$targetAppointment","setting","_renderAppointment","_applyResourceDataAttr","skipResizing","virtual","deferredColor","_processVirtualAppointment","appointmentReduced","_resizableConfig","getResourceDataAccessors","agendaResourceProcessor","createListAsync","normalizeKey","itemSetting","_calculateResizableArea","updatedArea","coordinates","resizeAllDay","_getEndResizeAppointmentStartDate","shiftedStartDate","shiftedEndDate","_getDateRange","updateResizedAppointment","isVerticalViewDirection","modifiedAppointmentAdapter","appointmentInfo","deltaTime","renderingStrategyDirection","needCorrectDates","_correctStartDateByDelta","_correctEndDateByDelta","correctEndDate","visibleDayDuration","daysCount","tailOfPrevDays","correctedEndDate","correctStartDate","appointmentSetting","virtualAppointment","virtualGroupIndex","colors","buttonColor","virtualGroup","virtualItems","virtualCoordinates","$fragment","buttonWidth","buttonHeight","rtlOffset","onAppointmentClick","_isGroupCompact","_sortAppointmentsByStartDate","_processRecurrenceAppointment","skipLongAppointments","indexes","timezoneCalculator","recurrentDates","recurrentDateCount","appointmentPart","_applyStartDateToObj","_applyEndDateToObj","_processLongAppointment","splitAppointmentByDay","partCount","_reduceRecurrenceAppointments","recurrenceIndexes","_combineAppointments","additionalAppointments","dragEvent","coords","_removeDragSourceClassFromDraggedAppointment","isDeferred","setOuterWidth","setOuterHeight","originalStartDate","makeDate","maxAllowedDate","appointmentIsLong","currentEndDate","_checkStartDate","_checkEndDate","originalDate","dxSchedulerAppointment","_setDragSourceAppointment","$appointments","itemGroupIndex","itemStartDate","itemEndDate","appointmentInstance","updateResizableArea","$allResizableElements","horizontalResizables","resizableInst","DROP_DOWN_BUTTON_CLASS","DROP_DOWN_BUTTON_ACTION_CLASS","DROP_DOWN_BUTTON_TOGGLE_CLASS","selectedItemKey","useSelectMode","splitButton","showArrowIcon","onButtonClick","dropDownContentTemplate","buttonGroupOptions","_createActionClickAction","_createSelectionChangedAction","_compileKeyGetter","$listContainer","_listOptions","_escHandler","_getKey","storeKey","_renderButtonGroup","_updateArrowClass","_loadSelectedItem","_updateActionButton","_loadSingleDeferred","_lastSelectedItemData","cachedResult","_actionClickAction","_fireSelectionChangedAction","previousItem","_fireItemClickAction","_actionItem","_actionButtonConfig","_getButtonGroupItems","_buttonGroupItemClick","isActionButton","_buttonGroupOptions","buttonContent","$firstIcon","$textContainer","$secondIcon","_popupOptions","_buttonGroup","_upDownKeyHandler","_tabHandler","$popup","_updateAriaAttributes","elementAria","owns","_setButtonsAria","commonButtonAria","firstButtonAria","_getButtons","$buttonGroup","hasArrow","_getDisplayValue","_selectedItemKeyChanged","_updateButtonGroup","_actionButtonOptionChanged","newConfig","_selectModeChanged","_updateItemCollection","_updateDataSource","_updateKeyExpr","TOOLBAR_ITEMS","toggleItemFocusableElementTabIndex","isItemNotFocusable","$widget","itemInstance","getItemInstance","$focusTarget","MultiLineStrategy","_toolbar","_updateMenuVisibility","_renderMenuItems","_getMenuItems","_getItemsWidth","_hideOverflowItems","TOOLBAR_MENU_ACTION_CLASS","TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS","TOOLBAR_MENU_SECTION_CLASS","TOOLBAR_MENU_LAST_SECTION_CLASS","ToolbarMenuList","_setMenuRole","_getSections","sectionName","_updateSections","$sections","isAction","menuItemTemplate","DropDownMenu","extension","_button","closeOnClick","_initButtonClickAction","_buttonClickAction","_renderButton","_toggleMenuVisibility","_getListDataSource","_deferRendering","_updateFocusableItemsTabIndex","TOOLBAR_AUTO_HIDE_ITEM_CLASS","TOOLBAR_HIDDEN_ITEM","SingleLineStrategy","_renderOverflowMenu","_hasVisibleMenuItems","_renderMenuButtonContainer","$menu","_overflowMenuContainer","itemClickAction","_menu","renderMenuItems","_$overflowMenuContainer","isMenuVisible","_isMenuItem","_getHiddenItems","$hiddenItems","_restoreItems","hiddenItem","$itemMarkup","optionGetter","overflowGetter","itemVisible","functionsAsIs","itemOverflow","overflowItems","locateInMenu","Toolbar","menuContainer","overflowMenuVisible","_isMultiline","_layoutStrategy","_renderLayoutStrategy","showText","_isToolbarItem","SchedulerCalendar","_isMobileLayout","_overlay","_calendar","_renderOverlay","isMobileLayout","overlayType","_createOverlayContent","_getCalendarOptions","_createScrollable","getPreviousButtonOptions","clickHandler","_updateDateByDirection","previousButton","isPreviousButtonDisabled","_addEvent","getCalendarButtonOptions","_showCalendar","calendarButton","getNextButtonOptions","isNextButtonDisabled","_getCaption","_getNextDate","correctDateWithUnitBeginning","getPeriodStart","getWeekStart","getLastMonthDay","addDateInterval","MS_DURATION","DAY_DURATION","WEEK_DURATION","nextDay","nextWeek","isWeekend","getIntervalStartDate","getWorkWeekStart","getIntervalEndDate","periodEndDate","agendaDuration","nextPeriodStartDate","getPeriodEndDate","getNextPeriodStartDate","currentPeriodStartDate","nextMonth","workWeekStart","workDaysCount","getDateAfterWorkWeek","nextAgendaStart","subMS","currentPeriodEndDate","addMS","getNextMonthDate","currentMonthFirstDate","thatMonthFirstDate","thatMonthDuration","currentMonthMinDate","getDateMonthFormatter","isShort","monthType","formatMonthYear","getDateMonthYearFormatter","dateMonth","dateMonthFormat","formatCaptionByMonths","getDifferentYearCaption","firstDateText","lastDateDateText","getSameYearCaption","isDifferentMonthDates","useShortFormat","firstDateFormat","lastDateText","getCaptionText","getSameDateCaption","formatMonthViewCaption","sameMonth","getCaption","customizationFunction","getInterval","STEP_MAP","week","workWeek","agenda","getViewName","validateViews","isValidView","formatViews","viewName","getViewText","isOneView","selectedView","VIEW_SWITCHER_CLASS","getViewsAndSelectedView","isSelectedViewInViews","DEFAULT_ELEMENT","SchedulerHeader","intervalOptions","_useShortDateFormat","_createEventMap","eventMap","_getCalendarOptionUpdater","_createToolbarConfig","toolbarElement","_parseItem","_isDefaultItem","defaultElementType","getDropDownViewSwitcher","oneView","_updateCurrentView","viewSwitcher","getViewSwitcher","_renderCalendar","getDateNavigator","_callEvent","onCurrentViewChange","_updateCalendarValueAndCurrentDate","onCurrentDateChange","initialDate","getNextIntervalDate","dayDuration","_isMonth","_getDisplayedDate","useShortDateFormat","_hideCalendar","BaseStrategy","dateSettings","positionHelper","getPositionShift","getPositionShiftCallback","isVerticalGroupOrientation","isGroupedAllDayPanel","calculateCellPositions","groupIndices","isAllDayRowAppointment","isRecurrentAppointment","dateSetting","getCoordinateInfos","_prepareObject","recurrent","getCoordinatesByDateInGroup","dateSettingIndex","getCoordinatesByDate","validGroupIndex","findCellPositionInMap","getCellPosition","groupEdgeIndices","getGroupEdgeIndices","vMin","firstRowIndex","timeShift","getTimeShiftRatio","horizontalHMax","getHorizontalMax","verticalMax","getVerticalMax","cellPosition","hMax","vMax","validGroupIndices","cellCoordinates","isAllDayPanel","validPosition","appointmentDate","matchedCell","viewDataMap","dateTableMap","matchedCellStartDate","cellData","VirtualStrategy","isGroupIntersectDateInterval","createRecurrentAppointmentInfos","coordinate","CellPositionCalculator","getFormatType","formatDates","isSameDate","DateGeneratorBaseStrategy","isGroupedByDate","isVerticalOrientation","isDateAppointment","getIntervalDuration","allDayIntervalDuration","generate","itemGroupIndices","_getGroupIndices","appointmentList","_createAppointments","_getProcessedByAppointmentTimeZone","_canProcessNotNativeTimezoneDates","_getProcessedNotNativeTimezoneDates","_createGridAppointmentList","firstViewDates","_getAppointmentsFirstViewDate","_fillNormalizedStartDate","_cropAppointmentsByStartDayHour","_fillNormalizedEndDate","_needSeparateLongParts","_separateLongParts","shiftSourceAppointmentDates","appointmentOffsets","sourceOffsets_startDate","sourceOffsets_endDate","startDateOffsetDiff","endDateOffsetDiff","_createRecurrenceAppointments","resultEndTime","_getProcessedNotNativeDateIfCrossDST","newDateMinusOneHour","_getCommonOffset","diffStartDateOffset","diffEndDateOffset","newStartDate","newEndDate","testNewStartDate","testNewEndDate","normalizeEndDateByViewEnd","roundedEndViewDate","roundToHour","currentViewEndTime","normalizedEndDate","gridAppointmentList","gridAppointment","endDateOfPart","startDatePart","offsetDifference","_createExtremeRecurrenceDates","endViewDateByEndDayHour","daylightOffset","_createRecurrenceOptions","originalAppointmentStartDate","originalAppointmentEndDate","minRecurrenceDate","maxRecurrenceDate","shiftedMinRecurrenceDate","shiftedMaxRecurrenceDate","tableFirstDate","_getAppointmentFirstViewDate","idx","_getAppointmentResultDate","roundDateByStartDayHour","findAllDayGroupCellStartDate","findGroupCellStartDate","DateGeneratorVirtualStrategy","recurrentInfo","_updateGroupIndices","getGroupStartDate","appointmentCopy","viewDataGroupIndices","getGroupIndices","AppointmentSettingsGenerator","dateSettingsStrategy","_generateDateSettings","cellPositions","_calculateCellPositions","_prepareAppointmentInfos","infos","dateText","_getAppointmentDateText","createFormattedDateText","renderingStrategy","_renderingStrategy","getDropDownAppointmentWidth","getCollectorTopOffset","getCollectorLeftOffset","getAppointmentDefaultOffset","_isCompactTheme","getDynamicAppointmentCountPerCell","allDayCount","_getAppointmentDefaultOffset","_getAppointmentDefaultHeight","_getAppointmentMinCount","allDaySupported","appointmentCountPerCell","simple","_calculateDynamicAppointmentCountPerCell","getDropDownAppointmentHeight","_getAppointmentMaxWidth","_getAppointmentDefaultWidth","AppointmentPositioningStrategy","getDropDownButtonAdaptiveSize","allDayHeight","collectorWidth","_initPositioningStrategy","isAdaptive","maxAppointmentsPerCell","resizableStep","cellDurationInMinutes","leftVirtualCellCount","topVirtualCellCount","allowResizing","allowAllDayResizing","_correctCollectorCoordinatesInAdaptive","_positioningStrategy","AdaptivePositioningStrategy","getPositioningStrategy","getAppointmentMinSize","keepAppointmentSettings","getDeltaTime","initialSize","getAppointmentGeometry","needCorrectAppointmentDates","createTaskPositionMap","skipSorting","_maxAppointmentCountPerCell","_correctRtlCoordinates","leftVirtualWidth","topVirtualHeight","positionArray","_getSortedPositions","resultPositions","_getResultPositions","_getExtendedPositionMap","_getDeltaWidth","intervalWidth","initialWidth","initialAppointment","shiftAppointmentByViewOffset","generateAppointmentSettings","calculateAppointmentHeight","calculateAppointmentWidth","resultWidth","multiWeekAppointmentParts","initialRowIndex","initialColumnIndex","_needVerifyItemSize","currentMaxAllowedPosition","isAppointmentGreaterThan","_reduceMultiWeekAppointment","_getAppointmentParts","sourceAppointmentWidth","reducedWidth","_getAppointmentPartsPosition","appointmentParts","getAppointmentSettingsGenerator","isAppointmentTakesAllDay","_getCompactAppointmentParts","appointmentWidth","bound","etalon","comparisonParameters","cropAppointmentWidth","positionList","createItem","cellCount","_sortCondition","_getConditions","isSomeEdge","_isSomeEdge","columnCondition","_normalizeCondition","rowCondition","cellPositionCondition","_rowCondition","conditions","_columnCondition","_isItemsCross","firstItem","secondItem","areItemsInTheSameTable","areItemsAllDay","_getOrientation","_checkItemsCrossing","firstItemSide1","firstItemSide2","secondItemSide1","secondItemSide2","sortedArray","maxIndexInStack","stack","findFreeIndex","_skipSortedIndex","startNewStack","pushItemsInResult","_getMaxAppointmentCountPerCell","_findIndexByKey","iKey","jKey","iValue","jValue","positionCounter","mapLength","resultString","itemLength","_checkLongCompactAppointment","_splitLongCompactAppointment","_getMaxAppointmentCountPerCellByType","compactCount","compactPart","_getCompactLeftCoordinate","_adjustDurationByDaylightDiff","originalEndDate","daylightDiff","correctedDuration","_needAdjustDuration","_calculateDurationByDaylightDiff","_getCollectorLeftOffset","isApplyCompactAppointmentOffset","dropDownButtonWidth","rightOffset","_markAppointmentAsVirtual","countFullWidthAppointmentInCell","compactRender","supportCompactDropDownAppointments","_generateAppointmentCollectorIndex","getAppointmentDataCalculator","getVerticalAppointmentHeight","currentAppointmentCountInCell","resultMaxAppointmentsPerCell","dynamicAppointmentCountPerCell","_getDynamicAppointmentCountPerCell","maxAppointmentCountDisplayedInCell","maxAppointmentsCount","_customizeCoordinates","topOffset","appointmentHeight","_isAppointmentEmpty","_getAppointmentMinHeight","_getAppointmentMinWidth","_calculateGeometryConfig","overlappingMode","_getOffsets","appointmentDefaultOffset","_getAppointmentCount","_getDefaultRatio","unlimited","_getAppointmentHeightByTheme","_needVerticalGroupBounds","_needHorizontalGroupBounds","getAppointmentDurationInMs","apptStartDate","apptEndDate","msInHour","trimmedStartDate","trimmedEndDate","quantityOfDays","dayVisibleHours","appointmentDayHours","startHours","apptStartDelta","endHours","startDateField","endDateField","BaseRenderingStrategy","groupAppointmentByResources","_getCurrentViewOption","totalResourceCount","groupAppointmentsByResources","appointmentsByResources","calculateRows","groupedAppts","appts","recurrentIndexes","recurrenceBatch","getAppointmentsInstance","appointmentBatch","appt","_calculateGroupIndex","apptIndex","resultInd","countApptInGroup","replaceWrongAppointmentEndDate","needClearSettings","groupedAppointments","currentAppointments","groupResult","appointmentCount","appointmentIsRecurrence","_iterateRow","indexInRow","getDateByIndex","getStartViewDate","calculatedStartDate","wrappedOriginalStartDate","BaseAppointmentsStrategy","durationInCells","_customizeAppointmentGeometry","auto","itemLeft","deltaWidth","positionShift","getCellSize","cellSize","getCellHeight","getCellWidth","getAllDayHeight","getMaxAllowedPosition","getMaxAllowedHorizontalPosition","firstRow","getLastGroupCellPosition","PositionHelper","groupStrategy","GroupStrategyBase","GroupStrategyHorizontal","getDOMMetaDataCallback","getMaxPosition","viewPortGroupCount","getViewPortGroupCount","getOffsetByAllDayPanel","getGroupTop","maxAllowedPosition","_getMaxAllowedVerticalPosition","getRowCountInGroup","_getAllDayHeight","lastGroupRow","correctedGroupIndex","HorizontalAppointmentsStrategy","startDateWithTime","_getDurationInDays","getSkippedDaysCount","HOURS_IN_DAY","thenBy","HorizontalMonthLineRenderingStrategy","_getLeftPosition","fullWeekAppointmentWidth","getGroupWidth","_calculateMultiWeekAppointmentLeftOffset","_getChunkCount","fullChunksWidth","firstChunkWidth","weekWidth","rawFullChunksWidth","allChunksCount","viewRowIndex","_tryGetRowIndexInView","allowedChunksCount","positionStartDate","columnsCount","getColumnsCount","dataRange","dayDurationMs","timeFromStart","_getChunkWidths","_getTailChunkSettings","withoutFirstChunkWidth","leftPosition","tailChunkWidth","rtlPosition","hasTailChunk","chunkCount","tailChunkLeftPosition","chunkIndex","topPosition","isTailChunk","getCellCount","groupedDataMap","dateTableGroupedMap","deltaHeight","_getAllDayAppointmentGeometry","_getAdaptiveGeometry","_getVerticalAppointmentGeometry","isRecurring","appointmentBeginInCurrentView","isAppointmentTakesSeveralDays","currentSetting","resultHeight","multiDaysAppointmentParts","_isMultiViewAppointment","_reduceMultiDayAppointment","sourceAppointmentHeight","reducedHeight","currentSettingStartDate","currentSettingNormalizedEndDate","roundFloatPart","_getGroupHeight","_getGroupTopOffset","groupTop","allDayPanelOffset","_getTailHeight","appointmentGeometry","appointmentGroupTopOffset","currentPartTop","cellsDiff","hasTailPart","tailHeight","_getMinuteHeight","_calculateVerticalGeometryConfig","_customizeVerticalCoordinates","appointmentLeft","_getMaxWidth","durationInHours","skippedHours","skippedMinutes","minAppointmentCountPerCell","RENDERING_STRATEGIES","horizontalMonth","HorizontalMonthAppointmentsStrategy","horizontalMonthLine","HorizontalMonthLineAppointmentsStrategy","VerticalAppointmentsStrategy","VerticalRenderingStrategy","AgendaAppointmentsStrategy","AppointmentViewModelGenerator","initRenderingStrategy","RenderingStrategy","appointmentRenderingStrategyName","positionMap","getRenderingStrategy","shiftedViewModel","postProcess","unshiftViewModelAppointmentsByViewOffset","makeRenovatedViewModels","regularViewModels","allDayViewModels","compactOptions","prepareViewModel","compactViewModel","appointmentViewModel","compactViewModels","prepareCompactViewModels","regular","getCompactViewModelFrame","regularCompact","allDayCompact","resourceColor","processedAppointments","getAppointmentRenderingStrategyName","currentViewType","getCellDimensions","_workSpace","_getRenderingStrategyOptions","workspace","getWorkSpace","virtualScrollingDispatcher","cellCountInsideLeftVirtualCell","cellCountInsideTopVirtualRow","getDOMElementsMetaData","_isVerticalGroupedWorkSpace","_getRowCount","getVisibleDayDuration","createGetAppointmentColor","_dataAccessors","_allowResizing","_allowAllDayResizing","_getRealGroupOrientation","getEndViewDate","createAppointmentsMap","renderingStrategyOptions","_positionMap","_isDataChanged","_isAppointmentShouldAppear","_isSettingChanged","sourceSetting","createSettingsToCompare","newSettings","oldSettings","_getAssociatedSourceAppointment","sourceAppointments","_getDeletedAppointments","getRepaintedAppointments","isDataChanged","isSettingChanged","isAppointmentShouldAppear","getRenderingStrategyInstance","AppointmentTooltipInfo","targetedAppointment","APPOINTMENT_COLLECTOR_CLASS","COMPACT_APPOINTMENT_COLLECTOR_CLASS","APPOINTMENT_COLLECTOR_CONTENT_CLASS","CompactAppointmentsHelper","_createTemplate","_createCompactButton","_makeBackgroundColor","_makeBackgroundDarker","_createTooltipInfos","targetedAdapter","_onButtonClick","showAppointmentTooltipCore","_getExtraOptionsForTooltip","$appointmentCollector","_clickEvent","dragBehavior","_createTooltipDragBehavior","dropDownAppointmentTemplate","isButtonClick","clickEventArgs","_createEventArgs","$schedulerElement","workSpace","initialPosition","isSetCursorOffset","getItemSettings","itemSettings","_createDragBehaviorBase","_getCollectorOffset","_getCollectorRightOffset","_makeBackgroundColorCore","itemColors","backgroundColor","getOverflowIndicatorColor","_setPosition","_createCompactButtonElement","_renderTemplate","_initButtonTemplate","_getAppointmentTemplate","appointmentCollector","_createButtonTemplate","getAppointmentSettings","getAppointmentInfo","currentDataAccessors","dateGetter","dateSetter","DOM","getHeaderHeight","renovation","renderComponent","componentClass","subscribes","isCurrentViewAgenda","currentViewUpdated","currentDateUpdated","getOption","getWorkspaceOption","setCellDataCacheAlias","showAppointmentTooltip","getTargetedAppointment","hideAppointmentTooltip","showEditAppointmentPopup","targetedData","showAppointmentPopup","updateAppointmentAfterResize","_checkRecurringAppointment","_updateAppointment","_appointments","getUpdatedData","_getUpdatedData","updateAppointmentAfterDrag","newCellIndex","oldCellIndex","targetedRawAppointment","becomeAllDay","wasAllDay","movedBetweenAllDayAndSimple","isDragAndDropBetweenComponents","fromComponent","toComponent","onDeleteButtonPress","checkAndDeleteAppointment","getTextAndFormatDate","appointmentRaw","targetedAppointmentRaw","_createAppointmentTitle","getResizableAppointmentArea","getLayoutManager","horizontalGroupBounds","getGroupBounds","verticalGroupBounds","needRecalculateResizableArea","_getViewCountConfig","getMaxAppointmentCountPerCellByType","getRenderingStrategyDirection","updateAppointmentEndDate","renderCompactAppointments","_compactAppointmentsHelper","clearCompactAppointments","_getGroupCount","mapAppointmentFields","appointmentElement","dayHasAppointment","getAgendaVerticalStepHeight","getAgendaDuration","forceMaxAppointmentPerCell","onAgendaReady","$appts","applyClass","getTimezone","_getTimezoneOffsetByOption","getTargetedAppointmentData","getEndDayHour","getViewOffsetMs","removeDroppableCellClass","greaterThan","minimalValue","divisibleBy","divider","OptionsValidator","validatorName","OptionsValidatorErrorHandler","validatorNameToErrorCodeMap","globalErrorHandler","handleValidationResult","optionsValidatorResult","errorCodeArray","errorCode","logError","valueSelector","createValidatorRule","ruleFunc","mustBeInteger","isInteger","mustBeGreaterThan","strict","mustBeInRange","endDayHourMustBeGreaterThanStartDayHour","visibleIntervalMustBeDivisibleByCellDuration","visibleInterval","cellDurationMustBeLessThanVisibleInterval","maximalValue","lessThan","SchedulerOptionsValidator","startDayHourAndEndDayHour","cellDurationAndVisibleInterval","GLOBAL_ERROR_HANDLER","SchedulerOptionsValidatorErrorsHandler","PromiseItem","AgendaResourceProcessor","resourceDeclarations","_resourceDeclarations","resourceMap","appointmentPromiseQueue","_pushAllResources","_onPullResource","valueName","displayName","_hasResourceDeclarations","_tryPullResources","resultAsync","initializeState","TOOLTIP_APPOINTMENT_ITEM","TOOLTIP_APPOINTMENT_ITEM_CONTENT","TOOLTIP_APPOINTMENT_ITEM_CONTENT_SUBJECT","TOOLTIP_APPOINTMENT_ITEM_CONTENT_DATE","TOOLTIP_APPOINTMENT_ITEM_MARKER","TOOLTIP_APPOINTMENT_ITEM_MARKER_BODY","TOOLTIP_APPOINTMENT_ITEM_DELETE_BUTTON_CONTAINER","TOOLTIP_APPOINTMENT_ITEM_DELETE_BUTTON","TooltipStrategyBase","asyncTemplatePromises","_tooltip","_extraOptions","dataList","extraOptions","_canShowTooltip","_showCore","_shouldUseTarget","_createTooltip","_prepareBeforeVisibleChanged","_getContentTemplate","listElement","_createList","isAlreadyShown","_onShown","_createListOption","_onListRender","_onListItemClick","_onListItemContextMenu","_createTooltipElement","itemListContent","_createItemListContent","_getItemListTemplateName","getAppointmentTemplate","_createFunctionTemplate","isButtonClicked","isEmptyDropDownAppointmentTemplate","_isEmptyDropDownAppointmentTemplate","rej","createPromise","editing","_createItemListMarker","_createItemListInfo","getAppointmentDisabled","allowDeleting","_createDeleteButton","$marker","$markerBody","$date","$deleteButton","APPOINTMENT_TOOLTIP_WRAPPER_CLASS","DesktopTooltipStrategy","_getBoundary","isAppointmentInAllDayPanel","getScrollableContainer","contextMenuEventArgs","createEventArgs","asyncGeneratorStep","CLASS","MAX_HEIGHT","MAX_WIDTH","animationConfig","MobileTooltipStrategy","setTooltipConfig","isTabletWidth","listHeight","currentMaxHeight","createTabletDeviceConfig","createPhoneDeviceConfig","_throw","ROW_SELECTOR","tableCreator","insertAllDayRow","allDayElements","tableBody","makeTable","templateCallbacks","rowCountInGroup","allDayElementIndex","isLastRowInGroup","rowClass","td","cellClass","cellDataObject","dataKey","setAdditionalClasses","additionalTemplateData","getCellDate","getCellTextClass","makeGroupedTable","_makeVerticalGroupedRows","_makeHorizontalGroupedRows","makeGroupedTableFromJSON","table","cellStorage","cellTag","childrenField","titleField","groupTableClass","groupRowClass","groupCellClass","groupCellCustomContent","createCell","childCount","cellText","generateCells","cells","rowspans","prev","_makeFlexGroupedRowCells","repeatByDate","groupHeaderClass","cellTemplates","cellsArray","cellIterator","groupHeaderRowClass","_i2","currentColumnLength","_makeGroupedRowCells","maxCellCount","groupHeaderContentClass","getMemoizeScrollTo","getScrollableInstance","lastParams","normalizedParams","isSameParams","AllDayPanelTitle","AllDayPanelTitleComponent","DefaultSizes","DATE_TABLE_CELL_CLASS","CellBaseDefaultProps","contentTemplateProps","CellBase","DateTableCallBaseDefaultProps","otherMonth","firstDayOfMonth","DateTableCellBase","dataCellTemplateProps","getDataCellTemplateProps","viewContext","dataCellTemplate","cellSizeHorizontalClass","cellSizeVerticalClass","DataCellTemplateComponent","AllDayPanelCell","OrdinaryCellDefaultProps","OrdinaryCell","HeaderCell","VirtualCellDefaultProps","isHeaderCell","VirtualCell","modifiedStyles","RowDefaultProps","leftVirtualCellWidth","rightVirtualCellWidth","isHeaderRow","Row","rightVirtualCellCount","hasRightVirtualCell","AllDayPanelTableBodyDefaultProps","viewData","AllDayPanelTableBody","cellGroupIndex","LayoutDefaultProps","groupedData","topVirtualRowCount","bottomVirtualRowCount","topVirtualRowHeight","bottomVirtualRowHeight","addDateTableClass","addVerticalSizesClassToRows","VirtualRowDefaultProps","cellsCount","VirtualRow","virtualCells","getVirtualCells","Table","getResultStyles","heightAdded","tableRef","virtualCellsCount","hasTopVirtualRow","hasBottomVirtualRow","resultStyles","AllDayTable","allDayPanelData","getAllDayPanelData","allDayPanel","DateTableBodyDefaultProps","DateTableBody","rowClasses","CellTemplateComponent","dateTable","fragmentKey","rowKey","cellKey","DateTableDefaultProps","DateTable","DateTableComponent","AllDayTableComponent","DateTableMonthCell","getContentTemplateProps","DateTableMonth","DateTableMonthComponent","GroupPanelBaseDefaultProps","groupPanelData","GroupPanelCellDefaultProps","GroupPanelRowDefaultProps","GroupPanelHorizontalCellDefaultProps","GroupPanelHorizontalCell","GroupPanelHorizontalRow","GroupPanelHorizontal","_groupPanelItems","getGroupPanelItems","colSpans","reduceRight","currentColSpans","nextColSpans","currentLevelGroupCount","previousColSpan","groupCountDiff","groupsRenderRow","resourceCellTemplate","ResourceCellTemplateComponent","GroupPanelVerticalCell","GroupPanelVerticalRow","GroupPanelVertical","GroupPanelDefaultProps","GroupPanel","GroupPanelComponent","DateHeaderText","_textCache","getTextParts","splitText","DateHeaderCellDefaultProps","isWeekDayCell","isTimeCellTemplate","DateHeaderCell","dateCellTemplate","timeCellTemplate","cellClasses","useTemplate","TimeCellTemplateComponent","DateCellTemplateComponent","DateHeaderDefaultProps","DateHeader","dateHeaderData","dataMap","dateHeaderRow","HeaderPanelDefaultProps","isRenderDateHeader","dateHeaderTemplate","HeaderPanel","DateHeaderTemplateComponent","HeaderPanelComponent","TimelineDateHeaderLayout","isMonthDateHeader","weekDayLeftVirtualCellCount","weekDayLeftVirtualCellWidth","weekDayRightVirtualCellCount","weekDayRightVirtualCellWidth","isWeekDayRow","validLeftVirtualCellCount","validRightVirtualCellCount","validRightVirtualCellWidth","validLeftVirtualCellWidth","HeaderPanelTimeline","HeaderPanelTimelineComponent","TimePanelCell","timeCellTemplateProps","getTimeCellTemplateProps","highlighted","TimePanelTable","timePanelData","TimePanelComponent","targetDraggable","sourceDraggable","DRAGGABLE","DRAG_EVENT_NAME","DRAGEND_EVENT_NAME","DRAG_ENTER_EVENT_NAME","dragEventEnter","DRAGEND_LEAVE_EVENT_NAME","dragEventLeave","POINTERDOWN_EVENT_NAME","KEYDOWN_EVENT_NAME","CLONE_CLASS","getMousePosition","ScrollHelper","_$scrollableAtPointer","_preventScroll","_scrollValue","_overFlowAttr","_sizeAttr","_scrollSizeProp","_clientSizeProp","_limitProps","updateScrollable","mousePosition","isScrollableFound","isTargetOverOverlayWrapper","isTargetOverOverlayContent","_trySetScrollable","_scrollSpeed","isScrolling","isScrollable","distanceToBorders","sensitivity","_calculateDistanceToBorders","_calculateScrollSpeed","areaBoundingRect","maxSpeed","scrollByStep","scrollableInstance","nextScrollPosition","_nextScrollPosition","dragMoveArgs","_dragMoveArgs","_dragMoveHandler","isOutsideScrollable","scrollableSize","ScrollAnimator","horizontalScrollHelper","_horizontalScrollHelper","verticalScrollHelper","_verticalScrollHelper","Draggable","dragMove","dragEnter","dragLeave","dragEnd","sourceEvent","_getSourceDraggable","_fireRemoveEvent","onDragStart","onDragMove","onDragEnd","onDragEnter","onDragLeave","onDragCancel","onCancelByEsc","onDrop","dragDirection","boundOffset","allowMoveByClick","dragTemplate","autoScroll","scrollSpeed","scrollSensitivity","_scrollAnimator","_initScrollTop","_initScrollLeft","_normalizeCursorOffset","_getNormalizedCursorOffset","_calculateElementOffset","elementOffset","dragElementOffset","$dragElement","dragElement","isCloned","_dragElementIsCloned","cursorOffset","normalizedCursorOffset","currentLocate","_initialLocate","initialOffset","_initPosition","_startPosition","_startAnimator","_stopAnimator","_getItemsSelector","itemsSelector","checkDropTarget","targetGroup","sourceGroup","_getScrollable","_dragEnterHandler","_dragLeaveHandler","_keydownHandler","_$dragElement","_getDragTemplateArgs","_createDragElement","_getContainer","_resetDragElement","_toggleDraggingClass","_resetSourceElement","_toggleDragSourceClass","_$sourceElement","_getDraggableElement","$sourceElement","_getSourceElement","needSkipEvent","_getAction","_getEventArgs","_isValidElement","dragInProgress","dragStartArgs","_getDragStartArgs","_setSourceDraggable","_hasClonedDraggable","_getScrollableScrollTop","_getScrollableScrollLeft","_getDraggableElementOffset","_setGestureCoverCursor","isFixedPosition","_getAreaOffset","_getBoundOffset","areaWidth","areaHeight","startOffset_left","startOffset_top","quadToObject","initialOffsetX","initialOffsetY","initScrollTop","initScrollLeft","eventArgs","_getTargetDraggable","allObjects","elementsFromPoint","_defaultActionArgs","fromData","toData","_revertItemToInitialPosition","dragEndEventArgs","dropEventArgs","needRevertPosition","_resetDragOptions","_isTargetOverAnotherDraggable","$sourceDraggableElement","$targetDraggableElement","firstWidgetElement","isTargetOverItself","isTargetOverNestedDraggable","_fireDragEnterEvent","_setTargetDraggable","_fireDragLeaveEvent","_resetTargetDraggable","_keydownEscapeHandler","dragCancelEventArgs","currentGroup","_resetSourceDraggable","AppointmentDragBehavior","dragBetweenComponentsPromise","getAppointmentElement","getDroppableCellIndex","getCellIndexByCoordinates","removeDroppableClasses","dataFromTooltip","itemDataFromTooltip","itemDataFromGrid","createDragStartHandler","appointmentDragging","createDragMoveHandler","createDragEndHandler","updatedData","toItemData","onRemove","isSchedulerComponent","_getDragBehavior","createDropHandler","onAdd","addTo","updateDragSource","currentSettings","DATE_TIME_SHADER_CLASS","_dateTableScrollable","initShaderElements","renderShader","_shader","shader","_$shader","createShader","DATE_TIME_SHADER_ALL_DAY_CLASS","CurrentTimeShader","shaderHeight","_getShaderHeight","_getShaderMaxHeight","isSolidShader","_renderGroupedByDateShaderParts","_renderShaderParts","shaderWidth","_getShaderWidth","_renderTopShader","_renderBottomShader","_renderAllDayShader","bottomShaderWidth","$shader","_$topShader","_getShaderTopOffset","_getShaderOffset","_$bottomShader","_$allDayIndicator","_$allDayPanel","getGroupedStrategy","getShaderOffset","getShaderTopOffset","getShaderHeight","getShaderMaxHeight","getShaderWidth","CellsSelectionController","handleArrowClick","nextCellIndices","focusedCellPosition","edgeIndices","getCellDataByPosition","isAllDayPanelCell","getCellFromNextRowPosition","getCellFromNextColumnPosition","currentCellData","moveToCell","nextRowIndex","lastRowIndex","isMultiSelection","firstColumnIndex","lastColumnIndex","nextColumnIndex","_processEdgeCell","validColumnIndex","validRowIndex","isValidRowIndex","_nextRowIndex","_isValidRowIndex","isMultiSelectionAllowed","focusedCellData","nextFocusedCellData","isVirtualCell","_isValidNextFocusedCell","nextAllDay","CellsSelectionState","_viewDataProvider","_focusedCell","_selectedCells","_firstSelectedCell","_prevFocusedCell","_prevSelectedCells","focusedCell","setFocusedCell","setSelectedCells","lastCellCoordinates","firstCellCoordinates","isLastCellAllDay","firstCell","lastCell","getCellsBetween","setSelectedCellsByData","selectedCellsData","getSelectedCells","releaseSelectedAndFocusedCells","releaseSelectedCells","releaseFocusedCell","_prevFirstSelectedCell","restoreSelectedAndFocusedCells","clearSelectedAndFocusedCells","DOCUMENT_SCROLL_EVENT_NAMESPACE","scrollingOrientations","DefaultScrollingOrientation","VirtualScrollingDispatcher","_rowHeight","_cellWidth","_createVirtualScrollingBase","verticalVirtualScrolling","_verticalVirtualScrolling","horizontalVirtualScrolling","_horizontalVirtualScrolling","getSchedulerHeight","getSchedulerWidth","rowHeight","outlineCount","getScrolling","viewportWidth","getViewWidth","getWindowWidth","viewportHeight","getViewHeight","getWindowHeight","verticalScrollingState","virtualItemCountBefore","horizontalScrollingState","cellCountInsideRightVirtualCell","virtualItemCountAfter","topVirtualRowsCount","leftVirtualCellsCount","virtualItemsCount","virtualRowOffset","virtualItemSizeBefore","virtualCellOffset","scrollingState","scrollingOrientation","scrolling","verticalScrollingAllowed","horizontalScrollingAllowed","setViewOptions","itemSize","viewportSize","getRenderState","verticalRenderState","horizontalRenderState","minCellWidth","getCellMinWidth","calculateCoordinatesByDataAndPosition","isCalculateTime","isVerticalDirectionView","timeToScroll","cellStartTime","cellEndTime","scrollInCell","getScrollableOuterWidth","_onScrollHandler","createVirtualScrolling","isVerticalVirtualScrollingCreated","isHorizontalVirtualScrollingCreated","VerticalVirtualScrolling","HorizontalVirtualScrolling","isAttachWindowScrollEvent","attachScrollableEvents","_attachWindowScroll","createAction","handleOnScrollEvent","verticalStateChanged","updateState","horizontalStateChanged","updateRender","isForce","needUpdateVertical","reinitState","needUpdateHorizontal","updateGrid","VirtualScrollingBase","defaultState","_itemSize","_itemSizeChanged","prevPosition","outlineCountBefore","outlineCountAfter","virtualItemSizeAfter","outlineSizeBefore","outlineSizeAfter","maxScrollPosition","getTotalItemCount","needUpdateState","isStartIndexChanged","_validateAndSavePosition","currentItemsCount","_correctPosition","itemsInfoBefore","_calcItemInfoBefore","itemsDeltaBefore","_calcItemDeltaBefore","itemCountWithAfter","_calcItemInfoAfter","itemCountBefore","_updateStateCore","isForceUpdate","itemInfoBefore","prevVirtualItemSizeBefore","prevVirtualItemSizeAfter","prevOutlineSizeBefore","prevOutlineSizeAfter","isAppend","isPrepend","_updateStateVirtualItems","prevTopPosition","getTotalRowCount","startRowIndex","getTotalCellCount","startCellIndex","VirtualScrollingRenderer","_workspace","_renderAppointmentTimeoutID","getRenderTimeout","_renderGrid","_renderAppointments","renderWorkSpace","renderTimeout","updateAppointments","prepareCellIndexes","inAllDay","_getCellCount","getGroupIndex","groupByDay","calculateHeaderCellRepeatCount","insertAllDayRowsIntoDateTable","calculateTimeCellRepeatCount","getWorkSpaceMinWidth","getTimePanelWidth","getAllDayOffset","getGroupCountClass","getLeftOffset","_createGroupBoundOffset","startCell","endCell","extraOffset","_getGroupedByDateBoundOffset","$cells","lastCellIndex","getGroupBoundsOffset","currentCellGroup","groupRowLength","groupStartPosition","groupEndPosition","shiftIndicator","$indicator","_getIndicatorOffset","horizontalOffset","_calculateGroupByDateOffset","_calculateOffset","getIndicatorOffset","getRoundedCellWidth","getIndicationHeight","getIndicationWidth","getScrollableScrollTop","addAdditionalGroupCellClasses","applyUnconditionally","_addLastGroupCellClass","_addFirstGroupCellClass","_getWorkSpaceWidth","workspaceContainerWidth","getGroupTableWidth","$firstCell","$lastCell","dayHeight","headerRowHeight","_$headerPanelContainer","bottomOffset","_groupBoundsOffset","tableOffset","verticalOffset","getWorkSpaceLeftOffset","DateHeaderDataGenerator","_viewDataGenerator","getCompleteDateHeaderMap","completeViewDataMap","isGenerateWeekDaysHeaderData","weekDaysRow","_generateWeekDaysHeaderRowMap","dateRow","_generateHeaderDateRow","getCellCountInDay","horizontalGroupCount","datesRepeatCount","daysInView","daysInInterval","headerCellTextFormat","cellCountInGroupRow","slicedByColumnsData","shouldShiftDatesForHeaderText","getHeaderCellText","headerIndex","additionalOptions","validDate","generateDateHeaderData","completeDateHeaderMap","isProvideVirtualCellsWidth","weekDayRowConfig","validCellWidth","_generateDateHeaderDataRow","datesRowConfig","actualCellCount","finalLeftVirtualCellCount","finalRightVirtualCellCount","GroupedDataMapProvider","viewDataGenerator","viewOptions","generateGroupedDataMap","_viewOptions","getFirstGroupRow","getGroupEndDate","lastRow","getLastGroupRow","isFindByDate","getGroupFromDateTableGroupMap","checkCellStartDate","secondMin","secondMax","intervalsOverlap","firstMin","firstMax","startDateVerticalSearch","startDateHorizontalSearch","isAppointmentRender","allDayPanelGroupedMap","originCellData","_isSameGroupIndexAndIndex","isStartDateInCell","cellStartDate","cellEndDate","cellAllDay","originCellStartDate","originCellEndDate","cellSecondIntervalOffset","getCellSecondIntervalOffset","isCellCoversTwoIntervals","isStartDateInTwoIntervalsCell","nextHourCellStartDate","cellTimezoneDiff","timezoneUtils","cellNextHourTimezoneDiff","secondIntervalOffset","nextIntervalCellStartDate","nextIntervalCellEndDate","groupRow","shiftIntegerByModule","integerValue","moduleValue","normalizedInteger","TimePanelDataGenerator","getCompleteTimePanelMap","showCurrentTimeIndicator","realEndViewDate","getRowCount","allDayRowsCount","usualCellIndex","restCellProps","isTimeCellShouldBeHighlighted","isFirst","isLast","isLastCellInGroup","timeIndex","generateTimePanelData","completeTimePanelMap","correctedStartRowIndex","timePanelMap","previousGroupedData","_generateTimePanelDataFromMap","previousGroupIndex","currentGroupIndex","realToday","realStartViewDate","realTodayTimeMs","getLocalDateTimeInMs","startMs","endMs","getHighlightedInterval","cellTimeMs","isEvenCell","dateUtcMs","ViewDataGenerator","isWorkView","tableAllDay","_calculateStartViewDate","getCompleteViewDataMap","_setVisibilityDates","setHiddenInterval","groupsList","_generateAllDayPanelData","viewCellsData","_generateViewCellsData","_transformViewDataMapForHorizontalGrouping","_transformViewDataMapForVerticalGrouping","_transformViewDataMapForGroupingByDate","_addKeysToCells","nextGroupRow","nextGroupMap","cellsRow","correctedGroupList","correctedGroupCount","currentRow","totalColumnCount","currentViewDataMap","allDayPanelsCount","keyBase","currentAllDayPanelsCount","generateViewDataMap","sliceCells","sliceToIndex","allDayPanelMap","_isStandaloneAllDayPanel","getViewDataFromMap","cellDataRow","isAllDayRow","totalCellCount","totalRowCount","_generateCellsRow","cellDataValue","_isFirstGroupCell","_isLastGroupCell","prepareAllDayCellData","prepareCellData","getDateByCellIndices","getCellEndDate","isStartViewDateDuringDST","dateWithCorrectHours","getStartViewDateWithoutDST","newStartViewDate","columnCountBase","rowCountBase","_calculateCellIndex","millisecondsOffset","getMillisecondsOffset","offsetByCount","getTimeOffsetByColumnIndex","startViewDateTime","timeZoneDifference","getTimezonesDifference","firstDayOfWeekDiff","columnsInWeek","previousGroupedDataMap","previousOptions","previousRowIndex","currentRowIndex","markSelectedAndFocusedCells","renderOptions","selectedCells","nextDateTableMap","_markSelectedAndFocusedCellsInRow","dataRow","indexInSelectedCells","selectedCellIndex","selectedCellGroupIndex","selectedCellAllDay","selectedCellStartDate","_getIntervalDuration","columnCountInDay","durationMs","ViewDataGeneratorDay","ViewDataGeneratorMonth","isCurrentDate","isOtherMonth","_minVisibleDate","_maxVisibleDate","nextMonthDate","alignedFromDate","alignToFirstDayOfWeek","alignedToDate","DAYS_IN_WEEK","alignToLastDayOfWeek","weekCount","msDiff","MS_IN_DAY","calculateDaysBetweenDates","calculateAlignedWeeksBetweenDates","ViewDataGeneratorTimelineMonth","ViewDataGeneratorWeek","ViewDataGeneratorWorkWeek","getViewDataGeneratorByViewType","dayDiff","ViewDataProvider","_groupedDataMapProvider","isGenerateNewViewData","dateHeaderDataGenerator","timePanelDataGenerator","_transformRenderOptions","isGenerateTimePanelData","updateViewData","createGroupedDataMapProvider","viewDataMapWithSelection","restOptions","actualColumnIndex","getCellsByGroupIndexAndAllDay","rowsPerGroup","_getRowCountWithAllDayRows","isShowAllDayPanel","firstRowInGroup","lastRowInGroup","correctedFirstRow","correctedLastRow","getCellCountWithGroup","findGlobalCellPosition","currentAllDay","_compareDatesAndAllDay","includedDays","lastCellStart","daysAfterView","getViewEdgeIndices","isSameCell","firstCellData","secondCellData","firstStartDate","firstGroupIndex","firstAllDay","secondStartDate","secondGroupIndex","secondAllDay","getLastViewDate","getLastCellEndDate","lastEndDate","lastCellEndDate","endDateOfLastViewCell","_adjustEndDateByDaylightDiff","allDayRowCount","normalizeCellsOrder","firstIdx","lastIdx","cellMatrix","getCellsBetweenHorizontalView","getCellsBetweenVerticalView","matrixHeight","matrixWidth","inSegment","columnIdx","rowIdx","cellIdx","firstSelectedCell","lastSelectedCell","tableCreatorModule","WidgetObserver","WORKSPACE_VERTICAL_GROUP_TABLE_CLASS","TIME_PANEL_CELL_CLASS","ALL_DAY_PANEL_CLASS","ALL_DAY_TABLE_CLASS","ALL_DAY_TITLE_CLASS","ALL_DAY_TABLE_CELL_CLASS","WORKSPACE_WITH_MOUSE_SELECTION_CLASS","HORIZONTAL_SIZES_CLASS","VERTICAL_SIZES_CLASS","GROUP_HEADER_CLASS","DATE_TABLE_DROPPABLE_CELL_CLASS","SCHEDULER_WORKSPACE_DXPOINTERDOWN_EVENT_NAME","DragEventNames","ENTER","DROP","dragEventDrop","LEAVE","SCHEDULER_CELL_DXCLICK_EVENT_NAME","SCHEDULER_CELL_DXPOINTERDOWN_EVENT_NAME","SCHEDULER_CELL_DXPOINTERUP_EVENT_NAME","SCHEDULER_CELL_DXPOINTERMOVE_EVENT_NAME","CELL_DATA","DAY_MS","HOUR_MS","DRAG_AND_DROP_SELECTOR","CELL_SELECTOR","DEFAULT_WORKSPACE_RENDER_OPTIONS","renderComponents","timePanel","generateNewData","createDragBehaviorConfig","rootElement","isDefaultDraggingMode","enableDefaultDragging","disableDefaultDragging","getDroppableCell","getDateTables","isItemDisabled","appointmentIndex","isWideAppointment","isNarrowAppointment","dragElementContainer","boundingRect","newX","newY","isMoveUnderControl","dateTables","droppableCell","cellsSelectionState","_cellsSelectionState","selectedCellsOption","validSelectedCells","selectedCell","_getGroupIndexByResourceId","cellsSelectionController","_cellsSelectionController","_isShowAllDayPanel","verticalGroupTableClass","renovatedHeaderPanelComponent","selectedCellsElement","_getCellByData","_showPopup","onArrowPressed","_isRTL","_isHorizontalGroupedWorkSpace","nextCellData","_processNextSelectedCell","_moveToCell","_getFullCellData","nextCellPosition","_dom_getAllDayPanelCell","_dom_getDateCell","isNextCellAllDay","_setSelectedCellsStateAndUpdateSelection","$nextFocusedCell","nextCellCoordinates","updateCellsSelection","_updateSelectedCellDataOption","_hasAllDayClass","_isCellClick","_contextMenuHandled","generateRenderOptions","_isWorkSpaceWithCount","_isWorkspaceWithOddCells","createRAllDayPanelElements","_$allDayTitle","_$headerPanelEmptyCell","_dateTableScrollableConfig","_groupedStrategy","_needCreateCrossScrolling","_createCrossScrollingConfig","currentOnScroll","_onScroll","_scrollSync","sidebar","_headerScrollableConfig","_updateGroupTableHeight","_setTableSizes","_attachTableClasses","_getTotalCellCount","_$headerPanel","_$dateTable","_$allDayTable","_attachHeaderTableClasses","updateHeaderEmptyCellWidth","_getElementClass","isRenovatedRender","renovatedRenderSupported","_isVirtualModeOn","_initVirtualScrolling","_getVirtualScrollingDispatcherOptions","onDataSourceChanged","argument","_getDefaultGroupStrategy","_getToday","_getFormat","_setHorizontalGroupHeaderCellsHeight","_isRenderHeaderPanelEmptyCell","timePanelWidth","groupPanelWidth","_isGroupsSpecified","resourceTree","_getGroupIndexRecursively","areValuesEqual","_getViewStartByOptions","_calculateViewStartDate","_getHeaderDate","_firstDayOfWeek","cellSelector","_handleSelectedCellsClick","_getCoordinatesByCell","lastCellData","_createContextMenuAction","_contextMenuAction","_getGroupHeaderContainer","_$groupTable","_$thead","_getDateHeaderContainer","_getCalculateHeaderCellRepeatCount","_headerScrollable","_sidebarScrollable","_getTimePanelRowCount","_getCellCountInDay","_getTotalRowCount","includeAllDayPanelRows","_getGroupIndex","_attachTablesEvents","_attachDragEvents","_attachPointerEvents","_detachDragEvents","_isOutsideScrollable","preventDefaultDragging","isPointerDown","getWorkArea","_$dateTableContainer","getGroupedScrollableScrollTop","getScrollableScrollLeft","getHeaderPanelHeight","_$timePanel","_getCellCoordinatesByIndex","_getDateGenerationOptions","_getIntervalBetween","startDayTime","timeZoneOffset","fullInterval","_getDaysOfInterval","weekendsCount","_getWeekendsCount","_updateIndex","_getDroppableCell","_getDateTables","_getCellByCoordinates","_getCells","_getFirstAndLastDataTableCell","_getAllCells","_getGroupHeaderCells","_getScrollCoordinates","$dateTableScrollableElement","isTargetInAllDayPanel","isOutsideHorizontalScrollable","isOutsideVerticalScrollable","setCellDataCache","aliasKey","keepOriginalHours","_filterCellDataFields","_getDataByCell","_getVirtualRowOffset","_getVirtualCellOffset","getCellIndexByDate","timeInterval","$droppableCell","getDataByDroppableCell","getEndViewDateByEndDayHour","leftCoordinateOffset","topCoordinateOffset","topIndex","leftIndex","groupBounds","VerticalGroupedStrategy","getGroupBoundsVertical","getGroupBoundsHorizontal","getGroupBoundsRtlCorrection","$firstAndLastCells","getCellDataByCoordinates","getVisibleBounds","scrolledCellCount","needUpdateScrollPosition","_getCellsInViewport","trimmedTime","scrollableScrollTop","scrollableScrollLeft","fullScrolledRowCount","scrolledRowCount","fullScrolledColumnCount","scrolledColumnCount","scrollToTime","_isValidScrollDate","throwWarning","isScrollToAllDay","scrollableHeight","xShift","yShift","needApplyCollectorOffset","$cellElement","_getTimePanelCells","_getRDateTableProps","getR1ComponentsViewContext","selectedCellData","correctedSelectedCellData","_getDateTableDOMElementsInfo","_getAllDayPanelDOMElementsInfo","dateTableCells","_getDateTable","dateTableRect","_addCellMetaData","allDayCells","allDayAppointmentContainer","allDayPanelRect","cellMetaDataArray","parentRect","cellRect","_oldRender_getAllDayCellData","renderRWorkSpace","renderRHeaderPanel","renderRTimeTable","renderRDateTable","renderRAllDayPanel","renderRGroupPanel","_attachGroupCountClass","_detachGroupCountClass","_toggleAllDayVisibility","initDragBehavior","_createDragBehavior","$targetElement","allDayExpanded","allowMultipleCellSelection","indicatorUpdateInterval","shadeUntilCurrentTime","renovateRender","draggingMode","onScrollEnd","onRenderAppointments","onShowAllDayPanel","onSelectedCellsClick","schedulerHeight","schedulerWidth","_cleanWorkSpace","_cleanView","_removeAllDayElements","_initGrouping","_initGroupedStrategy","_createAllDayPanelElements","_toggleGroupByDateClass","_changeAllDayVisibility","_toggleWorkSpaceCountClass","_toggleHorizontalScrollClass","updateShowAllDayPanel","isHiddenAllDayPanel","_toggleGroupedClass","_toggleWorkSpaceWithOddCells","_renderView","_initPositionHelper","groupedStrategy","_toggleGroupingDirectionClass","HorizontalGroupedStrategy","_getDateTableCellClass","_getGroupHeaderClass","_initWorkSpaceUnits","_$headerTablesContainer","_$fixedContainer","_$allDayContainer","_$dateTableScrollableContent","_$sidebarScrollableContent","_initAllDayPanelElements","_allDayTitles","_allDayTables","_allDayPanels","_initDateTableScrollable","$dateTableScrollable","_createWorkSpaceElements","_createWorkSpaceScrollableElements","_createWorkSpaceStaticElements","_appendHeaderPanelEmptyCellIfNecessary","_$flexContainer","_createHeaderScrollable","_createSidebarScrollable","$headerScrollable","$timePanelScrollable","_addTableClass","_renderDateTimeIndication","_setIndicationUpdateInterval","_applyCellTemplates","_renderGroupHeader","VerticalShader","renderCurrentDateTimeLineAndShader","renderCurrentDateTimeIndication","_getDateHeaderTemplate","isUpdateScrollable","_cleanTableWidths","_$sidebarTable","_interval","_disposeRenovatedComponents","renovatedAllDayPanel","renovatedDateTable","renovatedTimePanel","renovatedGroupPanel","renovatedHeaderPanel","getFixedContainer","getAllDayContainer","$allDayTitle","_renderDateHeader","_renderTimePanel","_renderGroupAllDayPanel","_renderDateTable","_renderAllDayPanel","groupRows","_makeGroupRows","tableCreatorStrategy","_columnIndex","_templateIndex","_renderDateHeaderTemplate","templateIndex","panelCellIndex","validTemplateIndex","_getHeaderPanelCellClass","_getGroupsForDateHeaderTemplate","indexMultiplier","_renderTableBody","_getAllDayPanelCellClass","getData","_getTimeCellClass","_insertAllDayRowsIntoDateTable","fullValue","delayCellTemplateRendering","GROUP_TABLE_CLASS","SchedulerAgenda","WorkSpace","_startViewDate","_recalculateAgenda","_initGroupTable","_rowsIsEmpty","_renderNoData","_setGroupHeaderCellsHeight","_$noDataContainer","_removeEmptyRows","$cellContent","_getGroupRowHeight","createReducedResourcesTree","getGroupHeaderContentClass","cellTextElement","contentWrapper","_cleanCellDataCache","isIndicationAvailable","_prepareCellTemplateOptions","groupsOpt","isGroupedView","cellTemplateOpt","_$rows","fillTableBody","rowSize","cellDateNumber","cellDayName","$td","_getRowHeight","getStartDate","_setLastRowClass","_getTimePanelStartDate","baseHeight","_calculateRows","startDateHour","startDateMinutes","newData","isUpdateNeeded","_setSelectedCellsByCellData","isFirstShader","_customizeGroupedByDateShader","_customizeShader","_applyShaderWidth","indicationWidth","shaderLeft","getIndicationCellCount","integerPart","fractionPart","isFirstShaderPart","SCHEDULER_DATE_TIME_INDICATOR_CLASS","TIME_PANEL_CURRENT_TIME_CELL_CLASS","SchedulerWorkSpaceIndicator","SchedulerWorkSpace","isIndicationOnView","isIndicatorVisible","_renderIndicator","groupedByDate","_createIndicator","_getRtlOffset","_clearIndicatorUpdateInterval","_indicatorInterval","_isVerticalShader","_getIndicatorDuration","timeDiff","_cleanDateTimeIndicator","_isCurrentTimeHeaderCell","_getCurrentTimePanelCellIndices","cellIndices","rowCountPerGroup","currentTimeRowIndex","verticalGroupCount","currentIndices","_setCurrentTimeCells","timePanelCells","timePanelCellIndex","_cleanCurrentTimeCells","HEADER_PANEL_CELL_CLASS","HEADER_PANEL_WEEK_CELL_CLASS","SchedulerTimeline","_getWorkSpaceHeight","timelineConfig","_needRenderWeekHeader","_incrementDate","_getTimeDiff","_calculateDurationInCells","_getIndicationFirstViewDate","dayLightOffset","differenceInDays","_getWorkSpaceMinHeight","workspaceContainerHeight","firstViewDateTime","apptStart","fullDays","tailDuration","tailDelta","gapBeforeAppt","groupCellTemplates","HorizontalShader","currentTimeColumnIndex","cellsInGroup","$th","SchedulerTimelineDay","SchedulerTimelineMonth","SchedulerTimelineWeek","_getHeaderPanelCellWidth","SchedulerTimelineWorkWeek","SchedulerWorkSpaceDay","SchedulerWorkSpaceVertical","SchedulerWorkSpaceMonth","averageWidth","_setMonthClassesToCell","SchedulerWorkSpaceWeek","SchedulerWorkSpaceWorkWeek","WIDGET_CLASS","WIDGET_SMALL_CLASS","WIDGET_ADAPTIVE_CLASS","WIDGET_READONLY_CLASS","VIEWS_CONFIG","StoreEventNames","RECURRENCE_EDITING_MODE","Scheduler","customizeDateNavigatorText","appointmentTemplate","appointmentCollectorTemplate","allowAdding","allowDragging","recurrenceEditMode","onAppointmentRendered","onAppointmentContextMenu","onCellContextMenu","onAppointmentAdding","onAppointmentAdded","onAppointmentUpdating","onAppointmentUpdated","onAppointmentDeleting","onAppointmentDeleted","onAppointmentFormOpening","onAppointmentTooltipShowing","appointmentTooltipTemplate","appointmentPopupTemplate","useDropDownViewSwitcher","recurrenceExceptionExpr","_draggingMode","_appointmentTooltipOffset","_appointmentTooltipButtonsPosition","_appointmentTooltipOpenButtonText","_appointmentCountPerCell","_appointmentOffset","defaultElement","useDeferUpdateForTemplates","_filteredItems","_preparedItems","currentTimeZone","_timeZoneCalculator","span","_postponeDataSourceLoading","_reloadDataSource","_postponeResourceLoading","whenLoaded","resolveCallbacks","validateOptions","_updateOption","_header","_filterAppointmentsByDate","_getCurrentViewOptions","_allowDragging","_refreshWorkSpace","_headerConfig","callPostponedOperations","updateInstances","_createAppointmentPopupForm","normalizeViewOffsetValue","_getAppointmentRenderedAction","_appointmentTooltip","_readyToRenderAppointments","_getAppointmentsToRepaint","_initEditing","_editing","_bringEditingModeToAppointments","_cleanPopup","_updateExpression","_initAppointmentTemplate","_toggleAdaptiveClass","_isHorizontalVirtualScrolling","editingConfig","allowDelete","_isAgenda","_supportAllDayResizing","_isAllDayExpanded","contentReadyBase","fireContentReady","_workSpaceRecalculation","isFixedHeight","isFixedWidth","_toggleSmallClass","_appointmentPopup","_initAllDayPanel","_initExpressions","_customizeDataSourceLoadOptions","_asyncTemplatesTimers","_dataSourceLoadedCallback","_subscribes","_optionsValidator","_optionsValidatorErrorHandler","createAppointmentDataProvider","appointmentTooltip","dropDownAppointment","createGetter","_updatePreparedItems","getPreparedDataItems","dataItems","comparableStartDate","comparableEndDate","currentViewOptions","_filterAppointments","appointmentsMap","exprObj","_recurrenceDialog","hideAppointmentPopup","_renderMainContainer","AppointmentLayoutManager","AppointmentCollection","_appointmentsConfig","_getAppointmentTooltipOptions","_isDataSourceLoaded","_isDataSourceLoading","_initMarkupCore","_appointmentForm","createAppointmentForm","createAppointmentPopup","_mainContainer","_createResourceEditorModel","getResourceByField","_processActionResult","resourceItem","getWorkSpaceScrollableContainer","deletingOptions","fireOnAppointmentDeleting","processDeleteAppointment","_getExtraAppointmentTooltipOptions","_cleanWorkspace","_renderWorkSpace","_waitAsyncTemplate","_validateKeyFieldIfAgendaExist","countConfig","getAgendaResourceProcessor","getAppointmentDataProvider","_isDateAndTimeView","getCollectorOffset","getAppointmentDurationInMinutes","_getCurrentViewType","$workSpace","workSpaceComponent","workSpaceConfig","_workSpaceConfig","_all","_recalculateWorkspace","_getViewByName","horizontalVirtualScrollingAllowed","getFilteredItems","showAddAppointmentPopup","_isRenovatedRender","timer","getWorkSpaceScrollable","getHeader","singleAppointment","isDeleted","isPopupEditing","_excludeAppointmentFromSeries","_showRecurrenceChangeConfirm","editingMode","newRawAppointment","excludeFromRecurrence","singleRawAppointment","_editAppointmentData","_createRecurrenceException","_getSerializedDate","seriesText","occurrenceText","customDialog","getConvertedFromGrid","targetCell","getTargetCellData","resultedStartDate","timeInMs","targetCellStartDate","resultedEndDate","dateCopy","rawResult","setResourceToAppointment","resourcesSetter","rawTargetedAppointment","setTargetedAppointmentResources","displayStartDate","displayEndDate","onUpdatePrevented","updatingOptions","oldData","performFailAction","_expandAllDayPanel","storeAppointment","_onDataPromiseCompleted","actionOptions","resolveCallback","getActions","dayTimeStamp","startDateTimeStamp","endDateTimeStamp","getGroups","setResourceCallback","apptSettings","resultAppointment","createNewAppointment","newRawTargetedAppointment","newTargetedAppointment","isCreateAppointment","createPopupAppointment","saveChanges","_getAppointmentColor","currentAppointmentData","serializedAppointment","addingOptions","deleteAppointment","deleteRecurrence","hasAgendaView","isKeyExist","offsetFromOptions","_WidgetClass","dxScheduler","subscribableOptions","independentEvents","_defaults","defaultCurrentDate","defaultCurrentView","_expectedChildren","isCollectionItem","_templateProps","tmplOption","keyFn","_instance","propTypes","PropTypes","AppointmentDragging","OptionName","NestedOption","Editing","Resource","IsCollectionItem","Scrolling","View","ExpectedChildren","TemplateProps","compareAsc","dateLeft","dateRight","millisecondsInHour","_date","in","millisecondsInMinute","constructFrom"],"sourceRoot":""}