{"version":3,"sources":["webpack:///./node_modules/devextreme-vue/core/strategy/vue2/configuration.js","webpack:///./node_modules/devextreme/esm/data/abstract_store.js","webpack:///./node_modules/devextreme/esm/events/gesture/emitter.gesture.js","webpack:///./node_modules/devextreme/esm/events/utils/add_namespace.js","webpack:///./node_modules/devextreme/esm/events/utils/index.js","webpack:///./node_modules/devextreme/esm/renovation/component_wrapper/button.js","webpack:///./node_modules/devextreme/esm/renovation/ui/common/icon.js","webpack:///./node_modules/devextreme/esm/renovation/ui/common/ink_ripple.js","webpack:///./node_modules/devextreme/esm/renovation/ui/button.js","webpack:///./node_modules/devextreme/esm/renovation/ui/button.j.js","webpack:///./node_modules/devextreme/esm/ui/button.js","webpack:///./node_modules/devextreme/esm/core/component_registrator_callbacks.js","webpack:///./node_modules/devextreme/esm/core/component_registrator.js","webpack:///./node_modules/devextreme/esm/data/array_query.js","webpack:///./node_modules/devextreme/esm/ui/validation_message.js","webpack:///./node_modules/devextreme/esm/core/templates/empty_template.js","webpack:///./node_modules/devextreme/esm/ui/collection/ui.collection_widget.base.js","webpack:///./node_modules/devextreme/esm/ui/collection/ui.collection_widget.edit.js","webpack:///./node_modules/devextreme/esm/core/templates/template_engine_registry.js","webpack:///./node_modules/devextreme/esm/core/templates/template_engines.js","webpack:///./node_modules/devextreme/esm/core/templates/template.js","webpack:///./node_modules/devextreme/esm/core/utils/template_manager.js","webpack:///./node_modules/devextreme-vue/core/extension-component.js","webpack:///./node_modules/devextreme-vue/core/children-processing.js","webpack:///./node_modules/devextreme/esm/core/utils/ready_callbacks.js","webpack:///./node_modules/devextreme/esm/ui/drop_down_editor/utils.js","webpack:///./node_modules/@devextreme/runtime/esm/inferno/effect_host.js","webpack:///./node_modules/@devextreme/runtime/esm/inferno/base_component.js","webpack:///./node_modules/@devextreme/runtime/esm/inferno/create_context.js","webpack:///./node_modules/@devextreme/runtime/esm/inferno/effect.js","webpack:///./node_modules/@devextreme/runtime/esm/inferno/portal.js","webpack:///./node_modules/@devextreme/runtime/esm/inferno/re_render_effect.js","webpack:///./node_modules/@devextreme/runtime/esm/inferno/mocked/shared.js","webpack:///./node_modules/@devextreme/runtime/esm/inferno/mocked/hydrate.js","webpack:///./node_modules/@devextreme/runtime/esm/inferno/render_template.js","webpack:///./node_modules/@devextreme/runtime/esm/inferno/normalize_styles.js","webpack:///./node_modules/devextreme/esm/ui/load_panel.js","webpack:///./node_modules/devextreme/esm/core/utils/queue.js","webpack:///./node_modules/devextreme/esm/data/data_source/operation_manager.js","webpack:///./node_modules/devextreme/esm/data/data_source/data_source.js","webpack:///./node_modules/devextreme/esm/core/utils/icon.js","webpack:///./node_modules/devextreme/esm/core/utils/html_parser.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.base.js","webpack:///./node_modules/devextreme/esm/ui/list/item.js","webpack:///./node_modules/devextreme/esm/ui/themes.js","webpack:///./node_modules/devextreme/esm/ui/themes_callback.js","webpack:///./node_modules/devextreme-vue/core/index.js","webpack:///./node_modules/devextreme/esm/events/drag.js","webpack:///./node_modules/devextreme-vue/core/config.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.decorator_registry.js","webpack:///./node_modules/devextreme/esm/renovation/utils/get_computed_style.js","webpack:///./node_modules/devextreme/esm/core/inferno_renderer.js","webpack:///./node_modules/devextreme/esm/renovation/utils/shallow_equals.js","webpack:///./node_modules/devextreme/esm/renovation/component_wrapper/utils/utils.js","webpack:///./node_modules/devextreme/esm/renovation/component_wrapper/common/template_wrapper.js","webpack:///./node_modules/devextreme/esm/renovation/component_wrapper/utils/update_props_immutable.js","webpack:///./node_modules/devextreme/esm/renovation/component_wrapper/common/component.js","webpack:///./node_modules/devextreme/esm/ui/editor/editor.js","webpack:///./node_modules/devextreme/esm/renovation/utils/subscribe_to_event.js","webpack:///./node_modules/devextreme/esm/core/utils/version.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/templates-manager.js","webpack:///./node_modules/devextreme/esm/core/utils/resize_callbacks.js","webpack:///./node_modules/devextreme/esm/renovation/common/config_provider.js","webpack:///./node_modules/devextreme/esm/renovation/utils/resolve_rtl.js","webpack:///./node_modules/devextreme/esm/renovation/ui/common/widget.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.scrollable.js","webpack:///./node_modules/devextreme/esm/ui/drop_down_editor/ui.drop_down_button.js","webpack:///./node_modules/devextreme/esm/ui/drop_down_editor/ui.drop_down_editor.js","webpack:///./node_modules/devextreme/esm/core/http_request.js","webpack:///./node_modules/devextreme/esm/core/utils/ajax.js","webpack:///./node_modules/devextreme/esm/events/short.js","webpack:///./node_modules/devextreme/esm/core/action.js","webpack:///./node_modules/devextreme/esm/data/errors.js","webpack:///./node_modules/devextreme/esm/ui/text_box/utils.caret.js","webpack:///./node_modules/devextreme/esm/ui/text_box/utils.support.js","webpack:///./node_modules/devextreme/esm/ui/text_box/ui.text_editor.mask.rule.js","webpack:///./node_modules/devextreme/esm/ui/text_box/ui.text_editor.clear.js","webpack:///./node_modules/devextreme/esm/ui/text_box/texteditor_button_collection/custom.js","webpack:///./node_modules/devextreme/esm/ui/text_box/texteditor_button_collection/index.js","webpack:///./node_modules/devextreme/esm/ui/text_box/ui.text_editor.label.js","webpack:///./node_modules/devextreme/esm/ui/text_box/ui.text_editor.base.js","webpack:///./node_modules/devextreme/esm/ui/text_box/ui.text_editor.mask.strategy.base.js","webpack:///./node_modules/devextreme/esm/ui/text_box/ui.text_editor.mask.strategy.default.js","webpack:///./node_modules/devextreme/esm/ui/text_box/ui.text_editor.mask.strategy.input_events.js","webpack:///./node_modules/devextreme/esm/ui/text_box/ui.text_editor.mask.js","webpack:///./node_modules/devextreme/esm/ui/text_box/ui.text_editor.js","webpack:///./node_modules/devextreme/esm/renovation/ui/common/base_props.js","webpack:///./node_modules/devextreme/esm/ui/collection/ui.collection_widget.live_update.js","webpack:///./node_modules/devextreme/esm/ui/collection/ui.collection_widget.edit.strategy.js","webpack:///./node_modules/devextreme/esm/ui/collection/ui.collection_widget.edit.strategy.plain.js","webpack:///./node_modules/devextreme/esm/renovation/ui/overlays/validation_message.js","webpack:///./node_modules/devextreme/esm/renovation/ui/editors/common/editor.js","webpack:///./node_modules/devextreme/esm/ui/overlay/z_index.js","webpack:///./node_modules/devextreme/esm/events/core/emitter_registrator.js","webpack:///./node_modules/devextreme/esm/core/utils/window.js","webpack:///./node_modules/devextreme/esm/events/core/event_registrator.js","webpack:///./node_modules/devextreme/esm/core/templates/template_base.js","webpack:///./node_modules/core-js/modules/es.string.trim.js","webpack:///./node_modules/devextreme/esm/animation/easing.js","webpack:///./node_modules/devextreme/esm/animation/fx.js","webpack:///./node_modules/devextreme/esm/core/memorized_callbacks.js","webpack:///./node_modules/devextreme/esm/ui/widget/selectors.js","webpack:///./node_modules/devextreme/esm/core/devices.js","webpack:///./node_modules/devextreme/esm/animation/frame.js","webpack:///./node_modules/devextreme/esm/ui/validation_engine.js","webpack:///./node_modules/devextreme/esm/data/data_source/utils.js","webpack:///./node_modules/devextreme/esm/core/dom_adapter.js","webpack:///./node_modules/devextreme/esm/ui/text_box/text_box.js","webpack:///./node_modules/devextreme/esm/ui/text_box.js","webpack:///./node_modules/devextreme/esm/core/utils/dom.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/animator.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue3/index.js","webpack:///./node_modules/inferno-create-element/dist/index.esm.js","webpack:///./node_modules/devextreme/esm/core/renderer_base.js","webpack:///./node_modules/devextreme/esm/core/renderer.js","webpack:///./node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_element_location_internal.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.scrollable.old.js","webpack:///./node_modules/devextreme/esm/core/templates/function_template.js","webpack:///./node_modules/devextreme-vue/core/helpers.js","webpack:///./node_modules/devextreme/esm/ui/editor/ui.data_expression.js","webpack:///./node_modules/devextreme/esm/ui/drop_down_editor/ui.drop_down_list.js","webpack:///./node_modules/devextreme/esm/ui/select_box.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/errors.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.scroll_view.native.pull_down.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.scroll_view.native.swipe_down.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.scroll_view.simulated.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.scroll_view.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view.js","webpack:///./node_modules/devextreme/esm/data_helper.js","webpack:///./node_modules/devextreme/esm/core/utils/style.js","webpack:///./node_modules/devextreme/esm/ui/toolbar/constants.js","webpack:///./node_modules/devextreme/esm/ui/shared/grouped_data_converter_mixin.js","webpack:///./node_modules/devextreme/esm/renovation/ui/common/utils/get_updated_options.js","webpack:///./node_modules/devextreme/esm/renovation/ui/common/dom_component_wrapper.js","webpack:///./node_modules/devextreme/esm/events/index.js","webpack:///./node_modules/devextreme/esm/events/contextmenu.js","webpack:///./node_modules/devextreme/esm/events/hold.js","webpack:///./node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_relative_offset.js","webpack:///./node_modules/devextreme/esm/core/utils/view_port.js","webpack:///./node_modules/devextreme/esm/core/template_manager.js","webpack:///./node_modules/devextreme/esm/core/dom_component.js","webpack:///./node_modules/devextreme/esm/renovation/ui/scroll_view/common/consts.js","webpack:///./node_modules/devextreme/esm/core/utils/position.js","webpack:///./node_modules/devextreme/esm/mobile/hide_callback.js","webpack:///./node_modules/devextreme/esm/ui/overlay/ui.overlay.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/config.js","webpack:///./node_modules/devextreme/esm/core/templates/bindable_template.js","webpack:///./node_modules/devextreme/esm/ui/text_box/texteditor_button_collection/button.js","webpack:///./node_modules/devextreme/esm/events/swipe.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/templates-discovering.js","webpack:///./node_modules/devextreme-vue/core/configuration.js","webpack:///./node_modules/devextreme-vue/core/version.js","webpack:///./node_modules/devextreme/esm/events/pointer/base.js","webpack:///./node_modules/devextreme/esm/events/pointer/touch.js","webpack:///./node_modules/devextreme/esm/events/pointer/mouse.js","webpack:///./node_modules/devextreme/esm/events/pointer/observer.js","webpack:///./node_modules/devextreme/esm/events/pointer/mouse_and_touch.js","webpack:///./node_modules/devextreme/esm/events/pointer.js","webpack:///./node_modules/devextreme/esm/core/utils/browser.js","webpack:///./node_modules/devextreme/esm/core/utils/array.js","webpack:///./node_modules/devextreme/esm/events/core/keyboard_processor.js","webpack:///./node_modules/devextreme/esm/events/core/emitter.js","webpack:///./node_modules/devextreme-vue/core/templates-manager.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.scrollable.native.js","webpack:///./node_modules/devextreme/esm/renovation/common/config_context.js","webpack:///./node_modules/devextreme/esm/core/utils/comparator.js","webpack:///./node_modules/devextreme/esm/core/options/option_manager.js","webpack:///./node_modules/devextreme/esm/core/options/index.js","webpack:///./node_modules/devextreme/esm/core/postponed_operations.js","webpack:///./node_modules/devextreme/esm/core/component.js","webpack:///./node_modules/devextreme/esm/data/utils.js","webpack:///./node_modules/devextreme/esm/ui/load_indicator.js","webpack:///./node_modules/devextreme/esm/ui/popup/popup_drag.js","webpack:///./node_modules/devextreme/esm/ui/resizable.js","webpack:///./node_modules/devextreme/esm/ui/popup/popup_position_controller.js","webpack:///./node_modules/devextreme/esm/ui/popup/ui.popup.js","webpack:///./node_modules/devextreme/esm/ui/popup.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.scrollbar.js","webpack:///./node_modules/devextreme/esm/renovation/utils/combine_classes.js","webpack:///./node_modules/devextreme/esm/events/core/emitter.feedback.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/children-processing.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/helpers.js","webpack:///./node_modules/devextreme-vue/core/constants.js","webpack:///./node_modules/devextreme/esm/ui/selection/selection.strategy.js","webpack:///./node_modules/devextreme/esm/ui/selection/selection.strategy.deferred.js","webpack:///./node_modules/devextreme/esm/core/utils/selection_filter.js","webpack:///./node_modules/devextreme/esm/ui/selection/selection.strategy.standard.js","webpack:///./node_modules/devextreme/esm/ui/selection/selection.js","webpack:///./node_modules/devextreme/esm/core/templates/child_default_template.js","webpack:///./node_modules/devextreme/esm/core/utils/call_once.js","webpack:///./node_modules/devextreme/esm/core/element.js","webpack:///./node_modules/devextreme/esm/ui/widget/utils.ink_ripple.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.strategy.grouped.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.provider.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.search.js","webpack:///./node_modules/devextreme/esm/ui/list_light.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/component.js","webpack:///./node_modules/devextreme-vue/core/templates-discovering.js","webpack:///./node_modules/devextreme/esm/ui/widget/ui.errors.js","webpack:///./node_modules/devextreme/esm/data/array_store.js","webpack:///./node_modules/devextreme/esm/ui/collection/ui.collection_widget.async.js","webpack:///./node_modules/devextreme/esm/ui/toolbar/ui.toolbar.base.js","webpack:///./node_modules/devextreme/esm/events/core/event_registrator_callbacks.js","webpack:///./node_modules/devextreme/esm/ui/collection/item.js","webpack:///./node_modules/devextreme/esm/events/visibility_change.js","webpack:///./node_modules/devextreme/esm/data/array_utils.js","webpack:///./node_modules/devextreme/esm/animation/position.js","webpack:///./node_modules/devextreme/esm/core/utils/public_component.js","webpack:///./node_modules/devextreme/esm/ui/radio_group/radio_button.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.decorator.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.decorator.selection.js","webpack:///./node_modules/devextreme/esm/ui/overlay/overlay_position_controller.js","webpack:///./node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/devextreme/esm/events/core/wheel.js","webpack:///./node_modules/devextreme/esm/events/core/hook_touch_props.js","webpack:///./node_modules/devextreme/esm/events/core/events_engine.js","webpack:///./node_modules/devextreme/esm/animation/translator.js","webpack:///./node_modules/devextreme/esm/data/query_adapters.js","webpack:///./node_modules/devextreme/esm/data/remote_query.js","webpack:///./node_modules/devextreme/esm/data/query_implementation.js","webpack:///./node_modules/devextreme/esm/data/query.js","webpack:///./node_modules/devextreme/esm/core/utils/storage.js","webpack:///./node_modules/devextreme/esm/core/utils/support.js","webpack:///./node_modules/core-js/internals/string-trim-forced.js","webpack:///./node_modules/devextreme/esm/core/events_strategy.js","webpack:///./node_modules/devextreme/esm/data/custom_store.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/extension-component.js","webpack:///./node_modules/devextreme/esm/core/options/utils.js","webpack:///./node_modules/devextreme/esm/events/gesture/emitter.gesture.scroll.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/index.js","webpack:///./node_modules/inferno/dist/index.esm.js","webpack:///./node_modules/devextreme-vue/core/component.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.scrollable.device.js","webpack:///./node_modules/devextreme/esm/core/utils/stubs.js","webpack:///./node_modules/devextreme/esm/ui/widget/ui.search_box_mixin.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/configuration-component.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.scrollable.simulated.js","webpack:///./node_modules/devextreme/esm/events/remove.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/constants.js","webpack:///./node_modules/devextreme-vue/core/vue-helper.js","webpack:///./node_modules/devextreme/esm/ui/widget/swatch_container.js","webpack:///./node_modules/devextreme/esm/renovation/component_wrapper/editors/editor.js","webpack:///./node_modules/devextreme/esm/renovation/component_wrapper/editors/check_box.js","webpack:///./node_modules/devextreme/esm/renovation/ui/editors/check_box/utils.js","webpack:///./node_modules/devextreme/esm/renovation/ui/editors/check_box/check_box_icon.js","webpack:///./node_modules/devextreme/esm/renovation/ui/editors/check_box/check_box.js","webpack:///./node_modules/devextreme/esm/renovation/ui/editors/check_box/check_box.j.js","webpack:///./node_modules/devextreme/esm/ui/check_box.js","webpack:///./node_modules/devextreme/esm/events/utils/event_nodes_disposing.js","webpack:///./node_modules/devextreme/esm/events/click.js","webpack:///./node_modules/devextreme/esm/data/store_helper.js","webpack:///./node_modules/devextreme/esm/core/resize_observer.js","webpack:///./node_modules/devextreme-vue/core/configuration-component.js","webpack:///./node_modules/devextreme/esm/core/utils/array_compare.js","webpack:///./node_modules/devextreme/esm/ui/widget/ui.widget.js","webpack:///./node_modules/devextreme/esm/core/element_data.js","webpack:///./node_modules/devextreme/esm/core/utils/size.js","webpack:///./node_modules/devextreme/esm/events/hover.js"],"names":["__assign","this","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","defineProperty","exports","value","setEmitOptionChangedFunc","bindOptionWatchers","helpers_1","Configuration","updateFunc","name","initialValues","expectedChildren","isCollectionItem","collectionItemIndex","ownerConfig","_updateFunc","_name","_initialValues","_nestedConfigurations","_isCollectionItem","_collectionItemIndex","_expectedChildren","_ownerConfig","_componentChanges","updateValue","bind","get","enumerable","configurable","cleanComponentsCountChanged","fullPath","fullName","_options","_prevNestedConfigOptions","init","options","set","handler","_emitOptionChanged","setPrevNestedOptions","onOptionChanged","args","isEqual","previousValue","_onOptionChanged","split","cleanNested","createNested","expected","actualName","actualIsCollectionItem","optionName","filter","c","configuration","push","nestedName","join","getNestedOptionValues","values","forEach","o","nestedValue","arr","Array","isArray","getOptionsToWatch","blackList","optionRelPath","optionInfo","getOptionInfo","isCollection","nestedConfig","_getNestedConfig","slice","_tryEmitOptionChanged","component","option","_i","_a","config","vueInstance","innerChanges","targets","$watch","emitOptionChanged","$props","$emit","default","abstract","queryByOptions","storeImpl","Store","inherit","ctor","that","_eventsStrategy","_","on","toLowerCase","_key","key","_errorHandler","errorHandler","_useDefaultSearch","_customLoadOptions","keyOf","obj","_keyGetter","_requireKey","Error","load","fireEvent","_withLock","_loadImpl","done","result","createQuery","enumerate","task","promise","resolveWith","fail","rejectWith","totalCount","_totalCountImpl","count","byKey","extraOptions","_addFailHandlers","_byKeyImpl","insert","_insertImpl","callbackValues","callbackKey","update","_updateImpl","changes","beforePushArgs","waitFor","_pushImpl","remove","_removeImpl","deferred","eventName","eventHandler","off","create","alias","registerClass","type","inheritor","members","ready","add","abs","Math","SLEEP","INITED","STARTED","TOUCH_BOUNDARY","IMMEDIATE_TOUCH_BOUNDARY","IMMEDIATE_TIMEOUT","supportPointerEvents","setGestureCover","isDesktop","real","deviceType","$cover","addClass","css","subscribeGlobal","e","preventDefault","appendTo","toggle","cursor","gestureCover","gestureCoverStrategy","GestureEmitter","gesture","configure","data","getElement","immediate","callBase","allowInterruptionByMouseWheel","_stage","getDirection","direction","_cancel","_toggleGestureCover","start","_needSkipEvent","_startEvent","_startEventData","_init","_setupImmediateTimer","clearTimeout","_immediateTimer","_immediateAccepted","setTimeout","move","_directionConfirmed","_resetActiveElement","_clearSelection","_adjustStartEvent","_start","_requestAccept","_move","_forgetAccept","touchBoundary","_getTouchBoundary","delta","deltaX","x","deltaY","y","horizontalMove","_validateMove","verticalMove","bothAccepted","horizontalAccepted","verticalAccepted","mainAxis","crossAxis","pageX","pageY","platform","find","_toggleGestureCoverImpl","isStarted","end","_end","_stop","dispose","initialTouchBoundary","newBoundary","addNamespace","eventNames","namespace","errors","map","indexOf","concat","KEY_MAP","backspace","tab","enter","escape","pageup","pagedown","home","arrowleft","arrowup","arrowright","arrowdown","delete","f","a","alt","control","shift","LEGACY_KEY_CODES","8","9","13","27","33","34","35","36","37","38","39","40","46","32","70","65","106","109","189","173","16","17","18","EVENT_SOURCES_REGEX","dx","mouse","touch","keyboard","pointer","fixMethod","copyEvent","originalEvent","Event","isDxEvent","eventSource","isNativeMouseEvent","isNativeTouchEvent","_ref","test","isPointerEvent","isMouseEvent","pointerType","isDxMouseWheelEvent","isTouchEvent","eventData","_ref3","timeStamp","time","eventDelta","from","to","hasTouches","pointers","touches","skipEvents","needSkipEvent","target","$target","isContentEditable","hasAttribute","touchInEditable","is","isTextArea","hasClass","isInputFocused","which","createEvent","event","extend","props","delegateTarget","trigger","normalizeKeyName","_ref4","normalizedKey","normalizedKeyFromWhich","String","fromCharCode","getChar","_ref5","isCommandKeyPressed","_ref6","ctrlKey","metaKey","getGroupConfig","_findGroup","super","getProps","onClick","_clickAction","validationGroup","_validationGroupConfig","iconType","icon","iconTemplate","_createTemplateComponent","template","button","viewRef","activate","deactivate","needValidate","validationStatus","_createAction","_ref2","submitInput","validationResult","validate","status","complete","then","click","stopPropagation","_initializeComponent","_addAction","_getSubmitAction","_createClickAction","_initMarkup","$content","$element","$template","children","$input","append","replaceWith","_patchOptionValues","templateData","_templateData","findGroup","_modelByElement","_createActionByOption","excludeValidators","_optionChanged","_excluded","viewFunction","iconClassName","IconTemplate","source","sourceType","src","IconProps","position","getTemplate","TemplateProp","defaultProps","state","generalClasses","cssClass","_this$props","restProps","restAttributes","model","InkRippleProps","freeze","__getterCache","hideWave","showWave","getConfig","opts","nextProps","nextState","context","stylingModes","getCssClasses","iconPosition","stylingMode","text","isValidStylingMode","includes","classesMap","viewModel","ButtonTemplate","renderText","isIconLeft","iconComponent","iconSource","accessKey","activeStateEnabled","aria","className","classes","cssClasses","disabled","focusStateEnabled","height","hint","hoverStateEnabled","onActive","onWidgetClick","onInactive","onKeyDown","keyDown","rtlEnabled","tabIndex","visible","width","buttonTemplateData","useSubmitBehavior","submitInputRef","useInkRipple","inkRippleConfig","inkRippleRef","contentRef","widgetRef","ButtonProps","getOwnPropertyDescriptors","defaultOptionRules","device","devices","isSimulator","focus","submitEffect","onSubmit","_this$_effects$","_effects","current","element","keyName","cancel","label","replace","role","isCentered","useHoldAnimation","waveSizeCoefficient","componentWillUpdate","__defaultOptionRules","defaultOptions","rule","_wrapKeyDownHandler","_this$viewRef","_this$viewRef2","_this$viewRef3","twoWay","allowNull","elements","templates","registerComponent","componentClass","fire","registerRendererComponent","fn","isMemberInvoke","memberName","memberArgs","each","instance","getInstance","member","memberValue","Iterator","toArray","reset","next","countable","ArrayIterator","array","index","WrappedIterator","iter","MapIterator","mapper","hasNext","defaultCompare","xValue","yValue","SortIterator","getter","desc","compare","_wrap","rules","thenBy","sortedIter","_ensureSorted","sort","_compare","_unwrap","record","wrappedItem","xIndex","yIndex","rulesCount","compareResult","compileCriteria","toString","compileEquals","negate","crit","ops","isConjunctiveOperator","isConjunctiveNextOperator","d","op","criteria","operatorFn","b","getterValue","searchValue","lastIndexOf","FilterIterator","GroupIterator","_ensureGrouped","groupedIter","hash","keys","items","SelectIterator","SliceIterator","skip","take","max","pos","min","arrayQueryImpl","queryOptions","handleError","error","aggregateCore","aggregator","seed","step","finalize","NaN","accumulator","resolve","reject","standardAggregate","select","chainQuery","selectProp","sortBy","Number","MAX_VALUE","groupBy","aggregate","sum","avg","INVALID_MESSAGE","INVALID_MESSAGE_AUTO","INVALID_MESSAGE_ALWAYS","INVALID_MESSAGE_CONTENT","VALIDATION_MESSAGE_MIN_WIDTH","ValidationMessage","integrationOptions","templatesRenderAsynchronously","shading","hideOnOutsideClick","animation","propagateOutsideClick","_checkParentVisibility","contentTemplate","_renderInnerHtml","maxWidth","container","mode","validationErrors","positionRequest","boundary","offset","h","v","contentId","updateMaxWidth","_updatePosition","_ensureMessageNotEmpty","_updatePositionByTarget","_toggleModeClass","_updateContentId","_textMarkup","_getTextMarkup","shouldShowMessage","_toggleVisibilityClasses","$wrapper","removeClass","id","attr","html","_this$option","validationErrorMessage","err","_err$message","separator","message","toggleClass","targetWidth","positionSide","verticalPositions","my","at","collision","EmptyTemplate","COLLECTION_CLASS","ITEM_CLASS","CONTENT_CLASS_POSTFIX","ITEM_CONTENT_PLACEHOLDER_CLASS","ITEM_DATA_KEY","ITEM_INDEX_KEY","ITEM_TEMPLATE_ID_PREFIX","ITEMS_OPTIONS_NAME","SELECTED_ITEM_CLASS","ITEM_RESPONSE_WAIT_CLASS","EMPTY_COLLECTION","TEMPLATE_WRAPPER_CLASS","ITEM_PATH_REGEX","ANONYMOUS_TEMPLATE_NAME","FOCUS_UP","FOCUS_DOWN","FOCUS_LEFT","FOCUS_RIGHT","FOCUS_PAGE_UP","FOCUS_PAGE_DOWN","FOCUS_LAST","FOCUS_FIRST","CollectionWidget","_activeStateUnit","_supportedKeys","$itemElement","_itemClickHandler","currentTarget","location","_moveFocus","space","leftArrow","rightArrow","upArrow","downArrow","pageUp","pageDown","_getDefaultOptions","selectOnFocus","loopItemFocus","itemTemplate","onItemRendered","onItemClick","onItemHold","itemHoldTimeout","onItemContextMenu","onFocusedItemChanged","noDataText","format","dataSource","_itemAttributes","itemTemplateProperty","focusOnSelectedItem","focusedElement","displayExpr","disabledExpr","visibleExpr","_compileDisplayGetter","_cleanRenderedItems","_refreshDataSource","_displayGetter","_initTemplates","_initItemsFromMarkup","_initDefaultItemTemplate","_getAnonymousTemplateName","fieldsMap","_getFieldsMap","_templateManager","addDefaultTemplates","item","$container","_prepareDefaultItemTemplate","_getBindableFields","rawItems","isTemplateRequired","innerHTML","_prepareItemTemplate","templateId","detach","clone","removeAttr","_saveTemplate","_dataSourceOptions","paginate","_renderedItemsCount","_focusTarget","_focusInHandler","_isFocusTarget","$focusedElement","_setFocusedItem","$activeItem","_getActiveItem","_focusOutHandler","_updateFocusedItemState","last","activeElements","_getActiveElement","lastIndex","eq","$newTarget","$items","_getAvailableItems","_prevItem","_nextItem","first","_getVisibleItems","$itemElements","_itemElements","not","targetIndex","$last","$item","loop","$first","_selectFocusedItem","selectItem","isFocused","needCleanItemId","_refreshActiveDescendant","_refreshItemId","_toggleFocusClass","_updateParentActiveDescendant","setAria","getFocusedItemId","_findItemElementByItem","itemElements","_itemDataKey","_getIndexByItem","_itemOptionChanged","property","oldValue","constructor","ItemClass","setDataField","_refreshItem","isDisabling","_resetItemFocus","itemData","_getItemData","_itemIndexKey","_renderItem","matches","match","itemPath","_invalidate","_renderEmptyMessage","_createItemRenderAction","_attachHoldEvent","_attachContextMenuEvent","_loadNextPage","_dataSource","_expectNextPageLoading","pageIndex","_startIndexForAppendedItems","_expectLastItemLoading","_forgetNextPageLoading","_dataSourceChangedHandler","newItems","_initialized","_shouldAppendItems","_isLastPage","_refreshContent","_prepareContent","_renderContent","_dataSourceLoadErrorHandler","_allowDynamicItemsAppend","_clean","_cleanFocusState","_cleanItemContainer","_itemContainer","empty","_dispose","_itemFocusTimeout","_refresh","_itemClass","_itemContentClass","_selectedItemClass","_itemResponseWaitClass","_itemSelector","_renderContentImpl","_fireContentReadyAction","_render","_attachClickEvent","itemSelector","clickEventNamespace","NAME","pointerDownEventNamespace","down","pointerDownAction","_itemPointerDownHandler","execute","_itemDXEventHandler","_itemFocusHandler","isDefaultPrevented","$closestItem","closest","$closestFocusable","_closestFocusable","_forcePointerDownFocus","parent","isDocument","_updateFocusState","$itemContainer","hold","timeout","_getHoldTimeout","_itemHoldHandler","_shouldFireHoldEvent","hasActionSubscription","_itemContextMenuHandler","_shouldFireContextMenuEvent","_renderItems","$itemToReplace","_index$item","itemIndex","$itemFrame","_renderItemFrame","_setElementData","_attachItemClickEvent","$itemContent","_getItemContent","renderContentPromise","_renderItemContent","contentClass","defaultTemplateName","_postprocessRenderItem","itemElement","itemContent","_executeItemRenderAction","_itemEventHandlerByHandler","itemTemplateName","_getItemTemplateName","_getTemplate","_addItemContentClasses","$templateResult","_createItemByTemplate","_renderItemContentByNode","$node","_appendItemToContainer","_itemOptions","displayValue","watchMethod","owner","fieldGetter","field","expr","_getItemRenderAction","_itemRenderAction","category","templateProperty","renderArgs","render","_emptyMessageContainer","hideNoData","_isDataSourceLoading","_$noData","dxEvent","handlerOptionName","actionArgs","actionConfig","_itemEventHandler","initiator","action","validatingTargetName","_itemEventHandlerImpl","_closestItemElement","_extendActionArgs","_getSummaryItemsWidth","includeMargin","_focusedItemId","itemsContainer","include","ITEM_DELETING_DATA_KEY","NOT_EXISTING_INDEX","indexExists","_setOptionsByReference","_optionsByReference","selectedItem","selectionMode","selectionRequired","selectionByClick","selectedItems","selectedItemKeys","maxFilterLengthInRequest","keyExpr","selectedIndex","onSelectionChanged","onItemReordered","onItemDeleting","onItemDeleted","_userOptions","_initEditStrategy","_initKeyGetter","_initSelectionModule","_getKeysByItems","_editStrategy","getKeysByItems","_getItemsByKeys","getItemsByKeys","_getKeyByIndex","getKeyByIndex","_getIndexByKey","getIndexByKey","_getIndexByItemData","getIndexByItemData","_isKeySpecified","_getCombinedFilter","store","_nullValueSelectionSupported","itemsGetter","_selection","allowNullValue","equalByReference","addedItemKeys","removedItemKeys","_updateSelectedItems","_getItemsCount","loadOptions","customQueryParams","userData","_userData","loadResult","_disposed","_applyMapFunction","plainItems","dataFields","reduce","itemsCount","Strategy","_getSelectedItemIndices","indices","getSelectedItemKeys","beginCache","endCache","_rendering","isLoading","_syncSelectionOptions","_normalizeSelectedItems","_rendered","byOption","_chooseSelectOption","getItemDataByIndex","_setOptionWithoutOptionChange","selectedItemIndex","setSelection","isOptionDefined","optionValue","_compareKeys","oldKeys","newKeys","newSelection","currentSelection","getSelectedItems","normalizedSelection","itemSelectPromise","_this$_itemSelectHand","_itemSelectHandler","always","_itemSelectPromise","isItemSelected","unselectItem","_selectedItemElement","normalizedItemIndex","getNormalizedIndex","_isItemSelected","_processSelectableItem","isSelected","_setAriaSelected","selectionChangePromise","_selectionChangePromise","normalizedIndex","addedSelection","removedSelection","_addSelection","_removeSelection","_updateSelection","_fireSelectionChangeEvent","addedItems","removedItems","getItemElement","triggerHandler","checkPending","_clearSelectedItems","_waitDeletingPrepare","deletingActionArgs","deletePromise","deletePromiseExists","deletePromiseResolved","argumentsSpecified","shouldDelete","_deleteItemFromDS","disabledState","dataStore","_tryRefreshLastPage","_refreshLastPage","_updateSelectionAfterDelete","deselect","_updateIndicesAfterIndex","_simulateOptionChange","_optionChangedAction","_deleteItemElementByIndex","deleteItemAtIndex","_afterItemElementDeleted","deletedActionArgs","changingOption","beforeExecute","deleteItem","itemResponseWaitClass","reorderItem","toItemElement","strategy","$movingItem","$destinationItem","movingIndex","destinationIndex","canMoveItems","itemPlacementFunc","moveItemAtIndexToIndex","fromIndex","getIndex","toIndex","currentTemplateEngine","templateEngines","registerTemplateEngine","templateEngine","setTemplateEngine","getCurrentTemplateEngine","compile","jQuery","tmpl","jsrender","Mustache","Hogan","Handlebars","doT","_element","transclude","_compiledTemplate","contents","findTemplates","optionsString","optionsParser","suitableTemplatesByName","rawTemplates","templatesMap","_findBestMatches$","suitableTemplate","addOneRenderedCall","templateResult","onRendered","getNormalizedTemplateArgs","validateTemplateSource","templateSource","templateKey","defaultCreateElement","acquireIntegrationTemplate","isAsyncTemplate","skipTemplates","integrationTemplate","acquireTemplate","createTemplate","defaultTemplates","nodeType","initDxExtensionComponent","vue_1","component_1","vue_helper_1","defineComponent","extends","initBaseComponent","mounted","$el","setAttribute","nodeOptions","getNodeOptions","$_isExtension","$_attachTo","attachTo","$_hasOwner","methods","$_createWidget","pullAllChildren","pullConfigComponents","isFragment","directChildren","allChildren","node","patchFlag","nodes","componentInfo","getComponentInfo","$_optionName","componentChildren","configurationChildren","$_predefinedProps","getNormalizedProps","$_isCollectionItem","$_expectedChildren","$_config","$_innerChanges","callbacks","subscribeReady","removeListener","listen","getDocument","readyCallbacks","callback","windowExists","getReadyState","getElementWidth","getSizeValue","size","InfernoEffectHost","lockCount","effects","areObjectsEqual","firstObject","secondObject","bothAreObjects","firstObjectKeys","secondObjectKeys","hasDifferentElement","some","_pendingContext","lock","_nextProps","_nextState","_context","createEffects","callEffects","updateEffects","destroyEffects","vDomElement","el","currentClasses","addedClasses","dxClasses","previous","removedClasses","indexInRemoved","removed","splice","added","indexInAdded","$LI","componentDidMount","componentDidUpdate","classList","shouldUpdate","shouldComponentUpdate","vDomUpdateClasses","contextId","createContext","defaultValue","Provider","InfernoEffect","effect","dependency","destroy","currentDependency","createReRenderEffect","ERROR_MSG","isNullOrUndef","isInvalid","isFunction","isNull","throwError","isSameInnerHTML","dom","tempdom","document","createElement","findLastDOMFromVNode","vNode","flags","childFlags","isSamePropsInnerHTML","Boolean","dangerouslySetInnerHTML","__html","hydrateComponent","parentDOM","isSVG","isClass","lifecycle","ref","currentNode","input","hydrateVNode","$CX","hydrateChildren","parentVNode","parentNode","nextSibling","appendChild","createTextNode","childNodes","textContent","nodeValue","prevVNodeIsTextNode","len","child","removeChild","firstChild","hydrateElement","replaceChild","removeAttribute","hydrateText","hydrateFragment","currentDom","hydrate","listener","undefined","$V","getContainer","_b","renderTemplate","_component","hasTemplate","properties","NUMBER_STYLES","Set","isNumeric","isNaN","getNumberStyleValue","style","has","uppercasePattern","kebabCase","str","normalizeStyles","styles","entries","acc","LOADPANEL_CLASS","LOADPANEL_WRAPPER_CLASS","LOADPANEL_INDICATOR_CLASS","LOADPANEL_MESSAGE_CLASS","LOADPANEL_CONTENT_CLASS","LOADPANEL_CONTENT_WRAPPER_CLASS","LOADPANEL_PANE_HIDDEN_CLASS","LoadPanel","showIndicator","indicatorSrc","showPane","delay","hideTopOverlayHandler","_defaultOptionsRules","shadingColor","maxHeight","_$loadPanelContentWrapper","_togglePaneVisible","_cleanPreviousContent","_renderLoadIndicator","_renderMessage","_show","_clearShowTimeout","_showTimeout","_hide","$message","_$indicator","_createComponent","createQueue","discardPendingTasks","_tasks","_busy","exec","removeTaskCallback","busy","_counter","_deferreds","operationId","DataSource","_options$reshapeOnPus","syncStrategy","_store","_changedTime","needThrottling","pushAggregationTimeout","pushDeferred","lastPushWaiters","throttlingTimeout","throttlingPushHandler","storePushPending","_onPush","_onPushHandler","_aggregationTimeoutId","_storeLoadOptions","_extractLoadOptions","_mapFunc","_postProcessFunc","postProcess","_pageIndex","_pageSize","pageSize","_loadingCount","_loadQueue","_createLoadQueue","_searchValue","_searchOperation","searchOperation","_searchExpr","searchExpr","_paginate","_reshapeOnPush","reshapeOnPush","substr","_operationManager","_items","_totalCount","_isLoaded","group","_this$_delayedLoadTas","_delayedLoadTask","abort","cancelAll","names","customNames","newIndex","normalizedArgs","_len","generateStoreLoadOptionAccessor","newFilter","_len2","_key2","_len3","_key3","requireTotalCount","argc","_this$_store","_changeLoadingCount","increment","oldLoading","newLoading","beginLoading","endLoading","_this","_len4","_key4","date","Date","_fireChanged","propName","propValue","_createStoreLoadOptions","_scheduleFailCallbacks","refresh","searchString","_byKeyViaLoad","isEmptyArray","loadTask","_loadFromStore","loadOperation","_scheduleLoadCallbacks","_scheduleChangedCallbacks","_createLoadOperation","groupLevel","dataSourceChanges","keyInfo","groupCount","useInsertIndex","storeLoadOptions","clearRawDataCache","_addSearchFilter","_addSearchOptions","selector","searchFilter","pendingDeferred","handleSuccess","extra","_processStoreLoadResult","resolvePendingDeferred","isFinite","_applyPostProcessFunction","ICON_CLASS","SVG_ICON_CLASS","getImageSourceType","getImageContainer","isTagName","tagWrappers","tagsCount","startTags","endTags","thead","td","col","tr","tbody","colgroup","caption","tfoot","th","parseHTML","fragment","createDocumentFragment","tags","firstRootTag","tagWrapper","lastChild","isTablePart","_scrollView","LIST_ITEM_BADGE_CONTAINER_CLASS","LIST_ITEM_BADGE_CLASS","BADGE_CLASS","LIST_ITEM_CHEVRON_CONTAINER_CLASS","LIST_ITEM_CHEVRON_CLASS","ListItem","_renderWatchers","_startWatcher","_renderBadge","_renderShowChevron","badge","_$element","$badge","$chevron","insertBefore","showChevron","$chevronContainer","LIST_CLASS","LIST_ITEM_CLASS","LIST_ITEM_SELECTOR","LIST_ITEM_ICON_CONTAINER_CLASS","LIST_ITEM_ICON_CLASS","LIST_GROUP_CLASS","LIST_GROUP_HEADER_CLASS","LIST_GROUP_BODY_CLASS","LIST_COLLAPSIBLE_GROUPS_CLASS","LIST_GROUP_COLLAPSED_CLASS","LIST_GROUP_HEADER_INDICATOR_CLASS","LIST_HAS_NEXT_CLASS","LIST_NEXT_BUTTON_CLASS","WRAP_ITEM_TEXT_CLASS","SELECT_ALL_ITEM_SELECTOR","LIST_ITEM_DATA_KEY","LIST_FEEDBACK_SHOW_TIMEOUT","groupItemsGetter","ListBase","moveFocusPerPage","getEdgeVisibleItem","isFocusedItem","resultPosition","top","scrollTo","scrollToItem","scrollTop","containerHeight","isItemVisible","$nextItem","nextItemLocation","pullRefreshEnabled","scrollingEnabled","showScrollbar","useNativeScrolling","bounceEnabled","scrollByContent","scrollByThumb","pullingDownText","pulledDownText","refreshingText","pageLoadingText","onScroll","onPullRefresh","onPageLoading","pageLoadMode","nextButtonText","onItemSwipe","grouped","onGroupRendered","collapsibleGroups","groupTemplate","indicateLoading","_listAttributes","wrapItemText","_swipeEnabled","showChevronExpr","badgeExpr","themeName","_device","_visibilityChanged","_updateLoadingState","_$container","_saveSelectionChangeEvent","_selectionChangeEventInstance","_getSelectionChangeEvent","_refreshItemElements","_itemElementsCache","_modifyByChanges","_resetDataSourcePageIndex","currentDataSource","getDataSource","_initScrollView","_feedbackShowTimeout","_createGroupRenderAction","_scrollBottomMode","_nextButtonMode","scrollBottom","nextButton","_getGroupedOption","_getGroupContainerByIndex","groupIndex","_dataSourceFromUrlLoadMode","autoPagingEnabled","getScrollView","_scrollHandler","onPullDown","_pullDownHandler","onReachBottom","_scrollBottomHandler","useNative","reachBottomText","useKeyboard","content","_createScrollViewActions","_scrollAction","_pullRefreshAction","_pageLoadingAction","$icon","$iconContainer","prepend","tryLoadMore","shouldLoadNextPage","_shouldContinueLoading","_infiniteDataLoading","release","_toggleNextButton","_shouldRenderNextButton","_loadIndicationSuppressed","isLoaded","_isDataSourceFirstLoadCompleted","newValue","_isFirstLoadCompleted","_dataSourceLoadingChangedHandler","_showLoadingIndicatorTimer","_this$_scrollView","isEmpty","shouldIndicateLoading","startLoading","finishLoading","_hideLoadingIfLoadIndicationOff","_isLoadIndicationSuppressed","_scrollViewIsFull","scrollView","reload","_this$_scrollView$scr","_this$_scrollView$scr2","isBottomReached","scrollOffset","isElementVisible","_loadNextPageTimer","_renderGroup","_attachGroupCollapseEvent","attachGroupHeaderInkRippleEvents","$group","_collapseGroupHandler","$groupBody","startHeight","endHeight","fx","animate","duration","updateDimensions","_renderInkRipple","_inkRipple","_toggleActiveState","_inkRippleTimer","_attachSwipeEvent","endEventName","swipe","_itemSwipeEndHandler","_nextButtonHandler","toggleLoading","_$nextButton","$groupElement","$groupHeaderElement","groupTemplateName","prependTo","_renderingGroupIndex","_groupRenderAction","groupElement","groupData","downInkRippleHandler","upInkRippleHandler","_downInkRippleHandler","_upInkRippleHandler","downArguments","upArguments","_holdTimer","_toggleDisabledState","$nextButton","_getNextButton","_createNextButton","$result","$button","expandGroup","collapseGroup","repaint","clientHeight","scrollHeight","scrollBy","distance","scrollToElement","_dimensionChanged","$activeThemeLink","knownThemes","currentThemeName","pendingThemeName","themeClasses","themeReadyCallback","viewPort","viewPortChanged","initDeferred","DX_LINK_SELECTOR","THEME_ATTR","ACTIVE_ATTR","DX_HAIRLINES_CLASS","ANY_THEME","defaultTimeout","THEME_MARKER_PREFIX","readThemeMarker","documentElement","getComputedStyle","fontFamily","waitForThemeLoad","waitStartTime","timerId","intervalCleared","handleLoaded","clearInterval","isPendingThemeLoaded","now","setInterval","isTimeout","log","anyThemePending","themeMarker","processMarkup","$allThemeLinks","link","fullThemeName","url","isActive","after","resolveFullThemeName","desiredThemeName","desiredThemeParts","knownThemeName","themeData","knownThemeParts","initContext","newContext","detachCssClasses","theme","currentThemeData","isAutoInit","_autoInit","loadCallback","_forceTimeout","attachCssClasses","themeNameParts","isMaterial","pixelRatio","devicePixelRatio","$tester","isTheme","themeRegExp","RegExp","isGeneric","isCompact","isWebFontLoaded","fontWeight","testElement","left","visibility","fontSize","body","etalonFontWidth","offsetWidth","testedFontWidth","waitWebFont","Promise","clear","intervalId","timeoutId","autoInit","prevViewPort","changed","__createBinding","m","k","k2","__setModuleDefault","__importStar","mod","__esModule","createExtensionComponent","createConfigurationComponent","createComponent","vue2Stategy","vue3Stategy","version_1","isVue3","DRAG_START_EVENT","DRAG_EVENT","DRAG_END_EVENT","DRAG_ENTER_EVENT","DRAG_LEAVE_EVENT","DROP_EVENT","DX_DRAG_EVENTS_COUNT_KEY","knownDropTargets","knownDropTargetSelectors","knownDropTargetConfigs","dropTargetRegistration","setup","knownDropTarget","handleObj","updateEventsCounter","eventsCount","teardown","handlersCount","getItemDelegatedTargets","dropTargetIndex","dropTargetSelectors","$delegatedTargets","getItemConfig","getItemPosition","dropTargetConfig","itemPositionFunc","getItemSize","itemSizeFunc","getBoundingClientRect","DragEmitter","_initEvent","_fireEvent","_maxLeftOffset","maxLeftOffset","_maxRightOffset","maxRightOffset","_maxTopOffset","maxTopOffset","_maxBottomOffset","maxBottomOffset","dropTargets","targetElements","_dropTargets","dragOffset","_calculateOffset","_processDropTargets","_cancelPreventDefault","_calculateXOffset","_calculateYOffset","_fitOffset","minOffset","maxOffset","_findDropTarget","sameTarget","_currentDropTarget","_fireDropTargetEvent","draggingElement","_checkDropTargetActive","delegatedTarget","$delegatedTarget","_checkDropTarget","active","activeTarget","$prevTarget","isDraggingElement","targetPosition","targetSize","checkDropTarget","emitter","events","getOption","deepWatch","setOptions","registry","register","decoratorClass","decoratorsRegistry","decoratorConfig","getElementComputedStyle","_window$getComputedSt","window","onAfterRender","onPreRender","nextNode","rootNode","mountNode","vNodeAlreadyExists","shallowEquals","every","removeDifferentElements","$children","$newChildren","__","hasComponent","oldElement","_this$props$model","$parent","isNode","renovated","nextModel","nextTemplate","sameTemplate","nextData","nextIndex","sameModel","cloneObjectValue","cloneObjectProp","prevValue","fullNameParts","updatePropsImmutable","currentPropsValue","prevPropsValue","setDefaultOptionValue","defaultValueGetter","_shouldRaiseContentReady","validateKeyDownHandler","supportedKeyNames","getSupportedKeyNames","hasComponentDefaultKeyHandlers","hasComponentKeyDownMethod","_viewComponent","_this$_viewRef","_viewRef","contentReadyOptions","_getContentReadyOptions","_checkContentReadyOption","_actionsMap","onContentReady","_propsInfo","defaultName","_this$_templateManage","getDefaultTemplates","_props","_optionsWithDefaultTemplates","_componentTemplates","_getActionConfigsFull","defaultKeyHandlers","_createDefaultKeyHandlers","_renderWrapper","containerNode","_isNodeReplaced","_fireContentReady","silent","_removeWidget","_elementAttr","attributes","attrs","_attributes$attr$name","specified","updatedAttributes","isDomAttr","_storedClasses","getAttribute","elemStyle","getPropertyValue","class","defaultWidgetPropsKeys","onKeyboardHandled","event_options","widgetProps","_getAdditionalProps","_patchElementParam","cssText","_this$elementAttr$cla","_elementAttr$class","elementAttr","_extractDefaultSlot","_aria","prepareStyleProp","trim","_getActionConfigs","_getAdditionalActionConfigs","_templatesInfo","templateOptions","_options$templateName","templateName","templateValue","customKeyHandlers","createKeyDownOptions","actionToAdd","actionByOption","actArgs","anonymousTemplateName","templateOption","initialHandler","func","IS_RENOVATED_WIDGET","READONLY_STATE_CLASS","INVALID_CLASS","DX_INVALID_BADGE_CLASS","VALIDATION_TARGET","VALIDATION_STATUS_VALID","VALIDATION_STATUS_INVALID","READONLY_NAMESPACE","ALLOWED_STYLING_MODES","VALIDATION_MESSAGE_KEYS_MAP","validationMessageMode","validationMessageOffset","validationBoundary","Editor","showValidationMessageTimeout","validationRequest","_createElement","_initOptions","initValidationOptions","cache","onValueChanged","readOnly","isValid","validationError","validationTooltipOptions","_attachKeyboardEvents","_createValueChangeAction","_valueChangeAction","_suppressValueChangeAction","_valueChangeActionSuppressed","_resumeValueChangeAction","_toggleReadOnlyState","_setSubmitElementName","_renderValidationState","_raiseValueChangeAction","_valueChangeArgs","_valueChangeEventInstance","_saveValueChangeEvent","isValidationMessageShownOnFocus","_canValueBeChangedByClick","_this$_validationMess","$validationMessageWrapper","_validationMessage","_getStylingModePrefix","_renderStylingMode","prefix","allowedStylingClasses","stylingModeClass","defaultOptionValue","platformOptionValue","_convertRulesToOptions","_getValidationErrors","_disposeValidationMessage","_$validationMessage","_toggleValidationClasses","validationMessageContentId","_getValidationMessageTarget","visualContainer","_bindInnerWidgetOptions","_toggleBackspaceHandler","isReadOnly","$eventTarget","_keyboardEventBindingTarget","$submitElement","_getSubmitElement","_setValidationMessageOption","_this$_validationMess2","optionKey","_hasActiveElement","_this$_validationMess3","_refreshFocusState","editor","synchronizeValidationOptions","_innerWidgetOptionChanged","blur","isEditor","subscribeToEvent","subscribeToClickEvent","subscribeToDxActiveEvent","scroll","stop","up","subscribeToDxInactiveEvent","subscribeToDxHoverStartEvent","subscribeToDxHoverEndEvent","subscribeToDxFocusInEvent","subscribeToDxFocusOutEvent","maxLevel","normalizeArg","xItem","parseInt","yItem","__importDefault","TemplatesManager","config_1","templates_discovering_1","dom_adapter_1","events_1","constants_1","_slots","_templates","_isDirty","discover","slots","allKeysAreEqual","_prepareTemplates","resetDirtyFlag","name_1","createDxTemplate","scopeData","placeholder","mountedTemplate","mountTemplate","setClass","DX_TEMPLATE_WRAPPER_CLASS","Node","TEXT_NODE","removalListener","nodeName","display","one","DX_REMOVE_EVENT","$destroy","resizeCallbacks","prevSize","originalCallbacksAdd","originalCallbacksRemove","formatSize","innerWidth","innerHeight","handleResize","changedDimension","setPrevSize","ConfigProviderProps","ConfigContext","resolveRtlEnabled","rtlProp","resolveRtlEnabledDefinition","isPropDefined","onlyGlobalDefined","DEFAULT_FEEDBACK_HIDE_TIMEOUT","DEFAULT_FEEDBACK_SHOW_TIMEOUT","getAria","r","widget","title","widgetElementRef","shouldRenderConfigProvider","WidgetProps","_feedbackHideTimeout","addWidgetClass","focused","hovered","setRootElementRef","activeEffect","inactiveEffect","clickEffect","focusInEffect","focusOutEffect","hoverStartEffect","hoverEndEffect","keyboardEffect","resizeEffect","windowResizeEffect","visibilityEffect","checkDeprecation","applyCssTextEffect","activeStateUnit","onFocusIn","onFocusOut","onHoverStart","onHoverEnd","onDimensionChanged","onVisibilityChange","_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","setState","__state_argument","hidden","computedWidth","computedHeight","isFocusable","isHoverable","canBeActive","activeElement","getActiveElement","DROP_DOWN_EDITOR_BUTTON_CLASS","DROP_DOWN_EDITOR_BUTTON_VISIBLE","BUTTON_MESSAGE","currentTemplate","_openHandler","_getOptions","_addToContainer","_legacyRender","_isVisible","_addTemplate","$editor","isVisible","_isSameTemplate","_getTemplateByOption","DROP_DOWN_EDITOR_CLASS","DROP_DOWN_EDITOR_INPUT_WRAPPER","DROP_DOWN_EDITOR_BUTTON_ICON","DROP_DOWN_EDITOR_OVERLAY","DROP_DOWN_EDITOR_OVERLAY_FLIPPED","DROP_DOWN_EDITOR_ACTIVE","DROP_DOWN_EDITOR_FIELD_CLICKABLE","DROP_DOWN_EDITOR_FIELD_TEMPLATE_WRAPPER","isIOs","DropDownEditor","$focusableElement","shiftKey","_getLastPopupElement","_getFirstPopupElement","close","altKey","_validatedOpening","_valueChangeEventHandler","_getDefaultButtons","Ctor","onOpened","onClosed","opened","acceptCustomValue","applyValueMode","deferRendering","dropDownButtonTemplate","fieldTemplate","openOnFieldClick","showDropDownButton","buttons","dropDownOptions","showTitle","popupPosition","_getDefaultPopupPosition","onPopupInitialized","applyButtonText","cancelButtonText","buttonsLocation","useHiddenSubmitElement","_useTemplates","isRtlEnabled","_inputWrapper","_initVisibilityActions","_initPopupInitializedAction","_updatePopupPosition","currentPosition","_openAction","_closeAction","_popupInitializedAction","_renderSubmitElement","_renderOpenHandler","_attachFocusOutHandler","_renderOpenedState","_createPopup","_renderInput","_wrapInput","_setDefaultAria","wrapInner","haspopup","autocomplete","_readOnlyPropValue","_isEditable","_detachFocusEvents","_getFieldTemplate","_renderMask","_renderField","_renderTemplatedField","_fieldRenderData","_renderPlaceholder","hasFieldTemplate","_renderValue","_setSubmitValue","_this$_fieldRenderQue","_fieldRenderQueueLength","_input","_detachKeyboardEvents","_refreshButtonsContainer","_detachWrapperContent","$templateWrapper","_integrateInput","_attachWrapperContent","_this$_$submitElement","_this$_$beforeButtons","_this$_$afterButtonsC","_$submitElement","beforeButtonsContainerParent","_$beforeButtonsContainer","afterButtonsContainerParent","_$afterButtonsContainer","_this$_$submitElement2","_$buttonsContainer","_renderFocusState","_refreshValueChangeEvent","_refreshEvents","_refreshEmptinessEvent","_toggleEmptinessEventHandler","_renderEmptinessEvent","dropDownButton","$inputWrapper","_getInputClickHandler","_openOnFieldClickAction","_detachFocusOutEvents","newTarget","relatedTarget","popupWrapper","_$popup","isNewTargetOutside","_executeOpenAction","_focusInput","_toggleOpenState","_resetCaretPosition","ignoreEditable","inputElement","caretPosition","_caret","_setPopupOption","expanded","_popupContentId","_renderPopup","_renderPopupContent","popupConfig","_popupConfig","_popup","showing","_popupShowingHandler","shown","_popupShownHandler","hiding","_popupHidingHandler","_popupHiddenHandler","contentReady","_contentReadyHandler","_setPopupContentId","$popupContent","onInitialized","_popupInitializedHandler","of","_ignoreFunctionValueDeprecation","wrapperAttr","hideOnParentScroll","_closeOutsideDropDownHandler","show","hide","showCloseButton","dragEnabled","toolbarItems","_getPopupToolbarItems","onPositioned","_popupPositionedHandler","fullScreen","popup","popupWidth","_e$position","_e$position$v","labelMode","$popupOverlayContent","$overlayContent","isOverlayFlipped","flip","shouldIndentForLabel","_label","$label","_getValidationMessagePositionRequest","myTop","popupTop","getButton","$dropDownButton","isInputClicked","isDropDownButtonClicked","isOutsideClick","_setWidgetOption","_popupToolbarItemsConfig","_popupElementTabHandler","_popupElementEscHandler","_popupButtonInitializedHandler","registerKeyHandler","buttonsConfig","shortcut","_applyButtonHandler","_cancelButtonHandler","_applyButtonsLocation","resultConfig","toolbar","_popupOptionChanged","getOptionsFromContainer","optionsKeys","val","_this$_popup","_updateButtons","open","nativeXMLHttpRequest","getXhr","XMLHttpRequest","SUCCESS","ERROR","TIMEOUT","NO_CONTENT","PARSER_ERROR","isStatusSuccess","hasContent","paramsConvert","params","encodeURIComponent","createScript","script","removeScript","scriptNode","appendToHead","getHead","evalScript","code","evalCrossDomainScript","loadHandler","getAcceptHeader","dataType","scriptAccept","accepts","xml","json","jsonp","getContentTypeHeader","defaultContentType","upload","getMethod","contentType","getDataFromResponse","xhr","responseType","responseText","response","JSON","parse","isCrossDomain","crossDomain","originAnchor","urlAnchor","href","protocol","host","setHttpTimeout","customStatus","getJsonpOptions","random","callbackName","jsonpCallback","callbackParameter","getRequestOptions","headers","paramsAlreadyString","parameters","method","toUpperCase","getRequestHeaders","Accept","sendRequest","async","needScriptEvaluation","requestOptions","username","password","onreadystatechange","readyState","onprogress","onloadstart","onabort","xhrFields","setRequestHeader","beforeSend","send","executeAction","inactive","showTimeout","hideTimeout","resize","hover","focusIn","focusOut","_ref7","dxClick","keyboardProcessors","generateListenerId","focusTarget","listenerId","_getProcessor","Action","_action","_beforeExecute","_afterExecute","afterExecute","_validatingTargetName","_excludeValidators","handled","argsBag","_validateAction","_executeAction","executors","_executor$validate","executor","_executor$execute","registerExecutor","createValidatorByTargetElement","condition","ERROR_MESSAGES","E4000","E4001","E4002","E4003","E4004","E4005","E4006","E4007","E4008","E4009","E4010","E4011","E4012","E4013","E4014","E4015","E4016","E4017","E4018","E4019","E4020","E4021","E4022","E4023","E4024","W4000","W4001","W4002","ios","mac","isFocusingOnCaretChange","getCaret","range","selectionStart","selectionEnd","setCaret","getBody","contains","getRootNode","force","isModernAndroidDevice","android","version","isInputEventsL2Supported","EMPTY_CHAR","BaseMaskRule","_value","_next","rawValue","handle","_prepareHandlingArgs","_config$str","_config$start","_config$length","handlingProperty","isAccepted","adjustedCaret","caret","isForwardDirection","char","_adjustedForward","_adjustedBackward","EmptyMaskRule","MaskRule","maskChar","rest","substring","_tryAcceptChar","_accepted","_isAllowed","acceptedChar","fullText","_isAccepted","_isValid","allowedChars","StubMaskRule","hasValueProperty","nextArgs","pointerDown","STATE_INVISIBLE_CLASS","TEXTEDITOR_CLEAR_BUTTON_CLASS","TEXTEDITOR_CLEAR_ICON_CLASS","TEXTEDITOR_ICON_CLASS","TEXTEDITOR_SHOW_CLEAR_BUTTON_CLASS","_isClearButtonVisible","editorName","_clearValueHandler","rendered","CUSTOM_BUTTON_HOVERED_CLASS","ignoreParentReadOnly","_isDisabled","_prepareIntegrationOptions","isUpdated","isDefinedByUser","TEXTEDITOR_BUTTONS_CONTAINER_CLASS","checkButtonInfo","buttonInfo","checkNamesUniqueness","existingNames","newName","isPredefinedButtonName","predefinedButtonsInfo","info","defaultButtonsInfo","isStringButton","isDefaultButton","defaultButtonInfo","buttonsInfo","targetLocation","$buttonsContainer","_compileButtonInfo","_createButton","buttonName","_renderButtons","TEXTEDITOR_LABEL_CLASS","TEXTEDITOR_WITH_LABEL_CLASS","TEXTEDITOR_WITH_FLOATING_LABEL_CLASS","TEXTEDITOR_WITH_BEFORE_BUTTONS_CLASS","LABEL_BEFORE_CLASS","LABEL_CLASS","LABEL_AFTER_CLASS","mark","containsButtonsBefore","containerWidth","beforeWidth","_id","_toggleMarkupVisibility","_$before","_$labelSpan","_$label","_$after","_$root","_updateMark","_updateText","_updateBeforeWidth","_updateMaxWidth","_updateEditorBeforeButtonsClass","_updateEditorLabelClass","labelClass","beforeButtonsClass","TEXTEDITOR_CLASS","TEXTEDITOR_INPUT_CONTAINER_CLASS","TEXTEDITOR_INPUT_CLASS","TEXTEDITOR_INPUT_SELECTOR","TEXTEDITOR_CONTAINER_CLASS","TEXTEDITOR_PLACEHOLDER_CLASS","TEXTEDITOR_EMPTY_INPUT_CLASS","TEXTEDITOR_PENDING_INDICATOR_CLASS","TEXTEDITOR_VALIDATION_PENDING_CLASS","TEXTEDITOR_VALID_CLASS","EVENTS_LIST","CONTROL_KEYS","TextEditorLabelCreator","checkButtonsOptionType","TextEditorBase","_buttonCollection","_labelContainerElement","spellcheck","showClearButton","valueChangeEvent","inputAttr","onKeyUp","onChange","onInput","onCut","onCopy","onPaste","onEnterKey","displayValueFormatter","editorStylingMode","showValidationMark","labelMark","_isFocused","_buttonsContainer","_isControlKey","_updateButtonsStyling","_renderInputType","_renderProps","_renderLabel","_renderEvents","_renderEnterKeyAction","_$textEditorContainer","_$textEditorInputContainer","_createInput","_renderButtonContainers","_renderPendingIndicator","$inputContainer","_getInputContainer","$indicatorElement","_pendingIndicator","_disposePendingIndicator","isPending","_showValidMark","renderBeforeButtons","renderAfterButtons","_cleanButtonContainers","clean","_unobserveLabelContainerResize","_applyInputAttributes","inputAttrName","customAttributes","inputAttributes","_getDefaultAttributes","defaultAttributes","updateButtons","buttonInstance","renderInputPromise","_renderInputValue","_renderDisplayText","_isValueValid","validity","valid","_toggleEmptiness","_togglePlaceholder","_toggleSpellcheckState","_toggleTabIndex","prop","unobserve","_getLabelContainer","_getLabelContainerWidth","_getLabelBeforeWidth","buttonsBeforeWidth","_updateLabelWidth","updateBeforeWidth","_setLabelContainerAria","getId","labelConfig","observe","_renderPlaceholderMarkup","_attachPlaceholderEvents","_$placeholder","placeholderText","$placeholder","insertAfter","startEvent","_placeholder","_clearValue","_keyPressHandler","_keyDownHandler","isCtrlEnter","isNewValue","_renderValueChangeEvent","keyPressEvent","_renderValueEventName","keyDownEvent","_cleanValueChangeEvent","valueChangeNamespace","textChangeNamespace","_focusEventTarget","_isInput","_preventNestedFocusEvent","shouldPrevent","_isNestedTarget","_focusClassTarget","_hasFocusClass","formattedValue","_enterKeyAction","_enterKeyHandlerUp","_updateValue","_refreshFocusEvent","updateText","updateMark","updateMode","updateContainsButtonsBefore","_setInputType","charAt","MASK_EVENT_NAMESPACE","BLUR_EVENT","DIRECTION","FORWARD","BACKWARD","_getStrategyName","newCaret","handlerName","editorInput","getHandleEventNames","subscriptionName","getEventHandler","_attachChangeEventHandlers","editorOption","_suppressCaretChanging","_changeHandler","_showMaskPlaceholder","_direction","_isValueEmpty","_adjustCaret","_maskRulesChain","_caretTimeout","editorCaret","selectedText","_maskKeyHandler","_clearDragTimer","_dragTimer","_convertToValue","_keyPressHandled","pastedText","restText","accepted","_handleChain","inputVal","_inputHandlerTimer","_isAutoFill","_validateMask","browser","webkit","keyPressHandled","_hasSelection","_handleKey","_backspaceHandlerTimeout","BACKSPACE_INPUT_TYPE","_isControlKeyFired","_backspaceInputHandled","inputType","_handleBackspaceInput","_autoFillHandler","inputValue","afterBackspaceHandler","needAdjustCaret","callBack","currentCaret","_displayMask","_tryMoveCaretBackward","_backspaceHandler","DELETE_INPUT_TYPE","_prevCaret","setBackwardDirection","_updateEditorMask","_getEmptyString","_this$_prevCaret","_this$_prevCaret2","_this$_prevCaret3","_length","newData","setForwardDirection","hasValidChars","textLength","updatedCharsCount","correction","stubCaret","ESCAPED_CHAR","TEXTEDITOR_MASKED_CLASS","FORWARD_DIRECTION","BACKWARD_DIRECTION","buildInMaskRules","0","L","isLiteralChar","l","isSpaceChar","C","A","isNumericChar","charCodeAt","TextEditorMask","mask","maskRules","maskInvalidMessage","useMaskedValue","showMaskMode","keyHandlerMap","_maskStrategy","getHandler","del","parentHandler","_$hiddenElement","_initMaskStrategy","_renderHiddenElement","_attachMouseWheelEventHandlers","hasMouseWheelHandler","_onMouseWheel","wheel","mouseWheelAction","_removeHiddenElement","detachEvents","attachEvents","_parseMask","_renderMaskedValue","_changedValue","changeEvent","_maskRules","_parseMaskRule","currentMaskChar","isEscapedChar","_getMaskRule","pattern","ruleConfig","rulePattern","_normalizeChainArguments","chainArgs","_isMaskedValueMode","_replaceSelectedText","selection","textBefore","textAfter","edited","_shouldShowMask","submitElementValue","_getPreparedValue","handledCount","_textValue","_replaceMaskCharWithEmpty","keyHandler","_handleSelection","previousText","raiseInputEvent","runWithoutEventProcessing","_handleKeyChain","_moveCaret","emptyChars","chars","caretStart","maskRuleIndex","_typingDirection","editorSpecific","_updateHiddenElement","_updateMaskOption","_processEmptyMask","BaseWidgetProps","PRIVATE_KEY_FIELD","repaintChangesOnly","_customizeStoreLoadOptions","_correctionIndex","_refreshItemsCache","_findItemElementByKey","_isItemEquals","item1","item2","stringify","_isItemStrictEquals","_shouldAddNewGroup","change","_partialRefresh","_itemsCache","itemCache","_updateByChange","isPartialRefresh","changedItem","_insertByChange","_change$index","_beforeItemElementInserted","_getItemContainer","_afterItemElementInserted","changeData","_updateSelectionAfterRemoveByChange","removeIndex","_removeByChange","removedItem","oldItem","$removedItemElement","nextSiblingElement","insertElement","isItemsUpdated","EditStrategy","collectionWidget","_collectionWidget","resultIndex","_denormalizeItemIndex","_equalKeys","key1","key2","_cache","_isNormalizedItemIndex","_isItemIndex","_normalizeItemIndex","_isNode","_getNormalizedItemIndex","_getItemByNormalizedIndex","_itemsFromSameParent","round","PlainEditStrategy","_getPlainItems","movedItemData","componentProps","componentType","templateNames","ValidationMessageProps","isReactComponentWrapper","isValidationMessageVisible","validationMessageGuid","validationMessageTarget","EditorProps","valueChange","EditorPropsType","updateValidationMessageVisibility","shouldShowValidationMessage","_this$validationError","isEditorValid","readonly","invalid","describedBy","allValidationErrors","_this$rootElementRef","_this$props$value","baseZIndex","zIndexStack","base","ZIndex","baseIndex","zIndex","isLastZIndexInStack","MANAGER_EVENT","EMITTER_DATA","EventManager","_attachHandlers","_proxiedCancelHandler","_cancelHandler","_proxiedAcceptHandler","_acceptHandler","_pointerDownHandler","_pointerMoveHandler","_pointerUpHandler","_mouseWheelHandler","_eachEmitter","activeEmitters","_activeEmitters","_applyToEmitters","arg","resetEmitter","_updateEmitters","_isSetChanged","_cleanEmitters","_fetchEmitters","currentSet","_closestEmitter","previousSet","_emittersSet","setChanged","handleEmitter","validatePointers","addCancelCallback","addAcceptCallback","emitters","acceptedEmitter","_cancelEmitter","canceledEmitter","removeCancelCallback","removeAcceptCallback","emitterIndex","_allowInterruptionByMouseWheel","_adjustWheelEvent","allowInterruption","closestGestureEmitter","verticalGestureDirection","eventManager","EMITTER_SUBSCRIPTION_DATA","registerEmitter","emitterConfig","emitterClass","emitterName","emitterEvents","noBubble","bubble","subscriptions","delegateSelector","disposeEmitter","hasWindowValue","hasWindow","windowObject","getWindow","hasProperty","defaultScreenFactorFunc","getCurrentScreenFactor","screenFactorCallback","screenFactorFunc","windowWidth","getDocumentElement","clientWidth","getNavigator","navigator","userAgent","registerEvent","eventObject","bindType","delegateType","methodName","unshift","renderedCallbacks","TemplateBase","_renderCore","_ensureResultInContainer","resultInContainer","resultInBody","$","$trim","forcedStringTrimMethod","proto","forced","CSS_TRANSITION_EASING_REGEX","TransitionTimingFuncMap","linear","swing","ease","polynomBezier","x1","y1","x2","y2","Cx","Bx","Ax","Cy","By","Ay","bezierX","derivativeX","z","easing","convertTransitionTimingFuncToEasing","cssTransitionEasing","forceName","coeffs","parseFloat","easingName","getEasing","removeEventName","RELATIVE_VALUE_REGEX","ANIM_DATA_KEY","ANIM_QUEUE_KEY","TRANSFORM_PROP","TransitionAnimationStrategy","initAnimation","transitionProperty","setProps","cleanupWhen","transitionAnimation","finish","_finishTransition","_cleanup","_completeAnimationCallback","_startAnimation","simulatedEndEventTimer","startTime","transitionEndFired","simulatedTransitionEndFired","transitionEndEventFullName","cleanup","waitForJSCompleteTimer","_simulatedTransitionEndDelay","transitionDelay","transitionDuration","transitionTimingFunction","jumpToEnd","FrameAnimationStrategy","_normalizeValue","_parseTransform","frameAnimation","currentValue","valueOf","draw","animationFrameId","delayTimeout","_animationStep","transformString","part","translateData","scaleData","rotateData","translate","scale","_calcStepValue","currentDuration","calcValueRecursively","endPropValue","numericValue","FallbackToNoAnimationStrategy","isSynchronous","getAnimationStrategy","animationStrategies","transition","frame","noAnimation","baseConfigValidator","animationType","typeMessage","isObjectConfigValidator","isStringConfigValidator","CustomAnimationConfigurator","CssAnimationConfigurator","validateConfig","positionAliases","bottom","right","SlideAnimationConfigurator","positioningConfig","setupPosition","_setUpConfig","_initNewPosition","relativeValue","_getRelativeValue","FadeAnimationConfigurator","_from$opacity","_to$opacity","defaultFromOpacity","defaultToOpacity","fromOpacity","opacity","toOpacity","skipElementInitialStyles","PopAnimationConfigurator","fromScale","toScale","_getCssTransform","animationConfigurators","custom","slide","slideIn","slideOut","fade","fadeIn","fadeOut","pop","getAnimationConfigurator","defaultJSConfig","defaultCssConfig","setupAnimationOnElement","configurator","onElementAnimationComplete","removeData","startAnimationOnElement","stopAnimationOnElement","startTimeout","scopedRemoveEvent","subscribeToRemoveEvent","createAnimation","initialConfig","defaultConfig","pushInAnimationQueue","queueData","getAnimQueueData","writeAnimQueueData","isAnimating","shiftFromAnimationQueue","destroyAnimQueueData","executeAnimation","win","calculate","scrollLeft","animationTypes","MemorizedCallbacks","memory","focusableFn","isTabIndexNotNaN","isDisabled","isDefaultFocus","isHyperlink","parents","focusable","tabbable","KNOWN_UA_TABLE","iPhone","iPhone5","iPhone6","iPhone6plus","iPad","iPadMini","androidPhone","androidTablet","msSurface","desktop","DEFAULT_DEVICE","phone","tablet","generic","grade","uaParsers","isPhone","isTablet","isMac","isIPhone4","screen","worseThan4_4","Devices","_window","_realDevice","_getDevice","_currentDevice","_currentOrientation","_recalculateOrientation","deviceOrName","_forced","_getDeviceOrNameFromWindowScope","_getDeviceNameFromSessionStorage","forceDevice","tinyHippos","realDevice","_deviceClasses","_getCssClasses","_isSimulator","self","isRippleEmulator","deviceName","_fromConfig","ua","_fromUA","sessionStorage","getItem","ex","shortcuts","parser","$window","orientation","_currentWidth","_changeOrientation","viewPortElement","prevViewport","FRAME_ANIMATION_STEP_TIME","request","requestID","setAnimationFrameMethods","nativeRequest","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","nativeCancel","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","oCancelAnimationFrame","msCancelAnimationFrame","STATUS","pending","BaseRuleValidator","getFormatter","rulesValidators","required","valueArray","itemValue","_validate","RequiredRuleValidator","NumericRuleValidator","ignoreEmptyValue","useCultureSettings","RangeRuleValidator","validNumber","numeric","validValue","number","StringLengthRuleValidator","CustomRuleValidator","validator","dataGetter","extraParams","validationCallback","AsyncRuleValidator","reevaluate","callbackResult","_getWrappedPromise","res","CompareRuleValidator","comparisonTarget","otherValue","comparisonType","PatternRuleValidator","EmailRuleValidator","stringLength","email","GroupConfig","validators","_pendingValidators","_onValidatorStatusChanged","_resetValidationInfo","brokenRules","_unsubscribeFromAllChangeEvents","validatorResult","_addPendingValidator","_subscribeToChangeEvents","_raiseValidatedEvent","_updateValidationInfo","_validationInfo","_unsubscribeFromChangeEvents","foundValidator","orderedRules","foundRules","_orderBrokenRules","_resolveIfComplete","_removePendingValidator","_updateBrokenRules","_synchronizeValidationInfo","ValidationEngine","groups","_$element$data","_$element$data$dxComp","hasValidationGroup","dxComponents","dxValidationGroup","$dxGroup","addGroup","defaultFormattedMessage","defaultMessage","brokenRule","_rules$","validationRules","pendingRules","asyncRuleItems","ruleValidationResult","ruleValidator","_addBrokenRule","_setDefaultMessage","_validateAsyncRules","_synchronizeGroupValidationInfo","_result$brokenRules","groupConfig","_validationGroup","asyncResults","validateResult","asyncResult","ruleResult","_getPatchedRuleResult","_updateRuleConfig","all","_getAsyncRulesResult","registerValidator","validatorsInGroup","isDefaultGroup","isValidationGroupInstance","removeRegisteredValidator","_shouldRemoveGroup","removeGroup","initedOptions","newStatus","initGroups","CANCELED_TOKEN","normalizeStoreLoadOptionAccessorArguments","originalArguments","mapGroup","level","restItem","mapRecursive","mapDataRespectingGrouping","groupInfo","normalizeLoadResult","_data","createCustomStoreFromLoadFunc","storeConfig","createStoreFromConfig","createCustomStoreFromUrl","normalizationOptions","loadMode","fromUrlLoadMode","normalizeDataSourceOptions","ELEMENT_NODE","DOCUMENT_NODE","nativeDOMAdapterStrategy","querySelectorAll","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","doc","ownerDocument","tagName","_document","ns","createElementNS","isElementNode","isTextNode","parentElement","newElement","isAdd","_element$getRootNode","_element$getRootNode2","activeElementHolder","head","addEventListener","removeEventListener","elementsFromPoint","ignoreKeys","TEXTBOX_CLASS","SEARCHBOX_CLASS","SEARCH_ICON_CLASS","TextBox","_showClearButton","maxLength","_renderSearchMode","_toggleMaxLengthProp","_getMaxLength","_renderSearchIcon","_$searchIcon","$searchIcon","labelBeforeWidth","_onKeyDownCutOffHandler","actualMaxLength","_cutOffExtraChar","getSelection","_onChangeCutOffHandler","textInput","isMaskSpecified","resetActiveElement","_activeElement$blur","clearSelection","removeAllRanges","closestCommonParent","startTarget","endTarget","$startTarget","$endTarget","$startParents","$endParents","startingParent","extractTemplateMarkup","templateTag","normalizeTemplateElement","clipboardText","clipboard","clipboardData","getData","setData","compareDocumentPosition","DOCUMENT_POSITION_CONTAINS","createTextElementHiddenCopy","elementStyles","includePaddings","fontStyle","fontVariant","letterSpacing","border","paddingTop","paddingRight","paddingBottom","paddingLeft","whiteSpace","float","currentElement","Animator","_finished","_stopped","_proxiedStepCore","_stepCore","_stepAnimationFrame","_isStopped","_isFinished","_complete","_step","inProgress","configuration_component_1","extension_component_1","initDxComponent","setCompatOptions","setVModel","initDxConfiguration","isString","isUndefined","componentHooks","onComponentDidMount","onComponentDidUpdate","onComponentShouldUpdate","onComponentWillMount","onComponentWillUnmount","onComponentWillUpdate","_children","newProps","arguments$1","childLen","prop$1","renderer","initRender","dxRenderer","repeatMethod","setAttributeValue","attrName","setProperty","classNames","_className","appendElements","wrapTR","tBodies","setCss","before","wrap","wrapper","removeElement","setText","cloneNode","elementId","queryId","querySelector","_element$host","offsetHeight","getClientRects","elementMatches","j","siblings","parentChildNodes","prev","previousSibling","emptyArray","offsetParent","marginTop","marginLeft","parentOffset","offsetProp","scrollWindow","pageYOffset","pageXOffset","directionStrategy","rendererWrapper","getElementLocationInternal","targetElement","containerElement","additionalOffset","isVertical","inverseProp","dimension","containerOffsetSize","containerClientSize","containerSize","elementSize","relativeElementOffset","containerScrollOffset","relativeStartOffset","relativeEndOffset","SCROLLABLE","SCROLLABLE_STRATEGY","SCROLLABLE_CLASS","SCROLLABLE_DISABLED_CLASS","SCROLLABLE_CONTAINER_CLASS","SCROLLABLE_WRAPPER_CLASS","SCROLLABLE_CONTENT_CLASS","VERTICAL","HORIZONTAL","BOTH","Scrollable","onUpdated","onStart","onEnd","onBounce","useSimulatedScrollbar","inertiaEnabled","updateManually","mozilla","_setUseSimulatedScrollbar","initialOption","_initScrollableMarkup","_locked","_updateRtlPosition","_savedScrollOffset","_$wrapper","_$content","_renderDirection","_renderStrategy","_attachEventHandlers","_renderDisabledState","_createActions","needInitializeRtlConfig","_strategy","updateRtlPosition","_getMaxOffset","scrollWidth","initEventData","isNative","scrollTarget","_initHandler","handleStart","handleMove","handleEnd","handleCancel","handleStop","handleScroll","_isLocked","_updateIfNeed","_moveIsAllowed","_prepareDirections","handleInit","_lock","_unlock","_createStrategy","createActions","_resetInactiveDirection","disabledChanged","inactiveProp","_getInactiveProp","_location","_normalizeLocation","_isDirection","_updateAllowedDirection","allowedDirections","_allowedDirections","vertical","horizontal","_allowedDirectionValue","_allowedDirection","_getScrollOffset","_isRtlNativeStrategy","_applyScaleRatio","elementInsideContent","elementIsInsideContent","scrollPosition","getScrollElementPosition","isRenovated","FunctionTemplate","getTemplatePropName","uppercaseFirst","lowercaseFirst","camelize","toComparable","getTime","value1","value2","forEachChildNode","obj1","obj2","obj1Keys","obj1Keys_1","getOptionValue","optionPath","parts","DataExpressionMixin","_dataExpressionDefaultOptions","valueExpr","_initDataExpressions","_compileValueGetter","_initDynamicTemplates","_initDataSource","_itemsToDataSource","_displayGetterExpr","_valueGetter","_valueGetterExpr","_loadValue","_unwrappedValue","_loadSingle","_isValueEquals","_loadValueDeferred","_rejectValueLoading","_this$_loadValueDefer","shouldSkipCallback","_getCurrentValue","_getItemKey","unwrap","dataSourceKey","_compareValues","_compareByCompositeKey","_compareByKey","isObject","unwrapObservable","valueKey1","valueKey2","_setCollectionWidgetItemTemplate","_setCollectionWidgetOption","_getCollectionKeyExpr","isValueExprField","_dataExpressionOptionChanged","DROPDOWNLIST_POPUP_WRAPPER_CLASS","SEARCH_EVENT","SEARCH_MODES","useCompositionEvents","DropDownList","_allowSelectItemByTab","$focusedItem","_list","_setSelectedElement","_setValue","searchEnabled","searchMode","searchTimeout","minSearchLength","showDataBeforeSearch","useItemTextAsTitle","_initActions","_setListDataSource","_validateSearchMode","_clearSelectedItem","_initItems","_setListFocusedElementOptionChange","_updateActiveDescendant","_initContentReadyAction","_initSelectionChangedAction","_initItemClickAction","_contentReadyAction","_selectionChangedAction","_itemClickAction","_saveFocusOnWidget","_fitIntoRange","availableItems","_calcNextItem","_getSelectedIndex","_updateCustomBoundaryContainer","_popupWrapperClass","customContainer","$containerWithParents","overflowY","_$customBoundaryContainer","_loadInputValue","_setSelectedItem","_loadItem","_getItemFromPlain","itemByValue","_this$_list","listFocusedItemId","isElementOnDom","activedescendant","_displayValue","_refreshSelected","_listItemElements","_isSelectedValue","_setFocusPolicy","normalizedSearchMode","_processDataSourceChanging","_isCustomValueAllowed","_clearFilter","_$list","autoResizeEnabled","_getMaxHeight","_renderList","canListHaveFocus","_canListHaveFocus","_setAriaTargetForList","_getAriaTarget","_listId","$list","_listConfig","_refreshList","_renderPreventBlurOnListClick","controls","owns","_shouldRefreshDataSource","dataSourceProvided","_needPassDataSourceToList","_isDesktopDevice","templateProvider","_listContentReadyHandler","_listItemClickAction","_getDataSource","dxList","_setListOption","_listItemClickHandler","_isMinSearchLengthExceeded","_needClearFilter","_canKeepDataSource","_this$_dataSource","isMinSearchLengthExceeded","_isLastMinSearchLengthExceeded","_getSearchEvent","_getCompositionStartEvent","_getCompositionEndEvent","_getSetFocusPolicyEvent","_shouldRenderSearchEvent","_searchHandler","_isTextCompositionInProgress","_isTextComposition","_clearSearchTimer","_searchTimer","_searchDataSource","_searchCanceled","_filterDataSource","_dataSourceFiltered","_refreshPopupVisibility","_shouldOpenPopup","_hasItemsToShow","shouldOpenPopup","resultItems","resultAmount","_updatePopupDimensions","_needPopupRepaint","currentPageIndex","needRepaint","isLastPage","$customBoundaryContainer","offsetTop","windowHeight","submitValue","_shouldUseDisplayValue","DISABLED_STATE_SELECTOR","SELECTBOX_CLASS","SELECTBOX_POPUP_CLASS","SELECTBOX_CONTAINER_CLASS","SELECTBOX_POPUP_WRAPPER_CLASS","SelectBox","clearSelectBox","isEditable","_valueSubstituted","_preventFiltering","_savedTextRemoveEvent","_preventSubstitution","searchIfNeeded","_cancelSearchIfNeed","_setNextValue","_cancelEditing","isOpened","inputText","isCustomText","isSearchEnabled","onCustomItemCreating","customItem","showSelectionControls","allowClearing","tooltipEnabled","displayCustomValue","_initCustomItemCreatingAction","_renderTooltip","_focusListElement","_updateField","_scrollToSelectedItem","_focusSelectedElement","_items$indexOf","$listItems","_isCustomItemSelected","_renderFocusedElement","_preventInputValueRender","isPaginate","_renderInputValueAsync","_renderInputValueImpl","_setNextItem","dataSourceIsLoaded","hasPages","isLastItem","isUnknownItem","_getSelectionChangeHandler","_listFocusedItemChangeHandler","list","focusedItem","_selectionChangeHandler","addedItem","_getActualSearchValue","_shouldClearFilter","_restoreInputText","_wasSearch","showDataImmediately","_renderDimensions","_isValueEqualInputText","initialSelectedItem","_shouldCancelSearch","saveEditingValue","_loadItemDeferred","_createCustomItem","_clearTextValue","newSelectedItem","isOverlayTarget","_isOverlayNestedTarget","shouldCancelSearch","isPopupVisible","_hideAnimationProcessing","_shouldCancelSearchValue","$listFocused","_shouldCloseOnItemClick","_completeSelection","selectedItemText","_isValueChanging","_customItemAddedHandler","_customItemCreatingAction","actionResult","_setCustomItem","_wasSearchValue","_renderInputSubstitution","currentSearchLength","isAllSelected","inputHasSelection","isLastSymbolSelected","_shouldSubstitutionBeRendered","valueLength","TEMPLATE_MULTIPLE_ROOTS_ERROR","SCROLLVIEW_PULLDOWN_REFRESHING_CLASS","SCROLLVIEW_PULLDOWN_READY_CLASS","SCROLLVIEW_PULLDOWN_IMAGE_CLASS","SCROLLVIEW_PULLDOWN_INDICATOR_CLASS","SCROLLVIEW_PULLDOWN_TEXT_CLASS","SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS","STATE_RELEASED","STATE_READY","STATE_REFRESHING","STATE_LOADING","PULLDOWN_RELEASE_TIME","PullDownNativeScrollViewStrategy","_$topPocket","_$pullDown","_$refreshingText","_$scrollViewContent","_initCallbacks","pullDownCallbacks","releaseCallbacks","reachBottomCallbacks","_renderPullDown","_releaseState","$image","$loadContainer","$loadIndicator","$text","_$pullDownText","_$pullingDownText","_$pulledDownText","_state","_refreshPullDownText","pullDownTextItems","visibleState","_setTopPocketOffset","_updateDimensions","_topPocketSize","contentEl","containerEl","_bottomBoundary","_pullDownEnabled","_setPullDownOffset","_pullDownRefreshTimeout","_pullDownRefreshing","currentLocation","scrollDelta","_isPullDown","_pullDownReady","_isReachBottom","_reachBottom","_stateReleased","_reachBottomEnabled","floor","pullDownEnable","enabled","reachBottomEnable","pendingRelease","_releaseTimeout","_updateAction","SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS","PULLDOWN_ICON_CLASS","STATE_TOUCHED","STATE_PULLED","SwipeDownNativeScrollViewStrategy","_$icon","_releasePullDown","_startClientY","_deltaY","_movePullDown","pullDownHeight","_getPullDownHeight","_getPullDownStartPosition","angle","transform","_pullDownRefreshHandler","_refreshPullDown","math","ScrollViewScroller","_bottomPocketSize","_updateBounds","considerPockets","_$bottomPocket","_updateScrollbar","_scrollbar","_containerSize","contentSize","_contentSize","scaleRatio","_getScaleRatio","_moveContent","_reachBottomReady","_moveScrollbar","moveTo","ceil","_scrollComplete","_inBounds","_reachBottomLoading","_minOffset","_getMinOffset","_maxOffset","_releaseHandler","_moveToBounds","_update","_releaseTask","_release","_reachBottomEnablingHandler","_pullDownEnablingHandler","_considerTopPocketChange","_updateHandler","_pendingReleaseHandler","SimulatedScrollViewStrategy","_eventHandler","_createScroller","scroller","_scrollers","_scrollerOptions","$topPocket","$bottomPocket","$pullDown","$pullDownText","$pullingDownText","$pulledDownText","$refreshingText","SCROLLVIEW_CLASS","SCROLLVIEW_CONTENT_CLASS","SCROLLVIEW_TOP_POCKET_CLASS","SCROLLVIEW_BOTTOM_POCKET_CLASS","SCROLLVIEW_PULLDOWN_CLASS","SCROLLVIEW_REACHBOTTOM_CLASS","SCROLLVIEW_REACHBOTTOM_INDICATOR_CLASS","SCROLLVIEW_REACHBOTTOM_TEXT_CLASS","SCROLLVIEW_LOADPANEL","refreshStrategies","pullDown","swipeDown","simulated","isServerSide","scrollViewServerConfig","ScrollView","refreshStrategy","_loadingIndicatorEnabled","_initContent","_initTopPocket","_initBottomPocket","_initLoadPanel","$reachBottom","_$reachBottom","_$reachBottomText","_updateReachBottomText","$loadPanelElement","loadPanelOptions","_loadPanel","strategyName","strategyClass","_reachBottomHandler","_pullDownAction","_reachBottomAction","_tryRefreshPocketState","_pullDownEnable","_reachBottomEnable","_loadingIndicator","_pullDownLoading","preventReachBottom","showOrHide","DATA_SOURCE_OPTIONS_METHOD","DATA_SOURCE_CHANGED_METHOD","DATA_SOURCE_LOAD_ERROR_METHOD","DATA_SOURCE_LOADING_CHANGED_METHOD","DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD","SPECIFIC_DATA_SOURCE_OPTION","NORMALIZE_DATA_SOURCE","DataHelperMixin","postCtor","_disposeDataSource","_loadDataSource","widgetDataSourceOptions","dataSourceType","dataSourceOptions","_isSharedDataSource","_dataSourceType","_addDataSourceHandlers","_addDataSourceChangeHandler","_addDataSourceLoadErrorHandler","_addDataSourceLoadingChangedHandler","_addReadyWatcher","_ready","_proxiedDataSourceChangedHandler","_proxiedDataSourceLoadErrorHandler","_proxiedDataSourceLoadingChangedHandler","loadSingle","jsPrefixes","cssPrefixes","Webkit","Moz","O","ms","getStyles","forEachPrefixes","cssPrefixesCount","jsPrefix","prefixedProp","lowerPrefixedProp","styleProp","originalName","stylePropPrefix","specific","pxExceptions","normalizeStyleProp","setDimensionProperty","propertyName","setWidth","setHeight","TOOLBAR_CLASS","isCorrectStructure","hasTwoFields","hasCorrectFields","_getSpecificDataSourceOption","hasSimpleItems","innerItem","keepInitialKeyOrder","defaultNotDeepCopyArrays","propsToIgnore","getDiffItem","path","resultPaths","fullPropName","notDeepCopyArrays","type1","type2","diffPaths","objectDiffs","notDeepCopy","_diffPaths","objectDiffsFiltered","propsEnumerator","oldProps","processItem","reactProps","objectDiffsWithoutReactProps","getUpdatedOptions","_excluded2","normalizeProps","DomComponentWrapperProps","setupWidget","updateWidget","componentInstance","updatedOptions","prevProps","beginUpdate","endUpdate","_this$config","normalizedProps","CONTEXTMENU_NAMESPACE","CONTEXTMENU_NAMESPACED_EVENT_NAME","HOLD_NAMESPACED_EVENT_NAME","CONTEXTMENU_EVENT_NAME","ContextMenu","_contextMenuHandler","_holdHandler","_fireContextMenu","HOLD_EVENT_NAME","HOLD_TIMEOUT","HoldEmitter","_startTimer","holdTimeout","_touchWasMoved","_stopTimer","getRelativeOffset","targetElementClass","sourceElement","elementRect","parentElementRect","changeCallback","$originalViewPort","$current","isNewViewportFound","originalViewPort","TEMPLATE_OPTIONS_NAME","DX_POLYMORPH_WIDGET_TEMPLATE","widgetName","widgetElement","widgetOptions","_tempTemplates","_defaultTemplates","_anonymousTemplateName","_createTemplateIfNeeded","skipImmediate","useDeferUpdateForTemplates","tempTemplate","_extractTemplates","anonymousTemplateMeta","_extractAnonymousTemplate","suitableTemplates","_createTemplate","$anonymousTemplate","$notJunkTemplateContent","isEmptyText","cachedTemplate","templateSourceResult","DOMComponent","createDefaultOptions","_customClass","_getSynchronizableOptionsForCreateComponent","_checkFunctionValueDeprecation","optionNames","_attachWindowResizeCallback","_initTemplateManager","instanceCustomRules","_classCustomRules","isCustomOption","_isDimensionChangeSupported","windowResizeCallBack","_windowResizeCallBack","_renderElementAttributes","_toggleRTLDirection","_renderVisibilityChange","_attachVisibilityChangeHandlers","_attachDimensionChangeHandlers","_isVisibilityChangeSupported","_getOptionValue","_isCssUpdateRequired","_isHidden","_checkVisibilityChanged","modelByElement","_isUpdateAllowed","_requireRefresh","_renderComponent","_detachWindowResizeCallback","rtl","synchronizableOptions","nestedComponentOptions","nestedComponentConfig","_extendConfig","optionChangedHandler","extendConfig","renderRequired","_isInitializingRequired","_updateDOMComponent","_removeAttributes","_removeClasses","extractTemplates","anonymousTemplate","DIRECTION_VERTICAL","DIRECTION_HORIZONTAL","DIRECTION_BOTH","getDefaultAlignment","getBoundingRect","outerWidth","outerHeight","hideCallback","indexOfCallback","hasCallback","OVERLAY_CLASS","OVERLAY_WRAPPER_CLASS","OVERLAY_CONTENT_CLASS","OVERLAY_SHADER_CLASS","INNER_OVERLAY_CLASS","INVISIBLE_STATE_CLASS","RTL_DIRECTION_CLASS","OVERLAY_STACK","PREVENT_SAFARI_SCROLLING_CLASS","TAB_KEY","_proxiedDocumentDownHandler","Overlay","center","minWidth","minHeight","closeOnOutsideClick","copyRootClassesToWrapper","_ignoreCopyRootClassesToWrapperDeprecation","_ignoreElementAttrDeprecation","onShowing","onShown","onHiding","onHidden","innerOverlay","restorePosition","ignoreChildEvents","_fixWrapperPosition","_eventBindingTarget","_deprecatedOptions","since","_logDeprecatedOptionWarning","_initHideOnOutsideClickHandler","_initTabTerminatorHandler","_customWrapperClass","_initInnerOverlayClass","_toggleViewPortSubscription","_initHideTopOverlayHandler","_parentsScrollSubscriptionInfo","_hideOnParentsScrollHandler","warnPositionAsFunction","_hideTopOverlayHandler","_getActionsList","_actions","actions","_documentDownHandler","_areContentDimensionsRendered","entry","_entry$contentBoxSize","_this$_renderedDimens3","_this$_renderedDimens4","_this$_renderedDimens","_this$_renderedDimens2","contentBox","contentBoxSize","inlineSize","_renderedDimensions","blockSize","contentRect","_renderWrapperAttributes","_initPositionController","_showAnimationProcessing","_stopAnimation","isAttachedTarget","isInnerOverlay","outsideClick","_shouldHideOnOutsideClick","_outsideClickHandler","_isTopOverlay","overlayStack","_overlayStack","tabbableElements","_findTabbableBounds","_zIndexInitValue","_this2","_viewPortChangeHandle","_viewPortChangeHandler","_positionController","updateContainer","_renderVisibilityAnimate","_getAnimationConfig","_animateShowing","_this$_getAnimationCo","_showAnimation$start","_showAnimation$comple","_this3","showAnimation","_normalizeAnimation","startShowAnimation","completeShowAnimation","_animate","_isAnimationPaused","_toggleSafariScrolling","_showingDeferred","_parentHidden","_isParentHidden","_currentVisible","_isHidingActionCanceled","_toggleVisibility","_updateZIndexStackPosition","openingHandled","showingArgs","_isShowingActionCanceled","_moveFromContainer","_renderVisibility","_stopShowTimer","_asyncShowTimeout","showHideConfig","_animateHiding","_this$_getAnimationCo2","_hideAnimation$start","_hideAnimation$comple","_this4","hideAnimation","startHideAnimation","completeHideAnimation","_this4$_actions","_hidingDeferred","hidingArgs","_forceFocusLost","_toggleShading","_toggleSubscriptions","shouldResetActiveElement","completeCallback","startCallback","_moveToContainer","_renderGeometry","pushToStack","_zIndex","_toggleTabTerminator","_this5","_proxiedTabTerminatorHandler","_tabKeyHandler","$elements","elementsCount","$firstTabbable","$lastTabbable","isTabOnLast","isShiftTabOnFirst","isEmptyTabList","isOutsideTarget","$focusElement","_toggleHideTopOverlayCallback","_toggleHideOnParentsScrollSubscription","subscribe","needSubscribe","_this$_parentsScrollS","scrollEvent","prevTargets","closeOnScroll","$parents","_hideOnParentScrollTarget","closeHandled","_appendContentToElement","shouldDeferRendering","isParentHidden","_contentAlreadyRendered","isHidden","whenContentRendered","contentTemplateOption","noModel","_renderScrollTerminator","$root","onVisualPositionChanged","_getPositionControllerConfig","$scrollTerminator","terminatorEventName","drag","isWheel","isMouseMove","isScrollByWheel","cancelable","_detachWrapperToContainer","_renderGeometryImpl","updatePosition","_renderPosition","positionContent","_isAllWindowCovered","$visualContainer","$body","isIosSafari","safari","isAllWindowCovered","isScrollingPrevented","shouldPreventScrolling","shouldEnableScrolling","_cachedBodyScrollTop","styleWrapperPosition","_renderWrapperDimensions","positionWrapper","isVisualContainerWindow","wrapperWidth","wrapperHeight","_keyboardListenerId","_keyboardHandler","_deferShowTimer","restorePositionOnNextRender","_animateDeferred","updateVisualContainer","fixWrapperPosition","animateDeferred","forceStopAnimation","useLegacyTemplateEngine","watchChanges","rawData","fields","fieldsDispose","globalDispose","dataWithRawFields","resolvedData","missedFields","watchHandlers","BindableTemplate","_fields","_fieldsMap","_watchMethod","TextEditorButton","$placeMarker","_isRendered","_create","_attachEvents","_addPlaceMarker","_shouldRender","SWIPE_START_EVENT","SWIPE_EVENT","SWIPE_END_EVENT","HorizontalStrategy","defaultItemSizeFunc","getBounds","calcOffsetRatio","endEventData","_savedEventData","_itemSizeFunc","isFastSwipe","FAST_SWIPE_SPEED_LIMIT","_tickData","VerticalStrategy","STRATEGIES","SwipeEmitter","TICK_INTERVAL","elastic","_getStrategy","_defaultItemSizeFunc","moveEventData","offsetRatio","isFast","startOffset","targetOffset","_calcTargetOffset","bounds","VueType","errors_1","TEMPLATE_PROP","Vue","asConfigurable","$vnode","componentOptions","scopedSlots","slotName","$scopedSlots","$slots","slot","childComponent","defaultSlot","getSlot","inject","created","eventBus","$on","$forceUpdate","destroyed","$off","toRaw","deep","hasProp","$options","hasVModelValue","vnode","VMODEL_NAME","getVueVersion","currentVersion","POINTER_EVENTS_NAMESPACE","BaseStrategy","originalEvents","_eventName","_originalEvents","_handlerCount","_isNoBubble","_handler","_getDelegateTarget","shadowRoot","_originalEvent$path","_originalEvent$compos","composedPath","_setSelector","_selector","_getSelector","dxpointerdown","dxpointermove","dxpointerup","dxpointercancel","dxpointerover","dxpointerout","dxpointerenter","dxpointerleave","normalizeTouchEvent","pointerId","identifier","changedTouches","skipTouchWithSameIdentifier","pointerEvent","TouchStrategy","_pointerId","normalize","addEventsListener","Observer","eventMap","pointerEquals","onPointerAdding","getPointerIndex","removePointer","normalizeMouseEvent","activated","activateStrategy","MouseStrategy","resetObserver","MouseAndTouchStrategy","EVENT_LOCK_TIMEOUT","isMouse","_skipNextEvents","_mouseLocked","_unlockMouseTimer","normalizer","getStrategy","support","EventStrategy","leave","over","out","webkitRegExp","mozillaRegExp","browserFromUA","browserName","browserVersion","createOccurrenceMap","_map$value","wrapToArray","getUniqueValues","removeDuplicates","toRemove","toRemoveMap","normalizeIndexes","indexPropName","currentItem","needIndexCallback","indexedItems","useLegacyVisibleIndex","currentIndex","shouldUpdateIndex","getGroupName","groupedResult","_groupedResult$groupN","groupName","COMPOSITION_START_EVENT","COMPOSITION_END_EVENT","KEYDOWN_EVENT","NAMESPACE","ctrl","KeyboardProcessor","_keydown","_compositionStart","_compositionEnd","_processFunction","focusTargets","isNotFocusTarget","shouldSkipProcessing","_isComposingJustFinished","_isComposing","process","_toggleProcessingWithContext","toggleProcessing","Emitter","_cancelCallback","_acceptCallback","_accept","_acceptRequestEvent","_getEmitterTarget","counter","appContext","app","unmount","SCROLLABLE_NATIVE","SCROLLABLE_NATIVE_CLASS","SCROLLABLE_SCROLLBAR_SIMULATED","SCROLLABLE_SCROLLBARS_HIDDEN","HIDE_SCROLLBAR_TIMEOUT","NativeStrategy","scrollable","_useSimulatedScrollbar","_isScrollbarVisible","_renderScrollbars","isFirstRender","_moveScrollbars","_scrollbars","_hideScrollbarTimeout","_renderScrollbar","expandable","isScrollingEvent","_eachScrollbar","scrollbar","_createActionArgs","_eventForUserAction","reachedLeft","_isReachedRight","_isReachedLeft","reachedRight","reachedTop","reachedBottom","_normalizeOffsetLeft","_hideScrollbars","_updateScrollbars","_componentContentSize","scrollableNativeRegexp","_removeScrollbars","_isScrolledInMaxDirection","hasNegation","equals","oldValueIsNaN","newValueIsNaN","cachedGetters","cachedSetters","optionsByReference","_changingCallback","_changedCallback","_namePreparedCallbacks","rulesOptions","fieldName","merge","functionsAsIs","unwrapObservables","valueName","_prepareRelevantNames","_setPreparedValue","deprecatedOptions","_deprecatedCallback","_startChangeCallback","_endChangeCallback","_default","_deprecated","_deprecatedNames","_initDeprecatedNames","_optionManager","onRelevantNamesPrepared","_setRelevantNames","_cachedOptions","_rules","_initialOptions","_getByRules","_setByReference","normalizedName","_normalizeName","_setField","_clearField","fieldObject","previousFieldName","deprecate","_notifyDeprecated","onChanging","onChanged","initialValue","initial","areFunctions","_initial","isGetter","aliasName","_postponedOperations","postponedPromise","promises","completePromise","operation","getEventName","actionName","isInnerOption","Component","onDisposing","defaultOptionsRules","applyRules","isInitial","_optionChangedCallbacks","_disposingCallbacks","eventsStrategy","_updateLockCount","postponedOperations","_createOptions","_setDeprecatedOptions","_getOptionsByReference","_getDeprecatedOptions","_optionChanging","onDeprecated","_notifyOptionChanged","onStartChange","onEndChange","addRules","onInitializing","_setOptionsByDevice","_createOptionChangedAction","fireWith","_disposingAction","_createDisposingAction","_initializing","callPostponedOperations","_lockUpdate","_unlockUpdate","_commitUpdate","getAliasesByName","_defaultActionArgs","_cancelOptionChange","actionSource","actionValue","_defaultActionConfig","actionFunc","hasEvent","wrapActionsBeforeExecute","beforeActionExecute","wrappedAction","onActionCreated","isDeprecated","XHR_ERROR_UNLOAD","normalizeBinaryCriterion","normalizeSortingInfo","dir","errorMessageFromXhr","unloading","textStatusMessages","parsererror","textStatus","statusText","aggregators","pair","processRequestResultLock","lockDeferred","obtain","keysEqual","isUnaryOperation","isGroupOperator","isGroupCriterion","second","trivialPromise","rejectedPromise","throttle","lastArgs","throttleChanges","throttled","LOADINDICATOR_CLASS","LOADINDICATOR_WRAPPER_CLASS","LOADINDICATOR_CONTENT_CLASS","LOADINDICATOR_ICON_CLASS","LOADINDICATOR_SEGMENT_CLASS","LOADINDICATOR_SEGMENT_INNER_CLASS","LOADINDICATOR_IMAGE_CLASS","LoadIndicator","_animatingSegmentCount","_animatingSegmentInner","obsoleteAndroid","viaImage","_renderIndicatorContent","_renderMarkup","_renderMarkupForImage","_renderMarkupForAnimation","animatingSegmentInner","$segment","_updateContentSizeForAnimation","minDimension","_removeMarkupForAnimation","_removeMarkupForImage","KEYBOARD_DRAG_STEP","draggableElement","positionController","_draggableElement","_handle","_dragEnabled","unsubscribe","_moveTo","_getEventNames","startEventName","_dragStartHandler","updateEventName","_dragUpdateHandler","_dragEndHandler","allowedOffsets","_getAllowedOffsets","_prevOffset","_moveByOffset","dragHandled","detectVisualPositionChange","_fitOffsetIntoAllowedRange","$dragResizeContainer","containerDimensions","_getContainerDimensions","elementDimensions","_getElementDimensions","outsideDragFactor","fullDelta","_getInnerDelta","outerDelta","_getOuterDelta","_getFullDelta","isDragAllowed","elementPosition","_getElementPosition","containerPosition","_getContainerPosition","newPosition","RESIZABLE","RESIZABLE_CLASS","RESIZABLE_RESIZING_CLASS","RESIZABLE_HANDLE_CLASS","RESIZABLE_HANDLE_TOP_CLASS","RESIZABLE_HANDLE_BOTTOM_CLASS","RESIZABLE_HANDLE_LEFT_CLASS","RESIZABLE_HANDLE_RIGHT_CLASS","RESIZABLE_HANDLE_CORNER_CLASS","DRAGSTART_START_EVENT_NAME","DRAGSTART_EVENT_NAME","DRAGSTART_END_EVENT_NAME","SIDE_BORDER_WIDTH_STYLES","Resizable","handles","stepPrecision","area","onResizeStart","onResize","onResizeEnd","roundStepValue","keepAspectRatio","_renderHandles","_renderActions","_resizeStartAction","_resizeEndAction","_resizeAction","_handles","directions","activeHandlesMap","handleName","_renderHandle","$handle","handlers","_dragHandler","handleElement","_detachEventHandlers","_toggleEventHandlers","shouldAttachEvents","_getElementSize","_toggleResizingClass","_movingSides","_getMovingSides","_elementLocation","_elementSize","_renderDragOffsets","_getArea","handleWidth","handleHeight","handleOffset","areaOffset","_getAreaScrollOffset","_leftMaxOffset","scrollX","_rightMaxOffset","_topMaxOffset","scrollY","_bottomMaxOffset","_getBorderWidth","borderWidth","_proportionate","factor","_getProportionalDelta","proportionalY","proportionalX","_getDirectionName","axis","sides","_fitIntoArea","directionName","_fitDeltaProportionally","fittedDelta","getWidth","getHeight","isInArea","isFittedX","isFittedY","_fitDelta","_getDeltaByOffset","shouldKeepAspectRatio","_isCornerHandler","proportionalDelta","fittedProportionalDelta","roundedFittedDelta","_roundByStep","offsetLeft","_getOffset","dimensions","_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","isElement","areaElement","_correctAreaGeometry","$area","areaBorderLeft","areaBorderTop","_renderWidth","_renderHeight","forceApplyBindings","dragOutsideBoundary","dragAndResizeArea","_$dragResizeContainer","_outsideDragFactor","_lastPositionBeforeFullScreen","_updateDragResizeContainer","_updateOutsideDragFactor","_fullScreenEnabled","_fullScreenDisabled","containerProp","_this$_props$forceApp","_this$_props","_shouldRenderContentInitialPosition","_getOutsideDragFactor","_getDragResizeContainer","isContainerDefined","_$markupContainer","_getVisualContainer","_visualPosition","POPUP_CLASS","POPUP_WRAPPER_CLASS","POPUP_FULL_SCREEN_CLASS","POPUP_FULL_SCREEN_WIDTH_CLASS","POPUP_NORMAL_CLASS","POPUP_CONTENT_CLASS","DISABLED_STATE_CLASS","POPUP_DRAGGABLE_CLASS","POPUP_TITLE_CLASS","POPUP_TITLE_CLOSEBUTTON_CLASS","POPUP_BOTTOM_CLASS","POPUP_HAS_CLOSE_BUTTON_CLASS","POPUP_CONTENT_FLEX_HEIGHT_CLASS","POPUP_CONTENT_INHERIT_HEIGHT_CLASS","ALLOWED_TOOLBAR_ITEM_ALIASES","BUTTON_DEFAULT_TYPE","BUTTON_NORMAL_TYPE","BUTTON_TEXT_MODE","BUTTON_CONTAINED_MODE","IS_OLD_SAFARI","HEIGHT_STRATEGIES","static","flex","getButtonPlace","Popup","_this$_drag","_drag","moveUp","_this$_drag2","moveDown","_this$_drag3","moveLeft","_this$_drag4","moveRight","titleTemplate","onTitleRendered","resizeEnabled","bottomTemplate","useDefaultToolbarButtons","useFlatToolbarButtons","_iosAnimation","_androidAnimation","_updateResizeCallbackSkipCondition","_$popupContent","isFullscreen","_toggleFullScreenClass","_contentResizeHandler","_shouldSkipContentResize","shouldOnlyReposition","_doesShowAnimationChangeDimensions","_animation$show","doesShowAnimationChangeDimensions","_observeContentResize","shouldObserve","contentElement","_renderTitle","_renderResize","_renderBottom","_getToolbarItems","titleText","_$title","$title","_renderTemplateByType","_renderDrag","_executeTitleRenderAction","_hasCloseButton","additionalToolbarOptions","toolbarTemplate","toolbarOptions","useDefaultButtons","useFlatButtons","$toolbar","$titleElement","_getTitleRenderAction","titleElement","_titleRenderAction","_createTitleRenderAction","_getCloseButton","_getCloseButtonRenderer","_createToolbarItemAction","toolbarsItems","_toolbarItemClasses","currentPlatform","isShortcut","_getToolbarItemByAlias","isLTROrder","_getLocalizationKey","itemType","itemConfig","itemClass","$toolbarItem","clickAction","_$bottom","$bottom","compactMode","_toggleClasses","aliases","_getDragTarget","topToolbar","useResizeObserver","isAnimated","shouldRepeatAnimation","_cacheDimensions","_resetContentHeight","_setContentHeight","$dragTarget","_resizable","_resizeEndHandler","resizeHandled","overlayContent","currentHeightStrategyClass","_chooseHeightStrategy","_getHeightCssStyles","_setHeightClasses","_heightStrategyChangeOffset","popupVerticalPaddings","isAutoWidth","_isAutoHeight","cssStyles","contentMaxHeight","contentMinHeight","popupHeightParts","_splitPopupHeight","toolbarsAndVerticalOffsetsHeight","header","footer","contentVerticalOffsets","popupVerticalOffsets","overlayHeight","contentHeight","maxHeightValue","minHeightValue","currentClass","excessClasses","bottomToolbar","_renderFullscreenWidthClass","refreshPosition","_this$_resizable2","_this$_resizable","shouldRenderGeometry","SCROLLBAR","SCROLLABLE_SCROLLBAR_CLASS","SCROLLABLE_SCROLLBAR_ACTIVE_CLASS","SCROLLABLE_SCROLL_CLASS","SCROLLABLE_SCROLL_CONTENT_CLASS","HOVER_ENABLED_STATE","THUMB_MIN_SIZE","SCROLLBAR_VISIBLE","onHover","never","activeScrollbar","Scrollbar","visibilityMode","_isHovered","_renderThumb","_attachPointerDownHandler","_isHoverMode","_$thumb","isThumb","_dimension","_prop","feedbackOn","feedbackOff","cursorEnter","_needScrollbar","cursorLeave","_adjustVisibility","_baseContainerToContentRatio","scrollBarLocation","_calculateScrollBarPosition","_thumbRatio","baseContainerSize","baseContentSize","_realContainerToContentRatio","thumbSize","containerToContentRatio","_normalizeSize","combineClasses","activeFeedback","ACTIVE_EVENT_NAME","INACTIVE_EVENT_NAME","ACTIVE_TIMEOUT","INACTIVE_TIMEOUT","FeedbackEvent","_timeout","_fire","_schedule","_timer","_fired","fired","FeedbackEmitter","_active","_inactive","activeTimeout","inactiveTimeout","activeChildExists","childJustActivated","_initEvents","eventTarget","mouseEvent","deferFeedback","skipTimers","lockInactive","configComponent","propsData","_setOption","_clearItemKeys","equalKeys","getSelectableItems","preserve","isDeselect","isSelectAll","_removeTemplateProperty","remoteFilter","_loadFilteredData","localFilter","filterLength","encodeURI","needLoadAllData","filteredItems","updateSelectedItemKeyHash","keyHash","keyHashIndices","keyIndices","_isAnyItemSelected","_getFullSelectAllState","dataFilter","ignoreDisabledItems","selectedItemsLength","disabledItemsLength","_getVisibleSelectAllState","hasSelectedItems","hasUnselectedItems","getItemData","isSelectableItem","isItemKeySelected","selectionFilter","needResetSelectionFilter","_addSelectionFilter","removeSelectedItem","addSelectedItem","setSelectedItems","isItemDataSelected","_getKeyExpr","keyField","_normalizeKey","_getFilterByKey","_findSubFilter","filterString","subFilter","_isLastSubFilter","_addFilterOperator","filterOperator","_denormalizeFilter","_isOnlyNegativeFiltersLeft","filters","filterItem","currentFilter","currentOperation","needAddFilter","removedIndex","_removeSameFilter","filterIndex","shouldCleanFilter","isKeyOperatorsAfterRemoved","_isKeyFilter","_hasKeyFiltersOnlyStartingFromIndex","_normalizeFilter","_removeFilterByIndex","_isSimpleKeyFilter","inverted","_filterIndex","getSelectAllState","SelectionFilterCreator","selectedItemKeyHashesMap","getLocalFilter","keyGetter","functionFilter","getExpr","filterExpr","filterExprPart","getFilterForPlainKey","itemKeyValue","currentKeyExpr","currentKeyValue","getCombinedFilter","dataSourceFilter","combinedFilter","normalizeKeys","selectedKeyHashesMap","normalizedKeys","keyValue","_initSelectedItemKeyHash","_preserveSelectionUpdate","keyIndicesToRemoveMap","keyIndex","isBatchDeselect","_batchRemoveSelectedItems","_loadSelectedItemsCore","selectionFilterCreator","deselectedItems","_replaceSelectionUpdate","internalKeys","_warnOnIncorrectKeys","_isMultiSelectEnabled","_requestInProgress","_this$_lastLoadDeferr","_lastLoadDeferred","_concatRequestsItems","oldRequestItems","updatedKeys","_collectLastRequestData","isDeselectAll","multiSelectEnabled","lastRequestData","_lastRequestData","_shouldMergeWithLastRequest","_updateKeysByLastRequestData","_this$_lastRequestDat","_this$_lastRequestDat2","currentKeys","_loadSelectedItems","disabledItemKeys","_getKeyHash","_indexOfSelectedItemKey","_getSelectedIndexByKey","ignoreIndicesMap","_getSelectedIndexByHash","_shiftSelectedKeyIndices","currentKeyIndex","currentKey","currentKeyHash","currentKeyIndices","_updateAddedItemKeys","_updateRemovedItemKeys","oldSelectedKeys","oldSelectedItems","_isItemSelectionInProgress","shouldCheckPending","_this$_lastRequestDat3","visibleOnly","selectedKeys","_selectionStrategy","_focusedItemIndex","filterIsChanged","_keys","_addSelectedItem","_removeSelectedItem","_setSelectedItems","changeItemSelection","setFocusOnly","_this$options$allowLo","_this$options","isSelectedItemsChanged","indexOffset","allowLoadByRange","focusedItemNotInLoadedRange","shiftFocusedItemNotInLoadedRange","itemIsNotInLoadedRange","it","loadIndex","_shiftFocusedItemIndex","isSelectable","isDataItem","itemKey","changeItemSelectionWhenShiftKeyInVirtualPaging","changeItemSelectionWhenShiftKeyPressed","_resetItemSelectionWhenShiftKeyPressed","clearSelectedItems","isKeysEqual","_resetFocusedItemIndex","getLoadOptions","itemIndexStep","startIndex","endIndex","indexOffsetDefined","focusedData","focusedKey","isFocusedItemSelected","selectAll","isOnePage","_onePageSelectAll","deselectAll","ChildDefaultTemplate","callOnce","_wrappedHandler","getPublicElement","INKRIPPLE_CLASS","INKRIPPLE_WAVE_CLASS","INKRIPPLE_SHOWING_CLASS","INKRIPPLE_HIDING_CLASS","DEFAULT_WAVE_SIZE_COEFFICIENT","MAX_WAVE_SIZE","ANIMATION_DURATION","HOLD_ANIMATION_DURATION","DEFAULT_WAVE_INDEX","initConfig","wavesNumber","durations","getDurations","getInkRipple","getWaves","inkRipple","$currentWave","getWaveStyleConfig","elementWidth","elementHeight","elementDiagonal","sqrt","waveSize","$wave","wave","hidingTimeout","hideSelectedWave","showingTimeout","showingWaveHandler","durationCss","showingScale","hidingScale","hidingOpacity","animationDuration","SELECTION_SHIFT","SELECTION_MASK","combineIndex","splitIndex","combinedIndex","GroupedEditStrategy","_groupElements","_groupItemElements","itemGroup","_getGroups","query","groupItemByKeyMap","getItemMeta","groupKey","itemMeta","selectedGroup","movingIndices","destinationIndices","movingItemGroup","destinationItemGroup","firstIndex","secondIndex","editOptionsRegistry","registerOption","enabledFunc","decoratorTypeFunc","decoratorSubTypeFunc","decoratorType","decoratorSubType","LIST_ITEM_BEFORE_BAG_CLASS","LIST_ITEM_AFTER_BAG_CLASS","DECORATOR_BEFORE_BAG_CREATE_METHOD","DECORATOR_AFTER_BAG_CREATE_METHOD","DECORATOR_MODIFY_ELEMENT_METHOD","DECORATOR_AFTER_RENDER_METHOD","DECORATOR_GET_EXCLUDED_SELECTORS_METHOD","EditProvider","_fetchRequiredDecorators","_decorators","decorator","optionEnabled","_createDecorator","subType","_findDecorator","_registry$type","foundDecorator","modifyItemElement","_prependBeforeBags","_appendAfterBags","_applyDecorators","afterItemsRendered","$beforeBags","_collectDecoratorsMarkup","$afterBags","containerClass","$collector","_handlerExists","decorators","handleClick","handleKeyboardEvents","currentFocusedIndex","moveFocusUp","handleEnterPressing","contextMenuHandlerExists","handleContextMenu","getExcludedItemSelectors","excludedSelectors","LIST_ITEM_SELECTED_CLASS","LIST_ITEM_RESPONSE_WAIT_CLASS","ListEdit","moveFocusedItem","editStrategy","focusedItemIndex","isLastIndexFocused","_getLastItemIndex","nextItemIndex","editProvider","_editProvider","isInternalMoving","privateKey","__dx_key__","selectAllMode","onSelectAllValueChanged","selectAllText","menuItems","menuMode","allowItemDeleting","itemDeleteMode","itemDragging","_initEditProvider","_isPageSelectAll","_disposeEditProvider","_refreshEditProvider","handledByEditProvider","_this$_editStrategy$g","flatIndex","ListSearch","_addWidgetPrefix","getOperationBySearchMode","BaseComponent","DxComponent","children_processing_1","configuration_1","templates_manager_1","inheritAttrs","provide","$_processChildren","$attrs","beforeUpdate","updated","initOptionChangedFunc","getInnerChanges","$_templatesManager","$_instance","isDirty","_c","_d","_e","$_pendingOptions","name_2","$_applyConfigurationChanges","beforeDestroy","componentsCountChanged","resetOption","thisComponent","$_getIntegrationOptions","$_WidgetClass","$_createEmitters","$_getWatchMethod","$_getExtraIntegrationOptions","name_3","valueGetter","valueChangeCallback","$listeners","listenerName","cleanWidgetNode","removedNodes","childNode","isExtension","restoreNodes","childExtension","configurationTemplate","namedTeplates","declaredTemplates","getChildren","componentChildren_1","configurationDefaultTemplate","clearConfiguration","newContent","getConfigurationOptions","mount","$_updatedHandler","unmounted","E1001","E1002","E1003","E1004","E1005","E1006","E1007","E1010","E1011","E1012","E1016","E1018","E1019","E1020","E1021","E1022","E1023","E1025","E1026","E1031","E1032","E1033","E1034","E1035","E1037","E1038","E1039","E1040","E1041","E1042","E1043","E1044","E1045","E1046","E1047","E1048","E1049","E1050","E1051","E1052","E1053","E1054","E1055","E1056","E1058","E1059","E1060","W1001","W1002","W1003","W1004","W1005","W1006","W1007","W1008","W1009","W1010","W1011","W1012","W1013","W1014","W1015","W1016","W1017","W1018","W1019","W1020","ArrayStore","initialArray","_array","AsyncCollectionWidget","_deferredItems","renderContentDeferred","itemDeferred","_postProcessRenderItems","TOOLBAR_BEFORE_CLASS","TOOLBAR_CENTER_CLASS","TOOLBAR_AFTER_CLASS","TOOLBAR_MINI_CLASS","TOOLBAR_ITEM_CLASS","TOOLBAR_LABEL_CLASS","TOOLBAR_BUTTON_CLASS","TOOLBAR_ITEMS_CONTAINER_CLASS","TOOLBAR_GROUP_CLASS","TOOLBAR_COMPACT_CLASS","TOOLBAR_LABEL_SELECTOR","TOOLBAR_MULTILINE_CLASS","TEXT_BUTTON_MODE","DEFAULT_BUTTON_TYPE","DEFAULT_DROPDOWNBUTTON_STYLING_MODE","TOOLBAR_ITEM_DATA_KEY","ToolbarBase","rawModel","menuItem","renderAs","multiline","_$toolbarItemsContainer","_buttonClass","_arrangeItems","_applyCompactMode","_renderToolbar","_renderSections","_waitParentAnimationFinished","runCheck","_waitParentAnimationTimeout","readyToResolve","_renderItemsAsync","_checkWebFontForLabelsLoaded","sectionClass","$section","$labels","_$centerSection","margin","beforeRect","_$beforeSection","afterRect","_$afterSection","_alignCenterSection","labelOffset","widthBeforeSection","widthAfterSection","elemsAtSectionWidth","freeSpace","sectionMaxWidth","_alignSection","labelPaddings","isRTL","leftRect","rightRect","centerRect","marginRight","labels","_getCurrentLabelsPaddings","currentWidth","_getCurrentLabelsWidth","difference","reverse","_alignSectionLabels","expanding","getRealLabelWidth","currentLabelWidth","labelMaxWidth","possibleLabelWidth","padding","itemContainer","$after","itemHasText","_renderGroupedItems","groupItems","forcibleWatcher","filteredCallback","CollectionItem","_rawData","_watchers","_renderDisabled","_renderVisible","exprGetter","watcher","_dirty","_updateOwnerFocus","ownerComponent","triggerVisibilityChangeEvent","changeHandlers","triggerShownEvent","triggerHidingEvent","triggerResizeEvent","hasKey","keyOrKeys","findItems","childItems","collapsedItems","indexByKey","getItems","generateDataByKeyMap","_dataByKeyMap","_dataByKeyMapLength","dataByKeyMap","arrayLength","getCacheValue","getHasKeyCacheValue","setDataByKeyMapValue","cloneInstanceWithChangedPaths","clonedInstances","WeakMap","getPrototypeOf","instanceWithoutPrototype","createObjectWithChanges","applyBatch","immutable","disableCache","logError","getErrorResult","isBatch","errorCode","useLegacyStoreResult","scrollbarWidth","horzRe","vertRe","collisionRe","scaleRe","IS_SAFARI","normalizeAlign","raw","w","normalizeOffset","normalizeCollision","getAlignFactor","align","inverseAlign","calculateOversize","oversize","myLocation","collisionSide","initMyLocation","atLocation","atAlign","atSize","myAlign","mySize","collisionResolvers","fit","inverseData","flipfit","none","calculateScrollbarWidth","$scrollDiv","overflow","defaultPositionResult","calculatePosition","what","$what","currentOffset","boundaryOffset","visualViewport","ofRect","getOffsetWithoutScale","hZoomLevel","vZoomLevel","boundaryWidth","boundaryHeight","$boundary","boundaryPosition","preciser","precise","setScaleProperty","transformProp","styleAttr","stylePropIsValid","$startElement","_currentElement$getAt","_currentElement$style","_style$match","$currentElement","COMPONENT_NAMES_DATA_KEY","ANONYMOUS_COMPONENT_DATA_KEY","componentNames","nextAnonymousComponent","getName","generatedName","attachInstanceToElement","disposeFn","getInstanceByElement","RADIO_BUTTON_CLASS","RADIO_BUTTON_ICON_CLASS","RADIO_BUTTON_ICON_DOT_CLASS","RADIO_BUTTON_CHECKED_CLASS","RADIO_BUTTON_ICON_CHECKED_CLASS","RadioButton","_renderIcon","_renderCheckedState","_renderClick","checked","_clickHandler","LIST_EDIT_DECORATOR","SWIPE_START_EVENT_NAME","SWIPE_UPDATE_EVENT_NAME","SWIPE_END_EVENT_NAME","EditDecorator","_shouldHandleSwipe","swipeConfig","_clearSwipeCache","_itemWidthCache","_itemSwipeStartHandler","_itemSwipeUpdateHandler","_swipeStartHandler","_swipeUpdateHandler","_swipeEndHandler","beforeBag","afterBag","_commonOptions","modifyElement","afterRender","visibilityChange","getExcludedSelectors","SELECT_DECORATOR_ENABLED_CLASS","SELECT_DECORATOR_SELECT_ALL_CLASS","SELECT_DECORATOR_SELECT_ALL_CHECKBOX_CLASS","SELECT_DECORATOR_SELECT_ALL_LABEL_CLASS","SELECT_CHECKBOX_CONTAINER_CLASS","SELECT_CHECKBOX_CLASS","SELECT_RADIO_BUTTON_CONTAINER_CLASS","SELECT_RADIO_BUTTON_CLASS","FOCUSED_STATE_CLASS","CLICK_EVENT_NAME","_singleStrategy","_containerClass","_controlClass","_controlWidget","$control","_isSelected","_processCheckedState","_updateSelectAllState","_$selectAll","_selectAllCheckBox","_renderSelectAll","moveFocusDown","$selectAll","lastItemIndex","isFocusOutOfList","hasSelectAllItem","downArrowHandler","_attachSelectAllHandler","_selectAllHandler","_selectAllClickHandler","isSelectedAll","_selectAllItems","_unselectAllItems","_checkSelectAllCapability","_disposeSelectAll","OVERLAY_POSITION_ALIASES","OVERLAY_DEFAULT_BOUNDARY_OFFSET","OverlayPositionController","_$visualContainer","_initialPosition","_previousVisualPosition","_position","shouldRestorePosition","positionProp","_normalizePosition","getSwatchContainer","_updateVisualPositionValue","_raisePositionedEvents","_renderContentInitialPosition","useFixed","positionStyle","_renderBoundaryOffset","wrapperOverflow","previousPosition","isVisualPositionChanged","_this$_position","_this$_props$position","_this$_props$position2","visualContainerProp","positionOf","defaultPositionConfig","_positionToObject","_extends","EVENT_NAME","EVENT_NAMESPACE","NATIVE_EVENT_NAME","PIXEL_MODE","DELTA_MUTLIPLIER","_wheelHandler","deltaMode","deltaZ","_normalizeDelta","touchPropsToHook","touchPropHook","EMPTY_EVENT_NAME","NATIVE_EVENTS_TO_SUBSCRIBE","mouseenter","mouseleave","pointerenter","pointerleave","NATIVE_EVENTS_TO_TRIGGER","focusin","focusout","NO_BUBBLE_EVENTS","forcePassiveFalseEventNames","EVENT_PROPERTIES","matchesSafe","skipEvent","elementDataMap","guid","special","specialData","getField","callMethod","eventsEngine","normalizeOnArguments","iterate","handlersController","getHandlersController","addHandler","oneTimeHandler","normalizeOffArguments","removeHandler","normalizeTriggerArguments","extraParameters","callHandlers","isPropagationStopped","getParents","_element$parentNode","parentDataByEvent","callNativeMethod","applyForEach","itemArgs","detectPassiveEventHandlersSupport","isSupported","passiveEventHandlersSupported","elementData","eventNameParts","namespaces","eventNameIsDefined","handleObjects","nativeHandler","callHandler","secondaryTargetIsInside","handlerArgs","handleObject","wrappedHandler","nativeListenerOptions","firstHandlerForTheType","shouldAddNativeListener","getNativeHandler","passive","removeByEventName","removedHandler","isSubset","lastHandlerForTheType","shouldRemoveNativeListener","elementDataIsEmpty","forceStop","handleCallback","isImmediatePropagationStopped","subscribeName","original","normalizeEventArguments","_propagationStopped","_immediatePropagationStopped","_defaultPrevented","propagationStopped","stopImmediatePropagation","defaultPrevented","iterateEventNames","nativeMethodName","localName","calculateWhich","charCode","keyCode","1","2","3","4","initEvent","EventClass","addProperty","hook","eventInstance","writable","_src$view","srcIsEvent","view","isTrusted","beforeSetStrategy","afterSetStrategy","engine","offArgs","TRANSLATOR_DATA_KEY","TRANSFORM_MATRIX_REGEX","TRANSLATE_REGEX","locate","getTranslate","isPercentValue","cacheTranslate","clearCache","getTranslateCss","xValueString","yValueString","transformValue","matrix","is3D","resetPosition","finishTransition","originalTransition","stylesConfig","parseTranslate","translateString","remoteQueryImpl","tasks","createTask","executorTask","_adapterFactory","_adapter","_taskQueue","_currentTask","_mergedSortArgs","rejectWithNotify","mergeSortTask","adapter","optimize","unmergedTasks","clientChain","queryImpl","remote","impl","getSessionStorage","maxTouchPoints","transitionEndEventNames","webkitTransition","MozTransition","OTransition","supportProp","isNativeScrollingSupported","isNativeScrollDevice","detectTouchEvents","hasWindowProperty","detectPointerEvent","touchEvents","pointerEvents","touchPointersPresent","transitionEndEventName","nativeScrolling","PROPER_FUNCTION_NAME","PROPER","fails","whitespaces","non","module","METHOD_NAME","EventsStrategy","_events","_owner","eventArgs","addFn","originalAdd","TOTAL_COUNT","LOAD","BY_KEY","INSERT","UPDATE","REMOVE","isPromise","ensureRequiredFuncOption","throwInvalidUserFuncResult","createUserFuncFailureHandler","promiseArguments","getResponseHeader","invokeUserLoad","userResult","userFunc","_loadFunc","invokeUserTotalCountFunc","_totalCountFunc","invokeUserByKeyFunc","_byKeyFunc","runRawLoad","userFuncOptions","continuation","__rawData","loadPromise","__rawDataPromise","_cacheRawData","runRawLoadWithQuery","countOnly","itemsQuery","totalCountQuery","rawDataQuery","waitList","runRawLoadWithKey","CustomStore","useDefaultSearch","_loadMode","cacheRawData","_insertFunc","_removeFunc","serverResponse","DxExtensionComponent","convertRulesToOptions","currentDevice","ruleOptions","deviceFilter","deviceMatch","normalizeOptions","getFieldName","getParentName","getNestedOptionValue","optionsObject","createDefaultOptionRules","SCROLL_EVENT","SCROLL_INIT_EVENT","SCROLL_START_EVENT","SCROLL_MOVE_EVENT","SCROLL_END_EVENT","SCROLL_STOP_EVENT","SCROLL_CANCEL_EVENT","Locker","NAMESPACED_SCROLL_EVENT","_proxiedScroll","_scroll","check","TimeoutLocker","_prepare","_forget","_clearTimer","WheelLocker","_lastWheelDirection","_checkDirectionChanged","directionChange","PointerLocker","isIos","isAndroid","_scrollFrame","_checkFrame","ScrollEmitter","FRAME_DURATION","_pointerLocker","_wheelLocker","skipCheck","_prevEventData","currentEventData","endEventDelta","velocity","velocityMultiplier","DxConfiguration","isStringOrNumber","isNumber","combineFrom","key$1","isLinkEventObject","EMPTY_OBJ","Fragment","normalizeEventName","insertOrAppend","newNode","documentCreateElement","tag","newDom","lastDom","callAll","arrayFn","findChildVNode","startEdge","findDOMfromVNode","removeVNodeDOM","moveVNodeDOM","createDerivedState","getDerivedStateFromProps","renderCheck","componentComparator","createVNode","renderComplete","setTextContent","isLastValueSameLinkEvent","lastValue","nextValue","mergeUnsetProperties","safeCall1","arg1","keyPrefix","V","childFlag","normalizeChildren","mergeDefaultHooks","defaultHooks","mergeDefaultProps","resolveComponentFlags","createComponentVNode","createTextVNode","createFragment","createVoidVNode","cloneFragment","vNodeToClone","oldChildren","directClone","propsToClone","createPortal","normalizedRoot","normalizeRoot","_normalizeVNodes","newKey","oldKey","isPrefixedKey","getFlagsForElementVnode","newChildren","newChildFlags","needsCloning","isNullKey","isPrefixed","xlinkNS","xmlNS","getDelegatedEventObject","onDblClick","onKeyPress","onMouseDown","onMouseMove","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","attachedEventCounts","attachedEvents","syntheticEvents","updateOrAddSyntheticEvent","eventsObject","$EV","attachEventToDocument","unmountSyntheticEvent","handleSyntheticEvent","lastEvent","nextEvent","getTargetNode","dispatchEvents","isClick","currentEvent","cancelBubble","immediatePropagationStopped","extendEventProperties","rootClickEvent","rootEvent","attachedEvent","triggerEventListener","nativeListenerName","createWrappedFunction","applyValue","fnMethod","newVNode","attachEvent","previousKey","previousArgs","wrapped","isCheckedType","onTextInputChange","applyValueInput","wrappedOnChange","emptywrapper","inputEvents","nextPropsOrEmpty","multiple","hasValue","updateChildOptions","updateChildOption","selected","onSelectChange","applyValueSelect","selectEvents","mounting","multiplePropInBoolean","onTextareaInputChange","applyValueTextArea","wrappedOnChange$1","textAreaEvents","domValue","processElement","isControlled","addFormElementEventHandlers","isControlledFormElement","createRef","unmountRef","mountRef","unmountAllChildren","componentWillUnmount","$UN","clearDOM","removeAllChildren","wrapLinkEvent","ev","patchEvent","patchStyle","lastAttrValue","nextAttrValue","domStyle","removeProperty","patchDangerInnerHTML","lastVNode","lastHtml","nextHtml","patchProp","hasControlledValue","autofocus","setAttributeNS","mountProps","isFormElement","renderNewInput","nextInput","childContext","getChildContext","createClassComponentInstance","usesNewAPI","$N","getSnapshotBeforeUpdate","$SVG","$L","$BS","componentWillMount","$BR","$PS","renderFunctionalComponent","mountElement","mountClassComponent","mountFunctionalComponent","mountFunctionalComponentCallbacks","mountText","mountFragment","mountPortal","placeHolderVNode","mountArrayChildren","childrenIsSVG","mountClassComponentCallbacks","createClassMountCallback","createOnMountCallback","replaceWithNewNode","nextVNode","patch","nextFlags","patchElement","patchClassComponent","patchFunctionalComponent","patchText","patchFragment","patchPortal","patchSingleTextChild","lastChildren","nextChildren","patchContentEditableChildren","lastChildFlags","nextChildFlags","nextIsSingle","lastLen","patchChildren","lastContainer","nextContainer","lastProps","lastPropsOrEmpty","nextClassName","nextRef","lastRef","replaceOneVNodeWithMultipleVNodes","lastLength","nextLength","patchKeyedChildren","patchNonKeyedChildren","createDidUpdate","lastState","snapshot","updateClassComponent","hasSCU","componentWillReceiveProps","nextHooksDefined","lastInput","nextText","lastChildrenLength","nextChildrenLength","nextChild","commonLength","aLength","bLength","outerEdge","nextPos","aEnd","bEnd","aNode","bNode","outer","patchKeyedChildrenComplex","aStart","bStart","aLeft","bLeft","sources","Int32Array","canRemoveWholeContent","moved","patched","seq","lis_algorithm","maxLen","arrI","u","hasDocumentAvailable","__render","rootInput","QUEUE","nextTick","microTaskPending","queueStateChanges","newState","stateKey","applyState","$F","rerender","QU","$QU","callSetStateCallbacks","queue","pendingState","forceUpdate","_nextContext","callbacks_1","includeAttrs","getAttrs","attrValue","defaultSlots","proxy","beforeUnmount","getComponentProps","getVModelValue","$_hasAsyncTemplate","childExtenton","deviceDependentOptions","stubComponent","componentName","EditorClass","searchEditorOptions","_renderSearch","searchBoxClassName","rootElementClassName","_removeSearchBox","editorOptions","_getSearchEditorOptions","_searchEditor","_$searchEditorElement","userEditorOptions","searchText","_valueChangeDeferred","_valueChangeTimeout","_cleanAria","setEditorClass","parentPath","beforeMount","hoveredScrollable","activeScrollable","SCROLLABLE_SIMULATED","SCROLLABLE_SIMULATED_CURSOR","SCROLLABLE_SIMULATED_KEYBOARD","SCROLLABLE_SIMULATED_CLASS","SCROLLABLE_SCROLLBARS_ALWAYSVISIBLE","ACCELERATION","OUT_BOUNDS_ACCELERATION","MIN_VELOCITY_LIMIT","SCROLL_LINE_HEIGHT","VALIDATE_WHEEL_TIMEOUT","BOUNCE_MIN_VELOCITY_LIMIT","BOUNCE_DURATION","BOUNCE_FRAMES","BOUNCE_ACCELERATION_SUM","pow","KEY_CODES","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","TAB","InertiaAnimator","VELOCITY_LIMIT","_velocity","_scrollStep","_acceleration","BounceAnimator","_crossBoundOnNextStep","_bounceLocation","Scroller","_initAnimators","_initScrollbar","_topReached","_bottomReached","_axis","_scrollProp","_inertiaAnimator","_bounceAnimator","_scrollByThumb","_visibilityModeNormalize","_scrollbarVisible","_$scrollbar","prevLocation","_suppressBounce","_bounceEnabled","_boundLocation","_moveContentByTranslator","_scaleRatio","realDimension","_getRealDimension","baseDimension","_getBaseDimension","dimensionName","translateOffset","_maxScrollPropValue","_translateOffset","_hideScrollbar","_completeDeferred","_scrollToBounds","_bounceAction","_setupBounce","boundLocation","bounceDistance","nextLocation","_stopScrolling","_prepareThumbScrolling","scrollbarClicked","_isScrollbar","_moveToMouseLocation","_thumbScrolling","_isThumb","_crossThumbScrolling","_isAnyThumbScrolling","_isThumbScrollingHandler","mouseLocation","_containerToContentRatio","_startHandler","_showScrollbar","_moveHandler","_scrollBy","_scrollByHandler","_endHandler","_inertiaHandler","_resetThumbScrolling","_suppressInertia","_inertiaEnabled","_stopHandler","_disposeHandler","_resetScaleRatio","_updateLocation","locationChanged","_createActionsHandler","bounce","isOverflowHidden","containerScrollSize","_validateEvent","_reachedMin","_reachedMax","_cursorEnterHandler","_cursorLeaveHandler","SimulatedStrategy","_createScrollers","_attachKeyboardHandler","_attachCursorHandlers","scrollbarVisible","isAnyThumbScrolling","_getPropByDirection","isThumbScrollingVertical","isThumbScrollingHorizontal","_suppressDirections","_eachScroller","_isContent","_validDirections","_startAction","_saveActive","_resetActive","_adjustDistance","_tryGetDevicePixelRatio","_refreshCursorState","_endAction","_updateRtlConfig","_updateHandlerTimeout","_scrollByLine","_scrollByPage","_scrollToHome","_scrollToEnd","lines","page","_wheelProp","_dimensionByProp","_createActionHandler","_createScrollerActions","actionHandler","scrollerX","scrollerY","_scrollOffset","deferreds","_hoverHandled","$scrollable","targetScrollable","touchDirection","verticalScroller","horizontalScroller","_isHorizontalAndRtlEnabled","_rtlConfig","scrollRight","windowPixelRatio","_getWindowDevicePixelRatio","skipUpdating","_validateWheel","_wheelDirection","reachedMin","reachedMax","contentGreaterThanContainer","locatedNotAtBound","scrollFromMin","scrollFromMax","validated","_validateWheelTimer","removeEvent","eventPropName","getNodeTypeOfComponent","usedConfigurationProps","hasChildren","subTree","findConfigurationComponents","hasInlineTemplate","createApp","setAppContext","compatConfig","MODE","modelValue","emits","setCustomPluginsData","parentAppContext","components","setPrototypeOf","provides","directives","mixins","childType","isConfiguration","isComment","SWATCH_CONTAINER_CLASS_PREFIX","swatchContainer","viewport","swatchClassRegex","swatchClass","viewportSwatchContainer","saveValueChangeEvent","innerWidget","optionsContainer","innerWidgetOptions","syncOptions","_silent","areValuesEmpty","_this$_valueChangeAct","_raiseValidation","prevIsEditor","newIsEditor","defaultIconSizes","defaultFontSizes","getThemeType","isMaterialTheme","isCompactTheme","getDefaultIconSize","getDefaultFontSize","isChecked","getFontSizeByIconSize","iconSize","defaultFontSize","defaultIconSize","fontToIconSizeRatio","elementRef","CheckBoxIconProps","updateFontSize","setIconFontSize","getIconSize","getComputedIconSize","newIconSize","newFontSize","endsWith","iconComputedStyle","computedIconSize","indeterminate","editorRef","CheckBoxProps","CheckBoxPropsType","__newValue","__processTwoWayProps","twoWayProps","defaultPropName","nodesByEvent","subscribeNodesDisposing","unsubscribeNodesDisposing","prevented","lastFiredEvent","onNodeRemove","clickHandler","eventAlreadyFired","DXCLICK_FIRED","leftButton","ClickEmitter","desktopDevice","blurPrevented","multiLevelGroup","g","arrangeSortingInfo","sortInfo","filteredGroup","isCountQuery","ResizeObserverMock","disconnect","ResizeObserverSingleton","ResizeObserver","_callbacksMap","Map","_observer","_this$_callbacksMap$g","resizeObserverSingleton","getKeyWrapper","getKey","getSameNewByOld","newIndexByKey","findChanges","oldItems","isItemEquals","oldIndexByKey","addedCount","removeCount","itemCount","newItem","oldNextIndex","nextOldItem","isRemoved","oldIndex","Widget","hoveredElement","_renderHint","_isFocusable","_renderFocusTarget","_attachFeedbackEvents","_attachHoverEvents","_toggleIndependentState","_resetActiveState","_attachFocusEvents","_renderAccessKey","$focusTarget","_getKeyboardListeners","hasChildListeners","hasKeyboardEventHandler","shouldAttach","onlyChildProcessing","keyboardListeners","_hoverStartHandler","_hoverEndHandler","_hover","$previous","_findHoverTarget","newHoveredElement","widgetOptionMap","_updatedHover","_isReady","dataMap","strategyChanging","beforeCleanDataFunc","afterCleanDataFunc","setDataStrategy","cleanData","beforeCleanData","cleanDataRecursive","cleanSelf","childElements","getElementsByTagName","SPECIAL_HEIGHT_VALUES","getSizeByStyles","getElementBoxParams","beforeName","afterName","_element$ownerDocumen","defaultView","getCSSProperty","_element$style","boxIndices","dimensionComponents","getComponentThickness","elem","suffix","getSize","box","offsetFieldName","currentBox","targetBox","targetBoxIndex","currentBoxIndex","coeff","scrollThickness","boxPart","paddingAndBorder","getContainerHeight","parseHeight","getHeightWithOffset","operationString","addOffsetToMaxHeight","addOffsetToMinHeight","getVerticalOffsets","withMargins","boxParams","getVisibleHeight","boundingClientRect","implementationsMap","elementSizeHelper","getOuterWidth","_len5","_key5","setOuterWidth","_len6","_key6","getOuterHeight","_len7","_key7","setOuterHeight","_len8","_key8","getInnerWidth","_len9","_key9","setInnerWidth","_len10","_key10","getInnerHeight","_len11","_key11","setInnerHeight","_len12","_key12","sizeProperty","partialName","isOuter","isInner","sizeAdjustment","isBorderBox","boxSizing","setStyle","getWindowByElement","getOffset","rect","docElem","clientTop","clientLeft","HOVERSTART_NAMESPACE","HOVERSTART","POINTERENTER_NAMESPACED_EVENT_NAME","HOVEREND_NAMESPACE","HOVEREND","POINTERLEAVE_NAMESPACED_EVENT_NAME","Hover","_handlerArrayKeyPath","_eventNamespace","_originalEventName","HoverStart","HoverEnd"],"mappings":"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","file":"js/chunk-1d48a6fa.6f7b098a.js","sourcesContent":["/*!\n * devextreme-vue\n * Version: 22.1.5\n * Build date: Fri Sep 02 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setEmitOptionChangedFunc = exports.bindOptionWatchers = void 0;\nvar helpers_1 = require(\"./helpers\");\nvar Configuration = /** @class */ (function () {\n function Configuration(updateFunc, name, initialValues, expectedChildren, isCollectionItem, collectionItemIndex, ownerConfig) {\n this._updateFunc = updateFunc;\n this._name = name;\n this._initialValues = initialValues ? initialValues : {};\n this._nestedConfigurations = [];\n this._isCollectionItem = !!isCollectionItem;\n this._collectionItemIndex = collectionItemIndex;\n this._expectedChildren = expectedChildren || {};\n this._ownerConfig = ownerConfig;\n this._componentChanges = [];\n this.updateValue = this.updateValue.bind(this);\n }\n Object.defineProperty(Configuration.prototype, \"name\", {\n get: function () {\n return this._name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"fullName\", {\n get: function () {\n return this._name && this._isCollectionItem\n ? this._name + \"[\" + this._collectionItemIndex + \"]\"\n : this._name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"componentsCountChanged\", {\n get: function () {\n return this._componentChanges;\n },\n enumerable: false,\n configurable: true\n });\n Configuration.prototype.cleanComponentsCountChanged = function () {\n this._componentChanges = [];\n };\n Object.defineProperty(Configuration.prototype, \"fullPath\", {\n get: function () {\n return this._ownerConfig && this._ownerConfig.fullPath\n ? this._ownerConfig.fullPath + \".\" + this.fullName\n : this.fullName;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"ownerConfig\", {\n get: function () {\n return this._ownerConfig;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"options\", {\n get: function () {\n return this._options;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"initialValues\", {\n get: function () {\n return this._initialValues;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"expectedChildren\", {\n get: function () {\n return this._expectedChildren;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"nested\", {\n get: function () {\n return this._nestedConfigurations;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"prevNestedOptions\", {\n get: function () {\n return this._prevNestedConfigOptions;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"collectionItemIndex\", {\n get: function () {\n return this._collectionItemIndex;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"isCollectionItem\", {\n get: function () {\n return this._isCollectionItem;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"updateFunc\", {\n get: function () {\n return this._updateFunc;\n },\n enumerable: false,\n configurable: true\n });\n Configuration.prototype.init = function (options) {\n this._options = options ? options : [];\n };\n Object.defineProperty(Configuration.prototype, \"emitOptionChanged\", {\n set: function (handler) {\n this._emitOptionChanged = handler;\n },\n enumerable: false,\n configurable: true\n });\n Configuration.prototype.setPrevNestedOptions = function (value) {\n this._prevNestedConfigOptions = value;\n };\n Configuration.prototype.onOptionChanged = function (args) {\n if (helpers_1.isEqual(args.value, args.previousValue)) {\n return;\n }\n this._onOptionChanged(args.fullName.split(\".\"), args);\n };\n Configuration.prototype.cleanNested = function () {\n this._nestedConfigurations = [];\n };\n Configuration.prototype.createNested = function (name, initialValues, isCollectionItem, expectedChildren) {\n var expected = this._expectedChildren[name];\n var actualName = name;\n var actualIsCollectionItem = isCollectionItem;\n if (expected) {\n actualIsCollectionItem = expected.isCollectionItem;\n if (expected.optionName) {\n actualName = expected.optionName;\n }\n }\n var collectionItemIndex = -1;\n if (actualIsCollectionItem && actualName) {\n collectionItemIndex = this._nestedConfigurations.filter(function (c) { return c._name && c._name === actualName; }).length;\n }\n var configuration = new Configuration(this._updateFunc, actualName, initialValues, expectedChildren, actualIsCollectionItem, collectionItemIndex, this);\n this._nestedConfigurations.push(configuration);\n return configuration;\n };\n Configuration.prototype.updateValue = function (nestedName, value) {\n var fullName = [this.fullPath, nestedName].filter(function (n) { return n; }).join(\".\");\n this._updateFunc(fullName, value);\n };\n Configuration.prototype.getNestedOptionValues = function () {\n var values = {};\n this._nestedConfigurations.forEach(function (o) {\n if (!o._name) {\n return;\n }\n var nestedValue = __assign(__assign({}, o.initialValues), o.getNestedOptionValues());\n if (!nestedValue) {\n return;\n }\n if (!o._isCollectionItem) {\n values[o._name] = nestedValue;\n }\n else {\n var arr = values[o._name];\n if (!arr || !Array.isArray(arr)) {\n arr = [];\n values[o._name] = arr;\n }\n arr.push(nestedValue);\n }\n });\n return values;\n };\n Configuration.prototype.getOptionsToWatch = function () {\n var blackList = {};\n this._nestedConfigurations.forEach(function (c) { return c._name && (blackList[c._name] = true); });\n return this._options.filter(function (o) { return !blackList[o]; });\n };\n Configuration.prototype._onOptionChanged = function (optionRelPath, args) {\n if (optionRelPath.length === 0) {\n return;\n }\n var optionInfo = helpers_1.getOptionInfo(optionRelPath[0]);\n if (optionInfo.isCollection || optionRelPath.length > 1) {\n var nestedConfig = this._getNestedConfig(optionInfo.fullName);\n if (nestedConfig) {\n nestedConfig._onOptionChanged(optionRelPath.slice(1), args);\n return;\n }\n this._tryEmitOptionChanged(optionInfo.name, args.component.option(this.fullPath ? this.fullPath + \".\" + optionInfo.name : optionInfo.name));\n }\n else {\n this._tryEmitOptionChanged(optionInfo.name, args.value);\n }\n };\n Configuration.prototype._getNestedConfig = function (fullName) {\n for (var _i = 0, _a = this._nestedConfigurations; _i < _a.length; _i++) {\n var nestedConfig = _a[_i];\n if (nestedConfig.fullName === fullName) {\n return nestedConfig;\n }\n }\n return undefined;\n };\n Configuration.prototype._tryEmitOptionChanged = function (name, value) {\n if (this._emitOptionChanged) {\n this._emitOptionChanged(name, value);\n }\n };\n return Configuration;\n}());\nfunction bindOptionWatchers(config, vueInstance, innerChanges) {\n var targets = config && config.getOptionsToWatch();\n if (targets) {\n targets.forEach(function (optionName) {\n vueInstance.$watch(optionName, function (value) {\n if (!innerChanges.hasOwnProperty(optionName) ||\n innerChanges[optionName] !== value) {\n config.updateValue(optionName, value);\n }\n delete innerChanges[optionName];\n });\n });\n }\n}\nexports.bindOptionWatchers = bindOptionWatchers;\nfunction setEmitOptionChangedFunc(config, vueInstance, innerChanges) {\n config.emitOptionChanged = function (name, value) {\n if (!helpers_1.isEqual(value, vueInstance.$props[name])) {\n innerChanges[name] = value;\n vueInstance.$emit(\"update:\" + name, value);\n }\n };\n}\nexports.setEmitOptionChangedFunc = setEmitOptionChangedFunc;\nexports.default = Configuration;\n","/**\r\n * DevExtreme (esm/data/abstract_store.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 abstract = Class.abstract;\r\nimport {\r\n EventsStrategy\r\n} from \"../core/events_strategy\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n errors,\r\n handleError\r\n} from \"./errors\";\r\nimport {\r\n processRequestResultLock\r\n} from \"./utils\";\r\nimport {\r\n compileGetter\r\n} from \"../core/utils/data\";\r\nimport storeHelper from \"./store_helper\";\r\nvar queryByOptions = storeHelper.queryByOptions;\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n noop\r\n} from \"../core/utils/common\";\r\nvar storeImpl = {};\r\nvar Store = Class.inherit({\r\n ctor: function(options) {\r\n var that = this;\r\n options = options || {};\r\n this._eventsStrategy = new EventsStrategy(this);\r\n each([\"onLoaded\", \"onLoading\", \"onInserted\", \"onInserting\", \"onUpdated\", \"onUpdating\", \"onPush\", \"onRemoved\", \"onRemoving\", \"onModified\", \"onModifying\"], (function(_, optionName) {\r\n if (optionName in options) {\r\n that.on(optionName.slice(2).toLowerCase(), options[optionName])\r\n }\r\n }));\r\n this._key = options.key;\r\n this._errorHandler = options.errorHandler;\r\n this._useDefaultSearch = true\r\n },\r\n _customLoadOptions: function() {\r\n return null\r\n },\r\n key: function() {\r\n return this._key\r\n },\r\n keyOf: function(obj) {\r\n if (!this._keyGetter) {\r\n this._keyGetter = compileGetter(this.key())\r\n }\r\n return this._keyGetter(obj)\r\n },\r\n _requireKey: function() {\r\n if (!this.key()) {\r\n throw errors.Error(\"E4005\")\r\n }\r\n },\r\n load: function(options) {\r\n var that = this;\r\n options = options || {};\r\n this._eventsStrategy.fireEvent(\"loading\", [options]);\r\n return this._withLock(this._loadImpl(options)).done((function(result) {\r\n that._eventsStrategy.fireEvent(\"loaded\", [result, options])\r\n }))\r\n },\r\n _loadImpl: function(options) {\r\n return queryByOptions(this.createQuery(options), options).enumerate()\r\n },\r\n _withLock: function(task) {\r\n var result = new Deferred;\r\n task.done((function() {\r\n var that = this;\r\n var args = arguments;\r\n processRequestResultLock.promise().done((function() {\r\n result.resolveWith(that, args)\r\n }))\r\n })).fail((function() {\r\n result.rejectWith(this, arguments)\r\n }));\r\n return result\r\n },\r\n createQuery: abstract,\r\n totalCount: function(options) {\r\n return this._totalCountImpl(options)\r\n },\r\n _totalCountImpl: function(options) {\r\n return queryByOptions(this.createQuery(options), options, true).count()\r\n },\r\n byKey: function(key, extraOptions) {\r\n return this._addFailHandlers(this._withLock(this._byKeyImpl(key, extraOptions)))\r\n },\r\n _byKeyImpl: abstract,\r\n insert: function(values) {\r\n var that = this;\r\n that._eventsStrategy.fireEvent(\"modifying\");\r\n that._eventsStrategy.fireEvent(\"inserting\", [values]);\r\n return that._addFailHandlers(that._insertImpl(values).done((function(callbackValues, callbackKey) {\r\n that._eventsStrategy.fireEvent(\"inserted\", [callbackValues, callbackKey]);\r\n that._eventsStrategy.fireEvent(\"modified\")\r\n })))\r\n },\r\n _insertImpl: abstract,\r\n update: function(key, values) {\r\n var that = this;\r\n that._eventsStrategy.fireEvent(\"modifying\");\r\n that._eventsStrategy.fireEvent(\"updating\", [key, values]);\r\n return that._addFailHandlers(that._updateImpl(key, values).done((function() {\r\n that._eventsStrategy.fireEvent(\"updated\", [key, values]);\r\n that._eventsStrategy.fireEvent(\"modified\")\r\n })))\r\n },\r\n _updateImpl: abstract,\r\n push: function(changes) {\r\n var beforePushArgs = {\r\n changes: changes,\r\n waitFor: []\r\n };\r\n this._eventsStrategy.fireEvent(\"beforePush\", [beforePushArgs]);\r\n when(...beforePushArgs.waitFor).done(() => {\r\n this._pushImpl(changes);\r\n this._eventsStrategy.fireEvent(\"push\", [changes])\r\n })\r\n },\r\n _pushImpl: noop,\r\n remove: function(key) {\r\n var that = this;\r\n that._eventsStrategy.fireEvent(\"modifying\");\r\n that._eventsStrategy.fireEvent(\"removing\", [key]);\r\n return that._addFailHandlers(that._removeImpl(key).done((function(callbackKey) {\r\n that._eventsStrategy.fireEvent(\"removed\", [callbackKey]);\r\n that._eventsStrategy.fireEvent(\"modified\")\r\n })))\r\n },\r\n _removeImpl: abstract,\r\n _addFailHandlers: function(deferred) {\r\n return deferred.fail(this._errorHandler).fail(handleError)\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\nStore.create = function(alias, options) {\r\n if (!(alias in storeImpl)) {\r\n throw errors.Error(\"E4020\", alias)\r\n }\r\n return new storeImpl[alias](options)\r\n};\r\nStore.registerClass = function(type, alias) {\r\n if (alias) {\r\n storeImpl[alias] = type\r\n }\r\n return type\r\n};\r\nStore.inherit = function(inheritor) {\r\n return function(members, alias) {\r\n var type = inheritor.apply(this, [members]);\r\n Store.registerClass(type, alias);\r\n return type\r\n }\r\n}(Store.inherit);\r\nexport default Store;\r\n","/**\r\n * DevExtreme (esm/events/gesture/emitter.gesture.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 devices from \"../../core/devices\";\r\nimport {\r\n styleProp\r\n} from \"../../core/utils/style\";\r\nimport callOnce from \"../../core/utils/call_once\";\r\nimport {\r\n resetActiveElement,\r\n clearSelection\r\n} from \"../../core/utils/dom\";\r\nimport readyCallbacks from \"../../core/utils/ready_callbacks\";\r\nvar ready = readyCallbacks.add;\r\nimport {\r\n sign\r\n} from \"../../core/utils/math\";\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 needSkipEvent,\r\n createEvent,\r\n eventData,\r\n isDxMouseWheelEvent,\r\n eventDelta,\r\n isTouchEvent\r\n} from \"../utils/index\";\r\nimport Emitter from \"../core/emitter\";\r\nvar abs = Math.abs;\r\nvar SLEEP = 0;\r\nvar INITED = 1;\r\nvar STARTED = 2;\r\nvar TOUCH_BOUNDARY = 10;\r\nvar IMMEDIATE_TOUCH_BOUNDARY = 0;\r\nvar IMMEDIATE_TIMEOUT = 180;\r\nvar supportPointerEvents = function() {\r\n return styleProp(\"pointer-events\")\r\n};\r\nvar setGestureCover = callOnce((function() {\r\n var isDesktop = \"desktop\" === devices.real().deviceType;\r\n if (!supportPointerEvents() || !isDesktop) {\r\n return noop\r\n }\r\n var $cover = $(\"
\").addClass(\"dx-gesture-cover\").css(\"pointerEvents\", \"none\");\r\n eventsEngine.subscribeGlobal($cover, \"dxmousewheel\", (function(e) {\r\n e.preventDefault()\r\n }));\r\n ready((function() {\r\n $cover.appendTo(\"body\")\r\n }));\r\n return function(toggle, cursor) {\r\n $cover.css(\"pointerEvents\", toggle ? \"all\" : \"none\");\r\n toggle && $cover.css(\"cursor\", cursor)\r\n }\r\n}));\r\nvar gestureCover = function(toggle, cursor) {\r\n var gestureCoverStrategy = setGestureCover();\r\n gestureCoverStrategy(toggle, cursor)\r\n};\r\nvar GestureEmitter = Emitter.inherit({\r\n gesture: true,\r\n configure: function(data) {\r\n this.getElement().css(\"msTouchAction\", data.immediate ? \"pinch-zoom\" : \"\");\r\n this.callBase(data)\r\n },\r\n allowInterruptionByMouseWheel: function() {\r\n return this._stage !== STARTED\r\n },\r\n getDirection: function() {\r\n return this.direction\r\n },\r\n _cancel: function() {\r\n this.callBase.apply(this, arguments);\r\n this._toggleGestureCover(false);\r\n this._stage = SLEEP\r\n },\r\n start: function(e) {\r\n if (e._needSkipEvent || needSkipEvent(e)) {\r\n this._cancel(e);\r\n return\r\n }\r\n this._startEvent = createEvent(e);\r\n this._startEventData = eventData(e);\r\n this._stage = INITED;\r\n this._init(e);\r\n this._setupImmediateTimer()\r\n },\r\n _setupImmediateTimer: function() {\r\n clearTimeout(this._immediateTimer);\r\n this._immediateAccepted = false;\r\n if (!this.immediate) {\r\n return\r\n }\r\n this._immediateTimer = setTimeout(function() {\r\n this._immediateAccepted = true\r\n }.bind(this), IMMEDIATE_TIMEOUT)\r\n },\r\n move: function(e) {\r\n if (this._stage === INITED && this._directionConfirmed(e)) {\r\n this._stage = STARTED;\r\n this._resetActiveElement();\r\n this._toggleGestureCover(true);\r\n this._clearSelection(e);\r\n this._adjustStartEvent(e);\r\n this._start(this._startEvent);\r\n if (this._stage === SLEEP) {\r\n return\r\n }\r\n this._requestAccept(e);\r\n this._move(e);\r\n this._forgetAccept()\r\n } else if (this._stage === STARTED) {\r\n this._clearSelection(e);\r\n this._move(e)\r\n }\r\n },\r\n _directionConfirmed: function(e) {\r\n var touchBoundary = this._getTouchBoundary(e);\r\n var delta = eventDelta(this._startEventData, eventData(e));\r\n var deltaX = abs(delta.x);\r\n var deltaY = abs(delta.y);\r\n var horizontalMove = this._validateMove(touchBoundary, deltaX, deltaY);\r\n var verticalMove = this._validateMove(touchBoundary, deltaY, deltaX);\r\n var direction = this.getDirection(e);\r\n var bothAccepted = \"both\" === direction && (horizontalMove || verticalMove);\r\n var horizontalAccepted = \"horizontal\" === direction && horizontalMove;\r\n var verticalAccepted = \"vertical\" === direction && verticalMove;\r\n return bothAccepted || horizontalAccepted || verticalAccepted || this._immediateAccepted\r\n },\r\n _validateMove: function(touchBoundary, mainAxis, crossAxis) {\r\n return mainAxis && mainAxis >= touchBoundary && (this.immediate ? mainAxis >= crossAxis : true)\r\n },\r\n _getTouchBoundary: function(e) {\r\n return this.immediate || isDxMouseWheelEvent(e) ? IMMEDIATE_TOUCH_BOUNDARY : TOUCH_BOUNDARY\r\n },\r\n _adjustStartEvent: function(e) {\r\n var touchBoundary = this._getTouchBoundary(e);\r\n var delta = eventDelta(this._startEventData, eventData(e));\r\n this._startEvent.pageX += sign(delta.x) * touchBoundary;\r\n this._startEvent.pageY += sign(delta.y) * touchBoundary\r\n },\r\n _resetActiveElement: function() {\r\n if (\"ios\" === devices.real().platform && this.getElement().find(\":focus\").length) {\r\n resetActiveElement()\r\n }\r\n },\r\n _toggleGestureCover: function(toggle) {\r\n this._toggleGestureCoverImpl(toggle)\r\n },\r\n _toggleGestureCoverImpl: function(toggle) {\r\n var isStarted = this._stage === STARTED;\r\n if (isStarted) {\r\n gestureCover(toggle, this.getElement().css(\"cursor\"))\r\n }\r\n },\r\n _clearSelection: function(e) {\r\n if (isDxMouseWheelEvent(e) || isTouchEvent(e)) {\r\n return\r\n }\r\n clearSelection()\r\n },\r\n end: function(e) {\r\n this._toggleGestureCover(false);\r\n if (this._stage === STARTED) {\r\n this._end(e)\r\n } else if (this._stage === INITED) {\r\n this._stop(e)\r\n }\r\n this._stage = SLEEP\r\n },\r\n dispose: function() {\r\n clearTimeout(this._immediateTimer);\r\n this.callBase.apply(this, arguments);\r\n this._toggleGestureCover(false)\r\n },\r\n _init: noop,\r\n _start: noop,\r\n _move: noop,\r\n _stop: noop,\r\n _end: noop\r\n});\r\nGestureEmitter.initialTouchBoundary = TOUCH_BOUNDARY;\r\nGestureEmitter.touchBoundary = function(newBoundary) {\r\n if (isDefined(newBoundary)) {\r\n TOUCH_BOUNDARY = newBoundary;\r\n return\r\n }\r\n return TOUCH_BOUNDARY\r\n};\r\nexport default GestureEmitter;\r\n","/**\r\n * DevExtreme (esm/events/utils/add_namespace.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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\nvar addNamespace = (eventNames, namespace) => {\r\n if (!namespace) {\r\n throw errors.Error(\"E0017\")\r\n }\r\n if (Array.isArray(eventNames)) {\r\n return eventNames.map(eventName => addNamespace(eventName, namespace)).join(\" \")\r\n }\r\n if (-1 !== eventNames.indexOf(\" \")) {\r\n return addNamespace(eventNames.split(/\\s+/g), namespace)\r\n }\r\n return \"\".concat(eventNames, \".\").concat(namespace)\r\n};\r\nexport default addNamespace;\r\n","/**\r\n * DevExtreme (esm/events/utils/index.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 mappedAddNamespace from \"./add_namespace\";\r\nimport eventsEngine from \"../core/events_engine\";\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 focused\r\n} from \"../../ui/widget/selectors\";\r\nvar KEY_MAP = {\r\n backspace: \"backspace\",\r\n tab: \"tab\",\r\n enter: \"enter\",\r\n escape: \"escape\",\r\n pageup: \"pageUp\",\r\n pagedown: \"pageDown\",\r\n end: \"end\",\r\n home: \"home\",\r\n arrowleft: \"leftArrow\",\r\n arrowup: \"upArrow\",\r\n arrowright: \"rightArrow\",\r\n arrowdown: \"downArrow\",\r\n delete: \"del\",\r\n \" \": \"space\",\r\n f: \"F\",\r\n a: \"A\",\r\n \"*\": \"asterisk\",\r\n \"-\": \"minus\",\r\n alt: \"alt\",\r\n control: \"control\",\r\n shift: \"shift\"\r\n};\r\nvar LEGACY_KEY_CODES = {\r\n 8: \"backspace\",\r\n 9: \"tab\",\r\n 13: \"enter\",\r\n 27: \"escape\",\r\n 33: \"pageUp\",\r\n 34: \"pageDown\",\r\n 35: \"end\",\r\n 36: \"home\",\r\n 37: \"leftArrow\",\r\n 38: \"upArrow\",\r\n 39: \"rightArrow\",\r\n 40: \"downArrow\",\r\n 46: \"del\",\r\n 32: \"space\",\r\n 70: \"F\",\r\n 65: \"A\",\r\n 106: \"asterisk\",\r\n 109: \"minus\",\r\n 189: \"minus\",\r\n 173: \"minus\",\r\n 16: \"shift\",\r\n 17: \"control\",\r\n 18: \"alt\"\r\n};\r\nvar EVENT_SOURCES_REGEX = {\r\n dx: /^dx/i,\r\n mouse: /(mouse|wheel)/i,\r\n touch: /^touch/i,\r\n keyboard: /^key/i,\r\n pointer: /^(ms)?pointer/i\r\n};\r\nvar fixMethod = e => e;\r\nvar copyEvent = originalEvent => fixMethod(eventsEngine.Event(originalEvent, originalEvent), originalEvent);\r\nvar isDxEvent = e => \"dx\" === eventSource(e);\r\nvar isNativeMouseEvent = e => \"mouse\" === eventSource(e);\r\nvar isNativeTouchEvent = e => \"touch\" === eventSource(e);\r\nexport var eventSource = _ref => {\r\n var {\r\n type: type\r\n } = _ref;\r\n var result = \"other\";\r\n each(EVENT_SOURCES_REGEX, (function(key) {\r\n if (this.test(type)) {\r\n result = key;\r\n return false\r\n }\r\n }));\r\n return result\r\n};\r\nexport var isPointerEvent = e => \"pointer\" === eventSource(e);\r\nexport var isMouseEvent = e => isNativeMouseEvent(e) || (isPointerEvent(e) || isDxEvent(e)) && \"mouse\" === e.pointerType;\r\nexport var isDxMouseWheelEvent = e => e && \"dxmousewheel\" === e.type;\r\nexport var isTouchEvent = e => isNativeTouchEvent(e) || (isPointerEvent(e) || isDxEvent(e)) && \"touch\" === e.pointerType;\r\nexport var isKeyboardEvent = e => \"keyboard\" === eventSource(e);\r\nexport var isFakeClickEvent = _ref2 => {\r\n var {\r\n screenX: screenX,\r\n offsetX: offsetX,\r\n pageX: pageX\r\n } = _ref2;\r\n return 0 === screenX && !offsetX && 0 === pageX\r\n};\r\nexport var eventData = _ref3 => {\r\n var {\r\n pageX: pageX,\r\n pageY: pageY,\r\n timeStamp: timeStamp\r\n } = _ref3;\r\n return {\r\n x: pageX,\r\n y: pageY,\r\n time: timeStamp\r\n }\r\n};\r\nexport var eventDelta = (from, to) => ({\r\n x: to.x - from.x,\r\n y: to.y - from.y,\r\n time: to.time - from.time || 1\r\n});\r\nexport var hasTouches = e => {\r\n var {\r\n originalEvent: originalEvent,\r\n pointers: pointers\r\n } = e;\r\n if (isNativeTouchEvent(e)) {\r\n return (originalEvent.touches || []).length\r\n }\r\n if (isDxEvent(e)) {\r\n return (pointers || []).length\r\n }\r\n return 0\r\n};\r\nvar skipEvents = false;\r\nexport var forceSkipEvents = () => skipEvents = true;\r\nexport var stopEventsSkipping = () => skipEvents = false;\r\nexport var needSkipEvent = e => {\r\n if (skipEvents) {\r\n return true\r\n }\r\n var {\r\n target: target\r\n } = e;\r\n var $target = $(target);\r\n var isContentEditable = (null === target || void 0 === target ? void 0 : target.isContentEditable) || (null === target || void 0 === target ? void 0 : target.hasAttribute(\"contenteditable\"));\r\n var touchInEditable = $target.is(\"input, textarea, select\") || isContentEditable;\r\n if (isDxMouseWheelEvent(e)) {\r\n var isTextArea = $target.is(\"textarea\") && $target.hasClass(\"dx-texteditor-input\");\r\n if (isTextArea || isContentEditable) {\r\n return false\r\n }\r\n var isInputFocused = $target.is(\"input[type='number'], textarea, select\") && $target.is(\":focus\");\r\n return isInputFocused\r\n }\r\n if (isMouseEvent(e)) {\r\n return touchInEditable || e.which > 1\r\n }\r\n if (isTouchEvent(e)) {\r\n return touchInEditable && focused($target)\r\n }\r\n};\r\nexport var setEventFixMethod = func => fixMethod = func;\r\nexport var createEvent = (originalEvent, args) => {\r\n var event = copyEvent(originalEvent);\r\n args && extend(event, args);\r\n return event\r\n};\r\nexport var fireEvent = props => {\r\n var {\r\n originalEvent: originalEvent,\r\n delegateTarget: delegateTarget\r\n } = props;\r\n var event = createEvent(originalEvent, props);\r\n eventsEngine.trigger(delegateTarget || event.target, event);\r\n return event\r\n};\r\nexport var normalizeKeyName = _ref4 => {\r\n var {\r\n key: key,\r\n which: which\r\n } = _ref4;\r\n var normalizedKey = KEY_MAP[null === key || void 0 === key ? void 0 : key.toLowerCase()] || key;\r\n var normalizedKeyFromWhich = LEGACY_KEY_CODES[which];\r\n if (normalizedKeyFromWhich && normalizedKey === key) {\r\n return normalizedKeyFromWhich\r\n } else if (!normalizedKey && which) {\r\n return String.fromCharCode(which)\r\n }\r\n return normalizedKey\r\n};\r\nexport var getChar = _ref5 => {\r\n var {\r\n key: key,\r\n which: which\r\n } = _ref5;\r\n return key || String.fromCharCode(which)\r\n};\r\nexport var addNamespace = mappedAddNamespace;\r\nexport var isCommandKeyPressed = _ref6 => {\r\n var {\r\n ctrlKey: ctrlKey,\r\n metaKey: metaKey\r\n } = _ref6;\r\n return ctrlKey || metaKey\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/button.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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\");\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/ui/common/icon.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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/renovation/ui/common/ink_ripple.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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/renovation/ui/button.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 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\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 }\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.onWidgetClick(originalEvent)\r\n }\r\n return\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 : \"\") || icon;\r\n if (!text && icon && \"image\" === getImageSourceType(icon)) {\r\n label = !icon.includes(\"base64\") ? icon.replace(/.+\\/([^.]+)\\..+$/, \"$1\") : \"Base64\"\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 type: type\r\n } = this.props;\r\n if (icon || \"back\" === type) {\r\n return (null !== icon && void 0 !== icon ? icon : \"\") || \"back\"\r\n }\r\n return \"\"\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 type: type\r\n } = this.props;\r\n return !text && icon || \"back\" === type ? {\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 || this.props.type !== nextProps.type) {\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 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: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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/core/component_registrator_callbacks.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport MemorizedCallbacks from \"./memorized_callbacks\";\r\nexport default new MemorizedCallbacks;\r\n","/**\r\n * DevExtreme (esm/core/component_registrator.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 callbacks from \"./component_registrator_callbacks\";\r\nimport errors from \"./errors\";\r\nimport {\r\n name as publicComponentName\r\n} from \"./utils/public_component\";\r\nvar registerComponent = function(name, namespace, componentClass) {\r\n if (!componentClass) {\r\n componentClass = namespace\r\n } else {\r\n namespace[name] = componentClass\r\n }\r\n publicComponentName(componentClass, name);\r\n callbacks.fire(name, componentClass)\r\n};\r\nvar registerRendererComponent = function(name, componentClass) {\r\n $.fn[name] = function(options) {\r\n var isMemberInvoke = \"string\" === typeof options;\r\n var result;\r\n if (isMemberInvoke) {\r\n var memberName = options;\r\n var memberArgs = [].slice.call(arguments).slice(1);\r\n this.each((function() {\r\n var instance = componentClass.getInstance(this);\r\n if (!instance) {\r\n throw errors.Error(\"E0009\", name)\r\n }\r\n var member = instance[memberName];\r\n var memberValue = member.apply(instance, memberArgs);\r\n if (void 0 === result) {\r\n result = memberValue\r\n }\r\n }))\r\n } else {\r\n this.each((function() {\r\n var instance = componentClass.getInstance(this);\r\n if (instance) {\r\n instance.option(options)\r\n } else {\r\n new componentClass(this, options)\r\n }\r\n }));\r\n result = this\r\n }\r\n return result\r\n }\r\n};\r\ncallbacks.add(registerRendererComponent);\r\nexport default registerComponent;\r\n","/**\r\n * DevExtreme (esm/data/array_query.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 isFunction,\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport {\r\n each,\r\n map\r\n} from \"../core/utils/iterator\";\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 errors,\r\n handleError as handleDataError\r\n} from \"./errors\";\r\nimport {\r\n aggregators,\r\n isGroupCriterion,\r\n isUnaryOperation,\r\n normalizeBinaryCriterion,\r\n isConjunctiveOperator as isConjunctiveOperatorChecker\r\n} from \"./utils\";\r\nvar Iterator = Class.inherit({\r\n toArray: function() {\r\n var result = [];\r\n this.reset();\r\n while (this.next()) {\r\n result.push(this.current())\r\n }\r\n return result\r\n },\r\n countable: function() {\r\n return false\r\n }\r\n});\r\nvar ArrayIterator = Iterator.inherit({\r\n ctor: function(array) {\r\n this.array = array;\r\n this.index = -1\r\n },\r\n next: function() {\r\n if (this.index + 1 < this.array.length) {\r\n this.index++;\r\n return true\r\n }\r\n return false\r\n },\r\n current: function() {\r\n return this.array[this.index]\r\n },\r\n reset: function() {\r\n this.index = -1\r\n },\r\n toArray: function() {\r\n return this.array.slice(0)\r\n },\r\n countable: function() {\r\n return true\r\n },\r\n count: function() {\r\n return this.array.length\r\n }\r\n});\r\nvar WrappedIterator = Iterator.inherit({\r\n ctor: function(iter) {\r\n this.iter = iter\r\n },\r\n next: function() {\r\n return this.iter.next()\r\n },\r\n current: function() {\r\n return this.iter.current()\r\n },\r\n reset: function() {\r\n return this.iter.reset()\r\n }\r\n});\r\nvar MapIterator = WrappedIterator.inherit({\r\n ctor: function(iter, mapper) {\r\n this.callBase(iter);\r\n this.index = -1;\r\n this.mapper = mapper\r\n },\r\n current: function() {\r\n return this.mapper(this.callBase(), this.index)\r\n },\r\n next: function() {\r\n var hasNext = this.callBase();\r\n if (hasNext) {\r\n this.index++\r\n }\r\n return hasNext\r\n }\r\n});\r\nvar defaultCompare = function(xValue, yValue) {\r\n xValue = toComparable(xValue);\r\n yValue = toComparable(yValue);\r\n if (null === xValue && null !== yValue) {\r\n return -1\r\n }\r\n if (null !== xValue && null === yValue) {\r\n return 1\r\n }\r\n if (void 0 === xValue && void 0 !== yValue) {\r\n return 1\r\n }\r\n if (void 0 !== xValue && void 0 === yValue) {\r\n return -1\r\n }\r\n if (xValue < yValue) {\r\n return -1\r\n }\r\n if (xValue > yValue) {\r\n return 1\r\n }\r\n return 0\r\n};\r\nvar SortIterator = Iterator.inherit({\r\n ctor: function(iter, getter, desc, compare) {\r\n if (!(iter instanceof MapIterator)) {\r\n iter = new MapIterator(iter, this._wrap)\r\n }\r\n this.iter = iter;\r\n this.rules = [{\r\n getter: getter,\r\n desc: desc,\r\n compare: compare\r\n }]\r\n },\r\n thenBy: function(getter, desc, compare) {\r\n var result = new SortIterator(this.sortedIter || this.iter, getter, desc, compare);\r\n if (!this.sortedIter) {\r\n result.rules = this.rules.concat(result.rules)\r\n }\r\n return result\r\n },\r\n next: function() {\r\n this._ensureSorted();\r\n return this.sortedIter.next()\r\n },\r\n current: function() {\r\n this._ensureSorted();\r\n return this.sortedIter.current()\r\n },\r\n reset: function() {\r\n delete this.sortedIter\r\n },\r\n countable: function() {\r\n return this.sortedIter || this.iter.countable()\r\n },\r\n count: function() {\r\n if (this.sortedIter) {\r\n return this.sortedIter.count()\r\n }\r\n return this.iter.count()\r\n },\r\n _ensureSorted: function() {\r\n var that = this;\r\n if (that.sortedIter) {\r\n return\r\n }\r\n each(that.rules, (function() {\r\n this.getter = compileGetter(this.getter)\r\n }));\r\n that.sortedIter = new MapIterator(new ArrayIterator(this.iter.toArray().sort((function(x, y) {\r\n return that._compare(x, y)\r\n }))), that._unwrap)\r\n },\r\n _wrap: function(record, index) {\r\n return {\r\n index: index,\r\n value: record\r\n }\r\n },\r\n _unwrap: function(wrappedItem) {\r\n return wrappedItem.value\r\n },\r\n _compare: function(x, y) {\r\n var xIndex = x.index;\r\n var yIndex = y.index;\r\n x = x.value;\r\n y = y.value;\r\n if (x === y) {\r\n return xIndex - yIndex\r\n }\r\n for (var i = 0, rulesCount = this.rules.length; i < rulesCount; i++) {\r\n var rule = this.rules[i];\r\n var xValue = rule.getter(x);\r\n var yValue = rule.getter(y);\r\n var compare = rule.compare || defaultCompare;\r\n var compareResult = compare(xValue, yValue);\r\n if (compareResult) {\r\n return rule.desc ? -compareResult : compareResult\r\n }\r\n }\r\n return xIndex - yIndex\r\n }\r\n});\r\nvar compileCriteria = function() {\r\n var toString = function(value) {\r\n return isDefined(value) ? value.toString() : \"\"\r\n };\r\n\r\n function compileEquals(getter, value, negate) {\r\n return function(obj) {\r\n obj = toComparable(getter(obj));\r\n var result = function(value) {\r\n return \"\" === value || 0 === value || false === value\r\n }(value) ? obj === value : obj == value;\r\n if (negate) {\r\n result = !result\r\n }\r\n return result\r\n }\r\n }\r\n return function(crit) {\r\n if (isFunction(crit)) {\r\n return crit\r\n }\r\n if (isGroupCriterion(crit)) {\r\n return function(crit) {\r\n var ops = [];\r\n var isConjunctiveOperator = false;\r\n var isConjunctiveNextOperator = false;\r\n each(crit, (function() {\r\n if (Array.isArray(this) || isFunction(this)) {\r\n if (ops.length > 1 && isConjunctiveOperator !== isConjunctiveNextOperator) {\r\n throw new errors.Error(\"E4019\")\r\n }\r\n ops.push(compileCriteria(this));\r\n isConjunctiveOperator = isConjunctiveNextOperator;\r\n isConjunctiveNextOperator = true\r\n } else {\r\n isConjunctiveNextOperator = isConjunctiveOperatorChecker(this)\r\n }\r\n }));\r\n return function(d) {\r\n var result = isConjunctiveOperator;\r\n for (var i = 0; i < ops.length; i++) {\r\n if (ops[i](d) !== isConjunctiveOperator) {\r\n result = !isConjunctiveOperator;\r\n break\r\n }\r\n }\r\n return result\r\n }\r\n }(crit)\r\n }\r\n if (isUnaryOperation(crit)) {\r\n return function(crit) {\r\n var op = crit[0];\r\n var criteria = compileCriteria(crit[1]);\r\n if (\"!\" === op) {\r\n return function(obj) {\r\n return !criteria(obj)\r\n }\r\n }\r\n throw errors.Error(\"E4003\", op)\r\n }(crit)\r\n }\r\n return function(crit) {\r\n crit = normalizeBinaryCriterion(crit);\r\n var getter = compileGetter(crit[0]);\r\n var op = crit[1];\r\n var value = crit[2];\r\n value = toComparable(value);\r\n var compare = (obj, operatorFn) => {\r\n obj = toComparable(getter(obj));\r\n return (null == value || null == obj) && value !== obj ? false : operatorFn(obj, value)\r\n };\r\n switch (op.toLowerCase()) {\r\n case \"=\":\r\n return compileEquals(getter, value);\r\n case \"<>\":\r\n return compileEquals(getter, value, true);\r\n case \">\":\r\n return obj => compare(obj, (a, b) => a > b);\r\n case \"<\":\r\n return obj => compare(obj, (a, b) => a < b);\r\n case \">=\":\r\n return obj => compare(obj, (a, b) => a >= b);\r\n case \"<=\":\r\n return obj => compare(obj, (a, b) => a <= b);\r\n case \"startswith\":\r\n return function(obj) {\r\n return 0 === toComparable(toString(getter(obj))).indexOf(value)\r\n };\r\n case \"endswith\":\r\n return function(obj) {\r\n var getterValue = toComparable(toString(getter(obj)));\r\n var searchValue = toString(value);\r\n if (getterValue.length < searchValue.length) {\r\n return false\r\n }\r\n var index = getterValue.lastIndexOf(value);\r\n return -1 !== index && index === getterValue.length - value.length\r\n };\r\n case \"contains\":\r\n return function(obj) {\r\n return toComparable(toString(getter(obj))).indexOf(value) > -1\r\n };\r\n case \"notcontains\":\r\n return function(obj) {\r\n return -1 === toComparable(toString(getter(obj))).indexOf(value)\r\n }\r\n }\r\n throw errors.Error(\"E4003\", op)\r\n }(crit)\r\n }\r\n}();\r\nvar FilterIterator = WrappedIterator.inherit({\r\n ctor: function(iter, criteria) {\r\n this.callBase(iter);\r\n this.criteria = compileCriteria(criteria)\r\n },\r\n next: function() {\r\n while (this.iter.next()) {\r\n if (this.criteria(this.current())) {\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n});\r\nvar GroupIterator = Iterator.inherit({\r\n ctor: function(iter, getter) {\r\n this.iter = iter;\r\n this.getter = getter\r\n },\r\n next: function() {\r\n this._ensureGrouped();\r\n return this.groupedIter.next()\r\n },\r\n current: function() {\r\n this._ensureGrouped();\r\n return this.groupedIter.current()\r\n },\r\n reset: function() {\r\n delete this.groupedIter\r\n },\r\n countable: function() {\r\n return !!this.groupedIter\r\n },\r\n count: function() {\r\n return this.groupedIter.count()\r\n },\r\n _ensureGrouped: function() {\r\n if (this.groupedIter) {\r\n return\r\n }\r\n var hash = {};\r\n var keys = [];\r\n var iter = this.iter;\r\n var getter = compileGetter(this.getter);\r\n iter.reset();\r\n while (iter.next()) {\r\n var current = iter.current();\r\n var key = getter(current);\r\n if (key in hash) {\r\n hash[key].push(current)\r\n } else {\r\n hash[key] = [current];\r\n keys.push(key)\r\n }\r\n }\r\n this.groupedIter = new ArrayIterator(map(keys, (function(key) {\r\n return {\r\n key: key,\r\n items: hash[key]\r\n }\r\n })))\r\n }\r\n});\r\nvar SelectIterator = WrappedIterator.inherit({\r\n ctor: function(iter, getter) {\r\n this.callBase(iter);\r\n this.getter = compileGetter(getter)\r\n },\r\n current: function() {\r\n return this.getter(this.callBase())\r\n },\r\n countable: function() {\r\n return this.iter.countable()\r\n },\r\n count: function() {\r\n return this.iter.count()\r\n }\r\n});\r\nvar SliceIterator = WrappedIterator.inherit({\r\n ctor: function(iter, skip, take) {\r\n this.callBase(iter);\r\n this.skip = Math.max(0, skip);\r\n this.take = Math.max(0, take);\r\n this.pos = 0\r\n },\r\n next: function() {\r\n if (this.pos >= this.skip + this.take) {\r\n return false\r\n }\r\n while (this.pos < this.skip && this.iter.next()) {\r\n this.pos++\r\n }\r\n this.pos++;\r\n return this.iter.next()\r\n },\r\n reset: function() {\r\n this.callBase();\r\n this.pos = 0\r\n },\r\n countable: function() {\r\n return this.iter.countable()\r\n },\r\n count: function() {\r\n return Math.min(this.iter.count() - this.skip, this.take)\r\n }\r\n});\r\nvar arrayQueryImpl = function arrayQueryImpl(iter, queryOptions) {\r\n queryOptions = queryOptions || {};\r\n if (!(iter instanceof Iterator)) {\r\n iter = new ArrayIterator(iter)\r\n }\r\n var handleError = function(error) {\r\n var handler = queryOptions.errorHandler;\r\n if (handler) {\r\n handler(error)\r\n }\r\n handleDataError(error)\r\n };\r\n var aggregateCore = function(aggregator) {\r\n var d = (new Deferred).fail(handleError);\r\n var seed;\r\n var step = aggregator.step;\r\n var finalize = aggregator.finalize;\r\n try {\r\n iter.reset();\r\n if (\"seed\" in aggregator) {\r\n seed = aggregator.seed\r\n } else {\r\n seed = iter.next() ? iter.current() : NaN\r\n }\r\n var accumulator = seed;\r\n while (iter.next()) {\r\n accumulator = step(accumulator, iter.current())\r\n }\r\n d.resolve(finalize ? finalize(accumulator) : accumulator)\r\n } catch (x) {\r\n d.reject(x)\r\n }\r\n return d.promise()\r\n };\r\n var standardAggregate = function(name) {\r\n return aggregateCore(aggregators[name])\r\n };\r\n var select = function(getter) {\r\n if (!isFunction(getter) && !Array.isArray(getter)) {\r\n getter = [].slice.call(arguments)\r\n }\r\n return chainQuery(new SelectIterator(iter, getter))\r\n };\r\n var selectProp = function(name) {\r\n return select(compileGetter(name))\r\n };\r\n\r\n function chainQuery(iter) {\r\n return arrayQueryImpl(iter, queryOptions)\r\n }\r\n return {\r\n toArray: function() {\r\n return iter.toArray()\r\n },\r\n enumerate: function() {\r\n var d = (new Deferred).fail(handleError);\r\n try {\r\n d.resolve(iter.toArray())\r\n } catch (x) {\r\n d.reject(x)\r\n }\r\n return d.promise()\r\n },\r\n sortBy: function(getter, desc, compare) {\r\n return chainQuery(new SortIterator(iter, getter, desc, compare))\r\n },\r\n thenBy: function(getter, desc, compare) {\r\n if (iter instanceof SortIterator) {\r\n return chainQuery(iter.thenBy(getter, desc, compare))\r\n }\r\n throw errors.Error(\"E4004\")\r\n },\r\n filter: function(criteria) {\r\n if (!Array.isArray(criteria)) {\r\n criteria = [].slice.call(arguments)\r\n }\r\n return chainQuery(new FilterIterator(iter, criteria))\r\n },\r\n slice: function(skip, take) {\r\n if (void 0 === take) {\r\n take = Number.MAX_VALUE\r\n }\r\n return chainQuery(new SliceIterator(iter, skip, take))\r\n },\r\n select: select,\r\n groupBy: function(getter) {\r\n return chainQuery(new GroupIterator(iter, getter))\r\n },\r\n aggregate: function(seed, step, finalize) {\r\n if (arguments.length < 2) {\r\n return aggregateCore({\r\n step: arguments[0]\r\n })\r\n }\r\n return aggregateCore({\r\n seed: seed,\r\n step: step,\r\n finalize: finalize\r\n })\r\n },\r\n count: function() {\r\n if (iter.countable()) {\r\n var d = (new Deferred).fail(handleError);\r\n try {\r\n d.resolve(iter.count())\r\n } catch (x) {\r\n d.reject(x)\r\n }\r\n return d.promise()\r\n }\r\n return standardAggregate(\"count\")\r\n },\r\n sum: function(getter) {\r\n if (getter) {\r\n return selectProp(getter).sum()\r\n }\r\n return standardAggregate(\"sum\")\r\n },\r\n min: function(getter) {\r\n if (getter) {\r\n return selectProp(getter).min()\r\n }\r\n return standardAggregate(\"min\")\r\n },\r\n max: function(getter) {\r\n if (getter) {\r\n return selectProp(getter).max()\r\n }\r\n return standardAggregate(\"max\")\r\n },\r\n avg: function(getter) {\r\n if (getter) {\r\n return selectProp(getter).avg()\r\n }\r\n return standardAggregate(\"avg\")\r\n }\r\n }\r\n};\r\nexport default arrayQueryImpl;\r\n","/**\r\n * DevExtreme (esm/ui/validation_message.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 $ from \"../core/renderer\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport Overlay from \"./overlay/ui.overlay\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n encodeHtml\r\n} from \"../core/utils/string\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../core/utils/position\";\r\nvar INVALID_MESSAGE = \"dx-invalid-message\";\r\nvar INVALID_MESSAGE_AUTO = \"dx-invalid-message-auto\";\r\nvar INVALID_MESSAGE_ALWAYS = \"dx-invalid-message-always\";\r\nvar INVALID_MESSAGE_CONTENT = \"dx-invalid-message-content\";\r\nvar VALIDATION_MESSAGE_MIN_WIDTH = 100;\r\nvar ValidationMessage = Overlay.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n integrationOptions: {},\r\n templatesRenderAsynchronously: false,\r\n shading: false,\r\n width: \"auto\",\r\n height: \"auto\",\r\n hideOnOutsideClick: false,\r\n animation: null,\r\n visible: true,\r\n propagateOutsideClick: true,\r\n _checkParentVisibility: false,\r\n rtlEnabled: false,\r\n contentTemplate: this._renderInnerHtml,\r\n maxWidth: \"100%\",\r\n container: this.$element(),\r\n target: void 0,\r\n mode: \"auto\",\r\n validationErrors: void 0,\r\n positionRequest: void 0,\r\n boundary: void 0,\r\n offset: {\r\n h: 0,\r\n v: 0\r\n },\r\n contentId: void 0\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this.updateMaxWidth();\r\n this._updatePosition()\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this._ensureMessageNotEmpty();\r\n this._updatePositionByTarget();\r\n this._toggleModeClass();\r\n this._updateContentId()\r\n },\r\n _updatePositionByTarget: function() {\r\n var {\r\n target: target\r\n } = this.option();\r\n this.option(\"position.of\", target)\r\n },\r\n _ensureMessageNotEmpty: function() {\r\n this._textMarkup = this._getTextMarkup();\r\n var shouldShowMessage = this.option(\"visible\") && this._textMarkup;\r\n this._toggleVisibilityClasses(shouldShowMessage)\r\n },\r\n _toggleVisibilityClasses: function(visible) {\r\n if (visible) {\r\n this.$element().addClass(INVALID_MESSAGE);\r\n this.$wrapper().addClass(INVALID_MESSAGE)\r\n } else {\r\n this.$element().removeClass(INVALID_MESSAGE);\r\n this.$wrapper().removeClass(INVALID_MESSAGE)\r\n }\r\n },\r\n _updateContentId() {\r\n var {\r\n container: container,\r\n contentId: contentId\r\n } = this.option();\r\n var id = null !== contentId && void 0 !== contentId ? contentId : $(container).attr(\"aria-describedby\");\r\n this.$content().addClass(INVALID_MESSAGE_CONTENT).attr(\"id\", id)\r\n },\r\n _renderInnerHtml(element) {\r\n var $element = element && $(element);\r\n null === $element || void 0 === $element ? void 0 : $element.html(this._textMarkup)\r\n },\r\n _getTextMarkup() {\r\n var _this$option;\r\n var validationErrors = null !== (_this$option = this.option(\"validationErrors\")) && void 0 !== _this$option ? _this$option : [];\r\n var validationErrorMessage = \"\";\r\n validationErrors.forEach(err => {\r\n var _err$message;\r\n var separator = validationErrorMessage ? \"
\" : \"\";\r\n validationErrorMessage += separator + encodeHtml(null !== (_err$message = null === err || void 0 === err ? void 0 : err.message) && void 0 !== _err$message ? _err$message : \"\")\r\n });\r\n return validationErrorMessage\r\n },\r\n _toggleModeClass() {\r\n var mode = this.option(\"mode\");\r\n this.$wrapper().toggleClass(INVALID_MESSAGE_AUTO, \"auto\" === mode).toggleClass(INVALID_MESSAGE_ALWAYS, \"always\" === mode)\r\n },\r\n updateMaxWidth() {\r\n var target = this.option(\"target\");\r\n var targetWidth = getOuterWidth(target);\r\n var maxWidth = \"100%\";\r\n if (targetWidth) {\r\n maxWidth = Math.max(targetWidth, VALIDATION_MESSAGE_MIN_WIDTH)\r\n }\r\n this.option({\r\n maxWidth: maxWidth\r\n })\r\n },\r\n _updatePosition: function() {\r\n var {\r\n positionRequest: positionRequest,\r\n rtlEnabled: rtlEnabled,\r\n offset: offset,\r\n boundary: boundary\r\n } = this.option();\r\n var positionSide = getDefaultAlignment(rtlEnabled);\r\n var verticalPositions = \"below\" === positionRequest ? [\" top\", \" bottom\"] : [\" bottom\", \" top\"];\r\n if (rtlEnabled) {\r\n offset.h = -offset.h\r\n }\r\n if (\"below\" !== positionRequest) {\r\n offset.v = -offset.v\r\n }\r\n this.option(\"position\", {\r\n offset: offset,\r\n boundary: boundary,\r\n my: positionSide + verticalPositions[0],\r\n at: positionSide + verticalPositions[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 } = 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 \"positionRequest\":\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/core/templates/empty_template.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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\nexport class EmptyTemplate extends TemplateBase {\r\n _renderCore() {\r\n return $()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.base.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n ensureDefined,\r\n deferRenderer,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n findTemplates\r\n} from \"../../core/utils/template_manager\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n isPlainObject,\r\n isFunction,\r\n isDefined\r\n} from \"../../core/utils/type\";\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 Action from \"../../core/action\";\r\nimport Guid from \"../../core/guid\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport DataHelperMixin from \"../../data_helper\";\r\nimport CollectionWidgetItem from \"./item\";\r\nimport {\r\n focusable\r\n} from \"../widget/selectors\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport holdEvent from \"../../events/hold\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\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 {\r\n BindableTemplate\r\n} from \"../../core/templates/bindable_template\";\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: \".\" + ITEM_CLASS,\r\n _supportedKeys: function() {\r\n var enter = function(e) {\r\n var $itemElement = $(this.option(\"focusedElement\"));\r\n if (!$itemElement.length) {\r\n return\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 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 enter.call(this, e)\r\n },\r\n enter: enter,\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 _getDefaultOptions: function() {\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 dataSource: null,\r\n _itemAttributes: {},\r\n itemTemplateProperty: \"template\",\r\n focusOnSelectedItem: true,\r\n focusedElement: null,\r\n displayExpr: void 0,\r\n disabledExpr: function(data) {\r\n return data ? data.disabled : void 0\r\n },\r\n visibleExpr: function(data) {\r\n return data ? data.visible : void 0\r\n }\r\n })\r\n },\r\n _init: function() {\r\n this._compileDisplayGetter();\r\n this.callBase();\r\n this._cleanRenderedItems();\r\n this._refreshDataSource()\r\n },\r\n _compileDisplayGetter: function() {\r\n var displayExpr = this.option(\"displayExpr\");\r\n this._displayGetter = displayExpr ? compileGetter(this.option(\"displayExpr\")) : void 0\r\n },\r\n _initTemplates: function() {\r\n this._initItemsFromMarkup();\r\n this._initDefaultItemTemplate();\r\n this.callBase()\r\n },\r\n _getAnonymousTemplateName: function() {\r\n return ANONYMOUS_TEMPLATE_NAME\r\n },\r\n _initDefaultItemTemplate: function() {\r\n var fieldsMap = this._getFieldsMap();\r\n this._templateManager.addDefaultTemplates({\r\n item: new BindableTemplate(function($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 }.bind(this), this._getBindableFields(), this.option(\"integrationOptions.watchMethod\"), fieldsMap)\r\n })\r\n },\r\n _getBindableFields: function() {\r\n return [\"text\", \"html\"]\r\n },\r\n _getFieldsMap: function() {\r\n if (this._displayGetter) {\r\n return {\r\n text: this._displayGetter\r\n }\r\n }\r\n },\r\n _prepareDefaultItemTemplate: function(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: function() {\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: function(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: function() {\r\n return {\r\n paginate: false\r\n }\r\n },\r\n _cleanRenderedItems: function() {\r\n this._renderedItemsCount = 0\r\n },\r\n _focusTarget: function() {\r\n return this.$element()\r\n },\r\n _focusInHandler: function(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: function() {\r\n this.callBase.apply(this, arguments);\r\n var $target = $(this.option(\"focusedElement\"));\r\n this._updateFocusedItemState($target, false)\r\n },\r\n _getActiveItem: function(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: function(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: function($itemElements) {\r\n $itemElements = $itemElements || this._itemElements();\r\n return $itemElements.filter(\":visible\")\r\n },\r\n _getAvailableItems: function($itemElements) {\r\n return this._getVisibleItems($itemElements).not(\".dx-state-disabled\")\r\n },\r\n _prevItem: function($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: function($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: function($target) {\r\n this.selectItem($target)\r\n },\r\n _updateFocusedItemState: function(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: function($target) {\r\n this.setAria(\"activedescendant\", isDefined(this.option(\"focusedElement\")) ? this.getFocusedItemId() : null, $target)\r\n },\r\n _refreshItemId: function($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 _setFocusedItem: function($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 if (this.option(\"selectOnFocus\")) {\r\n this._selectFocusedItem($target)\r\n }\r\n },\r\n _findItemElementByItem: function(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: function(item) {\r\n return this.option(\"items\").indexOf(item)\r\n },\r\n _itemOptionChanged: function(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: function($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: function(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(\".\" + 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 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: function() {\r\n this.option(\"focusedElement\", null);\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _loadNextPage: function() {\r\n var dataSource = this._dataSource;\r\n this._expectNextPageLoading();\r\n dataSource.pageIndex(1 + dataSource.pageIndex());\r\n return dataSource.load()\r\n },\r\n _expectNextPageLoading: function() {\r\n this._startIndexForAppendedItems = 0\r\n },\r\n _expectLastItemLoading: function() {\r\n this._startIndexForAppendedItems = -1\r\n },\r\n _forgetNextPageLoading: function() {\r\n this._startIndexForAppendedItems = null\r\n },\r\n _dataSourceChangedHandler: function(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: function() {\r\n this._prepareContent();\r\n this._renderContent()\r\n },\r\n _dataSourceLoadErrorHandler: function() {\r\n this._forgetNextPageLoading();\r\n this.option(\"items\", this.option(\"items\"))\r\n },\r\n _shouldAppendItems: function() {\r\n return null != this._startIndexForAppendedItems && this._allowDynamicItemsAppend()\r\n },\r\n _allowDynamicItemsAppend: function() {\r\n return false\r\n },\r\n _clean: function() {\r\n this._cleanFocusState();\r\n this._cleanItemContainer()\r\n },\r\n _cleanItemContainer: function() {\r\n $(this._itemContainer()).empty()\r\n },\r\n _dispose: function() {\r\n this.callBase();\r\n clearTimeout(this._itemFocusTimeout)\r\n },\r\n _refresh: function() {\r\n this._cleanRenderedItems();\r\n this.callBase.apply(this, arguments)\r\n },\r\n _itemContainer: function() {\r\n return this.$element()\r\n },\r\n _itemClass: function() {\r\n return ITEM_CLASS\r\n },\r\n _itemContentClass: function() {\r\n return this._itemClass() + CONTENT_CLASS_POSTFIX\r\n },\r\n _selectedItemClass: function() {\r\n return SELECTED_ITEM_CLASS\r\n },\r\n _itemResponseWaitClass: function() {\r\n return ITEM_RESPONSE_WAIT_CLASS\r\n },\r\n _itemSelector: function() {\r\n return \".\" + this._itemClass()\r\n },\r\n _itemDataKey: function() {\r\n return ITEM_DATA_KEY\r\n },\r\n _itemIndexKey: function() {\r\n return ITEM_INDEX_KEY\r\n },\r\n _itemElements: function() {\r\n return this._itemContainer().find(this._itemSelector())\r\n },\r\n _initMarkup: function() {\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: function() {\r\n this._fireContentReadyAction()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._attachClickEvent();\r\n this._attachHoldEvent();\r\n this._attachContextMenuEvent()\r\n },\r\n _attachClickEvent: function() {\r\n var itemSelector = this._itemSelector();\r\n var clickEventNamespace = addNamespace(clickEventName, this.NAME);\r\n var pointerDownEventNamespace = addNamespace(pointerEvents.down, this.NAME);\r\n var that = this;\r\n var pointerDownAction = new Action((function(args) {\r\n var event = args.event;\r\n that._itemPointerDownHandler(event)\r\n }));\r\n eventsEngine.off(this._itemContainer(), clickEventNamespace, itemSelector);\r\n eventsEngine.off(this._itemContainer(), pointerDownEventNamespace, itemSelector);\r\n eventsEngine.on(this._itemContainer(), clickEventNamespace, itemSelector, function(e) {\r\n this._itemClickHandler(e)\r\n }.bind(this));\r\n eventsEngine.on(this._itemContainer(), pointerDownEventNamespace, itemSelector, (function(e) {\r\n pointerDownAction.execute({\r\n element: $(e.target),\r\n event: e\r\n })\r\n }))\r\n },\r\n _itemClickHandler: function(e, args, config) {\r\n this._itemDXEventHandler(e, \"onItemClick\", args, config)\r\n },\r\n _itemPointerDownHandler: function(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: function($target) {\r\n if ($target.is(focusable)) {\r\n return $target\r\n } else {\r\n $target = $target.parent();\r\n while ($target.length && !domAdapter.isDocument($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 },\r\n _forcePointerDownFocus: function() {\r\n this._itemFocusHandler && this._itemFocusHandler()\r\n },\r\n _updateFocusState: function() {\r\n this.callBase.apply(this, arguments);\r\n this._forcePointerDownFocus()\r\n },\r\n _attachHoldEvent: function() {\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: function() {\r\n return this.option(\"itemHoldTimeout\")\r\n },\r\n _shouldFireHoldEvent: function() {\r\n return this.hasActionSubscription(\"onItemHold\")\r\n },\r\n _itemHoldHandler: function(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: function() {\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: function() {\r\n return this.hasActionSubscription(\"onItemContextMenu\")\r\n },\r\n _itemContextMenuHandler: function(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: function() {\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: function(items) {\r\n if (items.length) {\r\n each(items, function(index, itemData) {\r\n this._renderItem(this._renderedItemsCount + index, itemData)\r\n }.bind(this))\r\n }\r\n this._renderEmptyMessage()\r\n },\r\n _renderItem: function(index, itemData, $container, $itemToReplace) {\r\n var _index$item;\r\n var itemIndex = null !== (_index$item = null === index || void 0 === index ? void 0 : index.item) && void 0 !== _index$item ? _index$item : index;\r\n $container = $container || this._itemContainer();\r\n var $itemFrame = this._renderItemFrame(itemIndex, itemData, $container, $itemToReplace);\r\n this._setElementData($itemFrame, itemData, itemIndex);\r\n $itemFrame.attr(this.option(\"_itemAttributes\"));\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((function($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: function($itemFrame) {\r\n var $itemContent = $itemFrame.find(\".\" + ITEM_CONTENT_PLACEHOLDER_CLASS);\r\n $itemContent.removeClass(ITEM_CONTENT_PLACEHOLDER_CLASS);\r\n return $itemContent\r\n },\r\n _attachItemClickEvent: function(itemData, $itemElement) {\r\n if (!itemData || !itemData.onClick) {\r\n return\r\n }\r\n eventsEngine.on($itemElement, clickEventName, function(e) {\r\n this._itemEventHandlerByHandler($itemElement, itemData.onClick, {\r\n event: e\r\n })\r\n }.bind(this))\r\n },\r\n _renderItemContent: function(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: function(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: function(args) {\r\n var classes = [ITEM_CLASS + CONTENT_CLASS_POSTFIX, args.contentClass];\r\n $(args.container).addClass(classes.join(\" \"))\r\n },\r\n _appendItemToContainer: function($container, $itemFrame, index) {\r\n $itemFrame.appendTo($container)\r\n },\r\n _renderItemFrame: function(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: function() {\r\n var that = this;\r\n return {\r\n watchMethod: function() {\r\n return that.option(\"integrationOptions.watchMethod\")\r\n },\r\n owner: that,\r\n fieldGetter: function(field) {\r\n var expr = that.option(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: function(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: function(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: function() {\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: function() {\r\n return this._itemRenderAction || this._createItemRenderAction()\r\n },\r\n _getItemTemplateName: function(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: function(itemTemplate, renderArgs) {\r\n return itemTemplate.render({\r\n model: renderArgs.itemData,\r\n container: renderArgs.container,\r\n index: renderArgs.index\r\n })\r\n },\r\n _emptyMessageContainer: function() {\r\n return this._itemContainer()\r\n },\r\n _renderEmptyMessage: function(items) {\r\n items = items || this.option(\"items\");\r\n var noDataText = this.option(\"noDataText\");\r\n var hideNoData = !noDataText || items && items.length || this._isDataSourceLoading();\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()).html(noDataText);\r\n this.setAria(\"label\", noDataText)\r\n }\r\n this.$element().toggleClass(EMPTY_COLLECTION, !hideNoData)\r\n },\r\n _itemDXEventHandler: function(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: function(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: function(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: function(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: function($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: function($element) {\r\n return $($element).closest(this._itemSelector())\r\n },\r\n _getItemData: function(itemElement) {\r\n return $(itemElement).data(this._itemDataKey())\r\n },\r\n _getSummaryItemsWidth: function(items, includeMargin) {\r\n var result = 0;\r\n if (items) {\r\n each(items, (function(_, item) {\r\n result += getOuterWidth(item, includeMargin || false)\r\n }))\r\n }\r\n return result\r\n },\r\n getFocusedItemId: function() {\r\n if (!this._focusedItemId) {\r\n this._focusedItemId = \"dx-\" + new Guid\r\n }\r\n return this._focusedItemId\r\n },\r\n itemElements: function() {\r\n return this._itemElements()\r\n },\r\n itemsContainer: function() {\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/ui/collection/ui.collection_widget.edit.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 BaseCollectionWidget from \"./ui.collection_widget.base\";\r\nimport errors from \"../widget/ui.errors\";\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 noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport PlainEditStrategy from \"./ui.collection_widget.edit.strategy.plain\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\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 Selection from \"../selection/selection\";\r\nimport {\r\n when,\r\n Deferred,\r\n fromPromise\r\n} from \"../../core/utils/deferred\";\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: function() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n selectedItem: true\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n selectionMode: \"none\",\r\n selectionRequired: false,\r\n selectionByClick: 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: function(element, options) {\r\n this._userOptions = options || {};\r\n this.callBase(element, options)\r\n },\r\n _init: function() {\r\n this._initEditStrategy();\r\n this.callBase();\r\n this._initKeyGetter();\r\n this._initSelectionModule()\r\n },\r\n _initKeyGetter: function() {\r\n this._keyGetter = compileGetter(this.option(\"keyExpr\"))\r\n },\r\n _getKeysByItems: function(selectedItems) {\r\n return this._editStrategy.getKeysByItems(selectedItems)\r\n },\r\n _getItemsByKeys: function(selectedItemKeys, selectedItems) {\r\n return this._editStrategy.getItemsByKeys(selectedItemKeys, selectedItems)\r\n },\r\n _getKeyByIndex: function(index) {\r\n return this._editStrategy.getKeyByIndex(index)\r\n },\r\n _getIndexByKey: function(key) {\r\n return this._editStrategy.getIndexByKey(key)\r\n },\r\n _getIndexByItemData: function(itemData) {\r\n return this._editStrategy.getIndexByItemData(itemData)\r\n },\r\n _isKeySpecified: function() {\r\n return !!(this._dataSource && this._dataSource.key())\r\n },\r\n _getCombinedFilter: function() {\r\n return this._dataSource && this._dataSource.filter()\r\n },\r\n key: function() {\r\n if (this.option(\"keyExpr\")) {\r\n return this.option(\"keyExpr\")\r\n }\r\n return this._dataSource && this._dataSource.key()\r\n },\r\n keyOf: function(item) {\r\n var key = item;\r\n var store = this._dataSource && this._dataSource.store();\r\n if (this.option(\"keyExpr\")) {\r\n key = this._keyGetter(item)\r\n } else if (store) {\r\n key = store.keyOf(item)\r\n }\r\n return key\r\n },\r\n _nullValueSelectionSupported: function() {\r\n return false\r\n },\r\n _initSelectionModule: function() {\r\n var that = this;\r\n var itemsGetter = that._editStrategy.itemsGetter;\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: function(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: function() {\r\n var items = that.option(\"items\");\r\n var dataSource = that._dataSource;\r\n return dataSource && dataSource.totalCount() >= 0 ? dataSource.totalCount() : that._getItemsCount(items)\r\n },\r\n key: that.key.bind(that),\r\n keyOf: that.keyOf.bind(that),\r\n load: function(options) {\r\n if (that._dataSource) {\r\n var loadOptions = that._dataSource.loadOptions();\r\n options.customQueryParams = loadOptions.customQueryParams;\r\n options.userData = that._dataSource._userData\r\n }\r\n var store = that._dataSource && that._dataSource.store();\r\n if (store) {\r\n return store.load(options).done((function(loadResult) {\r\n if (that._disposed) {\r\n return\r\n }\r\n var items = normalizeLoadResult(loadResult).data;\r\n that._dataSource._applyMapFunction(items)\r\n }))\r\n } else {\r\n return (new Deferred).resolve(this.plainItems())\r\n }\r\n },\r\n dataFields: function() {\r\n return that._dataSource && that._dataSource.select()\r\n },\r\n plainItems: itemsGetter.bind(that._editStrategy)\r\n })\r\n },\r\n _getItemsCount: function(items) {\r\n return items.reduce((itemsCount, item) => itemsCount + (item.items ? this._getItemsCount(item.items) : 1), 0)\r\n },\r\n _initEditStrategy: function() {\r\n var Strategy = PlainEditStrategy;\r\n this._editStrategy = new Strategy(this)\r\n },\r\n _getSelectedItemIndices: function(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, (function(_, 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: function() {\r\n this._rendering = true;\r\n if (!this._dataSource || !this._dataSource.isLoading()) {\r\n this._syncSelectionOptions().done(() => this._normalizeSelectedItems())\r\n }\r\n this.callBase()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._rendering = false\r\n },\r\n _fireContentReadyAction: function() {\r\n this._rendering = false;\r\n this._rendered = true;\r\n this.callBase.apply(this, arguments)\r\n },\r\n _syncSelectionOptions: function(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 (new Deferred).resolve().promise()\r\n },\r\n _chooseSelectOption: function() {\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: 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\n _normalizeSelectedItems: function() {\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 } else {\r\n this._selection.setSelection(this._getKeysByItems(newSelection))\r\n }\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 (new Deferred).resolve().promise()\r\n },\r\n _itemClickHandler: function(e) {\r\n var itemSelectPromise = (new Deferred).resolve();\r\n var callBase = this.callBase;\r\n this._createAction(function(e) {\r\n var _this$_itemSelectHand;\r\n itemSelectPromise = null !== (_this$_itemSelectHand = this._itemSelectHandler(e.event)) && void 0 !== _this$_itemSelectHand ? _this$_itemSelectHand : itemSelectPromise\r\n }.bind(this), {\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: function(e) {\r\n var _itemSelectPromise;\r\n var itemSelectPromise;\r\n if (!this.option(\"selectionByClick\")) {\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 = itemSelectPromise) || void 0 === _itemSelectPromise ? void 0 : _itemSelectPromise.promise()\r\n },\r\n _selectedItemElement: function(index) {\r\n return this._itemElements().eq(index)\r\n },\r\n _postprocessRenderItem: function(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: function($itemElement, isSelected) {\r\n $itemElement.toggleClass(this._selectedItemClass(), isSelected);\r\n this._setAriaSelected($itemElement, String(isSelected))\r\n },\r\n _updateSelectedItems: function(args) {\r\n var that = this;\r\n var addedItemKeys = args.addedItemKeys;\r\n var removedItemKeys = args.removedItemKeys;\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((function() {\r\n that._fireSelectionChangeEvent(args.addedItems, args.removedItems)\r\n }))\r\n }\r\n },\r\n _fireSelectionChangeEvent: function(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 _setAriaSelected: function($target, value) {\r\n this.setAria(\"selected\", value, $target)\r\n },\r\n _removeSelection: function(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: function(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: function(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: function(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 \"selectionByClick\":\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: function() {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", []);\r\n this._syncSelectionOptions(\"selectedItems\")\r\n },\r\n _waitDeletingPrepare: function($itemElement) {\r\n if ($itemElement.data(ITEM_DELETING_DATA_KEY)) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n $itemElement.data(ITEM_DELETING_DATA_KEY, true);\r\n var deferred = new 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((function() {\r\n $itemElement.data(ITEM_DELETING_DATA_KEY, false)\r\n })).done((function(cancel) {\r\n shouldDelete && !cancel ? deferred.resolve() : deferred.reject()\r\n })).fail(deferred.reject)\r\n }.bind(this));\r\n return deferred.promise()\r\n },\r\n _deleteItemFromDS: function($item) {\r\n if (!this._dataSource) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n var deferred = new Deferred;\r\n var disabledState = this.option(\"disabled\");\r\n var dataStore = this._dataSource.store();\r\n this.option(\"disabled\", true);\r\n if (!dataStore.remove) {\r\n throw errors.Error(\"E1011\")\r\n }\r\n dataStore.remove(dataStore.keyOf(this._getItemData($item))).done((function(key) {\r\n if (void 0 !== key) {\r\n deferred.resolve()\r\n } else {\r\n deferred.reject()\r\n }\r\n })).fail((function() {\r\n deferred.reject()\r\n }));\r\n deferred.always(function() {\r\n this.option(\"disabled\", disabledState)\r\n }.bind(this));\r\n return deferred\r\n },\r\n _tryRefreshLastPage: function() {\r\n var deferred = new Deferred;\r\n if (this._isLastPage() || this.option(\"grouped\")) {\r\n deferred.resolve()\r\n } else {\r\n this._refreshLastPage().done((function() {\r\n deferred.resolve()\r\n }))\r\n }\r\n return deferred.promise()\r\n },\r\n _refreshLastPage: function() {\r\n this._expectLastItemLoading();\r\n return this._dataSource.load()\r\n },\r\n _updateSelectionAfterDelete: function(index) {\r\n var key = this._getKeyByIndex(index);\r\n this._selection.deselect([key])\r\n },\r\n _updateIndicesAfterIndex: function(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: function(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: function(itemElement) {\r\n return this._isItemSelected(this._editStrategy.getNormalizedIndex(itemElement))\r\n },\r\n selectItem: function(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 } else {\r\n var selectedItemKeys = this.option(\"selectedItemKeys\") || [];\r\n return this._selection.setSelection([...selectedItemKeys, key], [key])\r\n }\r\n },\r\n unselectItem: function(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: function(index) {\r\n this._updateSelectionAfterDelete(index);\r\n this._updateIndicesAfterIndex(index);\r\n this._editStrategy.deleteItemAtIndex(index)\r\n },\r\n _afterItemElementDeleted: function($item, deletedActionArgs) {\r\n var changingOption = this._dataSource ? \"dataSource\" : \"items\";\r\n this._simulateOptionChange(changingOption);\r\n this._itemEventHandler($item, \"onItemDeleted\", deletedActionArgs, {\r\n beforeExecute: function() {\r\n $item.remove()\r\n },\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this._renderEmptyMessage()\r\n },\r\n deleteItem: function(itemElement) {\r\n var that = this;\r\n var deferred = new 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((function() {\r\n $item.addClass(itemResponseWaitClass);\r\n var deletedActionArgs = that._extendActionArgs($item);\r\n that._deleteItemFromDS($item).done((function() {\r\n that._deleteItemElementByIndex(index);\r\n that._afterItemElementDeleted($item, deletedActionArgs);\r\n that._tryRefreshLastPage().done((function() {\r\n deferred.resolveWith(that)\r\n }))\r\n })).fail((function() {\r\n $item.removeClass(itemResponseWaitClass);\r\n deferred.rejectWith(that)\r\n }))\r\n })).fail((function() {\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: function(itemElement, toItemElement) {\r\n var deferred = new 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._dataSource ? \"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/core/templates/template_engine_registry.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isString\r\n} from \"../utils/type\";\r\nimport errors from \"../errors\";\r\nvar templateEngines = {};\r\nvar currentTemplateEngine;\r\nexport function registerTemplateEngine(name, templateEngine) {\r\n templateEngines[name] = templateEngine\r\n}\r\nexport function setTemplateEngine(templateEngine) {\r\n if (isString(templateEngine)) {\r\n currentTemplateEngine = templateEngines[templateEngine];\r\n if (!currentTemplateEngine) {\r\n throw errors.Error(\"E0020\", templateEngine)\r\n }\r\n } else {\r\n currentTemplateEngine = templateEngine\r\n }\r\n}\r\nexport function getCurrentTemplateEngine() {\r\n return currentTemplateEngine\r\n}\r\n","/**\r\n * DevExtreme (esm/core/templates/template_engines.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extractTemplateMarkup\r\n} from \"../utils/dom\";\r\nimport {\r\n registerTemplateEngine\r\n} from \"./template_engine_registry\";\r\nregisterTemplateEngine(\"jquery-tmpl\", {\r\n compile: element => extractTemplateMarkup(element),\r\n render: (template, data) => jQuery.tmpl(template, data)\r\n});\r\nregisterTemplateEngine(\"jsrender\", {\r\n compile: element => (jQuery ? jQuery : jsrender).templates(extractTemplateMarkup(element)),\r\n render: (template, data) => template.render(data)\r\n});\r\nregisterTemplateEngine(\"mustache\", {\r\n compile: element => extractTemplateMarkup(element),\r\n render: (template, data) => Mustache.render(template, data)\r\n});\r\nregisterTemplateEngine(\"hogan\", {\r\n compile: element => Hogan.compile(extractTemplateMarkup(element)),\r\n render: (template, data) => template.render(data)\r\n});\r\nregisterTemplateEngine(\"underscore\", {\r\n compile: element => _.template(extractTemplateMarkup(element)),\r\n render: (template, data) => template(data)\r\n});\r\nregisterTemplateEngine(\"handlebars\", {\r\n compile: element => Handlebars.compile(extractTemplateMarkup(element)),\r\n render: (template, data) => template(data)\r\n});\r\nregisterTemplateEngine(\"doT\", {\r\n compile: element => doT.template(extractTemplateMarkup(element)),\r\n render: (template, data) => template(data)\r\n});\r\n","/**\r\n * DevExtreme (esm/core/templates/template.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 {\r\n normalizeTemplateElement\r\n} from \"../utils/dom\";\r\nimport {\r\n getCurrentTemplateEngine,\r\n registerTemplateEngine,\r\n setTemplateEngine\r\n} from \"./template_engine_registry\";\r\nimport \"./template_engines\";\r\nregisterTemplateEngine(\"default\", {\r\n compile: element => normalizeTemplateElement(element),\r\n render: (template, model, index) => template.clone()\r\n});\r\nsetTemplateEngine(\"default\");\r\nexport class Template extends TemplateBase {\r\n constructor(element) {\r\n super();\r\n this._element = element\r\n }\r\n _renderCore(options) {\r\n var transclude = options.transclude;\r\n if (!transclude && !this._compiledTemplate) {\r\n this._compiledTemplate = getCurrentTemplateEngine().compile(this._element)\r\n }\r\n return $(\"
\").append(transclude ? this._element : getCurrentTemplateEngine().render(this._compiledTemplate, options.model, options.index)).contents()\r\n }\r\n source() {\r\n return $(this._element).clone()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/template_manager.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 devices from \"../devices\";\r\nimport Errors from \"../errors\";\r\nimport $ from \"../renderer\";\r\nimport {\r\n ChildDefaultTemplate\r\n} from \"../templates/child_default_template\";\r\nimport {\r\n EmptyTemplate\r\n} from \"../templates/empty_template\";\r\nimport {\r\n Template\r\n} from \"../templates/template\";\r\nimport {\r\n TemplateBase\r\n} from \"../templates/template_base\";\r\nimport {\r\n groupBy\r\n} from \"./array\";\r\nimport {\r\n findBestMatches\r\n} from \"./common\";\r\nimport {\r\n normalizeTemplateElement\r\n} from \"./dom\";\r\nimport {\r\n extend\r\n} from \"./extend\";\r\nimport {\r\n isFunction,\r\n isRenderer\r\n} from \"./type\";\r\nexport var findTemplates = (element, name) => {\r\n var templates = $(element).contents().filter(\"[\".concat(\"data-options\", '*=\"').concat(name, '\"]'));\r\n return [].slice.call(templates).map(element => {\r\n var optionsString = $(element).attr(\"data-options\") || \"\";\r\n return {\r\n element: element,\r\n options: config().optionsParser(optionsString)[name]\r\n }\r\n }).filter(template => !!template.options)\r\n};\r\nexport var suitableTemplatesByName = rawTemplates => {\r\n var templatesMap = groupBy(rawTemplates, template => template.options.name);\r\n if (templatesMap[void 0]) {\r\n throw Errors.Error(\"E0023\")\r\n }\r\n var result = {};\r\n Object.keys(templatesMap).forEach(name => {\r\n var _findBestMatches$;\r\n var suitableTemplate = null === (_findBestMatches$ = findBestMatches(devices.current(), templatesMap[name], template => template.options)[0]) || void 0 === _findBestMatches$ ? void 0 : _findBestMatches$.element;\r\n if (suitableTemplate) {\r\n result[name] = suitableTemplate\r\n }\r\n });\r\n return result\r\n};\r\nexport var addOneRenderedCall = template => {\r\n var render = template.render.bind(template);\r\n return extend({}, template, {\r\n render(options) {\r\n var templateResult = render(options);\r\n options && options.onRendered && options.onRendered();\r\n return templateResult\r\n }\r\n })\r\n};\r\nexport var getNormalizedTemplateArgs = options => {\r\n var args = [];\r\n if (\"model\" in options) {\r\n args.push(options.model)\r\n }\r\n if (\"index\" in options) {\r\n args.push(options.index)\r\n }\r\n args.push(options.container);\r\n return args\r\n};\r\nexport var validateTemplateSource = templateSource => \"string\" === typeof templateSource ? normalizeTemplateElement(templateSource) : templateSource;\r\nexport var templateKey = templateSource => isRenderer(templateSource) && templateSource[0] || templateSource;\r\nexport var defaultCreateElement = element => new Template(element);\r\nexport var acquireIntegrationTemplate = (templateSource, templates, isAsyncTemplate, skipTemplates) => {\r\n var integrationTemplate = null;\r\n if (!skipTemplates || -1 === skipTemplates.indexOf(templateSource)) {\r\n integrationTemplate = templates[templateSource];\r\n if (integrationTemplate && !(integrationTemplate instanceof TemplateBase) && !isAsyncTemplate) {\r\n integrationTemplate = addOneRenderedCall(integrationTemplate)\r\n }\r\n }\r\n return integrationTemplate\r\n};\r\nexport var acquireTemplate = (templateSource, createTemplate, templates, isAsyncTemplate, skipTemplates, defaultTemplates) => {\r\n if (null == templateSource) {\r\n return new EmptyTemplate\r\n }\r\n if (templateSource instanceof ChildDefaultTemplate) {\r\n return defaultTemplates[templateSource.name]\r\n }\r\n if (templateSource instanceof TemplateBase) {\r\n return templateSource\r\n }\r\n if (isFunction(templateSource.render) && !isRenderer(templateSource)) {\r\n return isAsyncTemplate ? templateSource : addOneRenderedCall(templateSource)\r\n }\r\n if (templateSource.nodeType || isRenderer(templateSource)) {\r\n return createTemplate($(templateSource))\r\n }\r\n return acquireIntegrationTemplate(templateSource, templates, isAsyncTemplate, skipTemplates) || defaultTemplates[templateSource] || createTemplate(templateSource)\r\n};\r\n","/*!\n * devextreme-vue\n * Version: 22.1.5\n * Build date: Fri Sep 02 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.initDxExtensionComponent = void 0;\nvar vue_1 = require(\"vue\");\nvar component_1 = require(\"./component\");\nvar vue_helper_1 = require(\"./vue-helper\");\nfunction initDxExtensionComponent() {\n return vue_1.defineComponent({\n extends: component_1.initBaseComponent(),\n mounted: function () {\n this.$el.setAttribute(\"isExtension\", \"true\");\n var nodeOptions = vue_helper_1.getNodeOptions(this);\n nodeOptions.$_isExtension = true;\n nodeOptions.$_attachTo = this.attachTo.bind(this);\n if (nodeOptions && nodeOptions.$_hasOwner) {\n return;\n }\n this.attachTo(this.$el);\n },\n methods: {\n attachTo: function (element) {\n this.$_createWidget(element);\n }\n }\n });\n}\nexports.initDxExtensionComponent = initDxExtensionComponent;\n","/*!\n * devextreme-vue\n * Version: 22.1.5\n * Build date: Fri Sep 02 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pullAllChildren = exports.pullConfigComponents = exports.isFragment = void 0;\nvar vue_helper_1 = require(\"./vue-helper\");\nfunction pullAllChildren(directChildren, allChildren, config) {\n if (!directChildren || directChildren.length === 0) {\n return;\n }\n pullConfigComponents(directChildren, allChildren, config);\n}\nexports.pullAllChildren = pullAllChildren;\nfunction isFragment(node) {\n var patchFlag = node.patchFlag;\n return patchFlag === 128 /* KEYED_FRAGMENT */\n || patchFlag === 256 /* UNKEYED_FRAGMENT */\n || patchFlag === 64 /* STABLE_FRAGMENT */\n || patchFlag === -2 /* BAIL */;\n}\nexports.isFragment = isFragment;\nfunction pullConfigComponents(children, nodes, ownerConfig) {\n children.forEach(function (node) {\n if (isFragment(node) && Array.isArray(node.children)) {\n pullConfigComponents(node.children, nodes, ownerConfig);\n }\n if (!isFragment(node)) {\n nodes.push(node);\n }\n if (!node) {\n return;\n }\n var componentInfo = vue_helper_1.getComponentInfo(node);\n if (!componentInfo || !componentInfo.$_optionName) {\n return;\n }\n var componentChildren = vue_helper_1.configurationChildren(node);\n var initialValues = __assign(__assign({}, componentInfo.$_predefinedProps), vue_helper_1.getNormalizedProps(node.props || {}));\n var config = ownerConfig.createNested(componentInfo.$_optionName, initialValues, componentInfo.$_isCollectionItem, componentInfo.$_expectedChildren);\n node.$_config = config;\n node.$_innerChanges = {};\n if (componentChildren) {\n pullConfigComponents(componentChildren, nodes, config);\n }\n });\n}\nexports.pullConfigComponents = pullConfigComponents;\n","/**\r\n * DevExtreme (esm/core/utils/ready_callbacks.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../dom_adapter\";\r\nimport injector from \"./dependency_injector\";\r\nimport {\r\n hasWindow\r\n} from \"./window\";\r\nimport callOnce from \"./call_once\";\r\nvar callbacks = [];\r\nvar subscribeReady = callOnce(() => {\r\n var removeListener = domAdapter.listen(domAdapter.getDocument(), \"DOMContentLoaded\", () => {\r\n readyCallbacks.fire();\r\n removeListener()\r\n })\r\n});\r\nvar readyCallbacks = {\r\n add: callback => {\r\n var windowExists = hasWindow();\r\n if (windowExists && \"loading\" !== domAdapter.getReadyState()) {\r\n callback()\r\n } else {\r\n callbacks.push(callback);\r\n windowExists && subscribeReady()\r\n }\r\n },\r\n fire: () => {\r\n callbacks.forEach(callback => callback());\r\n callbacks = []\r\n }\r\n};\r\nexport default injector(readyCallbacks);\r\n","/**\r\n * DevExtreme (esm/ui/drop_down_editor/utils.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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","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 {\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 {\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) ? 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 { 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/ui/load_panel.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 messageLocalization from \"../localization/message\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport LoadIndicator from \"./load_indicator\";\r\nimport Overlay from \"./overlay/ui.overlay\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n isMaterial\r\n} from \"./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: function() {\r\n return extend(this.callBase(), {\r\n escape: noop\r\n })\r\n },\r\n _getDefaultOptions: function() {\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 })\r\n },\r\n _defaultOptionsRules: function() {\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: function() {\r\n return isMaterial()\r\n },\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 },\r\n _init: function() {\r\n this.callBase.apply(this, arguments)\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(LOADPANEL_CLASS);\r\n this.$wrapper().addClass(LOADPANEL_WRAPPER_CLASS)\r\n },\r\n _renderContentImpl: function() {\r\n this.callBase();\r\n this.$content().addClass(LOADPANEL_CONTENT_CLASS);\r\n this._$loadPanelContentWrapper = $(\"
\").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: function() {\r\n var delay = this.option(\"delay\");\r\n if (!delay) {\r\n return this.callBase()\r\n }\r\n var deferred = new Deferred;\r\n var callBase = this.callBase.bind(this);\r\n this._clearShowTimeout();\r\n this._showTimeout = setTimeout((function() {\r\n callBase().done((function() {\r\n deferred.resolve()\r\n }))\r\n }), delay);\r\n return deferred.promise()\r\n },\r\n _hide: function() {\r\n this._clearShowTimeout();\r\n return this.callBase()\r\n },\r\n _clearShowTimeout: function() {\r\n clearTimeout(this._showTimeout)\r\n },\r\n _renderMessage: function() {\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 = $(\"
\").addClass(LOADPANEL_MESSAGE_CLASS).text(message);\r\n this._$loadPanelContentWrapper.append($message)\r\n },\r\n _renderLoadIndicator: function() {\r\n if (!this._$loadPanelContentWrapper || !this.option(\"showIndicator\")) {\r\n return\r\n }\r\n if (!this._$indicator) {\r\n this._$indicator = $(\"
\").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: function() {\r\n this.$content().find(\".\" + LOADPANEL_MESSAGE_CLASS).remove();\r\n this.$content().find(\".\" + LOADPANEL_INDICATOR_CLASS).remove();\r\n delete this._$indicator\r\n },\r\n _togglePaneVisible: function() {\r\n this.$content().toggleClass(LOADPANEL_PANE_HIDDEN_CLASS, !this.option(\"showPane\"))\r\n },\r\n _optionChanged: function(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 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: function() {\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/core/utils/queue.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errors from \"../errors\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\n\r\nfunction createQueue(discardPendingTasks) {\r\n var _tasks = [];\r\n var _busy = false;\r\n\r\n function exec() {\r\n while (_tasks.length) {\r\n _busy = true;\r\n var task = _tasks.shift();\r\n var result = task();\r\n if (void 0 === result) {\r\n continue\r\n }\r\n if (result.then) {\r\n when(result).always(exec);\r\n return\r\n }\r\n throw errors.Error(\"E0015\")\r\n }\r\n _busy = false\r\n }\r\n return {\r\n add: function(task, removeTaskCallback) {\r\n if (!discardPendingTasks) {\r\n _tasks.push(task)\r\n } else {\r\n if (_tasks[0] && removeTaskCallback) {\r\n removeTaskCallback(_tasks[0])\r\n }\r\n _tasks = [task]\r\n }\r\n if (!_busy) {\r\n exec()\r\n }\r\n },\r\n busy: function() {\r\n return _busy\r\n }\r\n }\r\n}\r\nexport {\r\n createQueue as create\r\n};\r\nexport var enqueue = createQueue().add;\r\n","/**\r\n * DevExtreme (esm/data/data_source/operation_manager.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n CANCELED_TOKEN\r\n} from \"./utils\";\r\nexport default class OperationManager {\r\n constructor() {\r\n this._counter = -1;\r\n this._deferreds = {}\r\n }\r\n add(deferred) {\r\n this._counter++;\r\n this._deferreds[this._counter] = deferred;\r\n return this._counter\r\n }\r\n remove(operationId) {\r\n return delete this._deferreds[operationId]\r\n }\r\n cancel(operationId) {\r\n if (operationId in this._deferreds) {\r\n this._deferreds[operationId].reject(CANCELED_TOKEN);\r\n return true\r\n }\r\n return false\r\n }\r\n cancelAll() {\r\n while (this._counter > -1) {\r\n this.cancel(this._counter);\r\n this._counter--\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/data/data_source/data_source.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n executeAsync\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isString,\r\n isNumeric,\r\n isBoolean,\r\n isDefined,\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n throttleChanges\r\n} from \"../utils\";\r\nimport {\r\n applyBatch\r\n} from \"../array_utils\";\r\nimport CustomStore from \"../custom_store\";\r\nimport {\r\n EventsStrategy\r\n} from \"../../core/events_strategy\";\r\nimport {\r\n errors\r\n} from \"../errors\";\r\nimport {\r\n create\r\n} from \"../../core/utils/queue\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport OperationManager from \"./operation_manager\";\r\nimport {\r\n normalizeDataSourceOptions,\r\n normalizeStoreLoadOptionAccessorArguments,\r\n CANCELED_TOKEN,\r\n isPending,\r\n normalizeLoadResult,\r\n mapDataRespectingGrouping\r\n} from \"./utils\";\r\nexport var DataSource = Class.inherit({\r\n ctor(options) {\r\n var _options$reshapeOnPus;\r\n options = normalizeDataSourceOptions(options);\r\n this._eventsStrategy = new EventsStrategy(this, {\r\n syncStrategy: true\r\n });\r\n this._store = options.store;\r\n this._changedTime = 0;\r\n var needThrottling = 0 !== options.pushAggregationTimeout;\r\n if (needThrottling) {\r\n var throttlingTimeout = void 0 === options.pushAggregationTimeout ? () => 5 * this._changedTime : options.pushAggregationTimeout;\r\n var pushDeferred;\r\n var lastPushWaiters;\r\n var throttlingPushHandler = throttleChanges(changes => {\r\n pushDeferred.resolve();\r\n var storePushPending = when(...lastPushWaiters);\r\n storePushPending.done(() => this._onPush(changes));\r\n lastPushWaiters = void 0;\r\n pushDeferred = void 0\r\n }, throttlingTimeout);\r\n this._onPushHandler = args => {\r\n this._aggregationTimeoutId = throttlingPushHandler(args.changes);\r\n if (!pushDeferred) {\r\n pushDeferred = new Deferred\r\n }\r\n lastPushWaiters = args.waitFor;\r\n args.waitFor.push(pushDeferred.promise())\r\n };\r\n this._store.on(\"beforePush\", this._onPushHandler)\r\n } else {\r\n this._onPushHandler = changes => this._onPush(changes);\r\n this._store.on(\"push\", this._onPushHandler)\r\n }\r\n this._storeLoadOptions = this._extractLoadOptions(options);\r\n this._mapFunc = options.map;\r\n this._postProcessFunc = options.postProcess;\r\n this._pageIndex = void 0 !== options.pageIndex ? options.pageIndex : 0;\r\n this._pageSize = void 0 !== options.pageSize ? options.pageSize : 20;\r\n this._loadingCount = 0;\r\n this._loadQueue = this._createLoadQueue();\r\n this._searchValue = \"searchValue\" in options ? options.searchValue : null;\r\n this._searchOperation = options.searchOperation || \"contains\";\r\n this._searchExpr = options.searchExpr;\r\n this._paginate = options.paginate;\r\n this._reshapeOnPush = null !== (_options$reshapeOnPus = options.reshapeOnPush) && void 0 !== _options$reshapeOnPus ? _options$reshapeOnPus : false;\r\n each([\"onChanged\", \"onLoadError\", \"onLoadingChanged\", \"onCustomizeLoadResult\", \"onCustomizeStoreLoadOptions\"], (_, optionName) => {\r\n if (optionName in options) {\r\n this.on(optionName.substr(2, 1).toLowerCase() + optionName.substr(3), options[optionName])\r\n }\r\n });\r\n this._operationManager = new OperationManager;\r\n this._init()\r\n },\r\n _init() {\r\n this._items = [];\r\n this._userData = {};\r\n this._totalCount = -1;\r\n this._isLoaded = false;\r\n if (!isDefined(this._paginate)) {\r\n this._paginate = !this.group()\r\n }\r\n this._isLastPage = !this._paginate\r\n },\r\n dispose() {\r\n var _this$_delayedLoadTas;\r\n this._store.off(\"beforePush\", this._onPushHandler);\r\n this._store.off(\"push\", this._onPushHandler);\r\n this._eventsStrategy.dispose();\r\n clearTimeout(this._aggregationTimeoutId);\r\n null === (_this$_delayedLoadTas = this._delayedLoadTask) || void 0 === _this$_delayedLoadTas ? void 0 : _this$_delayedLoadTas.abort();\r\n this._operationManager.cancelAll();\r\n delete this._store;\r\n delete this._items;\r\n delete this._delayedLoadTask;\r\n this._disposed = true\r\n },\r\n _extractLoadOptions(options) {\r\n var result = {};\r\n var names = [\"sort\", \"filter\", \"select\", \"group\", \"requireTotalCount\"];\r\n var customNames = this._store._customLoadOptions();\r\n if (customNames) {\r\n names = names.concat(customNames)\r\n }\r\n each(names, (function() {\r\n result[this] = options[this]\r\n }));\r\n return result\r\n },\r\n loadOptions() {\r\n return this._storeLoadOptions\r\n },\r\n items() {\r\n return this._items\r\n },\r\n pageIndex(newIndex) {\r\n if (!isNumeric(newIndex)) {\r\n return this._pageIndex\r\n }\r\n this._pageIndex = newIndex;\r\n this._isLastPage = !this._paginate\r\n },\r\n paginate(value) {\r\n if (!isBoolean(value)) {\r\n return this._paginate\r\n }\r\n if (this._paginate !== value) {\r\n this._paginate = value;\r\n this.pageIndex(0)\r\n }\r\n },\r\n pageSize(value) {\r\n if (!isNumeric(value)) {\r\n return this._pageSize\r\n }\r\n this._pageSize = value\r\n },\r\n isLastPage() {\r\n return this._isLastPage\r\n },\r\n generateStoreLoadOptionAccessor(optionName) {\r\n return args => {\r\n var normalizedArgs = normalizeStoreLoadOptionAccessorArguments(args);\r\n if (void 0 === normalizedArgs) {\r\n return this._storeLoadOptions[optionName]\r\n }\r\n this._storeLoadOptions[optionName] = normalizedArgs\r\n }\r\n },\r\n sort() {\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 this.generateStoreLoadOptionAccessor(\"sort\")(args)\r\n },\r\n filter() {\r\n var newFilter = normalizeStoreLoadOptionAccessorArguments(arguments);\r\n if (void 0 === newFilter) {\r\n return this._storeLoadOptions.filter\r\n }\r\n this._storeLoadOptions.filter = newFilter;\r\n this.pageIndex(0)\r\n },\r\n group() {\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 return this.generateStoreLoadOptionAccessor(\"group\")(args)\r\n },\r\n select() {\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 return this.generateStoreLoadOptionAccessor(\"select\")(args)\r\n },\r\n requireTotalCount(value) {\r\n if (!isBoolean(value)) {\r\n return this._storeLoadOptions.requireTotalCount\r\n }\r\n this._storeLoadOptions.requireTotalCount = value\r\n },\r\n searchValue(value) {\r\n if (arguments.length < 1) {\r\n return this._searchValue\r\n }\r\n this._searchValue = value;\r\n this.pageIndex(0)\r\n },\r\n searchOperation(op) {\r\n if (!isString(op)) {\r\n return this._searchOperation\r\n }\r\n this._searchOperation = op;\r\n this.pageIndex(0)\r\n },\r\n searchExpr(expr) {\r\n var argc = arguments.length;\r\n if (0 === argc) {\r\n return this._searchExpr\r\n }\r\n if (argc > 1) {\r\n expr = [].slice.call(arguments)\r\n }\r\n this._searchExpr = expr;\r\n this.pageIndex(0)\r\n },\r\n store() {\r\n return this._store\r\n },\r\n key() {\r\n var _this$_store;\r\n return null === (_this$_store = this._store) || void 0 === _this$_store ? void 0 : _this$_store.key()\r\n },\r\n totalCount() {\r\n return this._totalCount\r\n },\r\n isLoaded() {\r\n return this._isLoaded\r\n },\r\n isLoading() {\r\n return this._loadingCount > 0\r\n },\r\n beginLoading() {\r\n this._changeLoadingCount(1)\r\n },\r\n endLoading() {\r\n this._changeLoadingCount(-1)\r\n },\r\n _createLoadQueue: () => create(),\r\n _changeLoadingCount(increment) {\r\n var oldLoading = this.isLoading();\r\n this._loadingCount += increment;\r\n var newLoading = this.isLoading();\r\n if (oldLoading ^ newLoading) {\r\n this._eventsStrategy.fireEvent(\"loadingChanged\", [newLoading])\r\n }\r\n },\r\n _scheduleLoadCallbacks(deferred) {\r\n this.beginLoading();\r\n deferred.always(() => {\r\n this.endLoading()\r\n })\r\n },\r\n _scheduleFailCallbacks(deferred) {\r\n var _this = this;\r\n deferred.fail((function() {\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 if (args[0] === CANCELED_TOKEN) {\r\n return\r\n }\r\n _this._eventsStrategy.fireEvent(\"loadError\", args)\r\n }))\r\n },\r\n _fireChanged(args) {\r\n var date = new Date;\r\n this._eventsStrategy.fireEvent(\"changed\", args);\r\n this._changedTime = new Date - date\r\n },\r\n _scheduleChangedCallbacks(deferred) {\r\n deferred.done(() => this._fireChanged())\r\n },\r\n loadSingle(propName, propValue) {\r\n var d = new Deferred;\r\n var key = this.key();\r\n var store = this._store;\r\n var options = this._createStoreLoadOptions();\r\n this._scheduleFailCallbacks(d);\r\n if (arguments.length < 2) {\r\n propValue = propName;\r\n propName = key\r\n }\r\n delete options.skip;\r\n delete options.group;\r\n delete options.refresh;\r\n delete options.pageIndex;\r\n delete options.searchString;\r\n (() => {\r\n if (propName === key || store instanceof CustomStore && !store._byKeyViaLoad()) {\r\n return store.byKey(propValue, options)\r\n }\r\n options.take = 1;\r\n options.filter = options.filter ? [options.filter, [propName, propValue]] : [propName, propValue];\r\n return store.load(options)\r\n })().fail(d.reject).done(data => {\r\n var isEmptyArray = Array.isArray(data) && !data.length;\r\n if (!isDefined(data) || isEmptyArray) {\r\n d.reject(new errors.Error(\"E4009\"))\r\n } else {\r\n if (!Array.isArray(data)) {\r\n data = [data]\r\n }\r\n d.resolve(this._applyMapFunction(data)[0])\r\n }\r\n });\r\n return d.promise()\r\n },\r\n load() {\r\n var d = new Deferred;\r\n var loadTask = () => {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (!isPending(d)) {\r\n return\r\n }\r\n return this._loadFromStore(loadOperation, d)\r\n };\r\n this._scheduleLoadCallbacks(d);\r\n this._scheduleFailCallbacks(d);\r\n this._scheduleChangedCallbacks(d);\r\n var loadOperation = this._createLoadOperation(d);\r\n this._eventsStrategy.fireEvent(\"customizeStoreLoadOptions\", [loadOperation]);\r\n this._loadQueue.add(() => {\r\n if (\"number\" === typeof loadOperation.delay) {\r\n this._delayedLoadTask = executeAsync(loadTask, loadOperation.delay)\r\n } else {\r\n loadTask()\r\n }\r\n return d.promise()\r\n });\r\n return d.promise({\r\n operationId: loadOperation.operationId\r\n })\r\n },\r\n _onPush(changes) {\r\n if (this._reshapeOnPush) {\r\n this.load()\r\n } else {\r\n this._eventsStrategy.fireEvent(\"changing\", [{\r\n changes: changes\r\n }]);\r\n var group = this.group();\r\n var items = this.items();\r\n var groupLevel = 0;\r\n var dataSourceChanges = this.paginate() || group ? changes.filter(item => \"update\" === item.type) : changes;\r\n if (group) {\r\n groupLevel = Array.isArray(group) ? group.length : 1\r\n }\r\n if (this._mapFunc) {\r\n dataSourceChanges.forEach(item => {\r\n if (\"insert\" === item.type) {\r\n item.data = this._mapFunc(item.data)\r\n }\r\n })\r\n }\r\n applyBatch({\r\n keyInfo: this.store(),\r\n data: items,\r\n changes: dataSourceChanges,\r\n groupCount: groupLevel,\r\n useInsertIndex: true\r\n });\r\n this._fireChanged([{\r\n changes: changes\r\n }])\r\n }\r\n },\r\n _createLoadOperation(deferred) {\r\n var operationId = this._operationManager.add(deferred);\r\n var storeLoadOptions = this._createStoreLoadOptions();\r\n deferred.always(() => this._operationManager.remove(operationId));\r\n return {\r\n operationId: operationId,\r\n storeLoadOptions: storeLoadOptions\r\n }\r\n },\r\n reload() {\r\n var store = this.store();\r\n if (store instanceof CustomStore) {\r\n store.clearRawDataCache()\r\n }\r\n this._init();\r\n return this.load()\r\n },\r\n cancel(operationId) {\r\n return this._operationManager.cancel(operationId)\r\n },\r\n cancelAll() {\r\n return this._operationManager.cancelAll()\r\n },\r\n _addSearchOptions(storeLoadOptions) {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (this.store()._useDefaultSearch) {\r\n this._addSearchFilter(storeLoadOptions)\r\n } else {\r\n storeLoadOptions.searchOperation = this._searchOperation;\r\n storeLoadOptions.searchValue = this._searchValue;\r\n storeLoadOptions.searchExpr = this._searchExpr\r\n }\r\n },\r\n _createStoreLoadOptions() {\r\n var result = extend({}, this._storeLoadOptions);\r\n this._addSearchOptions(result);\r\n if (this._paginate) {\r\n if (this._pageSize) {\r\n result.skip = this._pageIndex * this._pageSize;\r\n result.take = this._pageSize\r\n }\r\n }\r\n result.userData = this._userData;\r\n return result\r\n },\r\n _addSearchFilter(storeLoadOptions) {\r\n var value = this._searchValue;\r\n var op = this._searchOperation;\r\n var selector = this._searchExpr;\r\n var searchFilter = [];\r\n if (!value) {\r\n return\r\n }\r\n if (!selector) {\r\n selector = \"this\"\r\n }\r\n if (!Array.isArray(selector)) {\r\n selector = [selector]\r\n }\r\n each(selector, (function(i, item) {\r\n if (searchFilter.length) {\r\n searchFilter.push(\"or\")\r\n }\r\n searchFilter.push([item, op, value])\r\n }));\r\n if (storeLoadOptions.filter) {\r\n storeLoadOptions.filter = [searchFilter, storeLoadOptions.filter]\r\n } else {\r\n storeLoadOptions.filter = searchFilter\r\n }\r\n },\r\n _loadFromStore(loadOptions, pendingDeferred) {\r\n var handleSuccess = (data, extra) => {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (!isPending(pendingDeferred)) {\r\n return\r\n }\r\n var loadResult = extend(normalizeLoadResult(data, extra), loadOptions);\r\n this._eventsStrategy.fireEvent(\"customizeLoadResult\", [loadResult]);\r\n when(loadResult.data).done(data => {\r\n loadResult.data = data;\r\n this._processStoreLoadResult(loadResult, pendingDeferred)\r\n }).fail(pendingDeferred.reject)\r\n };\r\n if (loadOptions.data) {\r\n return (new Deferred).resolve(loadOptions.data).done(handleSuccess)\r\n }\r\n return this.store().load(loadOptions.storeLoadOptions).done(handleSuccess).fail(pendingDeferred.reject)\r\n },\r\n _processStoreLoadResult(loadResult, pendingDeferred) {\r\n var data = loadResult.data;\r\n var extra = loadResult.extra;\r\n var storeLoadOptions = loadResult.storeLoadOptions;\r\n var resolvePendingDeferred = () => {\r\n this._isLoaded = true;\r\n this._totalCount = isFinite(extra.totalCount) ? extra.totalCount : -1;\r\n return pendingDeferred.resolve(data, extra)\r\n };\r\n if (this._disposed) {\r\n return\r\n }\r\n data = this._applyPostProcessFunction(this._applyMapFunction(data));\r\n if (!isPlainObject(extra)) {\r\n extra = {}\r\n }\r\n this._items = data;\r\n if (!data.length || !this._paginate || this._pageSize && data.length < this._pageSize) {\r\n this._isLastPage = true\r\n }\r\n if (storeLoadOptions.requireTotalCount && !isFinite(extra.totalCount)) {\r\n (() => {\r\n this.store().totalCount(storeLoadOptions).done((function(count) {\r\n extra.totalCount = count;\r\n resolvePendingDeferred()\r\n })).fail(pendingDeferred.reject)\r\n })()\r\n } else {\r\n resolvePendingDeferred()\r\n }\r\n },\r\n _applyMapFunction(data) {\r\n if (this._mapFunc) {\r\n return mapDataRespectingGrouping(data, this._mapFunc, this.group())\r\n }\r\n return data\r\n },\r\n _applyPostProcessFunction(data) {\r\n if (this._postProcessFunc) {\r\n return this._postProcessFunc(data)\r\n }\r\n return data\r\n },\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n },\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/core/utils/icon.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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]\\//.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/core/utils/html_parser.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../dom_adapter\";\r\nvar isTagName = /<([a-z][^/\\0>\\x20\\t\\r\\n\\f]+)/i;\r\nvar tagWrappers = {\r\n default: {\r\n tagsCount: 0,\r\n startTags: \"\",\r\n endTags: \"\"\r\n },\r\n thead: {\r\n tagsCount: 1,\r\n startTags: \"\",\r\n endTags: \"
\"\r\n },\r\n td: {\r\n tagsCount: 3,\r\n startTags: \"\",\r\n endTags: \"
\"\r\n },\r\n col: {\r\n tagsCount: 2,\r\n startTags: \"\",\r\n endTags: \"
\"\r\n },\r\n tr: {\r\n tagsCount: 2,\r\n startTags: \"\",\r\n endTags: \"
\"\r\n }\r\n};\r\ntagWrappers.tbody = tagWrappers.colgroup = tagWrappers.caption = tagWrappers.tfoot = tagWrappers.thead;\r\ntagWrappers.th = tagWrappers.td;\r\nexport var parseHTML = function(html) {\r\n if (\"string\" !== typeof html) {\r\n return null\r\n }\r\n var fragment = domAdapter.createDocumentFragment();\r\n var container = fragment.appendChild(domAdapter.createElement(\"div\"));\r\n var tags = isTagName.exec(html);\r\n var firstRootTag = tags && tags[1].toLowerCase();\r\n var tagWrapper = tagWrappers[firstRootTag] || tagWrappers.default;\r\n container.innerHTML = tagWrapper.startTags + html + tagWrapper.endTags;\r\n for (var i = 0; i < tagWrapper.tagsCount; i++) {\r\n container = container.lastChild\r\n }\r\n return [...container.childNodes]\r\n};\r\nexport var isTablePart = function(html) {\r\n var tags = isTagName.exec(html);\r\n return tags && tags[1] in tagWrappers\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.base.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n setHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n ensureDefined,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n getImageContainer\r\n} from \"../../core/utils/icon\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n end as swipeEventEnd\r\n} from \"../../events/swipe\";\r\nimport {\r\n nativeScrolling\r\n} from \"../../core/utils/support\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n render\r\n} from \"../widget/utils.ink_ripple\";\r\nimport devices from \"../../core/devices\";\r\nimport ListItem from \"./item\";\r\nimport Button from \"../button\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n current,\r\n isMaterial\r\n} from \"../themes\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport ScrollView from \"../scroll_view\";\r\nimport {\r\n deviceDependentOptions\r\n} from \"../scroll_view/ui.scrollable.device\";\r\nimport CollectionWidget from \"../collection/ui.collection_widget.live_update\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../core/templates/bindable_template\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport DataConverterMixin from \"../shared/grouped_data_converter_mixin\";\r\nvar LIST_CLASS = \"dx-list\";\r\nvar LIST_ITEM_CLASS = \"dx-list-item\";\r\nvar LIST_ITEM_SELECTOR = \".\" + LIST_ITEM_CLASS;\r\nvar LIST_ITEM_ICON_CONTAINER_CLASS = \"dx-list-item-icon-container\";\r\nvar LIST_ITEM_ICON_CLASS = \"dx-list-item-icon\";\r\nvar LIST_GROUP_CLASS = \"dx-list-group\";\r\nvar LIST_GROUP_HEADER_CLASS = \"dx-list-group-header\";\r\nvar LIST_GROUP_BODY_CLASS = \"dx-list-group-body\";\r\nvar LIST_COLLAPSIBLE_GROUPS_CLASS = \"dx-list-collapsible-groups\";\r\nvar LIST_GROUP_COLLAPSED_CLASS = \"dx-list-group-collapsed\";\r\nvar LIST_GROUP_HEADER_INDICATOR_CLASS = \"dx-list-group-header-indicator\";\r\nvar LIST_HAS_NEXT_CLASS = \"dx-has-next\";\r\nvar LIST_NEXT_BUTTON_CLASS = \"dx-list-next-button\";\r\nvar WRAP_ITEM_TEXT_CLASS = \"dx-wrap-item-text\";\r\nvar SELECT_ALL_ITEM_SELECTOR = \".dx-list-select-all\";\r\nvar LIST_ITEM_DATA_KEY = \"dxListItemData\";\r\nvar LIST_FEEDBACK_SHOW_TIMEOUT = 70;\r\nvar groupItemsGetter = compileGetter(\"items\");\r\nvar _scrollView;\r\nexport var ListBase = CollectionWidget.inherit({\r\n _activeStateUnit: [LIST_ITEM_SELECTOR, SELECT_ALL_ITEM_SELECTOR].join(\",\"),\r\n _supportedKeys: function() {\r\n var that = this;\r\n var moveFocusPerPage = function(direction) {\r\n var $item = getEdgeVisibleItem(direction);\r\n var isFocusedItem = $item.is(that.option(\"focusedElement\"));\r\n if (isFocusedItem) {\r\n ! function($item, direction) {\r\n var resultPosition = $item.position().top;\r\n if (\"prev\" === direction) {\r\n resultPosition = $item.position().top - getHeight(that.$element()) + getOuterHeight($item)\r\n }\r\n that.scrollTo(resultPosition)\r\n }($item, direction);\r\n $item = getEdgeVisibleItem(direction)\r\n }\r\n that.option(\"focusedElement\", getPublicElement($item));\r\n that.scrollToItem($item)\r\n };\r\n\r\n function getEdgeVisibleItem(direction) {\r\n var scrollTop = that.scrollTop();\r\n var containerHeight = getHeight(that.$element());\r\n var $item = $(that.option(\"focusedElement\"));\r\n var isItemVisible = true;\r\n if (!$item.length) {\r\n return $()\r\n }\r\n while (isItemVisible) {\r\n var $nextItem = $item[direction]();\r\n if (!$nextItem.length) {\r\n break\r\n }\r\n var nextItemLocation = $nextItem.position().top + getOuterHeight($nextItem) / 2;\r\n isItemVisible = nextItemLocation < containerHeight + scrollTop && nextItemLocation > scrollTop;\r\n if (isItemVisible) {\r\n $item = $nextItem\r\n }\r\n }\r\n return $item\r\n }\r\n return extend(this.callBase(), {\r\n leftArrow: noop,\r\n rightArrow: noop,\r\n pageUp: function() {\r\n moveFocusPerPage(\"prev\");\r\n return false\r\n },\r\n pageDown: function() {\r\n moveFocusPerPage(\"next\");\r\n return false\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n pullRefreshEnabled: false,\r\n scrollingEnabled: true,\r\n 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 _listAttributes: {\r\n role: \"listbox\"\r\n },\r\n useInkRipple: false,\r\n wrapItemText: false,\r\n _swipeEnabled: true,\r\n showChevronExpr: function(data) {\r\n return data ? data.showChevron : void 0\r\n },\r\n badgeExpr: function(data) {\r\n return data ? data.badge : void 0\r\n }\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n var themeName = current();\r\n return this.callBase().concat(deviceDependentOptions(), [{\r\n device: function() {\r\n return !nativeScrolling\r\n },\r\n options: {\r\n useNativeScrolling: false\r\n }\r\n }, {\r\n device: function(_device) {\r\n return !nativeScrolling && !devices.isSimulator() && \"desktop\" === devices.real().deviceType && \"generic\" === _device.platform\r\n },\r\n options: {\r\n showScrollbar: \"onHover\",\r\n pageLoadMode: \"nextButton\"\r\n }\r\n }, {\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial(themeName)\r\n },\r\n options: {\r\n pullingDownText: \"\",\r\n pulledDownText: \"\",\r\n refreshingText: \"\",\r\n pageLoadingText: \"\",\r\n useInkRipple: true\r\n }\r\n }])\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._updateLoadingState(true)\r\n }\r\n },\r\n _itemClass: function() {\r\n return LIST_ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return LIST_ITEM_DATA_KEY\r\n },\r\n _itemContainer: function() {\r\n return this._$container\r\n },\r\n _saveSelectionChangeEvent: function(e) {\r\n this._selectionChangeEventInstance = e\r\n },\r\n _getSelectionChangeEvent: function() {\r\n return this._selectionChangeEventInstance\r\n },\r\n _refreshItemElements: function() {\r\n if (!this.option(\"grouped\")) {\r\n this._itemElementsCache = this._itemContainer().children(this._itemSelector())\r\n } else {\r\n this._itemElementsCache = this._itemContainer().children(\".\" + LIST_GROUP_CLASS).children(\".\" + LIST_GROUP_BODY_CLASS).children(this._itemSelector())\r\n }\r\n },\r\n _modifyByChanges: function() {\r\n this.callBase.apply(this, arguments);\r\n this._refreshItemElements();\r\n this._updateLoadingState(true)\r\n },\r\n reorderItem: function(itemElement, toItemElement) {\r\n var promise = this.callBase(itemElement, toItemElement);\r\n return promise.done((function() {\r\n this._refreshItemElements()\r\n }))\r\n },\r\n deleteItem: function(itemElement) {\r\n var promise = this.callBase(itemElement);\r\n return promise.done((function() {\r\n this._refreshItemElements()\r\n }))\r\n },\r\n _itemElements: function() {\r\n return this._itemElementsCache\r\n },\r\n _itemSelectHandler: function(e) {\r\n if (\"single\" === this.option(\"selectionMode\") && this.isItemSelected(e.currentTarget)) {\r\n return\r\n }\r\n return this.callBase(e)\r\n },\r\n _allowDynamicItemsAppend: function() {\r\n return true\r\n },\r\n _resetDataSourcePageIndex: function() {\r\n var currentDataSource = this.getDataSource();\r\n if (currentDataSource && 0 !== currentDataSource.pageIndex()) {\r\n currentDataSource.pageIndex(0);\r\n currentDataSource.load()\r\n }\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._resetDataSourcePageIndex();\r\n this._$container = this.$element();\r\n this._initScrollView();\r\n this._feedbackShowTimeout = LIST_FEEDBACK_SHOW_TIMEOUT;\r\n this._createGroupRenderAction()\r\n },\r\n _scrollBottomMode: function() {\r\n return \"scrollBottom\" === this.option(\"pageLoadMode\")\r\n },\r\n _nextButtonMode: function() {\r\n return \"nextButton\" === this.option(\"pageLoadMode\")\r\n },\r\n _dataSourceOptions: function() {\r\n var scrollBottom = this._scrollBottomMode();\r\n var nextButton = this._nextButtonMode();\r\n return extend(this.callBase(), {\r\n paginate: ensureDefined(scrollBottom || nextButton, true)\r\n })\r\n },\r\n _getGroupedOption: function() {\r\n return this.option(\"grouped\")\r\n },\r\n _getGroupContainerByIndex: function(groupIndex) {\r\n return this._itemContainer().find(\".\".concat(LIST_GROUP_CLASS)).eq(groupIndex).find(\".\".concat(LIST_GROUP_BODY_CLASS))\r\n },\r\n _dataSourceFromUrlLoadMode: function() {\r\n return \"raw\"\r\n },\r\n _initScrollView: function() {\r\n var scrollingEnabled = this.option(\"scrollingEnabled\");\r\n var pullRefreshEnabled = scrollingEnabled && this.option(\"pullRefreshEnabled\");\r\n var autoPagingEnabled = scrollingEnabled && this._scrollBottomMode() && !!this._dataSource;\r\n this._scrollView = this._createComponent(this.$element(), getScrollView(), {\r\n height: this.option(\"height\"),\r\n width: this.option(\"width\"),\r\n disabled: this.option(\"disabled\") || !scrollingEnabled,\r\n onScroll: this._scrollHandler.bind(this),\r\n onPullDown: pullRefreshEnabled ? this._pullDownHandler.bind(this) : null,\r\n onReachBottom: autoPagingEnabled ? this._scrollBottomHandler.bind(this) : null,\r\n showScrollbar: this.option(\"showScrollbar\"),\r\n useNative: this.option(\"useNativeScrolling\"),\r\n bounceEnabled: this.option(\"bounceEnabled\"),\r\n scrollByContent: this.option(\"scrollByContent\"),\r\n scrollByThumb: this.option(\"scrollByThumb\"),\r\n pullingDownText: this.option(\"pullingDownText\"),\r\n pulledDownText: this.option(\"pulledDownText\"),\r\n refreshingText: this.option(\"refreshingText\"),\r\n reachBottomText: this.option(\"pageLoadingText\"),\r\n useKeyboard: false\r\n });\r\n this._$container = $(this._scrollView.content());\r\n if (this.option(\"wrapItemText\")) {\r\n this._$container.addClass(WRAP_ITEM_TEXT_CLASS)\r\n }\r\n this._createScrollViewActions()\r\n },\r\n _createScrollViewActions: function() {\r\n this._scrollAction = this._createActionByOption(\"onScroll\");\r\n this._pullRefreshAction = this._createActionByOption(\"onPullRefresh\");\r\n this._pageLoadingAction = this._createActionByOption(\"onPageLoading\")\r\n },\r\n _scrollHandler: function(e) {\r\n this._scrollAction && this._scrollAction(e)\r\n },\r\n _initTemplates: function() {\r\n this._templateManager.addDefaultTemplates({\r\n group: new BindableTemplate((function($container, data) {\r\n if (isPlainObject(data)) {\r\n if (data.key) {\r\n $container.text(data.key)\r\n }\r\n } else {\r\n $container.text(String(data))\r\n }\r\n }), [\"key\"], this.option(\"integrationOptions.watchMethod\"))\r\n });\r\n this.callBase()\r\n },\r\n _prepareDefaultItemTemplate: function(data, $container) {\r\n this.callBase(data, $container);\r\n if (data.icon) {\r\n var $icon = getImageContainer(data.icon).addClass(LIST_ITEM_ICON_CLASS);\r\n var $iconContainer = $(\"
\").addClass(LIST_ITEM_ICON_CONTAINER_CLASS);\r\n $iconContainer.append($icon);\r\n $container.prepend($iconContainer)\r\n }\r\n },\r\n _getBindableFields: function() {\r\n return [\"text\", \"html\", \"icon\"]\r\n },\r\n _updateLoadingState: function(tryLoadMore) {\r\n var shouldLoadNextPage = this._scrollBottomMode() && tryLoadMore && !this._isDataSourceLoading() && !this._isLastPage();\r\n if (this._shouldContinueLoading(shouldLoadNextPage)) {\r\n this._infiniteDataLoading()\r\n } else {\r\n this._scrollView.release(!shouldLoadNextPage && !this._isDataSourceLoading());\r\n this._toggleNextButton(this._shouldRenderNextButton() && !this._isLastPage());\r\n this._loadIndicationSuppressed(false)\r\n }\r\n },\r\n _shouldRenderNextButton: function() {\r\n return this._nextButtonMode() && this._dataSource && this._dataSource.isLoaded()\r\n },\r\n _isDataSourceFirstLoadCompleted: function(newValue) {\r\n if (isDefined(newValue)) {\r\n this._isFirstLoadCompleted = newValue\r\n }\r\n return this._isFirstLoadCompleted\r\n },\r\n _dataSourceLoadingChangedHandler: function(isLoading) {\r\n if (this._loadIndicationSuppressed()) {\r\n return\r\n }\r\n if (isLoading && this.option(\"indicateLoading\")) {\r\n this._showLoadingIndicatorTimer = setTimeout(function() {\r\n var isEmpty = !this._itemElements().length;\r\n var shouldIndicateLoading = !isEmpty || this._isDataSourceFirstLoadCompleted();\r\n if (shouldIndicateLoading) {\r\n var _this$_scrollView;\r\n null === (_this$_scrollView = this._scrollView) || void 0 === _this$_scrollView ? void 0 : _this$_scrollView.startLoading()\r\n }\r\n }.bind(this))\r\n } else {\r\n clearTimeout(this._showLoadingIndicatorTimer);\r\n this._scrollView && this._scrollView.finishLoading()\r\n }\r\n if (!isLoading) {\r\n this._isDataSourceFirstLoadCompleted(false)\r\n }\r\n },\r\n _dataSourceChangedHandler: function() {\r\n if (!this._shouldAppendItems() && hasWindow()) {\r\n this._scrollView && this._scrollView.scrollTo(0)\r\n }\r\n this.callBase.apply(this, arguments);\r\n this._isDataSourceFirstLoadCompleted(true)\r\n },\r\n _refreshContent: function() {\r\n this._prepareContent();\r\n this._fireContentReadyAction()\r\n },\r\n _hideLoadingIfLoadIndicationOff: function() {\r\n if (!this.option(\"indicateLoading\")) {\r\n this._dataSourceLoadingChangedHandler(false)\r\n }\r\n },\r\n _loadIndicationSuppressed: function(value) {\r\n if (!arguments.length) {\r\n return this._isLoadIndicationSuppressed\r\n }\r\n this._isLoadIndicationSuppressed = value\r\n },\r\n _scrollViewIsFull: function() {\r\n var scrollView = this._scrollView;\r\n return !scrollView || getHeight(scrollView.content()) > getHeight(scrollView.container())\r\n },\r\n _pullDownHandler: function(e) {\r\n this._pullRefreshAction(e);\r\n if (this._dataSource && !this._isDataSourceLoading()) {\r\n this._clearSelectedItems();\r\n this._dataSource.pageIndex(0);\r\n this._dataSource.reload()\r\n } else {\r\n this._updateLoadingState()\r\n }\r\n },\r\n _shouldContinueLoading: function(shouldLoadNextPage) {\r\n var _this$_scrollView$scr, _this$_scrollView$scr2;\r\n var isBottomReached = getHeight(this._scrollView.content()) - getHeight(this._scrollView.container()) < (null !== (_this$_scrollView$scr = null === (_this$_scrollView$scr2 = this._scrollView.scrollOffset()) || void 0 === _this$_scrollView$scr2 ? void 0 : _this$_scrollView$scr2.top) && void 0 !== _this$_scrollView$scr ? _this$_scrollView$scr : 0);\r\n return shouldLoadNextPage && (!this._scrollViewIsFull() || isBottomReached)\r\n },\r\n _infiniteDataLoading: function() {\r\n var isElementVisible = this.$element().is(\":visible\");\r\n if (isElementVisible) {\r\n clearTimeout(this._loadNextPageTimer);\r\n this._loadNextPageTimer = setTimeout(() => {\r\n this._loadNextPage()\r\n })\r\n }\r\n },\r\n _scrollBottomHandler: function(e) {\r\n this._pageLoadingAction(e);\r\n if (!this._isDataSourceLoading() && !this._isLastPage()) {\r\n this._loadNextPage()\r\n } else {\r\n this._updateLoadingState()\r\n }\r\n },\r\n _renderItems: function(items) {\r\n if (this.option(\"grouped\")) {\r\n each(items, this._renderGroup.bind(this));\r\n this._attachGroupCollapseEvent();\r\n this._renderEmptyMessage();\r\n if (isMaterial()) {\r\n this.attachGroupHeaderInkRippleEvents()\r\n }\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n this._refreshItemElements();\r\n this._updateLoadingState(true)\r\n },\r\n _attachGroupCollapseEvent: function() {\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n var selector = \".\" + LIST_GROUP_HEADER_CLASS;\r\n var $element = this.$element();\r\n var collapsibleGroups = this.option(\"collapsibleGroups\");\r\n $element.toggleClass(LIST_COLLAPSIBLE_GROUPS_CLASS, collapsibleGroups);\r\n eventsEngine.off($element, eventName, selector);\r\n if (collapsibleGroups) {\r\n eventsEngine.on($element, eventName, selector, function(e) {\r\n this._createAction(function(e) {\r\n var $group = $(e.event.currentTarget).parent();\r\n this._collapseGroupHandler($group);\r\n if (this.option(\"focusStateEnabled\")) {\r\n this.option(\"focusedElement\", getPublicElement($group.find(\".\" + LIST_ITEM_CLASS).eq(0)))\r\n }\r\n }.bind(this), {\r\n validatingTargetName: \"element\"\r\n })({\r\n event: e\r\n })\r\n }.bind(this))\r\n }\r\n },\r\n _collapseGroupHandler: function($group, toggle) {\r\n var deferred = new Deferred;\r\n if ($group.hasClass(LIST_GROUP_COLLAPSED_CLASS) === toggle) {\r\n return deferred.resolve()\r\n }\r\n var $groupBody = $group.children(\".\" + LIST_GROUP_BODY_CLASS);\r\n var startHeight = getOuterHeight($groupBody);\r\n var endHeight = 0;\r\n if (0 === startHeight) {\r\n setHeight($groupBody, \"auto\");\r\n endHeight = getOuterHeight($groupBody)\r\n }\r\n $group.toggleClass(LIST_GROUP_COLLAPSED_CLASS, toggle);\r\n fx.animate($groupBody, {\r\n type: \"custom\",\r\n from: {\r\n height: startHeight\r\n },\r\n to: {\r\n height: endHeight\r\n },\r\n duration: 200,\r\n complete: function() {\r\n this.updateDimensions();\r\n this._updateLoadingState();\r\n deferred.resolve()\r\n }.bind(this)\r\n });\r\n return deferred.promise()\r\n },\r\n _dataSourceLoadErrorHandler: function() {\r\n this._forgetNextPageLoading();\r\n if (this._initialized) {\r\n this._renderEmptyMessage();\r\n this._updateLoadingState()\r\n }\r\n },\r\n _initMarkup: function() {\r\n this._itemElementsCache = $();\r\n this.$element().addClass(LIST_CLASS);\r\n this.callBase();\r\n this.option(\"useInkRipple\") && this._renderInkRipple();\r\n this.setAria(\"role\", this.option(\"_listAttributes\").role)\r\n },\r\n _renderInkRipple: function() {\r\n this._inkRipple = render()\r\n },\r\n _toggleActiveState: function($element, value, e) {\r\n this.callBase.apply(this, arguments);\r\n var that = this;\r\n if (!this._inkRipple) {\r\n return\r\n }\r\n var config = {\r\n element: $element,\r\n event: e\r\n };\r\n if (value) {\r\n if (isMaterial()) {\r\n this._inkRippleTimer = setTimeout((function() {\r\n that._inkRipple.showWave(config)\r\n }), LIST_FEEDBACK_SHOW_TIMEOUT / 2)\r\n } else {\r\n that._inkRipple.showWave(config)\r\n }\r\n } else {\r\n clearTimeout(this._inkRippleTimer);\r\n this._inkRipple.hideWave(config)\r\n }\r\n },\r\n _postprocessRenderItem: function(args) {\r\n this._refreshItemElements();\r\n this.callBase.apply(this, arguments);\r\n if (this.option(\"_swipeEnabled\")) {\r\n this._attachSwipeEvent($(args.itemElement))\r\n }\r\n },\r\n _attachSwipeEvent: function($itemElement) {\r\n var endEventName = addNamespace(swipeEventEnd, this.NAME);\r\n eventsEngine.on($itemElement, endEventName, this._itemSwipeEndHandler.bind(this))\r\n },\r\n _itemSwipeEndHandler: function(e) {\r\n this._itemDXEventHandler(e, \"onItemSwipe\", {\r\n direction: e.offset < 0 ? \"left\" : \"right\"\r\n })\r\n },\r\n _nextButtonHandler: function(e) {\r\n this._pageLoadingAction(e);\r\n var source = this._dataSource;\r\n if (source && !source.isLoading()) {\r\n this._scrollView.toggleLoading(true);\r\n this._$nextButton.detach();\r\n this._loadIndicationSuppressed(true);\r\n this._loadNextPage()\r\n }\r\n },\r\n _renderGroup: function(index, group) {\r\n var $groupElement = $(\"
\").addClass(LIST_GROUP_CLASS).appendTo(this._itemContainer());\r\n var $groupHeaderElement = $(\"
\").addClass(LIST_GROUP_HEADER_CLASS).appendTo($groupElement);\r\n var groupTemplateName = this.option(\"groupTemplate\");\r\n var groupTemplate = this._getTemplate(group.template || groupTemplateName, group, index, $groupHeaderElement);\r\n var renderArgs = {\r\n index: index,\r\n itemData: group,\r\n container: getPublicElement($groupHeaderElement)\r\n };\r\n this._createItemByTemplate(groupTemplate, renderArgs);\r\n if (isMaterial()) {\r\n $(\"
\").addClass(LIST_GROUP_HEADER_INDICATOR_CLASS).prependTo($groupHeaderElement)\r\n }\r\n this._renderingGroupIndex = index;\r\n var $groupBody = $(\"
\").addClass(LIST_GROUP_BODY_CLASS).appendTo($groupElement);\r\n each(groupItemsGetter(group) || [], function(itemIndex, item) {\r\n this._renderItem({\r\n group: index,\r\n item: itemIndex\r\n }, item, $groupBody)\r\n }.bind(this));\r\n this._groupRenderAction({\r\n groupElement: getPublicElement($groupElement),\r\n groupIndex: index,\r\n groupData: group\r\n })\r\n },\r\n downInkRippleHandler: function(e) {\r\n this._toggleActiveState($(e.currentTarget), true, e)\r\n },\r\n upInkRippleHandler: function(e) {\r\n this._toggleActiveState($(e.currentTarget), false)\r\n },\r\n attachGroupHeaderInkRippleEvents: function() {\r\n var selector = \".\" + LIST_GROUP_HEADER_CLASS;\r\n var $element = this.$element();\r\n this._downInkRippleHandler = this._downInkRippleHandler || this.downInkRippleHandler.bind(this);\r\n this._upInkRippleHandler = this._upInkRippleHandler || this.upInkRippleHandler.bind(this);\r\n var downArguments = [$element, \"dxpointerdown\", selector, this._downInkRippleHandler];\r\n var upArguments = [$element, \"dxpointerup dxpointerout\", selector, this._upInkRippleHandler];\r\n eventsEngine.off(...downArguments);\r\n eventsEngine.on(...downArguments);\r\n eventsEngine.off(...upArguments);\r\n eventsEngine.on(...upArguments)\r\n },\r\n _createGroupRenderAction: function() {\r\n this._groupRenderAction = this._createActionByOption(\"onGroupRendered\")\r\n },\r\n _clean: function() {\r\n clearTimeout(this._inkRippleTimer);\r\n if (this._$nextButton) {\r\n this._$nextButton.remove();\r\n this._$nextButton = null\r\n }\r\n delete this._inkRipple;\r\n this.callBase.apply(this, arguments)\r\n },\r\n _dispose: function() {\r\n this._isDataSourceFirstLoadCompleted(false);\r\n clearTimeout(this._holdTimer);\r\n clearTimeout(this._loadNextPageTimer);\r\n clearTimeout(this._showLoadingIndicatorTimer);\r\n this.callBase()\r\n },\r\n _toggleDisabledState: function(value) {\r\n this.callBase(value);\r\n this._scrollView.option(\"disabled\", value || !this.option(\"scrollingEnabled\"))\r\n },\r\n _toggleNextButton: function(value) {\r\n var dataSource = this._dataSource;\r\n var $nextButton = this._getNextButton();\r\n this.$element().toggleClass(LIST_HAS_NEXT_CLASS, value);\r\n if (value && dataSource && dataSource.isLoaded()) {\r\n $nextButton.appendTo(this._itemContainer())\r\n }\r\n if (!value) {\r\n $nextButton.detach()\r\n }\r\n },\r\n _getNextButton: function() {\r\n if (!this._$nextButton) {\r\n this._$nextButton = this._createNextButton()\r\n }\r\n return this._$nextButton\r\n },\r\n _createNextButton: function() {\r\n var $result = $(\"
\").addClass(LIST_NEXT_BUTTON_CLASS);\r\n var $button = $(\"
\").appendTo($result);\r\n this._createComponent($button, Button, {\r\n text: this.option(\"nextButtonText\"),\r\n onClick: this._nextButtonHandler.bind(this),\r\n type: isMaterial() ? \"default\" : void 0,\r\n integrationOptions: {}\r\n });\r\n return $result\r\n },\r\n _moveFocus: function() {\r\n this.callBase.apply(this, arguments);\r\n this.scrollToItem(this.option(\"focusedElement\"))\r\n },\r\n _refresh: function() {\r\n if (!hasWindow()) {\r\n this.callBase()\r\n } else {\r\n var scrollTop = this._scrollView.scrollTop();\r\n this.callBase();\r\n scrollTop && this._scrollView.scrollTo(scrollTop)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"pageLoadMode\":\r\n this._toggleNextButton(args.value);\r\n this._initScrollView();\r\n break;\r\n case \"dataSource\":\r\n this.callBase(args);\r\n this._initScrollView();\r\n this._isDataSourceFirstLoadCompleted(false);\r\n break;\r\n case \"items\":\r\n this.callBase(args);\r\n this._isDataSourceFirstLoadCompleted(false);\r\n break;\r\n case \"pullingDownText\":\r\n case \"pulledDownText\":\r\n case \"refreshingText\":\r\n case \"pageLoadingText\":\r\n case \"showScrollbar\":\r\n case \"bounceEnabled\":\r\n case \"scrollByContent\":\r\n case \"scrollByThumb\":\r\n case \"useNativeScrolling\":\r\n case \"scrollingEnabled\":\r\n case \"pullRefreshEnabled\":\r\n this._initScrollView();\r\n this._updateLoadingState();\r\n break;\r\n case \"nextButtonText\":\r\n case \"onItemSwipe\":\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n case \"onScroll\":\r\n case \"onPullRefresh\":\r\n case \"onPageLoading\":\r\n this._createScrollViewActions();\r\n break;\r\n case \"grouped\":\r\n case \"collapsibleGroups\":\r\n case \"groupTemplate\":\r\n this._invalidate();\r\n break;\r\n case \"wrapItemText\":\r\n this._$container.toggleClass(WRAP_ITEM_TEXT_CLASS, args.value);\r\n break;\r\n case \"onGroupRendered\":\r\n this._createGroupRenderAction();\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n this._scrollView.option(args.name, args.value);\r\n this._scrollView.update();\r\n break;\r\n case \"indicateLoading\":\r\n this._hideLoadingIfLoadIndicationOff();\r\n break;\r\n case \"visible\":\r\n this.callBase(args);\r\n this._scrollView.update();\r\n break;\r\n case \"rtlEnabled\":\r\n this._initScrollView();\r\n this.callBase(args);\r\n break;\r\n case \"showChevronExpr\":\r\n case \"badgeExpr\":\r\n this._invalidate();\r\n break;\r\n case \"_swipeEnabled\":\r\n case \"_listAttributes\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _extendActionArgs: function($itemElement) {\r\n if (!this.option(\"grouped\")) {\r\n return this.callBase($itemElement)\r\n }\r\n var $group = $itemElement.closest(\".\" + LIST_GROUP_CLASS);\r\n var $item = $group.find(\".\" + LIST_ITEM_CLASS);\r\n return extend(this.callBase($itemElement), {\r\n itemIndex: {\r\n group: $group.index(),\r\n item: $item.index($itemElement)\r\n }\r\n })\r\n },\r\n expandGroup: function(groupIndex) {\r\n var deferred = new Deferred;\r\n var $group = this._itemContainer().find(\".\" + LIST_GROUP_CLASS).eq(groupIndex);\r\n this._collapseGroupHandler($group, false).done(function() {\r\n deferred.resolveWith(this)\r\n }.bind(this));\r\n return deferred.promise()\r\n },\r\n collapseGroup: function(groupIndex) {\r\n var deferred = new Deferred;\r\n var $group = this._itemContainer().find(\".\" + LIST_GROUP_CLASS).eq(groupIndex);\r\n this._collapseGroupHandler($group, true).done(function() {\r\n deferred.resolveWith(this)\r\n }.bind(this));\r\n return deferred\r\n },\r\n updateDimensions: function() {\r\n var that = this;\r\n var deferred = new Deferred;\r\n if (that._scrollView) {\r\n that._scrollView.update().done((function() {\r\n !that._scrollViewIsFull() && that._updateLoadingState(true);\r\n deferred.resolveWith(that)\r\n }))\r\n } else {\r\n deferred.resolveWith(that)\r\n }\r\n return deferred.promise()\r\n },\r\n reload: function() {\r\n this.callBase();\r\n this.scrollTo(0);\r\n this._pullDownHandler()\r\n },\r\n repaint: function() {\r\n this.scrollTo(0);\r\n this.callBase()\r\n },\r\n scrollTop: function() {\r\n return this._scrollView.scrollOffset().top\r\n },\r\n clientHeight: function() {\r\n return this._scrollView.clientHeight()\r\n },\r\n scrollHeight: function() {\r\n return this._scrollView.scrollHeight()\r\n },\r\n scrollBy: function(distance) {\r\n this._scrollView.scrollBy(distance)\r\n },\r\n scrollTo: function(location) {\r\n this._scrollView.scrollTo(location)\r\n },\r\n scrollToItem: function(itemElement) {\r\n var $item = this._editStrategy.getItemElement(itemElement);\r\n this._scrollView.scrollToElement(null === $item || void 0 === $item ? void 0 : $item.get(0))\r\n },\r\n _dimensionChanged: function() {\r\n this.updateDimensions()\r\n }\r\n}).include(DataConverterMixin);\r\nListBase.ItemClass = ListItem;\r\n\r\nfunction getScrollView() {\r\n return _scrollView || ScrollView\r\n}\r\nexport function setScrollView(value) {\r\n _scrollView = value\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/list/item.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport CollectionWidgetItem from \"../collection/item\";\r\nvar LIST_ITEM_BADGE_CONTAINER_CLASS = \"dx-list-item-badge-container\";\r\nvar LIST_ITEM_BADGE_CLASS = \"dx-list-item-badge\";\r\nvar BADGE_CLASS = \"dx-badge\";\r\nvar LIST_ITEM_CHEVRON_CONTAINER_CLASS = \"dx-list-item-chevron-container\";\r\nvar LIST_ITEM_CHEVRON_CLASS = \"dx-list-item-chevron\";\r\nvar ListItem = CollectionWidgetItem.inherit({\r\n _renderWatchers: function() {\r\n this.callBase();\r\n this._startWatcher(\"badge\", this._renderBadge.bind(this));\r\n this._startWatcher(\"showChevron\", this._renderShowChevron.bind(this))\r\n },\r\n _renderBadge: function(badge) {\r\n this._$element.children(\".\" + LIST_ITEM_BADGE_CONTAINER_CLASS).remove();\r\n if (!badge) {\r\n return\r\n }\r\n var $badge = $(\"
\").addClass(LIST_ITEM_BADGE_CONTAINER_CLASS).append($(\"
\").addClass(LIST_ITEM_BADGE_CLASS).addClass(BADGE_CLASS).text(badge));\r\n var $chevron = this._$element.children(\".\" + LIST_ITEM_CHEVRON_CONTAINER_CLASS).first();\r\n $chevron.length > 0 ? $badge.insertBefore($chevron) : $badge.appendTo(this._$element)\r\n },\r\n _renderShowChevron: function(showChevron) {\r\n this._$element.children(\".\" + LIST_ITEM_CHEVRON_CONTAINER_CLASS).remove();\r\n if (!showChevron) {\r\n return\r\n }\r\n var $chevronContainer = $(\"
\").addClass(LIST_ITEM_CHEVRON_CONTAINER_CLASS);\r\n var $chevron = $(\"
\").addClass(LIST_ITEM_CHEVRON_CLASS);\r\n $chevronContainer.append($chevron).appendTo(this._$element)\r\n }\r\n});\r\nexport default ListItem;\r\n","/**\r\n * DevExtreme (esm/ui/themes.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight\r\n} from \"../core/utils/size\";\r\nimport devices from \"../core/devices\";\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 parseHTML\r\n} from \"../core/utils/html_parser\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport readyCallbacks from \"../core/utils/ready_callbacks\";\r\nimport {\r\n value as viewPortValue,\r\n changeCallback,\r\n originalViewPort\r\n} from \"../core/utils/view_port\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n themeReadyCallback\r\n} from \"./themes_callback\";\r\nimport errors from \"./widget/ui.errors\";\r\nvar window = getWindow();\r\nvar ready = readyCallbacks.add;\r\nvar viewPort = viewPortValue;\r\nvar viewPortChanged = changeCallback;\r\nvar initDeferred = new Deferred;\r\nvar DX_LINK_SELECTOR = \"link[rel=dx-theme]\";\r\nvar THEME_ATTR = \"data-theme\";\r\nvar ACTIVE_ATTR = \"data-active\";\r\nvar DX_HAIRLINES_CLASS = \"dx-hairlines\";\r\nvar ANY_THEME = \"any\";\r\nvar context;\r\nvar $activeThemeLink;\r\nvar knownThemes;\r\nvar currentThemeName;\r\nvar pendingThemeName;\r\nvar defaultTimeout = 15e3;\r\nvar THEME_MARKER_PREFIX = \"dx.\";\r\n\r\nfunction readThemeMarker() {\r\n if (!hasWindow()) {\r\n return null\r\n }\r\n var element = $(\"
\", context).addClass(\"dx-theme-marker\").appendTo(context.documentElement);\r\n var result;\r\n try {\r\n result = window.getComputedStyle(element.get(0)).fontFamily;\r\n if (!result) {\r\n return null\r\n }\r\n result = result.replace(/[\"']/g, \"\");\r\n if (result.substr(0, THEME_MARKER_PREFIX.length) !== THEME_MARKER_PREFIX) {\r\n return null\r\n }\r\n return result.substr(THEME_MARKER_PREFIX.length)\r\n } finally {\r\n element.remove()\r\n }\r\n}\r\nexport function waitForThemeLoad(themeName) {\r\n var waitStartTime;\r\n var timerId;\r\n var intervalCleared = true;\r\n pendingThemeName = themeName;\r\n\r\n function handleLoaded() {\r\n pendingThemeName = null;\r\n clearInterval(timerId);\r\n intervalCleared = true;\r\n themeReadyCallback.fire();\r\n themeReadyCallback.empty();\r\n initDeferred.resolve()\r\n }\r\n if (isPendingThemeLoaded() || !defaultTimeout) {\r\n handleLoaded()\r\n } else {\r\n if (!intervalCleared) {\r\n if (pendingThemeName) {\r\n pendingThemeName = themeName\r\n }\r\n return\r\n }\r\n waitStartTime = Date.now();\r\n intervalCleared = false;\r\n timerId = setInterval((function() {\r\n var isLoaded = isPendingThemeLoaded();\r\n var isTimeout = !isLoaded && Date.now() - waitStartTime > defaultTimeout;\r\n if (isTimeout) {\r\n errors.log(\"W0004\", pendingThemeName)\r\n }\r\n if (isLoaded || isTimeout) {\r\n handleLoaded()\r\n }\r\n }), 10)\r\n }\r\n}\r\nexport function isPendingThemeLoaded() {\r\n if (!pendingThemeName) {\r\n return true\r\n }\r\n var anyThemePending = pendingThemeName === ANY_THEME;\r\n if (\"resolved\" === initDeferred.state() && anyThemePending) {\r\n return true\r\n }\r\n var themeMarker = readThemeMarker();\r\n if (themeMarker && anyThemePending) {\r\n return true\r\n }\r\n return themeMarker === pendingThemeName\r\n}\r\n\r\nfunction processMarkup() {\r\n var $allThemeLinks = $(DX_LINK_SELECTOR, context);\r\n if (!$allThemeLinks.length) {\r\n return\r\n }\r\n knownThemes = {};\r\n $activeThemeLink = $(parseHTML(\"\"), context);\r\n $allThemeLinks.each((function() {\r\n var link = $(this, context);\r\n var fullThemeName = link.attr(THEME_ATTR);\r\n var url = link.attr(\"href\");\r\n var isActive = \"true\" === link.attr(ACTIVE_ATTR);\r\n knownThemes[fullThemeName] = {\r\n url: url,\r\n isActive: isActive\r\n }\r\n }));\r\n $allThemeLinks.last().after($activeThemeLink);\r\n $allThemeLinks.remove()\r\n}\r\n\r\nfunction resolveFullThemeName(desiredThemeName) {\r\n var desiredThemeParts = desiredThemeName ? desiredThemeName.split(\".\") : [];\r\n var result = null;\r\n if (knownThemes) {\r\n if (desiredThemeName in knownThemes) {\r\n return desiredThemeName\r\n }\r\n each(knownThemes, (function(knownThemeName, themeData) {\r\n var knownThemeParts = knownThemeName.split(\".\");\r\n if (desiredThemeParts[0] && knownThemeParts[0] !== desiredThemeParts[0]) {\r\n return\r\n }\r\n if (desiredThemeParts[1] && desiredThemeParts[1] !== knownThemeParts[1]) {\r\n return\r\n }\r\n if (desiredThemeParts[2] && desiredThemeParts[2] !== knownThemeParts[2]) {\r\n return\r\n }\r\n if (!result || themeData.isActive) {\r\n result = knownThemeName\r\n }\r\n if (themeData.isActive) {\r\n return false\r\n }\r\n }))\r\n }\r\n return result\r\n}\r\n\r\nfunction initContext(newContext) {\r\n try {\r\n if (newContext !== context) {\r\n knownThemes = null\r\n }\r\n } catch (x) {\r\n knownThemes = null\r\n }\r\n context = newContext\r\n}\r\nexport function init(options) {\r\n options = options || {};\r\n initContext(options.context || domAdapter.getDocument());\r\n if (!context) {\r\n return\r\n }\r\n processMarkup();\r\n currentThemeName = void 0;\r\n current(options)\r\n}\r\nexport function current(options) {\r\n if (!arguments.length) {\r\n currentThemeName = currentThemeName || readThemeMarker();\r\n return currentThemeName\r\n }\r\n detachCssClasses(viewPort());\r\n options = options || {};\r\n if (\"string\" === typeof options) {\r\n options = {\r\n theme: options\r\n }\r\n }\r\n var isAutoInit = options._autoInit;\r\n var loadCallback = options.loadCallback;\r\n var currentThemeData;\r\n currentThemeName = resolveFullThemeName(options.theme || currentThemeName);\r\n if (currentThemeName) {\r\n currentThemeData = knownThemes[currentThemeName]\r\n }\r\n if (loadCallback) {\r\n themeReadyCallback.add(loadCallback)\r\n }\r\n if (currentThemeData) {\r\n $activeThemeLink.attr(\"href\", knownThemes[currentThemeName].url);\r\n if (themeReadyCallback.has() || \"resolved\" !== initDeferred.state() || options._forceTimeout) {\r\n waitForThemeLoad(currentThemeName)\r\n }\r\n } else if (isAutoInit) {\r\n if (hasWindow()) {\r\n waitForThemeLoad(ANY_THEME)\r\n }\r\n themeReadyCallback.fire();\r\n themeReadyCallback.empty()\r\n } else {\r\n throw errors.Error(\"E0021\", currentThemeName)\r\n }\r\n initDeferred.done(() => attachCssClasses(originalViewPort(), currentThemeName))\r\n}\r\n\r\nfunction getCssClasses(themeName) {\r\n themeName = themeName || current();\r\n var result = [];\r\n var themeNameParts = themeName && themeName.split(\".\");\r\n if (themeNameParts) {\r\n result.push(\"dx-theme-\" + themeNameParts[0], \"dx-theme-\" + themeNameParts[0] + \"-typography\");\r\n if (themeNameParts.length > 1) {\r\n result.push(\"dx-color-scheme-\" + themeNameParts[1] + (isMaterial(themeName) ? \"-\" + themeNameParts[2] : \"\"))\r\n }\r\n }\r\n return result\r\n}\r\nvar themeClasses;\r\nexport function attachCssClasses(element, themeName) {\r\n themeClasses = getCssClasses(themeName).join(\" \");\r\n $(element).addClass(themeClasses);\r\n ! function() {\r\n var pixelRatio = hasWindow() && window.devicePixelRatio;\r\n if (!pixelRatio || pixelRatio < 2) {\r\n return\r\n }\r\n var $tester = $(\"
\");\r\n $tester.css(\"border\", \".5px solid transparent\");\r\n $(\"body\").append($tester);\r\n if (1 === getOuterHeight($tester)) {\r\n $(element).addClass(DX_HAIRLINES_CLASS);\r\n themeClasses += \" \" + DX_HAIRLINES_CLASS\r\n }\r\n $tester.remove()\r\n }()\r\n}\r\nexport function detachCssClasses(element) {\r\n $(element).removeClass(themeClasses)\r\n}\r\n\r\nfunction themeReady(callback) {\r\n themeReadyCallback.add(callback)\r\n}\r\n\r\nfunction isTheme(themeRegExp, themeName) {\r\n if (!themeName) {\r\n themeName = currentThemeName || readThemeMarker()\r\n }\r\n return new RegExp(themeRegExp).test(themeName)\r\n}\r\nexport function isMaterial(themeName) {\r\n return isTheme(\"material\", themeName)\r\n}\r\nexport function isGeneric(themeName) {\r\n return isTheme(\"generic\", themeName)\r\n}\r\nexport function isDark(themeName) {\r\n return isTheme(\"dark\", themeName)\r\n}\r\nexport function isCompact(themeName) {\r\n return isTheme(\"compact\", themeName)\r\n}\r\nexport function isWebFontLoaded(text, fontWeight) {\r\n var document = domAdapter.getDocument();\r\n var testElement = document.createElement(\"span\");\r\n testElement.style.position = \"absolute\";\r\n testElement.style.top = \"-9999px\";\r\n testElement.style.left = \"-9999px\";\r\n testElement.style.visibility = \"hidden\";\r\n testElement.style.fontFamily = \"Arial\";\r\n testElement.style.fontSize = \"250px\";\r\n testElement.style.fontWeight = fontWeight;\r\n testElement.innerHTML = text;\r\n document.body.appendChild(testElement);\r\n var etalonFontWidth = testElement.offsetWidth;\r\n testElement.style.fontFamily = \"Roboto, RobotoFallback, Arial\";\r\n var testedFontWidth = testElement.offsetWidth;\r\n testElement.parentNode.removeChild(testElement);\r\n return etalonFontWidth !== testedFontWidth\r\n}\r\nexport function waitWebFont(text, fontWeight) {\r\n return new Promise(resolve => {\r\n var clear = () => {\r\n clearInterval(intervalId);\r\n clearTimeout(timeoutId);\r\n resolve()\r\n };\r\n var intervalId = setInterval(() => {\r\n if (isWebFontLoaded(text, fontWeight)) {\r\n clear()\r\n }\r\n }, 15);\r\n var timeoutId = setTimeout(clear, 2e3)\r\n })\r\n}\r\n\r\nfunction autoInit() {\r\n init({\r\n _autoInit: true,\r\n _forceTimeout: true\r\n });\r\n if ($(DX_LINK_SELECTOR, context).length) {\r\n throw errors.Error(\"E0022\")\r\n }\r\n}\r\nif (hasWindow()) {\r\n autoInit()\r\n} else {\r\n ready(autoInit)\r\n}\r\nviewPortChanged.add((function(viewPort, prevViewPort) {\r\n initDeferred.done((function() {\r\n detachCssClasses(prevViewPort);\r\n attachCssClasses(viewPort)\r\n }))\r\n}));\r\ndevices.changed.add((function() {\r\n init({\r\n _autoInit: true\r\n })\r\n}));\r\nexport {\r\n themeReady as ready\r\n};\r\nexport function resetTheme() {\r\n $activeThemeLink && $activeThemeLink.attr(\"href\", \"about:blank\");\r\n currentThemeName = null;\r\n pendingThemeName = null;\r\n initDeferred = new Deferred\r\n}\r\nexport function initialized(callback) {\r\n initDeferred.done(callback)\r\n}\r\nexport function setDefaultTimeout(timeout) {\r\n defaultTimeout = timeout\r\n}\r\nexport default {\r\n setDefaultTimeout: setDefaultTimeout,\r\n initialized: initialized,\r\n resetTheme: resetTheme,\r\n ready: themeReady,\r\n waitWebFont: waitWebFont,\r\n isWebFontLoaded: isWebFontLoaded,\r\n isCompact: isCompact,\r\n isDark: isDark,\r\n isGeneric: isGeneric,\r\n isMaterial: isMaterial,\r\n detachCssClasses: detachCssClasses,\r\n attachCssClasses: attachCssClasses,\r\n current: current,\r\n waitForThemeLoad: waitForThemeLoad,\r\n isPendingThemeLoaded: isPendingThemeLoaded\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/themes_callback.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Callbacks from \"../core/utils/callbacks\";\r\nexport var themeReadyCallback = new Callbacks;\r\n","/*!\n * devextreme-vue\n * Version: 22.1.5\n * Build date: Fri Sep 02 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createExtensionComponent = exports.createConfigurationComponent = exports.createComponent = void 0;\nvar vue2Stategy = __importStar(require(\"./strategy/vue2/index\"));\nvar vue3Stategy = __importStar(require(\"./strategy/vue3/index\"));\nvar version_1 = require(\"./version\");\nvar strategy = version_1.isVue3() ? vue3Stategy : vue2Stategy;\nexports.createComponent = strategy.createComponent;\nexports.createConfigurationComponent = strategy.createConfigurationComponent;\nexports.createExtensionComponent = strategy.createExtensionComponent;\n","/**\r\n * DevExtreme (esm/events/drag.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 wrapToArray\r\n} from \"../core/utils/array\";\r\nimport * as iteratorUtils from \"../core/utils/iterator\";\r\nimport {\r\n contains\r\n} from \"../core/utils/dom\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport {\r\n eventData as eData,\r\n fireEvent\r\n} from \"./utils/index\";\r\nimport GestureEmitter from \"./gesture/emitter.gesture\";\r\nimport registerEmitter from \"./core/emitter_registrator\";\r\nvar DRAG_START_EVENT = \"dxdragstart\";\r\nvar DRAG_EVENT = \"dxdrag\";\r\nvar DRAG_END_EVENT = \"dxdragend\";\r\nvar DRAG_ENTER_EVENT = \"dxdragenter\";\r\nvar DRAG_LEAVE_EVENT = \"dxdragleave\";\r\nvar DROP_EVENT = \"dxdrop\";\r\nvar DX_DRAG_EVENTS_COUNT_KEY = \"dxDragEventsCount\";\r\nvar knownDropTargets = [];\r\nvar knownDropTargetSelectors = [];\r\nvar knownDropTargetConfigs = [];\r\nvar dropTargetRegistration = {\r\n setup: function(element, data) {\r\n var knownDropTarget = knownDropTargets.includes(element);\r\n if (!knownDropTarget) {\r\n knownDropTargets.push(element);\r\n knownDropTargetSelectors.push([]);\r\n knownDropTargetConfigs.push(data || {})\r\n }\r\n },\r\n add: function(element, handleObj) {\r\n var index = knownDropTargets.indexOf(element);\r\n this.updateEventsCounter(element, handleObj.type, 1);\r\n var selector = handleObj.selector;\r\n if (!knownDropTargetSelectors[index].includes(selector)) {\r\n knownDropTargetSelectors[index].push(selector)\r\n }\r\n },\r\n updateEventsCounter: function(element, event, value) {\r\n if ([DRAG_ENTER_EVENT, DRAG_LEAVE_EVENT, DROP_EVENT].indexOf(event) > -1) {\r\n var eventsCount = elementData(element, DX_DRAG_EVENTS_COUNT_KEY) || 0;\r\n elementData(element, DX_DRAG_EVENTS_COUNT_KEY, Math.max(0, eventsCount + value))\r\n }\r\n },\r\n remove: function(element, handleObj) {\r\n this.updateEventsCounter(element, handleObj.type, -1)\r\n },\r\n teardown: function(element) {\r\n var handlersCount = elementData(element, DX_DRAG_EVENTS_COUNT_KEY);\r\n if (!handlersCount) {\r\n var index = knownDropTargets.indexOf(element);\r\n knownDropTargets.splice(index, 1);\r\n knownDropTargetSelectors.splice(index, 1);\r\n knownDropTargetConfigs.splice(index, 1);\r\n removeData(element, DX_DRAG_EVENTS_COUNT_KEY)\r\n }\r\n }\r\n};\r\nregisterEvent(DRAG_ENTER_EVENT, dropTargetRegistration);\r\nregisterEvent(DRAG_LEAVE_EVENT, dropTargetRegistration);\r\nregisterEvent(DROP_EVENT, dropTargetRegistration);\r\nvar getItemDelegatedTargets = function($element) {\r\n var dropTargetIndex = knownDropTargets.indexOf($element.get(0));\r\n var dropTargetSelectors = knownDropTargetSelectors[dropTargetIndex].filter(selector => selector);\r\n var $delegatedTargets = $element.find(dropTargetSelectors.join(\", \"));\r\n if (knownDropTargetSelectors[dropTargetIndex].includes(void 0)) {\r\n $delegatedTargets = $delegatedTargets.add($element)\r\n }\r\n return $delegatedTargets\r\n};\r\nvar getItemConfig = function($element) {\r\n var dropTargetIndex = knownDropTargets.indexOf($element.get(0));\r\n return knownDropTargetConfigs[dropTargetIndex]\r\n};\r\nvar getItemPosition = function(dropTargetConfig, $element) {\r\n if (dropTargetConfig.itemPositionFunc) {\r\n return dropTargetConfig.itemPositionFunc($element)\r\n } else {\r\n return $element.offset()\r\n }\r\n};\r\nvar getItemSize = function(dropTargetConfig, $element) {\r\n if (dropTargetConfig.itemSizeFunc) {\r\n return dropTargetConfig.itemSizeFunc($element)\r\n }\r\n return {\r\n width: $element.get(0).getBoundingClientRect().width,\r\n height: $element.get(0).getBoundingClientRect().height\r\n }\r\n};\r\nvar DragEmitter = GestureEmitter.inherit({\r\n ctor: function(element) {\r\n this.callBase(element);\r\n this.direction = \"both\"\r\n },\r\n _init: function(e) {\r\n this._initEvent = e\r\n },\r\n _start: function(e) {\r\n e = this._fireEvent(DRAG_START_EVENT, this._initEvent);\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 var dropTargets = wrapToArray(e.targetElements || (null === e.targetElements ? [] : knownDropTargets));\r\n this._dropTargets = iteratorUtils.map(dropTargets, (function(element) {\r\n return $(element).get(0)\r\n }))\r\n },\r\n _move: function(e) {\r\n var eventData = eData(e);\r\n var dragOffset = this._calculateOffset(eventData);\r\n e = this._fireEvent(DRAG_EVENT, e, {\r\n offset: dragOffset\r\n });\r\n this._processDropTargets(e);\r\n if (!e._cancelPreventDefault) {\r\n e.preventDefault()\r\n }\r\n },\r\n _calculateOffset: function(eventData) {\r\n return {\r\n x: this._calculateXOffset(eventData),\r\n y: this._calculateYOffset(eventData)\r\n }\r\n },\r\n _calculateXOffset: function(eventData) {\r\n if (\"vertical\" !== this.direction) {\r\n var offset = eventData.x - this._startEventData.x;\r\n return this._fitOffset(offset, this._maxLeftOffset, this._maxRightOffset)\r\n }\r\n return 0\r\n },\r\n _calculateYOffset: function(eventData) {\r\n if (\"horizontal\" !== this.direction) {\r\n var offset = eventData.y - this._startEventData.y;\r\n return this._fitOffset(offset, this._maxTopOffset, this._maxBottomOffset)\r\n }\r\n return 0\r\n },\r\n _fitOffset: function(offset, minOffset, maxOffset) {\r\n if (null != minOffset) {\r\n offset = Math.max(offset, -minOffset)\r\n }\r\n if (null != maxOffset) {\r\n offset = Math.min(offset, maxOffset)\r\n }\r\n return offset\r\n },\r\n _processDropTargets: function(e) {\r\n var target = this._findDropTarget(e);\r\n var sameTarget = target === this._currentDropTarget;\r\n if (!sameTarget) {\r\n this._fireDropTargetEvent(e, DRAG_LEAVE_EVENT);\r\n this._currentDropTarget = target;\r\n this._fireDropTargetEvent(e, DRAG_ENTER_EVENT)\r\n }\r\n },\r\n _fireDropTargetEvent: function(event, eventName) {\r\n if (!this._currentDropTarget) {\r\n return\r\n }\r\n var eventData = {\r\n type: eventName,\r\n originalEvent: event,\r\n draggingElement: this._$element.get(0),\r\n target: this._currentDropTarget\r\n };\r\n fireEvent(eventData)\r\n },\r\n _findDropTarget: function(e) {\r\n var that = this;\r\n var result;\r\n iteratorUtils.each(knownDropTargets, (function(_, target) {\r\n if (!that._checkDropTargetActive(target)) {\r\n return\r\n }\r\n var $target = $(target);\r\n iteratorUtils.each(getItemDelegatedTargets($target), (function(_, delegatedTarget) {\r\n var $delegatedTarget = $(delegatedTarget);\r\n if (that._checkDropTarget(getItemConfig($target), $delegatedTarget, $(result), e)) {\r\n result = delegatedTarget\r\n }\r\n }))\r\n }));\r\n return result\r\n },\r\n _checkDropTargetActive: function(target) {\r\n var active = false;\r\n iteratorUtils.each(this._dropTargets, (function(_, activeTarget) {\r\n active = active || activeTarget === target || contains(activeTarget, target);\r\n return !active\r\n }));\r\n return active\r\n },\r\n _checkDropTarget: function(config, $target, $prevTarget, e) {\r\n var isDraggingElement = $target.get(0) === $(e.target).get(0);\r\n if (isDraggingElement) {\r\n return false\r\n }\r\n var targetPosition = getItemPosition(config, $target);\r\n if (e.pageX < targetPosition.left) {\r\n return false\r\n }\r\n if (e.pageY < targetPosition.top) {\r\n return false\r\n }\r\n var targetSize = getItemSize(config, $target);\r\n if (e.pageX > targetPosition.left + targetSize.width) {\r\n return false\r\n }\r\n if (e.pageY > targetPosition.top + targetSize.height) {\r\n return false\r\n }\r\n if ($prevTarget.length && $prevTarget.closest($target).length) {\r\n return false\r\n }\r\n if (config.checkDropTarget && !config.checkDropTarget($target, e)) {\r\n return false\r\n }\r\n return $target\r\n },\r\n _end: function(e) {\r\n var eventData = eData(e);\r\n this._fireEvent(DRAG_END_EVENT, e, {\r\n offset: this._calculateOffset(eventData)\r\n });\r\n this._fireDropTargetEvent(e, DROP_EVENT);\r\n delete this._currentDropTarget\r\n }\r\n});\r\nregisterEmitter({\r\n emitter: DragEmitter,\r\n events: [DRAG_START_EVENT, DRAG_EVENT, DRAG_END_EVENT]\r\n});\r\nexport {\r\n DRAG_EVENT as move, DRAG_START_EVENT as start, DRAG_END_EVENT as end, DRAG_ENTER_EVENT as enter, DRAG_LEAVE_EVENT as leave, DROP_EVENT as drop\r\n};\r\n","/*!\n * devextreme-vue\n * Version: 22.1.5\n * Build date: Fri Sep 02 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOption = void 0;\nvar config = {\n deepWatch: false\n};\nfunction setOptions(options) {\n config = __assign(__assign({}, config), options);\n}\nfunction getOption(optionName) {\n return config[optionName];\n}\nexports.getOption = getOption;\nexports.default = setOptions;\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator_registry.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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/renovation/utils/get_computed_style.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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/core/inferno_renderer.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 cleanDataRecursive(element);\r\n parentNode.$V = element.$V;\r\n _render(null, parentNode);\r\n parentNode.appendChild(element);\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: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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/utils/utils.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nexport var removeDifferentElements = ($children, $newChildren) => {\r\n each($newChildren, (__, element) => {\r\n var hasComponent = false;\r\n each($children, (_, oldElement) => {\r\n if (element === oldElement) {\r\n hasComponent = true\r\n }\r\n });\r\n if (!hasComponent && element.parentNode) {\r\n element.parentNode.removeChild(element)\r\n }\r\n })\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/common/template_wrapper.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 InfernoComponent,\r\n InfernoEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n findDOMfromVNode\r\n} from \"inferno\";\r\nimport {\r\n shallowEquals\r\n} from \"../../utils/shallow_equals\";\r\nimport {\r\n replaceWith\r\n} from \"../../../core/utils/dom\";\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 removeDifferentElements\r\n} from \"../utils/utils\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\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 _this$props$model;\r\n var node = findDOMfromVNode(this.$LI, true);\r\n var parentNode = node.parentNode;\r\n var $parent = $(parentNode);\r\n var $children = $parent.contents();\r\n var {\r\n data: data,\r\n index: index\r\n } = null !== (_this$props$model = this.props.model) && void 0 !== _this$props$model ? _this$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 $result = $(this.props.template.render(_extends({\r\n container: getPublicElement($parent),\r\n transclude: this.props.transclude\r\n }, {\r\n renovated: this.props.renovated\r\n }, !this.props.transclude ? {\r\n model: data\r\n } : {}, !this.props.transclude && Number.isFinite(index) ? {\r\n index: index\r\n } : {})));\r\n replaceWith($(node), $result);\r\n return () => {\r\n removeDifferentElements($children, $parent.contents());\r\n parentNode.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 model: nextModel,\r\n template: nextTemplate\r\n } = nextProps;\r\n var sameTemplate = template === nextTemplate;\r\n if (!sameTemplate) {\r\n return true\r\n }\r\n if (isDefined(model) && isDefined(nextModel)) {\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 return index !== nextIndex || !shallowEquals(data, nextData)\r\n }\r\n var sameModel = model === nextModel;\r\n return !sameModel\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: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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} from \"./template_wrapper\";\r\nimport {\r\n updatePropsImmutable\r\n} from \"../utils/update_props_immutable\";\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 return extend(true, super._getDefaultOptions(), this._viewComponent.defaultProps, this._propsInfo.twoWay.reduce((options, _ref) => {\r\n var [name, defaultName, eventName] = _ref;\r\n return _extends({}, options, {\r\n [name]: this._viewComponent.defaultProps[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 _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 this._props = this._optionsWithDefaultTemplates(this.option());\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 defaultWidgetPropsKeys = Object.keys(this._viewComponent.defaultProps);\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, {\r\n template: template,\r\n model: model\r\n })\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}\r\nComponentWrapper.IS_RENOVATED_WIDGET = false;\r\nComponentWrapper.IS_RENOVATED_WIDGET = true;\r\n","/**\r\n * DevExtreme (esm/ui/editor/editor.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n data\r\n} from \"../../core/element_data\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n addNamespace,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport ValidationEngine from \"../validation_engine\";\r\nimport EventsEngine from \"../../events/core/events_engine\";\r\nimport ValidationMessage from \"../validation_message\";\r\nimport Guid from \"../../core/guid\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n resetActiveElement\r\n} from \"../../core/utils/dom\";\r\nvar INVALID_MESSAGE_AUTO = \"dx-invalid-message-auto\";\r\nvar READONLY_STATE_CLASS = \"dx-state-readonly\";\r\nvar INVALID_CLASS = \"dx-invalid\";\r\nvar DX_INVALID_BADGE_CLASS = \"dx-show-invalid-badge\";\r\nvar VALIDATION_TARGET = \"dx-validation-target\";\r\nvar VALIDATION_STATUS_VALID = \"valid\";\r\nvar VALIDATION_STATUS_INVALID = \"invalid\";\r\nvar READONLY_NAMESPACE = \"editorReadOnly\";\r\nvar ALLOWED_STYLING_MODES = [\"outlined\", \"filled\", \"underlined\"];\r\nvar VALIDATION_MESSAGE_KEYS_MAP = {\r\n validationMessageMode: \"mode\",\r\n validationMessageOffset: \"offset\",\r\n validationBoundary: \"boundary\"\r\n};\r\nvar Editor = Widget.inherit({\r\n ctor: function() {\r\n this.showValidationMessageTimeout = null;\r\n this.validationRequest = Callbacks();\r\n this.callBase.apply(this, arguments)\r\n },\r\n _createElement: function(element) {\r\n this.callBase(element);\r\n var $element = this.$element();\r\n if ($element) {\r\n data($element[0], VALIDATION_TARGET, this)\r\n }\r\n },\r\n _initOptions: function(options) {\r\n this.callBase.apply(this, arguments);\r\n this.option(ValidationEngine.initValidationOptions(options))\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._options.cache(\"validationTooltipOptions\", this.option(\"validationTooltipOptions\"));\r\n var $element = this.$element();\r\n $element.addClass(DX_INVALID_BADGE_CLASS)\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: null,\r\n name: \"\",\r\n onValueChanged: null,\r\n readOnly: false,\r\n isValid: true,\r\n validationError: null,\r\n validationErrors: null,\r\n validationStatus: VALIDATION_STATUS_VALID,\r\n validationMessageMode: \"auto\",\r\n validationBoundary: void 0,\r\n validationMessageOffset: {\r\n h: 0,\r\n v: 0\r\n },\r\n validationTooltipOptions: {}\r\n })\r\n },\r\n _attachKeyboardEvents: function() {\r\n if (!this.option(\"readOnly\")) {\r\n this.callBase()\r\n }\r\n },\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n validationError: true\r\n })\r\n },\r\n _createValueChangeAction: function() {\r\n this._valueChangeAction = this._createActionByOption(\"onValueChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _suppressValueChangeAction: function() {\r\n this._valueChangeActionSuppressed = true\r\n },\r\n _resumeValueChangeAction: function() {\r\n this._valueChangeActionSuppressed = false\r\n },\r\n _initMarkup: function() {\r\n var _this$option;\r\n this._toggleReadOnlyState();\r\n this._setSubmitElementName(this.option(\"name\"));\r\n this.callBase();\r\n this._renderValidationState();\r\n null === (_this$option = this.option(\"_onMarkupRendered\")) || void 0 === _this$option ? void 0 : _this$option()\r\n },\r\n _raiseValueChangeAction: function(value, previousValue) {\r\n if (!this._valueChangeAction) {\r\n this._createValueChangeAction()\r\n }\r\n this._valueChangeAction(this._valueChangeArgs(value, previousValue))\r\n },\r\n _valueChangeArgs: function(value, previousValue) {\r\n return {\r\n value: value,\r\n previousValue: previousValue,\r\n event: this._valueChangeEventInstance\r\n }\r\n },\r\n _saveValueChangeEvent: function(e) {\r\n this._valueChangeEventInstance = e\r\n },\r\n _focusInHandler: function(e) {\r\n var isValidationMessageShownOnFocus = \"auto\" === this.option(\"validationMessageMode\");\r\n if (this._canValueBeChangedByClick() && isValidationMessageShownOnFocus) {\r\n var _this$_validationMess;\r\n var $validationMessageWrapper = null === (_this$_validationMess = this._validationMessage) || void 0 === _this$_validationMess ? void 0 : _this$_validationMess.$wrapper();\r\n null === $validationMessageWrapper || void 0 === $validationMessageWrapper ? void 0 : $validationMessageWrapper.removeClass(INVALID_MESSAGE_AUTO);\r\n clearTimeout(this.showValidationMessageTimeout);\r\n this.showValidationMessageTimeout = setTimeout(() => null === $validationMessageWrapper || void 0 === $validationMessageWrapper ? void 0 : $validationMessageWrapper.addClass(INVALID_MESSAGE_AUTO), 150)\r\n }\r\n return this.callBase(e)\r\n },\r\n _canValueBeChangedByClick: function() {\r\n return false\r\n },\r\n _getStylingModePrefix: function() {\r\n return \"dx-editor-\"\r\n },\r\n _renderStylingMode: function() {\r\n var optionValue = this.option(\"stylingMode\");\r\n var prefix = this._getStylingModePrefix();\r\n var allowedStylingClasses = ALLOWED_STYLING_MODES.map(mode => prefix + mode);\r\n allowedStylingClasses.forEach(className => this.$element().removeClass(className));\r\n var stylingModeClass = prefix + optionValue;\r\n if (-1 === allowedStylingClasses.indexOf(stylingModeClass)) {\r\n var defaultOptionValue = this._getDefaultOptions().stylingMode;\r\n var platformOptionValue = this._convertRulesToOptions(this._defaultOptionsRules()).stylingMode;\r\n stylingModeClass = prefix + (platformOptionValue || defaultOptionValue)\r\n }\r\n this.$element().addClass(stylingModeClass)\r\n },\r\n _getValidationErrors: function() {\r\n var validationErrors = this.option(\"validationErrors\");\r\n if (!validationErrors && this.option(\"validationError\")) {\r\n validationErrors = [this.option(\"validationError\")]\r\n }\r\n return validationErrors\r\n },\r\n _disposeValidationMessage: function() {\r\n if (this._$validationMessage) {\r\n this._$validationMessage.remove();\r\n this.setAria(\"describedby\", null);\r\n this._$validationMessage = void 0;\r\n this._validationMessage = void 0\r\n }\r\n },\r\n _toggleValidationClasses: function(isInvalid) {\r\n this.$element().toggleClass(INVALID_CLASS, isInvalid);\r\n this.setAria(VALIDATION_STATUS_INVALID, isInvalid || void 0)\r\n },\r\n _renderValidationState: function() {\r\n var isValid = this.option(\"isValid\") && this.option(\"validationStatus\") !== VALIDATION_STATUS_INVALID;\r\n var validationErrors = this._getValidationErrors();\r\n var $element = this.$element();\r\n this._toggleValidationClasses(!isValid);\r\n if (!hasWindow()) {\r\n return\r\n }\r\n this._disposeValidationMessage();\r\n if (!isValid && validationErrors) {\r\n var {\r\n validationMessageMode: validationMessageMode,\r\n validationMessageOffset: validationMessageOffset,\r\n validationBoundary: validationBoundary,\r\n rtlEnabled: rtlEnabled\r\n } = this.option();\r\n this._$validationMessage = $(\"
\").appendTo($element);\r\n var validationMessageContentId = \"dx-\".concat(new Guid);\r\n this.setAria(\"describedby\", validationMessageContentId);\r\n this._validationMessage = new ValidationMessage(this._$validationMessage, extend({\r\n validationErrors: validationErrors,\r\n rtlEnabled: rtlEnabled,\r\n target: this._getValidationMessageTarget(),\r\n visualContainer: $element,\r\n mode: validationMessageMode,\r\n positionRequest: \"below\",\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 _getValidationMessageTarget: function() {\r\n return this.$element()\r\n },\r\n _toggleReadOnlyState: function() {\r\n var readOnly = this.option(\"readOnly\");\r\n this._toggleBackspaceHandler(readOnly);\r\n this.$element().toggleClass(READONLY_STATE_CLASS, !!readOnly);\r\n this.setAria(\"readonly\", readOnly || void 0)\r\n },\r\n _toggleBackspaceHandler: function(isReadOnly) {\r\n var $eventTarget = this._keyboardEventBindingTarget();\r\n var eventName = addNamespace(\"keydown\", READONLY_NAMESPACE);\r\n EventsEngine.off($eventTarget, eventName);\r\n if (isReadOnly) {\r\n EventsEngine.on($eventTarget, eventName, e => {\r\n if (\"backspace\" === normalizeKeyName(e)) {\r\n e.preventDefault()\r\n }\r\n })\r\n }\r\n },\r\n _dispose: function() {\r\n var element = this.$element()[0];\r\n data(element, VALIDATION_TARGET, null);\r\n clearTimeout(this.showValidationMessageTimeout);\r\n this._disposeValidationMessage();\r\n this.callBase()\r\n },\r\n _setSubmitElementName: function(name) {\r\n var $submitElement = this._getSubmitElement();\r\n if (!$submitElement) {\r\n return\r\n }\r\n if (name.length > 0) {\r\n $submitElement.attr(\"name\", name)\r\n } else {\r\n $submitElement.removeAttr(\"name\")\r\n }\r\n },\r\n _getSubmitElement: function() {\r\n return null\r\n },\r\n _setValidationMessageOption: function(_ref) {\r\n var _this$_validationMess2;\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n var optionKey = VALIDATION_MESSAGE_KEYS_MAP[name] ? VALIDATION_MESSAGE_KEYS_MAP[name] : name;\r\n null === (_this$_validationMess2 = this._validationMessage) || void 0 === _this$_validationMess2 ? void 0 : _this$_validationMess2.option(optionKey, value)\r\n },\r\n _hasActiveElement: noop,\r\n _optionChanged: function(args) {\r\n var _this$_validationMess3;\r\n switch (args.name) {\r\n case \"onValueChanged\":\r\n this._createValueChangeAction();\r\n break;\r\n case \"readOnly\":\r\n this._toggleReadOnlyState();\r\n this._refreshFocusState();\r\n break;\r\n case \"value\":\r\n if (args.value != args.previousValue) {\r\n this.validationRequest.fire({\r\n value: args.value,\r\n editor: this\r\n })\r\n }\r\n if (!this._valueChangeActionSuppressed) {\r\n this._raiseValueChangeAction(args.value, args.previousValue);\r\n this._saveValueChangeEvent(void 0)\r\n }\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n null === (_this$_validationMess3 = this._validationMessage) || void 0 === _this$_validationMess3 ? void 0 : _this$_validationMess3.updateMaxWidth();\r\n break;\r\n case \"name\":\r\n this._setSubmitElementName(args.value);\r\n break;\r\n case \"isValid\":\r\n case \"validationError\":\r\n case \"validationErrors\":\r\n case \"validationStatus\":\r\n this.option(ValidationEngine.synchronizeValidationOptions(args, this.option()));\r\n this._renderValidationState();\r\n break;\r\n case \"validationBoundary\":\r\n case \"validationMessageMode\":\r\n case \"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 default:\r\n this.callBase(args)\r\n }\r\n },\r\n blur: function() {\r\n if (this._hasActiveElement()) {\r\n resetActiveElement()\r\n }\r\n },\r\n reset: function() {\r\n var defaultOptions = this._getDefaultOptions();\r\n this.option(\"value\", defaultOptions.value)\r\n }\r\n});\r\nEditor.isEditor = instance => instance instanceof Editor;\r\nexport default Editor;\r\n","/**\r\n * DevExtreme (esm/renovation/utils/subscribe_to_event.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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/core/utils/version.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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","/*!\n * devextreme-vue\n * Version: 22.1.5\n * Build date: Fri Sep 02 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TemplatesManager = void 0;\nvar config_1 = require(\"./config\");\nvar templates_discovering_1 = require(\"./templates-discovering\");\nvar dom_adapter_1 = __importDefault(require(\"devextreme/core/dom_adapter\"));\nvar events_1 = require(\"devextreme/events\");\nvar constants_1 = require(\"./constants\");\nvar helpers_1 = require(\"./helpers\");\nvar TemplatesManager = /** @class */ (function () {\n function TemplatesManager(component) {\n this._slots = {};\n this._templates = {};\n this._isDirty = false;\n this._component = component;\n this.discover();\n }\n TemplatesManager.prototype.discover = function () {\n var slots = templates_discovering_1.discover(this._component);\n this._slots = __assign(__assign({}, this._slots), slots);\n if (!helpers_1.allKeysAreEqual(this._templates, slots)) {\n this._prepareTemplates();\n }\n };\n Object.defineProperty(TemplatesManager.prototype, \"templates\", {\n get: function () {\n return this._templates;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TemplatesManager.prototype, \"isDirty\", {\n get: function () {\n return this._isDirty;\n },\n enumerable: false,\n configurable: true\n });\n TemplatesManager.prototype.resetDirtyFlag = function () {\n this._isDirty = false;\n };\n TemplatesManager.prototype._prepareTemplates = function () {\n this._templates = {};\n for (var _i = 0, _a = Object.keys(this._slots); _i < _a.length; _i++) {\n var name_1 = _a[_i];\n this._templates[name_1] = this.createDxTemplate(name_1);\n }\n this._isDirty = true;\n };\n TemplatesManager.prototype.createDxTemplate = function (name) {\n var _this = this;\n return {\n render: function (data) {\n var scopeData = config_1.getOption(\"useLegacyTemplateEngine\")\n ? data.model\n : { data: data.model, index: data.index };\n var container = data.container.get ? data.container.get(0) : data.container;\n var placeholder = document.createElement(\"div\");\n container.appendChild(placeholder);\n var mountedTemplate = templates_discovering_1.mountTemplate(function () { return _this._slots[name]; }, _this._component, scopeData, name, placeholder);\n var element = mountedTemplate.$el;\n dom_adapter_1.default.setClass(element, constants_1.DX_TEMPLATE_WRAPPER_CLASS, true);\n if (element.nodeType === Node.TEXT_NODE) {\n var removalListener = document.createElement(container.nodeName === \"TABLE\" ? \"tbody\" : \"span\");\n removalListener.style.display = \"none\";\n container.appendChild(removalListener);\n events_1.one(removalListener, constants_1.DX_REMOVE_EVENT, mountedTemplate.$destroy.bind(mountedTemplate));\n }\n else {\n events_1.one(element, constants_1.DX_REMOVE_EVENT, mountedTemplate.$destroy.bind(mountedTemplate));\n }\n return element;\n }\n };\n };\n return TemplatesManager;\n}());\nexports.TemplatesManager = TemplatesManager;\n","/**\r\n * DevExtreme (esm/core/utils/resize_callbacks.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n hasWindow,\r\n getWindow\r\n} from \"./window\";\r\nimport domAdapter from \"../dom_adapter\";\r\nimport Callbacks from \"./callbacks\";\r\nimport readyCallbacks from \"./ready_callbacks\";\r\nimport callOnce from \"./call_once\";\r\nvar resizeCallbacks = function() {\r\n var prevSize;\r\n var callbacks = Callbacks();\r\n var originalCallbacksAdd = callbacks.add;\r\n var originalCallbacksRemove = callbacks.remove;\r\n if (!hasWindow()) {\r\n return callbacks\r\n }\r\n var formatSize = function() {\r\n var window = getWindow();\r\n return {\r\n width: window.innerWidth,\r\n height: window.innerHeight\r\n }\r\n };\r\n var handleResize = function() {\r\n var now = formatSize();\r\n if (now.width === prevSize.width && now.height === prevSize.height) {\r\n return\r\n }\r\n var changedDimension;\r\n if (now.width === prevSize.width) {\r\n changedDimension = \"height\"\r\n }\r\n if (now.height === prevSize.height) {\r\n changedDimension = \"width\"\r\n }\r\n prevSize = now;\r\n callbacks.fire(changedDimension)\r\n };\r\n var setPrevSize = callOnce((function() {\r\n prevSize = formatSize()\r\n }));\r\n var removeListener;\r\n callbacks.add = function() {\r\n var result = originalCallbacksAdd.apply(callbacks, arguments);\r\n setPrevSize();\r\n readyCallbacks.add((function() {\r\n if (!removeListener && callbacks.has()) {\r\n removeListener = domAdapter.listen(getWindow(), \"resize\", handleResize)\r\n }\r\n }));\r\n return result\r\n };\r\n callbacks.remove = function() {\r\n var result = originalCallbacksRemove.apply(callbacks, arguments);\r\n if (!callbacks.has() && removeListener) {\r\n removeListener();\r\n removeListener = void 0\r\n }\r\n return result\r\n };\r\n return callbacks\r\n}();\r\nexport default resizeCallbacks;\r\n","/**\r\n * DevExtreme (esm/renovation/common/config_provider.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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\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: this.config\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/utils/resolve_rtl.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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/common/widget.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 (\"ConfigContext\" in this.context) {\r\n return this.context.ConfigContext\r\n }\r\n return ConfigContext\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({}, this.restAttributes, accessKey && {\r\n accessKey: accessKey\r\n }), getAria(_extends({}, aria, {\r\n disabled: disabled,\r\n hidden: !visible\r\n })))\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();\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/ui/scroll_view/ui.scrollable.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Scrollable from \"./ui.scrollable.old\";\r\nexport default Scrollable;\r\n","/**\r\n * DevExtreme (esm/ui/drop_down_editor/ui.drop_down_button.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 TextEditorButton from \"../text_box/texteditor_button_collection/button\";\r\nimport Button from \"../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 !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 = $(\"
\");\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\").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/ui/drop_down_editor/ui.drop_down_editor.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 Guid from \"../../core/guid\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n noop,\r\n splitPair\r\n} from \"../../core/utils/common\";\r\nimport {\r\n focused\r\n} from \"../widget/selectors\";\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 extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport animationPosition from \"../../animation/position\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../../core/utils/position\";\r\nimport DropDownButton from \"./ui.drop_down_button\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport TextBox from \"../text_box\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n FunctionTemplate\r\n} from \"../../core/templates/function_template\";\r\nimport Popup from \"../popup\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n getElementWidth,\r\n getSizeValue\r\n} from \"./utils\";\r\nimport {\r\n locate,\r\n move\r\n} from \"../../animation/translator\";\r\nvar 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: function() {\r\n return extend({}, this.callBase(), {\r\n tab: function(e) {\r\n if (!this.option(\"opened\")) {\r\n return\r\n }\r\n if (\"instantly\" === this.option(\"applyValueMode\")) {\r\n this.close();\r\n return\r\n }\r\n var $focusableElement = e.shiftKey ? this._getLastPopupElement() : this._getFirstPopupElement();\r\n $focusableElement && eventsEngine.trigger($focusableElement, \"focus\");\r\n e.preventDefault()\r\n },\r\n escape: function(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: function(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: function(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: function(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: function() {\r\n return this.callBase().concat([{\r\n name: \"dropDown\",\r\n Ctor: DropDownButton\r\n }])\r\n },\r\n _getDefaultOptions: function() {\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 })\r\n },\r\n _useTemplates: function() {\r\n return true\r\n },\r\n _getDefaultPopupPosition: function(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: position + \" top\",\r\n at: position + \" bottom\",\r\n collision: \"flip flip\"\r\n }\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function(_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: function() {\r\n return this.$element().find(\".\" + DROP_DOWN_EDITOR_INPUT_WRAPPER).first()\r\n },\r\n _init: function() {\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: function(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: function() {\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: function() {\r\n this._popupInitializedAction = this._createActionByOption(\"onPopupInitialized\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initMarkup: function() {\r\n this._renderSubmitElement();\r\n this.callBase();\r\n this.$element().addClass(DROP_DOWN_EDITOR_CLASS);\r\n this.setAria(\"role\", \"combobox\")\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderOpenHandler();\r\n this._attachFocusOutHandler();\r\n this._renderOpenedState()\r\n },\r\n _renderContentImpl: function() {\r\n if (!this.option(\"deferRendering\")) {\r\n this._createPopup()\r\n }\r\n },\r\n _renderInput: function() {\r\n this.callBase();\r\n this._wrapInput();\r\n this._setDefaultAria()\r\n },\r\n _wrapInput: function() {\r\n this._$container = this.$element().wrapInner($(\"
\").addClass(DROP_DOWN_EDITOR_INPUT_WRAPPER)).children().eq(0)\r\n },\r\n _setDefaultAria: function() {\r\n this.setAria({\r\n haspopup: \"true\",\r\n autocomplete: \"list\"\r\n })\r\n },\r\n _readOnlyPropValue: function() {\r\n return !this._isEditable() || this.callBase()\r\n },\r\n _cleanFocusState: function() {\r\n this.callBase();\r\n if (this.option(\"fieldTemplate\")) {\r\n this._detachFocusEvents()\r\n }\r\n },\r\n _getFieldTemplate: function() {\r\n return this.option(\"fieldTemplate\") && this._getTemplateByOption(\"fieldTemplate\")\r\n },\r\n _renderMask: function() {\r\n if (this.option(\"fieldTemplate\")) {\r\n return\r\n }\r\n this.callBase()\r\n },\r\n _renderField: function() {\r\n var fieldTemplate = this._getFieldTemplate();\r\n fieldTemplate && this._renderTemplatedField(fieldTemplate, this._fieldRenderData())\r\n },\r\n _renderPlaceholder: function() {\r\n var hasFieldTemplate = !!this._getFieldTemplate();\r\n if (!hasFieldTemplate) {\r\n this.callBase()\r\n }\r\n },\r\n _renderValue: function() {\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 _renderTemplatedField: function(fieldTemplate, data) {\r\n var _this$_fieldRenderQue;\r\n this._fieldRenderQueueLength = (null !== (_this$_fieldRenderQue = this._fieldRenderQueueLength) && void 0 !== _this$_fieldRenderQue ? _this$_fieldRenderQue : 0) + 1;\r\n var isFocused = focused(this._input());\r\n var $container = this._$container;\r\n this._detachKeyboardEvents();\r\n this._refreshButtonsContainer();\r\n this._detachWrapperContent();\r\n this._detachFocusEvents();\r\n $container.empty();\r\n var $templateWrapper = $(\"
\").addClass(DROP_DOWN_EDITOR_FIELD_TEMPLATE_WRAPPER).appendTo($container);\r\n fieldTemplate.render({\r\n model: data,\r\n container: getPublicElement($templateWrapper),\r\n onRendered: () => {\r\n this._fieldRenderQueueLength--;\r\n if (0 !== this._fieldRenderQueueLength) {\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 this._attachWrapperContent($container)\r\n },\r\n _detachWrapperContent() {\r\n var _this$_$submitElement, _this$_$beforeButtons, _this$_$afterButtonsC;\r\n var useHiddenSubmitElement = this.option(\"useHiddenSubmitElement\");\r\n useHiddenSubmitElement && (null === (_this$_$submitElement = this._$submitElement) || void 0 === _this$_$submitElement ? void 0 : _this$_$submitElement.detach());\r\n var beforeButtonsContainerParent = null === (_this$_$beforeButtons = this._$beforeButtonsContainer) || void 0 === _this$_$beforeButtons ? void 0 : _this$_$beforeButtons[0].parentNode;\r\n var afterButtonsContainerParent = null === (_this$_$afterButtonsC = this._$afterButtonsContainer) || void 0 === _this$_$afterButtonsC ? void 0 : _this$_$afterButtonsC[0].parentNode;\r\n null === beforeButtonsContainerParent || void 0 === beforeButtonsContainerParent ? void 0 : beforeButtonsContainerParent.removeChild(this._$beforeButtonsContainer[0]);\r\n null === afterButtonsContainerParent || void 0 === afterButtonsContainerParent ? void 0 : afterButtonsContainerParent.removeChild(this._$afterButtonsContainer[0])\r\n },\r\n _attachWrapperContent($container) {\r\n var _this$_$submitElement2;\r\n var useHiddenSubmitElement = this.option(\"useHiddenSubmitElement\");\r\n $container.prepend(this._$beforeButtonsContainer);\r\n useHiddenSubmitElement && (null === (_this$_$submitElement2 = this._$submitElement) || void 0 === _this$_$submitElement2 ? void 0 : _this$_$submitElement2.appendTo($container));\r\n $container.append(this._$afterButtonsContainer)\r\n },\r\n _refreshButtonsContainer() {\r\n this._$buttonsContainer = this.$element().children().eq(0)\r\n },\r\n _integrateInput: function() {\r\n this._renderFocusState();\r\n this._refreshValueChangeEvent();\r\n this._refreshEvents();\r\n this._refreshEmptinessEvent()\r\n },\r\n _refreshEmptinessEvent: function() {\r\n eventsEngine.off(this._input(), \"input blur\", this._toggleEmptinessEventHandler);\r\n this._renderEmptinessEvent()\r\n },\r\n _fieldRenderData: function() {\r\n return this.option(\"value\")\r\n },\r\n _initTemplates: function() {\r\n this._templateManager.addDefaultTemplates({\r\n dropDownButton: new FunctionTemplate((function(options) {\r\n var $icon = $(\"
\").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: function() {\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: function() {\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 var popupWrapper = this.content ? $(this.content()).closest(\".\" + DROP_DOWN_EDITOR_OVERLAY) : this._$popup;\r\n if (newTarget && this.option(\"opened\")) {\r\n var isNewTargetOutside = 0 === $(newTarget).closest(\".\" + DROP_DOWN_EDITOR_OVERLAY, popupWrapper).length;\r\n if (isNewTargetOutside) {\r\n this.close()\r\n }\r\n }\r\n })\r\n }\r\n },\r\n _detachFocusOutEvents: function() {\r\n isIOs && eventsEngine.off(this._inputWrapper(), addNamespace(\"focusout\", this.NAME))\r\n },\r\n _getInputClickHandler: function(openOnFieldClick) {\r\n return openOnFieldClick ? e => {\r\n this._executeOpenAction(e)\r\n } : e => {\r\n this._focusInput()\r\n }\r\n },\r\n _openHandler: function() {\r\n this._toggleOpenState()\r\n },\r\n _executeOpenAction: function(e) {\r\n this._openOnFieldClickAction({\r\n event: e\r\n })\r\n },\r\n _keyboardEventBindingTarget: function() {\r\n return this._input()\r\n },\r\n _focusInput: function() {\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: function() {\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: function() {\r\n return this.option(\"acceptCustomValue\")\r\n },\r\n _toggleOpenState: function(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 _renderOpenedState: function() {\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 this.setAria({\r\n expanded: opened\r\n });\r\n this.setAria(\"owns\", opened ? this._popupContentId : void 0, this.$element())\r\n },\r\n _createPopup: function() {\r\n if (this._$popup) {\r\n return\r\n }\r\n this._$popup = $(\"
\").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: function() {\r\n var popupConfig = extend(this._popupConfig(), this._options.cache(\"dropDownOptions\"));\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._contentReadyHandler();\r\n this._setPopupContentId(this._popup.$content());\r\n this._bindInnerWidgetOptions(this._popup, \"dropDownOptions\")\r\n },\r\n _setPopupContentId($popupContent) {\r\n this._popupContentId = \"dx-\" + new Guid;\r\n this.setAria(\"id\", this._popupContentId, $popupContent)\r\n },\r\n _contentReadyHandler: noop,\r\n _popupConfig: function() {\r\n return {\r\n onInitialized: this._popupInitializedHandler(),\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 wrapperAttr: {\r\n class: DROP_DOWN_EDITOR_OVERLAY\r\n },\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 }\r\n },\r\n _popupInitializedHandler: function() {\r\n if (!this.option(\"onPopupInitialized\")) {\r\n return null\r\n }\r\n return e => {\r\n this._popupInitializedAction({\r\n popup: e.component\r\n })\r\n }\r\n },\r\n _dimensionChanged: function() {\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: function(e) {\r\n var _e$position, _e$position$v;\r\n var {\r\n labelMode: labelMode,\r\n stylingMode: stylingMode\r\n } = this.option();\r\n var $popupOverlayContent = this._popup.$overlayContent();\r\n var isOverlayFlipped = null === (_e$position = e.position) || void 0 === _e$position ? void 0 : null === (_e$position$v = _e$position.v) || void 0 === _e$position$v ? void 0 : _e$position$v.flip;\r\n var shouldIndentForLabel = \"hidden\" !== 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: function() {\r\n this.option(\"opened\", false)\r\n },\r\n _popupShownHandler: function() {\r\n var _this$_validationMess;\r\n this._openAction();\r\n null === (_this$_validationMess = this._validationMessage) || void 0 === _this$_validationMess ? void 0 : _this$_validationMess.option(\"positionRequest\", this._getValidationMessagePositionRequest())\r\n },\r\n _popupHiddenHandler: function() {\r\n var _this$_validationMess2;\r\n this._closeAction();\r\n null === (_this$_validationMess2 = this._validationMessage) || void 0 === _this$_validationMess2 ? void 0 : _this$_validationMess2.option(\"positionRequest\", this._getValidationMessagePositionRequest())\r\n },\r\n _getValidationMessagePositionRequest: function() {\r\n var positionRequest = \"below\";\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 positionRequest = myTop + this.option(\"popupPosition\").offset.v > popupTop ? \"below\" : \"above\"\r\n }\r\n return positionRequest\r\n },\r\n _closeOutsideDropDownHandler: function(_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: function() {\r\n delete this._openOnFieldClickAction;\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: function(optionName, value) {\r\n this._setWidgetOption(\"_popup\", arguments)\r\n },\r\n _validatedOpening: function() {\r\n if (!this.option(\"readOnly\")) {\r\n this._toggleOpenState(true)\r\n }\r\n },\r\n _getPopupToolbarItems: function() {\r\n return \"useButtons\" === this.option(\"applyValueMode\") ? this._popupToolbarItemsConfig() : []\r\n },\r\n _getFirstPopupElement: function() {\r\n return this._popup.$wrapper().find(\".dx-popup-done.dx-button\")\r\n },\r\n _getLastPopupElement: function() {\r\n return this._popup.$wrapper().find(\".dx-popup-cancel.dx-button\")\r\n },\r\n _popupElementTabHandler: function(e) {\r\n var $element = $(e.currentTarget);\r\n if (e.shiftKey && $element.is(this._getFirstPopupElement()) || !e.shiftKey && $element.is(this._getLastPopupElement())) {\r\n eventsEngine.trigger(this._input(), \"focus\");\r\n e.preventDefault()\r\n }\r\n },\r\n _popupElementEscHandler: function() {\r\n eventsEngine.trigger(this._input(), \"focus\");\r\n this.close()\r\n },\r\n _popupButtonInitializedHandler: function(e) {\r\n e.component.registerKeyHandler(\"tab\", this._popupElementTabHandler.bind(this));\r\n e.component.registerKeyHandler(\"escape\", this._popupElementEscHandler.bind(this))\r\n },\r\n _popupToolbarItemsConfig: function() {\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 onInitialized: this._popupButtonInitializedHandler.bind(this)\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 onInitialized: this._popupButtonInitializedHandler.bind(this)\r\n }\r\n }];\r\n return this._applyButtonsLocation(buttonsConfig)\r\n },\r\n _applyButtonsLocation: function(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, (function(_, 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: function() {\r\n this.close();\r\n this.option(\"focusStateEnabled\") && this.focus()\r\n },\r\n _cancelButtonHandler: function() {\r\n this.close();\r\n this.option(\"focusStateEnabled\") && this.focus()\r\n },\r\n _popupOptionChanged: function(args) {\r\n var options = Widget.getOptionsFromContainer(args);\r\n this._setPopupOption(options);\r\n var optionsKeys = Object.keys(options);\r\n if (-1 !== optionsKeys.indexOf(\"width\") || -1 !== optionsKeys.indexOf(\"height\")) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _renderSubmitElement: function() {\r\n if (this.option(\"useHiddenSubmitElement\")) {\r\n this._$submitElement = $(\"\").attr(\"type\", \"hidden\").appendTo(this.$element())\r\n }\r\n },\r\n _setSubmitValue: function() {\r\n this._getSubmitElement().val(this.option(\"value\"))\r\n },\r\n _getSubmitElement: function() {\r\n if (this.option(\"useHiddenSubmitElement\")) {\r\n return this._$submitElement\r\n } else {\r\n return this.callBase()\r\n }\r\n },\r\n _dispose: function() {\r\n this._detachFocusOutEvents();\r\n this.callBase()\r\n },\r\n _optionChanged: function(args) {\r\n var _this$_popup;\r\n switch (args.name) {\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n null === (_this$_popup = this._popup) || void 0 === _this$_popup ? void 0 : _this$_popup.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 if (isDefined(args.value)) {\r\n this._renderField()\r\n } else {\r\n this._invalidate()\r\n }\r\n break;\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: function() {\r\n this.option(\"opened\", true)\r\n },\r\n close: function() {\r\n this.option(\"opened\", false)\r\n },\r\n field: function() {\r\n return getPublicElement(this._input())\r\n },\r\n content: function() {\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/core/http_request.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 \"./utils/window\";\r\nvar window = getWindow();\r\nimport injector from \"./utils/dependency_injector\";\r\nvar nativeXMLHttpRequest = {\r\n getXhr: function() {\r\n return new window.XMLHttpRequest\r\n }\r\n};\r\nexport default injector(nativeXMLHttpRequest);\r\n","/**\r\n * DevExtreme (esm/core/utils/ajax.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 \"./deferred\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport httpRequest from \"../../core/http_request\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n extendFromObject\r\n} from \"./extend\";\r\nimport {\r\n isDefined\r\n} from \"./type\";\r\nimport injector from \"./dependency_injector\";\r\nvar SUCCESS = \"success\";\r\nvar ERROR = \"error\";\r\nvar TIMEOUT = \"timeout\";\r\nvar NO_CONTENT = \"nocontent\";\r\nvar PARSER_ERROR = \"parsererror\";\r\nvar isStatusSuccess = function(status) {\r\n return 200 <= status && status < 300\r\n};\r\nvar hasContent = function(status) {\r\n return 204 !== status\r\n};\r\nvar paramsConvert = function(params) {\r\n var result = [];\r\n for (var name in params) {\r\n var value = params[name];\r\n if (void 0 === value) {\r\n continue\r\n }\r\n if (null === value) {\r\n value = \"\"\r\n }\r\n if (\"function\" === typeof value) {\r\n value = value()\r\n }\r\n result.push(encodeURIComponent(name) + \"=\" + encodeURIComponent(value))\r\n }\r\n return result.join(\"&\")\r\n};\r\nvar createScript = function(options) {\r\n var script = domAdapter.createElement(\"script\");\r\n for (var name in options) {\r\n script[name] = options[name]\r\n }\r\n return script\r\n};\r\nvar removeScript = function(scriptNode) {\r\n scriptNode.parentNode.removeChild(scriptNode)\r\n};\r\nvar appendToHead = function(element) {\r\n return domAdapter.getHead().appendChild(element)\r\n};\r\nvar evalScript = function(code) {\r\n var script = createScript({\r\n text: code\r\n });\r\n appendToHead(script);\r\n removeScript(script)\r\n};\r\nvar evalCrossDomainScript = function(url) {\r\n var script = createScript({\r\n src: url\r\n });\r\n return new Promise((function(resolve, reject) {\r\n var events = {\r\n load: resolve,\r\n error: reject\r\n };\r\n var loadHandler = function(e) {\r\n events[e.type]();\r\n removeScript(script)\r\n };\r\n for (var event in events) {\r\n domAdapter.listen(script, event, loadHandler)\r\n }\r\n appendToHead(script)\r\n }))\r\n};\r\nvar getAcceptHeader = function(options) {\r\n var dataType = options.dataType || \"*\";\r\n var scriptAccept = \"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\";\r\n var accepts = {\r\n \"*\": \"*/*\",\r\n text: \"text/plain\",\r\n html: \"text/html\",\r\n xml: \"application/xml, text/xml\",\r\n json: \"application/json, text/javascript\",\r\n jsonp: scriptAccept,\r\n script: scriptAccept\r\n };\r\n extendFromObject(accepts, options.accepts, true);\r\n return accepts[dataType] ? accepts[dataType] + (\"*\" !== dataType ? \", */*; q=0.01\" : \"\") : accepts[\"*\"]\r\n};\r\nvar getContentTypeHeader = function(options) {\r\n var defaultContentType;\r\n if (options.data && !options.upload && \"GET\" !== getMethod(options)) {\r\n defaultContentType = \"application/x-www-form-urlencoded;charset=utf-8\"\r\n }\r\n return options.contentType || defaultContentType\r\n};\r\nvar getDataFromResponse = function(xhr) {\r\n return xhr.responseType && \"text\" !== xhr.responseType || \"string\" !== typeof xhr.responseText ? xhr.response : xhr.responseText\r\n};\r\nvar postProcess = function(deferred, xhr, dataType) {\r\n var data = getDataFromResponse(xhr);\r\n switch (dataType) {\r\n case \"jsonp\":\r\n evalScript(data);\r\n break;\r\n case \"script\":\r\n evalScript(data);\r\n deferred.resolve(data, SUCCESS, xhr);\r\n break;\r\n case \"json\":\r\n try {\r\n deferred.resolve(JSON.parse(data), SUCCESS, xhr)\r\n } catch (e) {\r\n deferred.reject(xhr, PARSER_ERROR, e)\r\n }\r\n break;\r\n default:\r\n deferred.resolve(data, SUCCESS, xhr)\r\n }\r\n};\r\nvar isCrossDomain = function(url) {\r\n if (!hasWindow()) {\r\n return true\r\n }\r\n var crossDomain = false;\r\n var originAnchor = domAdapter.createElement(\"a\");\r\n var urlAnchor = domAdapter.createElement(\"a\");\r\n originAnchor.href = window.location.href;\r\n try {\r\n urlAnchor.href = url;\r\n urlAnchor.href = urlAnchor.href;\r\n crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !== urlAnchor.protocol + \"//\" + urlAnchor.host\r\n } catch (e) {\r\n crossDomain = true\r\n }\r\n return crossDomain\r\n};\r\nvar setHttpTimeout = function(timeout, xhr) {\r\n return timeout && setTimeout((function() {\r\n xhr.customStatus = TIMEOUT;\r\n xhr.abort()\r\n }), timeout)\r\n};\r\nvar getJsonpOptions = function(options) {\r\n if (\"jsonp\" === options.dataType) {\r\n var random = Math.random().toString().replace(/\\D/g, \"\");\r\n var callbackName = options.jsonpCallback || \"dxCallback\" + Date.now() + \"_\" + random;\r\n var callbackParameter = options.jsonp || \"callback\";\r\n options.data = options.data || {};\r\n options.data[callbackParameter] = callbackName;\r\n return callbackName\r\n }\r\n};\r\nvar getRequestOptions = function(options, headers) {\r\n var params = options.data;\r\n var paramsAlreadyString = \"string\" === typeof params;\r\n var url = options.url || window.location.href;\r\n if (!paramsAlreadyString && !options.cache) {\r\n params = params || {};\r\n params._ = Date.now()\r\n }\r\n if (params && !options.upload) {\r\n if (!paramsAlreadyString) {\r\n params = paramsConvert(params)\r\n }\r\n if (\"GET\" === getMethod(options)) {\r\n if (\"\" !== params) {\r\n url += (url.indexOf(\"?\") > -1 ? \"&\" : \"?\") + params\r\n }\r\n params = null\r\n } else if (headers[\"Content-Type\"] && headers[\"Content-Type\"].indexOf(\"application/x-www-form-urlencoded\") > -1) {\r\n params = params.replace(/%20/g, \"+\")\r\n }\r\n }\r\n return {\r\n url: url,\r\n parameters: params\r\n }\r\n};\r\n\r\nfunction getMethod(options) {\r\n return (options.method || \"GET\").toUpperCase()\r\n}\r\nvar getRequestHeaders = function(options) {\r\n var headers = options.headers || {};\r\n headers[\"Content-Type\"] = headers[\"Content-Type\"] || getContentTypeHeader(options);\r\n headers.Accept = headers.Accept || getAcceptHeader(options);\r\n if (!options.crossDomain && !headers[\"X-Requested-With\"]) {\r\n headers[\"X-Requested-With\"] = \"XMLHttpRequest\"\r\n }\r\n return headers\r\n};\r\nvar sendRequest = function(options) {\r\n var xhr = httpRequest.getXhr();\r\n var d = new Deferred;\r\n var result = d.promise();\r\n var async = isDefined(options.async) ? options.async : true;\r\n var dataType = options.dataType;\r\n var timeout = options.timeout || 0;\r\n var timeoutId;\r\n options.crossDomain = isCrossDomain(options.url);\r\n var needScriptEvaluation = \"jsonp\" === dataType || \"script\" === dataType;\r\n if (void 0 === options.cache) {\r\n options.cache = !needScriptEvaluation\r\n }\r\n var callbackName = getJsonpOptions(options);\r\n var headers = getRequestHeaders(options);\r\n var requestOptions = getRequestOptions(options, headers);\r\n var url = requestOptions.url;\r\n var parameters = requestOptions.parameters;\r\n if (callbackName) {\r\n window[callbackName] = function(data) {\r\n d.resolve(data, SUCCESS, xhr)\r\n }\r\n }\r\n if (options.crossDomain && needScriptEvaluation) {\r\n evalCrossDomainScript(url).then((function() {\r\n if (\"jsonp\" === dataType) {\r\n return\r\n }\r\n d.resolve(null, SUCCESS, xhr)\r\n }), (function() {\r\n d.reject(xhr, ERROR)\r\n }));\r\n return result\r\n }\r\n if (options.crossDomain && !(\"withCredentials\" in xhr)) {\r\n d.reject(xhr, ERROR);\r\n return result\r\n }\r\n xhr.open(getMethod(options), url, async, options.username, options.password);\r\n if (async) {\r\n xhr.timeout = timeout;\r\n timeoutId = setHttpTimeout(timeout, xhr, d)\r\n }\r\n xhr.onreadystatechange = function(e) {\r\n if (4 === xhr.readyState) {\r\n clearTimeout(timeoutId);\r\n if (isStatusSuccess(xhr.status)) {\r\n if (hasContent(xhr.status)) {\r\n postProcess(d, xhr, dataType)\r\n } else {\r\n d.resolve(null, NO_CONTENT, xhr)\r\n }\r\n } else {\r\n d.reject(xhr, xhr.customStatus || ERROR)\r\n }\r\n }\r\n };\r\n if (options.upload) {\r\n xhr.upload.onprogress = options.upload.onprogress;\r\n xhr.upload.onloadstart = options.upload.onloadstart;\r\n xhr.upload.onabort = options.upload.onabort\r\n }\r\n if (options.xhrFields) {\r\n for (var field in options.xhrFields) {\r\n xhr[field] = options.xhrFields[field]\r\n }\r\n }\r\n if (\"arraybuffer\" === options.responseType) {\r\n xhr.responseType = options.responseType\r\n }\r\n for (var name in headers) {\r\n if (Object.prototype.hasOwnProperty.call(headers, name) && isDefined(headers[name])) {\r\n xhr.setRequestHeader(name, headers[name])\r\n }\r\n }\r\n if (options.beforeSend) {\r\n options.beforeSend(xhr)\r\n }\r\n xhr.send(parameters);\r\n result.abort = function() {\r\n xhr.abort()\r\n };\r\n return result\r\n};\r\nexport default injector({\r\n sendRequest: sendRequest\r\n});\r\n","/**\r\n * DevExtreme (esm/events/short.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"./core/events_engine\";\r\nimport KeyboardProcessor from \"./core/keyboard_processor\";\r\nimport {\r\n addNamespace as pureAddNamespace\r\n} from \"./utils/index\";\r\n\r\nfunction addNamespace(event, namespace) {\r\n return namespace ? pureAddNamespace(event, namespace) : event\r\n}\r\n\r\nfunction executeAction(action, args) {\r\n return \"function\" === typeof action ? action(args) : action.execute(args)\r\n}\r\nexport var active = {\r\n on: ($el, active, inactive, opts) => {\r\n var {\r\n selector: selector,\r\n showTimeout: showTimeout,\r\n hideTimeout: hideTimeout,\r\n namespace: namespace\r\n } = opts;\r\n eventsEngine.on($el, addNamespace(\"dxactive\", namespace), selector, {\r\n timeout: showTimeout\r\n }, event => executeAction(active, {\r\n event: event,\r\n element: event.currentTarget\r\n }));\r\n eventsEngine.on($el, addNamespace(\"dxinactive\", namespace), selector, {\r\n timeout: hideTimeout\r\n }, event => executeAction(inactive, {\r\n event: event,\r\n element: event.currentTarget\r\n }))\r\n },\r\n off: ($el, _ref) => {\r\n var {\r\n namespace: namespace,\r\n selector: selector\r\n } = _ref;\r\n eventsEngine.off($el, addNamespace(\"dxactive\", namespace), selector);\r\n eventsEngine.off($el, addNamespace(\"dxinactive\", namespace), selector)\r\n }\r\n};\r\nexport var resize = {\r\n on: function($el, resize) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(\"dxresize\", namespace), resize)\r\n },\r\n off: function($el) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n eventsEngine.off($el, addNamespace(\"dxresize\", namespace))\r\n }\r\n};\r\nexport var hover = {\r\n on: ($el, start, end, _ref2) => {\r\n var {\r\n selector: selector,\r\n namespace: namespace\r\n } = _ref2;\r\n eventsEngine.on($el, addNamespace(\"dxhoverend\", namespace), selector, event => end(event));\r\n eventsEngine.on($el, addNamespace(\"dxhoverstart\", namespace), selector, event => executeAction(start, {\r\n element: event.target,\r\n event: event\r\n }))\r\n },\r\n off: ($el, _ref3) => {\r\n var {\r\n selector: selector,\r\n namespace: namespace\r\n } = _ref3;\r\n eventsEngine.off($el, addNamespace(\"dxhoverstart\", namespace), selector);\r\n eventsEngine.off($el, addNamespace(\"dxhoverend\", namespace), selector)\r\n }\r\n};\r\nexport var visibility = {\r\n on: ($el, shown, hiding, _ref4) => {\r\n var {\r\n namespace: namespace\r\n } = _ref4;\r\n eventsEngine.on($el, addNamespace(\"dxhiding\", namespace), hiding);\r\n eventsEngine.on($el, addNamespace(\"dxshown\", namespace), shown)\r\n },\r\n off: ($el, _ref5) => {\r\n var {\r\n namespace: namespace\r\n } = _ref5;\r\n eventsEngine.off($el, addNamespace(\"dxhiding\", namespace));\r\n eventsEngine.off($el, addNamespace(\"dxshown\", namespace))\r\n }\r\n};\r\nexport var focus = {\r\n on: ($el, focusIn, focusOut, _ref6) => {\r\n var {\r\n namespace: namespace\r\n } = _ref6;\r\n eventsEngine.on($el, addNamespace(\"focusin\", namespace), focusIn);\r\n eventsEngine.on($el, addNamespace(\"focusout\", namespace), focusOut)\r\n },\r\n off: ($el, _ref7) => {\r\n var {\r\n namespace: namespace\r\n } = _ref7;\r\n eventsEngine.off($el, addNamespace(\"focusin\", namespace));\r\n eventsEngine.off($el, addNamespace(\"focusout\", namespace))\r\n },\r\n trigger: $el => eventsEngine.trigger($el, \"focus\")\r\n};\r\nexport var dxClick = {\r\n on: function($el, click) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(\"dxclick\", namespace), click)\r\n },\r\n off: function($el) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n eventsEngine.off($el, addNamespace(\"dxclick\", namespace))\r\n }\r\n};\r\nexport var click = {\r\n on: function($el, click) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(\"click\", namespace), click)\r\n },\r\n off: function($el) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n eventsEngine.off($el, addNamespace(\"click\", namespace))\r\n }\r\n};\r\nvar index = 0;\r\nvar keyboardProcessors = {};\r\nvar generateListenerId = () => \"keyboardProcessorId\".concat(index++);\r\nexport var keyboard = {\r\n on: (element, focusTarget, handler) => {\r\n var listenerId = generateListenerId();\r\n keyboardProcessors[listenerId] = new KeyboardProcessor({\r\n element: element,\r\n focusTarget: focusTarget,\r\n handler: handler\r\n });\r\n return listenerId\r\n },\r\n off: listenerId => {\r\n if (listenerId && keyboardProcessors[listenerId]) {\r\n keyboardProcessors[listenerId].dispose();\r\n delete keyboardProcessors[listenerId]\r\n }\r\n },\r\n _getProcessor: listenerId => keyboardProcessors[listenerId]\r\n};\r\n","/**\r\n * DevExtreme (esm/core/action.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 getWindow\r\n} from \"./utils/window\";\r\nimport {\r\n isPlainObject,\r\n isFunction\r\n} from \"./utils/type\";\r\nimport {\r\n each\r\n} from \"./utils/iterator\";\r\nexport default class Action {\r\n constructor(action, config) {\r\n config = config || {};\r\n this._action = action;\r\n this._context = config.context || getWindow();\r\n this._beforeExecute = config.beforeExecute;\r\n this._afterExecute = config.afterExecute;\r\n this._component = config.component;\r\n this._validatingTargetName = config.validatingTargetName;\r\n var excludeValidators = this._excludeValidators = {};\r\n if (config.excludeValidators) {\r\n for (var i = 0; i < config.excludeValidators.length; i++) {\r\n excludeValidators[config.excludeValidators[i]] = true\r\n }\r\n }\r\n }\r\n execute() {\r\n var e = {\r\n action: this._action,\r\n args: Array.prototype.slice.call(arguments),\r\n context: this._context,\r\n component: this._component,\r\n validatingTargetName: this._validatingTargetName,\r\n cancel: false,\r\n handled: false\r\n };\r\n var beforeExecute = this._beforeExecute;\r\n var afterExecute = this._afterExecute;\r\n var argsBag = e.args[0] || {};\r\n if (!this._validateAction(e)) {\r\n return\r\n }\r\n null === beforeExecute || void 0 === beforeExecute ? void 0 : beforeExecute.call(this._context, e);\r\n if (e.cancel) {\r\n return\r\n }\r\n var result = this._executeAction(e);\r\n if (argsBag.cancel) {\r\n return\r\n }\r\n null === afterExecute || void 0 === afterExecute ? void 0 : afterExecute.call(this._context, e);\r\n return result\r\n }\r\n _validateAction(e) {\r\n var excludeValidators = this._excludeValidators;\r\n var {\r\n executors: executors\r\n } = Action;\r\n for (var name in executors) {\r\n if (!excludeValidators[name]) {\r\n var _executor$validate;\r\n var executor = executors[name];\r\n null === (_executor$validate = executor.validate) || void 0 === _executor$validate ? void 0 : _executor$validate.call(executor, e);\r\n if (e.cancel) {\r\n return false\r\n }\r\n }\r\n }\r\n return true\r\n }\r\n _executeAction(e) {\r\n var result;\r\n var {\r\n executors: executors\r\n } = Action;\r\n for (var name in executors) {\r\n var _executor$execute;\r\n var executor = executors[name];\r\n null === (_executor$execute = executor.execute) || void 0 === _executor$execute ? void 0 : _executor$execute.call(executor, e);\r\n if (e.handled) {\r\n result = e.result;\r\n break\r\n }\r\n }\r\n return result\r\n }\r\n static registerExecutor(name, executor) {\r\n if (isPlainObject(name)) {\r\n each(name, Action.registerExecutor);\r\n return\r\n }\r\n Action.executors[name] = executor\r\n }\r\n static unregisterExecutor() {\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 each(args, (function() {\r\n delete Action.executors[this]\r\n }))\r\n }\r\n}\r\nAction.executors = {};\r\nvar createValidatorByTargetElement = condition => e => {\r\n if (!e.args.length) {\r\n return\r\n }\r\n var args = e.args[0];\r\n var element = args[e.validatingTargetName] || args.element;\r\n if (element && condition($(element))) {\r\n e.cancel = true\r\n }\r\n};\r\nAction.registerExecutor({\r\n disabled: {\r\n validate: createValidatorByTargetElement($target => $target.is(\".dx-state-disabled, .dx-state-disabled *\"))\r\n },\r\n readOnly: {\r\n validate: createValidatorByTargetElement($target => $target.is(\".dx-state-readonly, .dx-state-readonly *:not(.dx-state-independent)\"))\r\n },\r\n undefined: {\r\n execute: e => {\r\n if (!e.action) {\r\n e.result = void 0;\r\n e.handled = true\r\n }\r\n }\r\n },\r\n func: {\r\n execute: e => {\r\n if (isFunction(e.action)) {\r\n e.result = e.action.call(e.context, e.args[0]);\r\n e.handled = true\r\n }\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/data/errors.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errorUtils from \"../core/utils/error\";\r\nimport coreErrors from \"../core/errors\";\r\nexport var errors = errorUtils(coreErrors.ERROR_MESSAGES, {\r\n E4000: \"[DevExpress.data]: {0}\",\r\n E4001: \"Unknown aggregating function is detected: '{0}'\",\r\n E4002: \"Unsupported OData protocol version is used\",\r\n E4003: \"Unknown filter operation is used: {0}\",\r\n E4004: \"The thenby() method is called before the sortby() method\",\r\n E4005: \"Store requires a key expression for this operation\",\r\n E4006: \"ArrayStore 'data' option must be an array\",\r\n E4007: \"Compound keys cannot be auto-generated\",\r\n E4008: \"Attempt to insert an item with a duplicated key\",\r\n E4009: \"Data item cannot be found\",\r\n E4010: \"CustomStore does not support creating queries\",\r\n E4011: \"Custom Store method is not implemented or is not a function: {0}\",\r\n E4012: \"Custom Store method returns an invalid value: {0}\",\r\n E4013: \"Local Store requires the 'name' configuration option is specified\",\r\n E4014: \"Unknown data type is specified for ODataStore: {0}\",\r\n E4015: \"Unknown entity name or alias is used: {0}\",\r\n E4016: \"The compileSetter(expr) method is called with 'self' passed as a parameter\",\r\n E4017: \"Keys cannot be modified\",\r\n E4018: \"The server has returned a non-numeric value in a response to an item count request\",\r\n E4019: \"Mixing of group operators inside a single group of filter expression is not allowed\",\r\n E4020: \"Unknown store type is detected: {0}\",\r\n E4021: \"The server response does not provide the totalCount value\",\r\n E4022: \"The server response does not provide the groupCount value\",\r\n E4023: \"Could not parse the following XML: {0}\",\r\n E4024: \"String function {0} cannot be used with the data field {1} of type {2}.\",\r\n W4000: \"Data returned from the server has an incorrect structure\",\r\n W4001: 'The {0} field is listed in both \"keyType\" and \"fieldTypes\". The value of \"fieldTypes\" is used.',\r\n W4002: \"Data loading has failed for some cells due to the following error: {0}\"\r\n});\r\nexport var errorHandler = null;\r\nexport var handleError = function(error) {\r\n var _errorHandler;\r\n null === (_errorHandler = errorHandler) || void 0 === _errorHandler ? void 0 : _errorHandler(error)\r\n};\r\nexport var setErrorHandler = handler => errorHandler = handler;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/utils.caret.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport devices from \"../../core/devices\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nvar {\r\n ios: ios,\r\n mac: mac\r\n} = devices.real();\r\nvar isFocusingOnCaretChange = ios || mac;\r\nvar getCaret = function(input) {\r\n var range;\r\n try {\r\n range = {\r\n start: input.selectionStart,\r\n end: input.selectionEnd\r\n }\r\n } catch (e) {\r\n range = {\r\n start: 0,\r\n end: 0\r\n }\r\n }\r\n return range\r\n};\r\nvar setCaret = function(input, position) {\r\n var body = domAdapter.getBody();\r\n if (!body.contains(input) && !body.contains(input.getRootNode().host)) {\r\n return\r\n }\r\n try {\r\n input.selectionStart = position.start;\r\n input.selectionEnd = position.end\r\n } catch (e) {}\r\n};\r\nvar caret = function(input, position) {\r\n var force = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : false;\r\n input = $(input).get(0);\r\n if (!isDefined(position)) {\r\n return getCaret(input)\r\n }\r\n if (!force && isFocusingOnCaretChange && domAdapter.getActiveElement(input) !== input) {\r\n return\r\n }\r\n setCaret(input, position)\r\n};\r\nexport default caret;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/utils.support.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 devices from \"../../core/devices\";\r\n\r\nfunction isModernAndroidDevice() {\r\n var {\r\n android: android,\r\n version: version\r\n } = devices.real();\r\n return android && version[0] > 4\r\n}\r\nexport function isInputEventsL2Supported() {\r\n return \"onbeforeinput\" in domAdapter.createElement(\"input\") || isModernAndroidDevice()\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.mask.rule.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar EMPTY_CHAR = \" \";\r\nvar BaseMaskRule = Class.inherit({\r\n ctor: function(config) {\r\n this._value = EMPTY_CHAR;\r\n extend(this, config)\r\n },\r\n next: function(rule) {\r\n if (!arguments.length) {\r\n return this._next\r\n }\r\n this._next = rule\r\n },\r\n text: noop,\r\n value: noop,\r\n rawValue: noop,\r\n handle: noop,\r\n _prepareHandlingArgs: function(args, config) {\r\n var _config$str, _config$start, _config$length;\r\n config = config || {};\r\n var handlingProperty = Object.prototype.hasOwnProperty.call(args, \"value\") ? \"value\" : \"text\";\r\n args[handlingProperty] = null !== (_config$str = config.str) && void 0 !== _config$str ? _config$str : args[handlingProperty];\r\n args.start = null !== (_config$start = config.start) && void 0 !== _config$start ? _config$start : args.start;\r\n args.length = null !== (_config$length = config.length) && void 0 !== _config$length ? _config$length : args.length;\r\n args.index = args.index + 1;\r\n return args\r\n },\r\n reset: noop,\r\n clear: noop,\r\n first: function(index) {\r\n index = index || 0;\r\n return this.next().first(index + 1)\r\n },\r\n isAccepted: function() {\r\n return false\r\n },\r\n adjustedCaret: function(caret, isForwardDirection, char) {\r\n return isForwardDirection ? this._adjustedForward(caret, 0, char) : this._adjustedBackward(caret, 0, char)\r\n },\r\n _adjustedForward: noop,\r\n _adjustedBackward: noop,\r\n isValid: noop\r\n});\r\nexport var EmptyMaskRule = BaseMaskRule.inherit({\r\n next: noop,\r\n handle: function() {\r\n return 0\r\n },\r\n text: function() {\r\n return \"\"\r\n },\r\n value: function() {\r\n return \"\"\r\n },\r\n first: function() {\r\n return 0\r\n },\r\n rawValue: function() {\r\n return \"\"\r\n },\r\n adjustedCaret: function() {\r\n return 0\r\n },\r\n isValid: function() {\r\n return true\r\n }\r\n});\r\nexport var MaskRule = BaseMaskRule.inherit({\r\n text: function() {\r\n return (this._value !== EMPTY_CHAR ? this._value : this.maskChar) + this.next().text()\r\n },\r\n value: function() {\r\n return this._value + this.next().value()\r\n },\r\n rawValue: function() {\r\n return this._value + this.next().rawValue()\r\n },\r\n handle: function(args) {\r\n var str = Object.prototype.hasOwnProperty.call(args, \"value\") ? args.value : args.text;\r\n if (!str || !str.length || !args.length) {\r\n return 0\r\n }\r\n if (args.start) {\r\n return this.next().handle(this._prepareHandlingArgs(args, {\r\n start: args.start - 1\r\n }))\r\n }\r\n var char = str[0];\r\n var rest = str.substring(1);\r\n this._tryAcceptChar(char, args);\r\n return this._accepted() ? this.next().handle(this._prepareHandlingArgs(args, {\r\n str: rest,\r\n length: args.length - 1\r\n })) + 1 : this.handle(this._prepareHandlingArgs(args, {\r\n str: rest,\r\n length: args.length - 1\r\n }))\r\n },\r\n clear: function(args) {\r\n this._tryAcceptChar(EMPTY_CHAR, args);\r\n this.next().clear(this._prepareHandlingArgs(args))\r\n },\r\n reset: function() {\r\n this._accepted(false);\r\n this.next().reset()\r\n },\r\n _tryAcceptChar: function(char, args) {\r\n this._accepted(false);\r\n if (!this._isAllowed(char, args)) {\r\n return\r\n }\r\n var acceptedChar = char === EMPTY_CHAR ? this.maskChar : char;\r\n args.fullText = args.fullText.substring(0, args.index) + acceptedChar + args.fullText.substring(args.index + 1);\r\n this._accepted(true);\r\n this._value = char\r\n },\r\n _accepted: function(value) {\r\n if (!arguments.length) {\r\n return !!this._isAccepted\r\n }\r\n this._isAccepted = !!value\r\n },\r\n first: function(index) {\r\n return this._value === EMPTY_CHAR ? index || 0 : this.callBase(index)\r\n },\r\n _isAllowed: function(char, args) {\r\n if (char === EMPTY_CHAR) {\r\n return true\r\n }\r\n return this._isValid(char, args)\r\n },\r\n _isValid: function(char, args) {\r\n var allowedChars = this.allowedChars;\r\n if (allowedChars instanceof RegExp) {\r\n return allowedChars.test(char)\r\n }\r\n if (isFunction(allowedChars)) {\r\n return allowedChars(char, args.index, args.fullText)\r\n }\r\n if (Array.isArray(allowedChars)) {\r\n return allowedChars.includes(char)\r\n }\r\n return allowedChars === char\r\n },\r\n isAccepted: function(caret) {\r\n return 0 === caret ? this._accepted() : this.next().isAccepted(caret - 1)\r\n },\r\n _adjustedForward: function(caret, index, char) {\r\n if (index >= caret) {\r\n return index\r\n }\r\n return this.next()._adjustedForward(caret, index + 1, char) || index + 1\r\n },\r\n _adjustedBackward: function(caret, index) {\r\n if (index >= caret - 1) {\r\n return caret\r\n }\r\n return this.next()._adjustedBackward(caret, index + 1) || index + 1\r\n },\r\n isValid: function(args) {\r\n return this._isValid(this._value, args) && this.next().isValid(this._prepareHandlingArgs(args))\r\n }\r\n});\r\nexport var StubMaskRule = MaskRule.inherit({\r\n value: function() {\r\n return this.next().value()\r\n },\r\n handle: function(args) {\r\n var hasValueProperty = Object.prototype.hasOwnProperty.call(args, \"value\");\r\n var str = hasValueProperty ? args.value : args.text;\r\n if (!str.length || !args.length) {\r\n return 0\r\n }\r\n if (args.start || hasValueProperty) {\r\n return this.next().handle(this._prepareHandlingArgs(args, {\r\n start: args.start && args.start - 1\r\n }))\r\n }\r\n var char = str[0];\r\n var rest = str.substring(1);\r\n this._tryAcceptChar(char);\r\n var nextArgs = this._isAllowed(char) ? this._prepareHandlingArgs(args, {\r\n str: rest,\r\n length: args.length - 1\r\n }) : args;\r\n return this.next().handle(nextArgs) + 1\r\n },\r\n clear: function(args) {\r\n this._accepted(false);\r\n this.next().clear(this._prepareHandlingArgs(args))\r\n },\r\n _tryAcceptChar: function(char) {\r\n this._accepted(this._isValid(char))\r\n },\r\n _isValid: function(char) {\r\n return char === this.maskChar\r\n },\r\n first: function(index) {\r\n index = index || 0;\r\n return this.next().first(index + 1)\r\n },\r\n _adjustedForward: function(caret, index, char) {\r\n if (index >= caret && char === this.maskChar) {\r\n return index\r\n }\r\n if (caret === index + 1 && this._accepted()) {\r\n return caret\r\n }\r\n return this.next()._adjustedForward(caret, index + 1, char)\r\n },\r\n _adjustedBackward: function(caret, index) {\r\n if (index >= caret - 1) {\r\n return 0\r\n }\r\n return this.next()._adjustedBackward(caret, index + 1)\r\n },\r\n isValid: function(args) {\r\n return this.next().isValid(this._prepareHandlingArgs(args))\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.clear.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport TextEditorButton from \"./texteditor_button_collection/button\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointer from \"../../events/pointer\";\r\nimport {\r\n name as click\r\n} from \"../../events/click\";\r\nvar pointerDown = pointer.down;\r\nvar STATE_INVISIBLE_CLASS = \"dx-state-invisible\";\r\nvar TEXTEDITOR_CLEAR_BUTTON_CLASS = \"dx-clear-button-area\";\r\nvar TEXTEDITOR_CLEAR_ICON_CLASS = \"dx-icon-clear\";\r\nvar TEXTEDITOR_ICON_CLASS = \"dx-icon\";\r\nvar TEXTEDITOR_SHOW_CLEAR_BUTTON_CLASS = \"dx-show-clear-button\";\r\nexport default class ClearButton extends TextEditorButton {\r\n _create() {\r\n var $element = $(\"\").addClass(TEXTEDITOR_CLEAR_BUTTON_CLASS).append($(\"\").addClass(TEXTEDITOR_ICON_CLASS).addClass(TEXTEDITOR_CLEAR_ICON_CLASS));\r\n this._addToContainer($element);\r\n this.update(true);\r\n return {\r\n instance: $element,\r\n $element: $element\r\n }\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return editor._isClearButtonVisible()\r\n }\r\n _attachEvents(instance, $button) {\r\n var {\r\n editor: editor\r\n } = this;\r\n var editorName = editor.NAME;\r\n eventsEngine.on($button, addNamespace(pointerDown, editorName), e => {\r\n e.preventDefault();\r\n if (\"mouse\" !== e.pointerType) {\r\n editor._clearValueHandler(e)\r\n }\r\n });\r\n eventsEngine.on($button, addNamespace(click, editorName), e => editor._clearValueHandler(e))\r\n }\r\n _legacyRender($editor, isVisible) {\r\n $editor.toggleClass(TEXTEDITOR_SHOW_CLEAR_BUTTON_CLASS, isVisible)\r\n }\r\n update() {\r\n var rendered = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : false;\r\n !rendered && super.update();\r\n var {\r\n editor: editor,\r\n instance: instance\r\n } = this;\r\n var $editor = editor.$element();\r\n var isVisible = this._isVisible();\r\n instance && instance.toggleClass(STATE_INVISIBLE_CLASS, !isVisible);\r\n this._legacyRender($editor, isVisible)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/texteditor_button_collection/custom.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport TextEditorButton from \"./button\";\r\nimport Button from \"../../button\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n start,\r\n end\r\n} from \"../../../events/hover\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../events/click\";\r\nvar CUSTOM_BUTTON_HOVERED_CLASS = \"dx-custom-button-hovered\";\r\nexport default class CustomButton extends TextEditorButton {\r\n _attachEvents(instance, $element) {\r\n var {\r\n editor: editor\r\n } = this;\r\n eventsEngine.on($element, start, () => {\r\n editor.$element().addClass(CUSTOM_BUTTON_HOVERED_CLASS)\r\n });\r\n eventsEngine.on($element, end, () => {\r\n editor.$element().removeClass(CUSTOM_BUTTON_HOVERED_CLASS)\r\n });\r\n eventsEngine.on($element, clickEventName, e => {\r\n e.stopPropagation()\r\n })\r\n }\r\n _create() {\r\n var {\r\n editor: editor\r\n } = this;\r\n var $element = $(\"
\");\r\n this._addToContainer($element);\r\n var instance = editor._createComponent($element, Button, extend({}, this.options, {\r\n ignoreParentReadOnly: true,\r\n disabled: this._isDisabled(),\r\n integrationOptions: this._prepareIntegrationOptions(editor)\r\n }));\r\n return {\r\n $element: $element,\r\n instance: instance\r\n }\r\n }\r\n _prepareIntegrationOptions(editor) {\r\n return extend({}, editor.option(\"integrationOptions\"), {\r\n skipTemplates: [\"content\"]\r\n })\r\n }\r\n update() {\r\n var isUpdated = super.update();\r\n if (this.instance) {\r\n this.instance.option(\"disabled\", this._isDisabled())\r\n }\r\n return isUpdated\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return editor.option(\"visible\")\r\n }\r\n _isDisabled() {\r\n var isDefinedByUser = void 0 !== this.options.disabled;\r\n if (isDefinedByUser) {\r\n return this.instance ? this.instance.option(\"disabled\") : this.options.disabled\r\n } else {\r\n return this.editor.option(\"readOnly\")\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/texteditor_button_collection/index.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport CustomButton from \"./custom\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport errors from \"../../widget/ui.errors\";\r\nvar TEXTEDITOR_BUTTONS_CONTAINER_CLASS = \"dx-texteditor-buttons-container\";\r\n\r\nfunction checkButtonInfo(buttonInfo) {\r\n (() => {\r\n if (!buttonInfo || \"object\" !== typeof buttonInfo || Array.isArray(buttonInfo)) {\r\n throw errors.Error(\"E1053\")\r\n }\r\n })();\r\n (() => {\r\n if (!(\"name\" in buttonInfo)) {\r\n throw errors.Error(\"E1054\")\r\n }\r\n })();\r\n (() => {\r\n var {\r\n name: name\r\n } = buttonInfo;\r\n if (\"string\" !== typeof name) {\r\n throw errors.Error(\"E1055\")\r\n }\r\n })();\r\n (() => {\r\n var {\r\n location: location\r\n } = buttonInfo;\r\n if (\"location\" in buttonInfo && \"after\" !== location && \"before\" !== location) {\r\n buttonInfo.location = \"after\"\r\n }\r\n })()\r\n}\r\n\r\nfunction checkNamesUniqueness(existingNames, newName) {\r\n if (-1 !== existingNames.indexOf(newName)) {\r\n throw errors.Error(\"E1055\", newName)\r\n }\r\n existingNames.push(newName)\r\n}\r\n\r\nfunction isPredefinedButtonName(name, predefinedButtonsInfo) {\r\n return !!predefinedButtonsInfo.find(info => info.name === name)\r\n}\r\nexport default class TextEditorButtonCollection {\r\n constructor(editor, defaultButtonsInfo) {\r\n this.buttons = [];\r\n this.defaultButtonsInfo = defaultButtonsInfo;\r\n this.editor = editor\r\n }\r\n _compileButtonInfo(buttons) {\r\n var names = [];\r\n return buttons.map(button => {\r\n var isStringButton = \"string\" === typeof button;\r\n if (!isStringButton) {\r\n checkButtonInfo(button)\r\n }\r\n var isDefaultButton = isStringButton || isPredefinedButtonName(button.name, this.defaultButtonsInfo);\r\n if (isDefaultButton) {\r\n var defaultButtonInfo = this.defaultButtonsInfo.find(_ref => {\r\n var {\r\n name: name\r\n } = _ref;\r\n return name === button || name === button.name\r\n });\r\n if (!defaultButtonInfo) {\r\n throw errors.Error(\"E1056\", this.editor.NAME, button)\r\n }\r\n checkNamesUniqueness(names, button);\r\n return defaultButtonInfo\r\n } else {\r\n var {\r\n name: name\r\n } = button;\r\n checkNamesUniqueness(names, name);\r\n return extend(button, {\r\n Ctor: CustomButton\r\n })\r\n }\r\n })\r\n }\r\n _createButton(buttonsInfo) {\r\n var {\r\n Ctor: Ctor,\r\n options: options,\r\n name: name\r\n } = buttonsInfo;\r\n var button = new Ctor(name, this.editor, options);\r\n this.buttons.push(button);\r\n return button\r\n }\r\n _renderButtons(buttons, $container, targetLocation) {\r\n var $buttonsContainer = null;\r\n var buttonsInfo = buttons ? this._compileButtonInfo(buttons) : this.defaultButtonsInfo;\r\n buttonsInfo.forEach(buttonsInfo => {\r\n var {\r\n location: location = \"after\"\r\n } = buttonsInfo;\r\n if (location === targetLocation) {\r\n this._createButton(buttonsInfo).render((() => {\r\n $buttonsContainer = $buttonsContainer || $(\"
\").addClass(TEXTEDITOR_BUTTONS_CONTAINER_CLASS);\r\n \"before\" === targetLocation ? $container.prepend($buttonsContainer) : $container.append($buttonsContainer);\r\n return $buttonsContainer\r\n })())\r\n }\r\n });\r\n return $buttonsContainer\r\n }\r\n clean() {\r\n this.buttons.forEach(button => button.dispose());\r\n this.buttons = []\r\n }\r\n getButton(buttonName) {\r\n var button = this.buttons.find(_ref2 => {\r\n var {\r\n name: name\r\n } = _ref2;\r\n return name === buttonName\r\n });\r\n return button && button.instance\r\n }\r\n renderAfterButtons(buttons, $container) {\r\n return this._renderButtons(buttons, $container, \"after\")\r\n }\r\n renderBeforeButtons(buttons, $container) {\r\n return this._renderButtons(buttons, $container, \"before\")\r\n }\r\n updateButtons(names) {\r\n this.buttons.forEach(button => {\r\n if (!names || -1 !== names.indexOf(button.name)) {\r\n button.update()\r\n }\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.label.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Guid from \"../../core/guid\";\r\nvar TEXTEDITOR_LABEL_CLASS = \"dx-texteditor-label\";\r\nvar TEXTEDITOR_WITH_LABEL_CLASS = \"dx-texteditor-with-label\";\r\nvar TEXTEDITOR_WITH_FLOATING_LABEL_CLASS = \"dx-texteditor-with-floating-label\";\r\nvar TEXTEDITOR_WITH_BEFORE_BUTTONS_CLASS = \"dx-texteditor-with-before-buttons\";\r\nvar LABEL_BEFORE_CLASS = \"dx-label-before\";\r\nvar LABEL_CLASS = \"dx-label\";\r\nvar LABEL_AFTER_CLASS = \"dx-label-after\";\r\nclass TextEditorLabel {\r\n constructor(_ref) {\r\n var {\r\n $editor: $editor,\r\n text: text,\r\n mode: mode,\r\n mark: mark,\r\n containsButtonsBefore: containsButtonsBefore,\r\n containerWidth: containerWidth,\r\n beforeWidth: beforeWidth\r\n } = _ref;\r\n this._props = {\r\n $editor: $editor,\r\n text: text,\r\n mode: mode,\r\n mark: mark,\r\n containsButtonsBefore: containsButtonsBefore,\r\n containerWidth: containerWidth,\r\n beforeWidth: beforeWidth\r\n };\r\n this._id = \"\".concat(TEXTEDITOR_LABEL_CLASS, \"-\").concat(new Guid);\r\n this._render();\r\n this._toggleMarkupVisibility()\r\n }\r\n _isVisible() {\r\n return !!this._props.text && \"hidden\" !== this._props.mode\r\n }\r\n _render() {\r\n this._$before = $(\"
\").addClass(LABEL_BEFORE_CLASS);\r\n this._$labelSpan = $(\"\");\r\n this._$label = $(\"
\").addClass(LABEL_CLASS).append(this._$labelSpan);\r\n this._$after = $(\"
\").addClass(LABEL_AFTER_CLASS);\r\n this._$root = $(\"
\").addClass(TEXTEDITOR_LABEL_CLASS).attr(\"id\", this._id).append(this._$before).append(this._$label).append(this._$after);\r\n this._updateMark();\r\n this._updateText();\r\n this._updateBeforeWidth();\r\n this._updateMaxWidth()\r\n }\r\n _toggleMarkupVisibility() {\r\n var visible = this._isVisible();\r\n this._updateEditorBeforeButtonsClass(visible);\r\n this._updateEditorLabelClass(visible);\r\n visible ? this._$root.appendTo(this._props.$editor) : this._$root.detach()\r\n }\r\n _updateEditorLabelClass(visible) {\r\n this._props.$editor.removeClass(TEXTEDITOR_WITH_FLOATING_LABEL_CLASS).removeClass(TEXTEDITOR_WITH_LABEL_CLASS);\r\n if (visible) {\r\n var labelClass = \"floating\" === this._props.mode ? TEXTEDITOR_WITH_FLOATING_LABEL_CLASS : TEXTEDITOR_WITH_LABEL_CLASS;\r\n this._props.$editor.addClass(labelClass)\r\n }\r\n }\r\n _updateEditorBeforeButtonsClass() {\r\n var visible = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._isVisible();\r\n this._props.$editor.removeClass(TEXTEDITOR_WITH_BEFORE_BUTTONS_CLASS);\r\n if (visible) {\r\n var beforeButtonsClass = this._props.containsButtonsBefore ? TEXTEDITOR_WITH_BEFORE_BUTTONS_CLASS : \"\";\r\n this._props.$editor.addClass(beforeButtonsClass)\r\n }\r\n }\r\n _updateMark() {\r\n this._$labelSpan.attr(\"data-mark\", this._props.mark)\r\n }\r\n _updateText() {\r\n this._$labelSpan.text(this._props.text)\r\n }\r\n _updateBeforeWidth() {\r\n this._$before.css({\r\n width: this._props.beforeWidth\r\n })\r\n }\r\n _updateMaxWidth() {\r\n this._$label.css({\r\n maxWidth: this._props.containerWidth\r\n })\r\n }\r\n $element() {\r\n return this._$root\r\n }\r\n isVisible() {\r\n return this._isVisible()\r\n }\r\n getId() {\r\n if (this._isVisible()) {\r\n return this._id\r\n }\r\n }\r\n updateMode(mode) {\r\n this._props.mode = mode;\r\n this._toggleMarkupVisibility()\r\n }\r\n updateText(text) {\r\n this._props.text = text;\r\n this._updateText();\r\n this._toggleMarkupVisibility()\r\n }\r\n updateMark(mark) {\r\n this._props.mark = mark;\r\n this._updateMark()\r\n }\r\n updateContainsButtonsBefore(containsButtonsBefore) {\r\n this._props.containsButtonsBefore = containsButtonsBefore;\r\n this._updateEditorBeforeButtonsClass()\r\n }\r\n updateBeforeWidth(beforeWidth) {\r\n this._props.beforeWidth = beforeWidth;\r\n this._updateBeforeWidth()\r\n }\r\n updateMaxWidth(containerWidth) {\r\n this._props.containerWidth = containerWidth;\r\n this._updateMaxWidth()\r\n }\r\n}\r\nexport {\r\n TextEditorLabel\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.base.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n focused\r\n} from \"../widget/selectors\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n current,\r\n isMaterial\r\n} from \"../themes\";\r\nimport devices from \"../../core/devices\";\r\nimport Editor from \"../editor/editor\";\r\nimport {\r\n addNamespace,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport ClearButton from \"./ui.text_editor.clear\";\r\nimport TextEditorButtonCollection from \"./texteditor_button_collection/index\";\r\nimport config from \"../../core/config\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n TextEditorLabel\r\n} from \"./ui.text_editor.label\";\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport resizeObserverSingleton from \"../../core/resize_observer\";\r\nvar TEXTEDITOR_CLASS = \"dx-texteditor\";\r\nvar TEXTEDITOR_INPUT_CONTAINER_CLASS = \"dx-texteditor-input-container\";\r\nvar TEXTEDITOR_INPUT_CLASS = \"dx-texteditor-input\";\r\nvar TEXTEDITOR_INPUT_SELECTOR = \".\" + TEXTEDITOR_INPUT_CLASS;\r\nvar TEXTEDITOR_CONTAINER_CLASS = \"dx-texteditor-container\";\r\nvar TEXTEDITOR_BUTTONS_CONTAINER_CLASS = \"dx-texteditor-buttons-container\";\r\nvar TEXTEDITOR_PLACEHOLDER_CLASS = \"dx-placeholder\";\r\nvar TEXTEDITOR_EMPTY_INPUT_CLASS = \"dx-texteditor-empty\";\r\nvar STATE_INVISIBLE_CLASS = \"dx-state-invisible\";\r\nvar TEXTEDITOR_PENDING_INDICATOR_CLASS = \"dx-pending-indicator\";\r\nvar TEXTEDITOR_VALIDATION_PENDING_CLASS = \"dx-validation-pending\";\r\nvar TEXTEDITOR_VALID_CLASS = \"dx-valid\";\r\nvar EVENTS_LIST = [\"KeyDown\", \"KeyPress\", \"KeyUp\", \"Change\", \"Cut\", \"Copy\", \"Paste\", \"Input\"];\r\nvar CONTROL_KEYS = [\"tab\", \"enter\", \"shift\", \"control\", \"alt\", \"escape\", \"pageUp\", \"pageDown\", \"end\", \"home\", \"leftArrow\", \"upArrow\", \"rightArrow\", \"downArrow\"];\r\nvar TextEditorLabelCreator = TextEditorLabel;\r\n\r\nfunction checkButtonsOptionType(buttons) {\r\n if (isDefined(buttons) && !Array.isArray(buttons)) {\r\n throw errors.Error(\"E1053\")\r\n }\r\n}\r\nvar TextEditorBase = Editor.inherit({\r\n ctor: function(_, options) {\r\n if (options) {\r\n checkButtonsOptionType(options.buttons)\r\n }\r\n this._buttonCollection = new TextEditorButtonCollection(this, this._getDefaultButtons());\r\n this._$beforeButtonsContainer = null;\r\n this._$afterButtonsContainer = null;\r\n this._labelContainerElement = null;\r\n this.callBase.apply(this, arguments)\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n buttons: void 0,\r\n value: \"\",\r\n spellcheck: false,\r\n showClearButton: false,\r\n valueChangeEvent: \"change\",\r\n placeholder: \"\",\r\n inputAttr: {},\r\n onFocusIn: null,\r\n onFocusOut: null,\r\n onKeyDown: null,\r\n onKeyUp: null,\r\n onChange: null,\r\n onInput: null,\r\n onCut: null,\r\n onCopy: null,\r\n onPaste: null,\r\n onEnterKey: null,\r\n mode: \"text\",\r\n hoverStateEnabled: true,\r\n focusStateEnabled: true,\r\n text: void 0,\r\n displayValueFormatter: function(value) {\r\n return isDefined(value) && false !== value ? value : \"\"\r\n },\r\n stylingMode: config().editorStylingMode || \"outlined\",\r\n showValidationMark: true,\r\n label: \"\",\r\n labelMode: \"static\",\r\n labelMark: \"\"\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n var themeName = current();\r\n return this.callBase().concat([{\r\n device: function() {\r\n return isMaterial(themeName)\r\n },\r\n options: {\r\n stylingMode: config().editorStylingMode || \"filled\",\r\n labelMode: \"floating\"\r\n }\r\n }])\r\n },\r\n _getDefaultButtons: function() {\r\n return [{\r\n name: \"clear\",\r\n Ctor: ClearButton\r\n }]\r\n },\r\n _isClearButtonVisible: function() {\r\n return this.option(\"showClearButton\") && !this.option(\"readOnly\")\r\n },\r\n _input: function() {\r\n return this.$element().find(TEXTEDITOR_INPUT_SELECTOR).first()\r\n },\r\n _isFocused: function() {\r\n return focused(this._input()) || this.callBase()\r\n },\r\n _inputWrapper: function() {\r\n return this.$element()\r\n },\r\n _buttonsContainer: function() {\r\n return this._inputWrapper().find(\".\" + TEXTEDITOR_BUTTONS_CONTAINER_CLASS).eq(0)\r\n },\r\n _isControlKey: function(key) {\r\n return -1 !== CONTROL_KEYS.indexOf(key)\r\n },\r\n _renderStylingMode: function() {\r\n this.callBase();\r\n this._updateButtonsStyling(this.option(\"stylingMode\"))\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(TEXTEDITOR_CLASS);\r\n this._renderInput();\r\n this._renderStylingMode();\r\n this._renderInputType();\r\n this._renderPlaceholder();\r\n this._renderProps();\r\n this.callBase();\r\n this._renderValue();\r\n this._renderLabel()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._refreshValueChangeEvent();\r\n this._renderEvents();\r\n this._renderEnterKeyAction();\r\n this._renderEmptinessEvent()\r\n },\r\n _renderInput: function() {\r\n this._$buttonsContainer = this._$textEditorContainer = $(\"
\").addClass(TEXTEDITOR_CONTAINER_CLASS).appendTo(this.$element());\r\n this._$textEditorInputContainer = $(\"
\").addClass(TEXTEDITOR_INPUT_CONTAINER_CLASS).appendTo(this._$textEditorContainer);\r\n this._$textEditorInputContainer.append(this._createInput());\r\n this._renderButtonContainers()\r\n },\r\n _getInputContainer() {\r\n return this._$textEditorInputContainer\r\n },\r\n _renderPendingIndicator: function() {\r\n this.$element().addClass(TEXTEDITOR_VALIDATION_PENDING_CLASS);\r\n var $inputContainer = this._getInputContainer();\r\n var $indicatorElement = $(\"
\").addClass(TEXTEDITOR_PENDING_INDICATOR_CLASS).appendTo($inputContainer);\r\n this._pendingIndicator = this._createComponent($indicatorElement, LoadIndicator)\r\n },\r\n _disposePendingIndicator: function() {\r\n if (!this._pendingIndicator) {\r\n return\r\n }\r\n this._pendingIndicator.dispose();\r\n this._pendingIndicator.$element().remove();\r\n this._pendingIndicator = null;\r\n this.$element().removeClass(TEXTEDITOR_VALIDATION_PENDING_CLASS)\r\n },\r\n _renderValidationState: function() {\r\n this.callBase();\r\n var isPending = \"pending\" === this.option(\"validationStatus\");\r\n var $element = this.$element();\r\n if (isPending) {\r\n !this._pendingIndicator && this._renderPendingIndicator();\r\n this._showValidMark = false\r\n } else {\r\n if (\"invalid\" === this.option(\"validationStatus\")) {\r\n this._showValidMark = false\r\n }\r\n if (!this._showValidMark && true === this.option(\"showValidationMark\")) {\r\n this._showValidMark = \"valid\" === this.option(\"validationStatus\") && !!this._pendingIndicator\r\n }\r\n this._disposePendingIndicator()\r\n }\r\n $element.toggleClass(TEXTEDITOR_VALID_CLASS, !!this._showValidMark)\r\n },\r\n _renderButtonContainers: function() {\r\n var buttons = this.option(\"buttons\");\r\n this._$beforeButtonsContainer = this._buttonCollection.renderBeforeButtons(buttons, this._$buttonsContainer);\r\n this._$afterButtonsContainer = this._buttonCollection.renderAfterButtons(buttons, this._$buttonsContainer)\r\n },\r\n _cleanButtonContainers: function() {\r\n var _this$_$beforeButtons, _this$_$afterButtonsC;\r\n null === (_this$_$beforeButtons = this._$beforeButtonsContainer) || void 0 === _this$_$beforeButtons ? void 0 : _this$_$beforeButtons.remove();\r\n null === (_this$_$afterButtonsC = this._$afterButtonsContainer) || void 0 === _this$_$afterButtonsC ? void 0 : _this$_$afterButtonsC.remove();\r\n this._buttonCollection.clean()\r\n },\r\n _clean() {\r\n this._buttonCollection.clean();\r\n this._disposePendingIndicator();\r\n this._unobserveLabelContainerResize();\r\n this._$beforeButtonsContainer = null;\r\n this._$afterButtonsContainer = null;\r\n this._$textEditorContainer = null;\r\n this._$buttonsContainer = null;\r\n this.callBase()\r\n },\r\n _createInput: function() {\r\n var $input = $(\"\");\r\n this._applyInputAttributes($input, this.option(\"inputAttr\"));\r\n return $input\r\n },\r\n _setSubmitElementName: function(name) {\r\n var inputAttrName = this.option(\"inputAttr.name\");\r\n return this.callBase(name || inputAttrName || \"\")\r\n },\r\n _applyInputAttributes: function($input, customAttributes) {\r\n var inputAttributes = extend(this._getDefaultAttributes(), customAttributes);\r\n $input.attr(inputAttributes).addClass(TEXTEDITOR_INPUT_CLASS).css(\"minHeight\", this.option(\"height\") ? \"0\" : \"\")\r\n },\r\n _getDefaultAttributes: function() {\r\n var defaultAttributes = {\r\n autocomplete: \"off\"\r\n };\r\n var {\r\n ios: ios,\r\n mac: mac\r\n } = devices.real();\r\n if (ios || mac) {\r\n defaultAttributes.placeholder = \" \"\r\n }\r\n return defaultAttributes\r\n },\r\n _updateButtons: function(names) {\r\n this._buttonCollection.updateButtons(names)\r\n },\r\n _updateButtonsStyling: function(editorStylingMode) {\r\n each(this.option(\"buttons\"), (_, _ref) => {\r\n var {\r\n options: options,\r\n name: buttonName\r\n } = _ref;\r\n if (options && !options.stylingMode && this.option(\"visible\")) {\r\n var buttonInstance = this.getButton(buttonName);\r\n buttonInstance.option && buttonInstance.option(\"stylingMode\", \"underlined\" === editorStylingMode ? \"text\" : \"contained\")\r\n }\r\n })\r\n },\r\n _renderValue: function() {\r\n var renderInputPromise = this._renderInputValue();\r\n return renderInputPromise.promise()\r\n },\r\n _renderInputValue: function(value) {\r\n var _value;\r\n value = null !== (_value = value) && void 0 !== _value ? _value : this.option(\"value\");\r\n var text = this.option(\"text\");\r\n var displayValue = this.option(\"displayValue\");\r\n var displayValueFormatter = this.option(\"displayValueFormatter\");\r\n if (void 0 !== displayValue && null !== value) {\r\n text = displayValueFormatter(displayValue)\r\n } else if (!isDefined(text)) {\r\n text = displayValueFormatter(value)\r\n }\r\n this.option(\"text\", text);\r\n if (this._input().val() !== (isDefined(text) ? text : \"\")) {\r\n this._renderDisplayText(text)\r\n } else {\r\n this._toggleEmptinessEventHandler()\r\n }\r\n return (new Deferred).resolve()\r\n },\r\n _renderDisplayText: function(text) {\r\n this._input().val(text);\r\n this._toggleEmptinessEventHandler()\r\n },\r\n _isValueValid: function() {\r\n if (this._input().length) {\r\n var validity = this._input().get(0).validity;\r\n if (validity) {\r\n return validity.valid\r\n }\r\n }\r\n return true\r\n },\r\n _toggleEmptiness: function(isEmpty) {\r\n this.$element().toggleClass(TEXTEDITOR_EMPTY_INPUT_CLASS, isEmpty);\r\n this._togglePlaceholder(isEmpty)\r\n },\r\n _togglePlaceholder: function(isEmpty) {\r\n this.$element().find(\".\".concat(TEXTEDITOR_PLACEHOLDER_CLASS)).eq(0).toggleClass(STATE_INVISIBLE_CLASS, !isEmpty)\r\n },\r\n _renderProps: function() {\r\n this._toggleReadOnlyState();\r\n this._toggleSpellcheckState();\r\n this._toggleTabIndex()\r\n },\r\n _toggleDisabledState: function(value) {\r\n this.callBase.apply(this, arguments);\r\n var $input = this._input();\r\n $input.prop(\"disabled\", value)\r\n },\r\n _toggleTabIndex: function() {\r\n var $input = this._input();\r\n var disabled = this.option(\"disabled\");\r\n var focusStateEnabled = this.option(\"focusStateEnabled\");\r\n if (disabled || !focusStateEnabled) {\r\n $input.attr(\"tabIndex\", -1)\r\n } else {\r\n $input.removeAttr(\"tabIndex\")\r\n }\r\n },\r\n _toggleReadOnlyState: function() {\r\n this._input().prop(\"readOnly\", this._readOnlyPropValue());\r\n this.callBase()\r\n },\r\n _readOnlyPropValue: function() {\r\n return this.option(\"readOnly\")\r\n },\r\n _toggleSpellcheckState: function() {\r\n this._input().prop(\"spellcheck\", this.option(\"spellcheck\"))\r\n },\r\n _unobserveLabelContainerResize: function() {\r\n if (this._labelContainerElement) {\r\n resizeObserverSingleton.unobserve(this._labelContainerElement);\r\n this._labelContainerElement = null\r\n }\r\n },\r\n _getLabelContainer: function() {\r\n return this._input()\r\n },\r\n _getLabelContainerWidth: function() {\r\n return getWidth(this._getLabelContainer())\r\n },\r\n _getLabelBeforeWidth: function() {\r\n var buttonsBeforeWidth = this._$beforeButtonsContainer && getWidth(this._$beforeButtonsContainer);\r\n return null !== buttonsBeforeWidth && void 0 !== buttonsBeforeWidth ? buttonsBeforeWidth : 0\r\n },\r\n _updateLabelWidth: function() {\r\n this._label.updateBeforeWidth(this._getLabelBeforeWidth());\r\n this._label.updateMaxWidth(this._getLabelContainerWidth())\r\n },\r\n _setLabelContainerAria: function() {\r\n this.setAria(\"labelledby\", this._label.getId(), this._getLabelContainer())\r\n },\r\n _renderLabel: function() {\r\n this._unobserveLabelContainerResize();\r\n this._labelContainerElement = $(this._getLabelContainer()).get(0);\r\n var {\r\n label: label,\r\n labelMode: labelMode,\r\n labelMark: labelMark\r\n } = this.option();\r\n var labelConfig = {\r\n $editor: this.$element(),\r\n text: label,\r\n mark: labelMark,\r\n mode: labelMode,\r\n containsButtonsBefore: !!this._$beforeButtonsContainer,\r\n containerWidth: this._getLabelContainerWidth(),\r\n beforeWidth: this._getLabelBeforeWidth()\r\n };\r\n this._label = new TextEditorLabelCreator(labelConfig);\r\n this._setLabelContainerAria();\r\n if (this._labelContainerElement) {\r\n resizeObserverSingleton.observe(this._labelContainerElement, this._updateLabelWidth.bind(this))\r\n }\r\n },\r\n _renderPlaceholder: function() {\r\n this._renderPlaceholderMarkup();\r\n this._attachPlaceholderEvents()\r\n },\r\n _renderPlaceholderMarkup: function() {\r\n if (this._$placeholder) {\r\n this._$placeholder.remove();\r\n this._$placeholder = null\r\n }\r\n var $input = this._input();\r\n var placeholderText = this.option(\"placeholder\");\r\n var $placeholder = this._$placeholder = $(\"
\").attr(\"data-dx_placeholder\", placeholderText);\r\n $placeholder.insertAfter($input);\r\n $placeholder.addClass(TEXTEDITOR_PLACEHOLDER_CLASS)\r\n },\r\n _attachPlaceholderEvents: function() {\r\n var startEvent = addNamespace(pointerEvents.up, this.NAME);\r\n eventsEngine.on(this._$placeholder, startEvent, () => {\r\n eventsEngine.trigger(this._input(), \"focus\")\r\n });\r\n this._toggleEmptinessEventHandler()\r\n },\r\n _placeholder: function() {\r\n return this._$placeholder || $()\r\n },\r\n _clearValueHandler: function(e) {\r\n var $input = this._input();\r\n e.stopPropagation();\r\n this._saveValueChangeEvent(e);\r\n this._clearValue();\r\n !this._isFocused() && eventsEngine.trigger($input, \"focus\");\r\n eventsEngine.trigger($input, \"input\")\r\n },\r\n _clearValue: function() {\r\n this.reset()\r\n },\r\n _renderEvents: function() {\r\n var $input = this._input();\r\n each(EVENTS_LIST, (_, event) => {\r\n if (this.hasActionSubscription(\"on\" + event)) {\r\n var action = this._createActionByOption(\"on\" + event, {\r\n excludeValidators: [\"readOnly\"]\r\n });\r\n eventsEngine.on($input, addNamespace(event.toLowerCase(), this.NAME), e => {\r\n if (this._disposed) {\r\n return\r\n }\r\n action({\r\n event: e\r\n })\r\n })\r\n }\r\n })\r\n },\r\n _refreshEvents: function() {\r\n var $input = this._input();\r\n each(EVENTS_LIST, (_, event) => {\r\n eventsEngine.off($input, addNamespace(event.toLowerCase(), this.NAME))\r\n });\r\n this._renderEvents()\r\n },\r\n _keyPressHandler: function() {\r\n this.option(\"text\", this._input().val())\r\n },\r\n _keyDownHandler: function(e) {\r\n var $input = this._input();\r\n var isCtrlEnter = e.ctrlKey && \"enter\" === normalizeKeyName(e);\r\n var isNewValue = $input.val() !== this.option(\"value\");\r\n if (isCtrlEnter && isNewValue) {\r\n eventsEngine.trigger($input, \"change\")\r\n }\r\n },\r\n _renderValueChangeEvent: function() {\r\n var keyPressEvent = addNamespace(this._renderValueEventName(), \"\".concat(this.NAME, \"TextChange\"));\r\n var valueChangeEvent = addNamespace(this.option(\"valueChangeEvent\"), \"\".concat(this.NAME, \"ValueChange\"));\r\n var keyDownEvent = addNamespace(\"keydown\", \"\".concat(this.NAME, \"TextChange\"));\r\n var $input = this._input();\r\n eventsEngine.on($input, keyPressEvent, this._keyPressHandler.bind(this));\r\n eventsEngine.on($input, valueChangeEvent, this._valueChangeEventHandler.bind(this));\r\n eventsEngine.on($input, keyDownEvent, this._keyDownHandler.bind(this))\r\n },\r\n _cleanValueChangeEvent: function() {\r\n var valueChangeNamespace = \".\".concat(this.NAME, \"ValueChange\");\r\n var textChangeNamespace = \".\".concat(this.NAME, \"TextChange\");\r\n eventsEngine.off(this._input(), valueChangeNamespace);\r\n eventsEngine.off(this._input(), textChangeNamespace)\r\n },\r\n _refreshValueChangeEvent: function() {\r\n this._cleanValueChangeEvent();\r\n this._renderValueChangeEvent()\r\n },\r\n _renderValueEventName: function() {\r\n return \"input change keypress\"\r\n },\r\n _focusTarget: function() {\r\n return this._input()\r\n },\r\n _focusEventTarget: function() {\r\n return this.element()\r\n },\r\n _isInput: function(element) {\r\n return element === this._input().get(0)\r\n },\r\n _preventNestedFocusEvent: function(event) {\r\n if (event.isDefaultPrevented()) {\r\n return true\r\n }\r\n var shouldPrevent = this._isNestedTarget(event.relatedTarget);\r\n if (\"focusin\" === event.type) {\r\n shouldPrevent = shouldPrevent && this._isNestedTarget(event.target) && !this._isInput(event.target)\r\n } else if (!shouldPrevent) {\r\n this._toggleFocusClass(false, this.$element())\r\n }\r\n shouldPrevent && event.preventDefault();\r\n return shouldPrevent\r\n },\r\n _isNestedTarget: function(target) {\r\n return !!this.$element().find(target).length\r\n },\r\n _focusClassTarget: function() {\r\n return this.$element()\r\n },\r\n _focusInHandler: function(event) {\r\n this._preventNestedFocusEvent(event);\r\n this.callBase.apply(this, arguments)\r\n },\r\n _focusOutHandler: function(event) {\r\n this._preventNestedFocusEvent(event);\r\n this.callBase.apply(this, arguments)\r\n },\r\n _toggleFocusClass: function(isFocused, $element) {\r\n this.callBase(isFocused, this._focusClassTarget($element))\r\n },\r\n _hasFocusClass: function(element) {\r\n return this.callBase($(element || this.$element()))\r\n },\r\n _renderEmptinessEvent: function() {\r\n var $input = this._input();\r\n eventsEngine.on($input, \"input blur\", this._toggleEmptinessEventHandler.bind(this))\r\n },\r\n _toggleEmptinessEventHandler: function() {\r\n var text = this._input().val();\r\n var isEmpty = (\"\" === text || null === text) && this._isValueValid();\r\n this._toggleEmptiness(isEmpty)\r\n },\r\n _valueChangeEventHandler: function(e, formattedValue) {\r\n if (this.option(\"readOnly\")) {\r\n return\r\n }\r\n this._saveValueChangeEvent(e);\r\n this.option(\"value\", arguments.length > 1 ? formattedValue : this._input().val());\r\n this._saveValueChangeEvent(void 0)\r\n },\r\n _renderEnterKeyAction: function() {\r\n this._enterKeyAction = this._createActionByOption(\"onEnterKey\", {\r\n excludeValidators: [\"readOnly\"]\r\n });\r\n eventsEngine.off(this._input(), \"keyup.onEnterKey.dxTextEditor\");\r\n eventsEngine.on(this._input(), \"keyup.onEnterKey.dxTextEditor\", this._enterKeyHandlerUp.bind(this))\r\n },\r\n _enterKeyHandlerUp: function(e) {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (\"enter\" === normalizeKeyName(e)) {\r\n this._enterKeyAction({\r\n event: e\r\n })\r\n }\r\n },\r\n _updateValue: function() {\r\n this._options.silent(\"text\", null);\r\n this._renderValue()\r\n },\r\n _dispose: function() {\r\n this._enterKeyAction = void 0;\r\n this.callBase()\r\n },\r\n _getSubmitElement: function() {\r\n return this._input()\r\n },\r\n _hasActiveElement: function() {\r\n return this._input().is(domAdapter.getActiveElement())\r\n },\r\n _optionChanged: function(args) {\r\n var {\r\n name: name,\r\n fullName: fullName,\r\n value: value\r\n } = args;\r\n var eventName = name.replace(\"on\", \"\");\r\n if (EVENTS_LIST.includes(eventName)) {\r\n this._refreshEvents();\r\n return\r\n }\r\n switch (name) {\r\n case \"valueChangeEvent\":\r\n this._refreshValueChangeEvent();\r\n this._refreshFocusEvent();\r\n this._refreshEvents();\r\n break;\r\n case \"onValueChanged\":\r\n this._createValueChangeAction();\r\n break;\r\n case \"focusStateEnabled\":\r\n this.callBase(args);\r\n this._toggleTabIndex();\r\n break;\r\n case \"spellcheck\":\r\n this._toggleSpellcheckState();\r\n break;\r\n case \"mode\":\r\n this._renderInputType();\r\n break;\r\n case \"onEnterKey\":\r\n this._renderEnterKeyAction();\r\n break;\r\n case \"placeholder\":\r\n this._renderPlaceholder();\r\n break;\r\n case \"label\":\r\n this._label.updateText(value);\r\n this._setLabelContainerAria();\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._setLabelContainerAria();\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._label.updateMaxWidth(this._getLabelContainerWidth());\r\n break;\r\n case \"readOnly\":\r\n case \"disabled\":\r\n this._updateButtons();\r\n this.callBase(args);\r\n break;\r\n case \"showClearButton\":\r\n this._updateButtons([\"clear\"]);\r\n break;\r\n case \"text\":\r\n break;\r\n case \"value\":\r\n this._updateValue();\r\n this.callBase(args);\r\n break;\r\n case \"inputAttr\":\r\n this._applyInputAttributes(this._input(), this.option(name));\r\n break;\r\n case \"stylingMode\":\r\n this._renderStylingMode();\r\n this._updateLabelWidth();\r\n break;\r\n case \"buttons\":\r\n if (fullName === name) {\r\n checkButtonsOptionType(value)\r\n }\r\n this._cleanButtonContainers();\r\n this._renderButtonContainers();\r\n this._updateButtonsStyling(this.option(\"stylingMode\"));\r\n this._updateLabelWidth();\r\n this._label.updateContainsButtonsBefore(!!this._$beforeButtonsContainer);\r\n break;\r\n case \"visible\":\r\n this.callBase(args);\r\n if (value && this.option(\"buttons\")) {\r\n this._cleanButtonContainers();\r\n this._renderButtonContainers();\r\n this._updateButtonsStyling(this.option(\"stylingMode\"))\r\n }\r\n break;\r\n case \"displayValueFormatter\":\r\n this._invalidate();\r\n break;\r\n case \"showValidationMark\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _renderInputType: function() {\r\n this._setInputType(this.option(\"mode\"))\r\n },\r\n _setInputType: function(type) {\r\n var input = this._input();\r\n if (\"search\" === type) {\r\n type = \"text\"\r\n }\r\n try {\r\n input.prop(\"type\", type)\r\n } catch (e) {\r\n input.prop(\"type\", \"text\")\r\n }\r\n },\r\n getButton(name) {\r\n return this._buttonCollection.getButton(name)\r\n },\r\n focus: function() {\r\n eventsEngine.trigger(this._input(), \"focus\")\r\n },\r\n reset: function() {\r\n if (this._showValidMark) {\r\n this._showValidMark = false;\r\n this._renderValidationState()\r\n }\r\n var defaultOptions = this._getDefaultOptions();\r\n if (this.option(\"value\") === defaultOptions.value) {\r\n this._options.silent(\"text\", \"\");\r\n this._renderValue()\r\n } else {\r\n this.option(\"value\", defaultOptions.value)\r\n }\r\n },\r\n on: function(eventName, eventHandler) {\r\n var result = this.callBase(eventName, eventHandler);\r\n var event = eventName.charAt(0).toUpperCase() + eventName.substr(1);\r\n if (EVENTS_LIST.indexOf(event) >= 0) {\r\n this._refreshEvents()\r\n }\r\n return result\r\n }\r\n});\r\nexport default TextEditorBase;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.mask.strategy.base.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport EventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n clipboardText as getClipboardText\r\n} from \"../../core/utils/dom\";\r\nvar MASK_EVENT_NAMESPACE = \"dxMask\";\r\nvar BLUR_EVENT = \"blur beforedeactivate\";\r\nvar EMPTY_CHAR = \" \";\r\nexport default class BaseMaskStrategy {\r\n constructor(editor) {\r\n this.editor = editor;\r\n this.DIRECTION = {\r\n FORWARD: \"forward\",\r\n BACKWARD: \"backward\"\r\n };\r\n this.NAME = this._getStrategyName()\r\n }\r\n _getStrategyName() {\r\n return \"base\"\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 getHandler(handlerName) {\r\n var handler = this[\"_\".concat(handlerName, \"Handler\")] || function() {};\r\n return handler.bind(this)\r\n }\r\n attachEvents() {\r\n var $input = this.editorInput();\r\n this.getHandleEventNames().forEach(eventName => {\r\n var subscriptionName = addNamespace(eventName.toLowerCase(), MASK_EVENT_NAMESPACE);\r\n EventsEngine.on($input, subscriptionName, this.getEventHandler(eventName))\r\n });\r\n this._attachChangeEventHandlers()\r\n }\r\n getHandleEventNames() {\r\n return [\"focusIn\", \"focusOut\", \"keyDown\", \"input\", \"paste\", \"cut\", \"drop\"]\r\n }\r\n getEventHandler(eventName) {\r\n return this[\"_\".concat(eventName, \"Handler\")].bind(this)\r\n }\r\n detachEvents() {\r\n EventsEngine.off(this.editorInput(), \".\".concat(MASK_EVENT_NAMESPACE))\r\n }\r\n _attachChangeEventHandlers() {\r\n if (!this.editorOption(\"valueChangeEvent\").split(\" \").includes(\"change\")) {\r\n return\r\n }\r\n EventsEngine.on(this.editorInput(), addNamespace(BLUR_EVENT, MASK_EVENT_NAMESPACE), function(e) {\r\n this._suppressCaretChanging(this._changeHandler, [e]);\r\n this._changeHandler(e)\r\n }.bind(this.editor))\r\n }\r\n _focusInHandler() {\r\n this.editor._showMaskPlaceholder();\r\n this.editor._direction(this.DIRECTION.FORWARD);\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(function() {\r\n this._caret({\r\n start: caret,\r\n end: caret\r\n })\r\n }.bind(this.editor), 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 _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(function() {\r\n this.option(\"value\", this._convertToValue(this._input().val()))\r\n }.bind(this.editor))\r\n }\r\n _clearDragTimer() {\r\n clearTimeout(this._dragTimer)\r\n }\r\n _keyDownHandler() {\r\n this._keyPressHandled = false\r\n }\r\n _pasteHandler(event) {\r\n var {\r\n editor: editor\r\n } = this;\r\n this._keyPressHandled = true;\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 this._keyPressHandled = true;\r\n if (this._isAutoFill()) {\r\n this._keyPressHandled = true;\r\n editor._maskKeyHandler(event, () => {\r\n editor._handleChain({\r\n text: inputVal,\r\n start: 0,\r\n length: inputVal.length\r\n })\r\n });\r\n editor._validateMask()\r\n }\r\n })\r\n }\r\n _isAutoFill() {\r\n var $input = this.editor._input();\r\n var result = false;\r\n if (browser.webkit) {\r\n var input = $input.get(0);\r\n result = input && input.matches(\":-webkit-autofill\")\r\n }\r\n return result\r\n }\r\n runWithoutEventProcessing(action) {\r\n var keyPressHandled = this._keyPressHandled;\r\n this._keyPressHandled = true;\r\n action();\r\n this._keyPressHandled = keyPressHandled\r\n }\r\n _backspaceHandler() {}\r\n _delHandler(event) {\r\n var {\r\n editor: editor\r\n } = this;\r\n this._keyPressHandled = true;\r\n editor._maskKeyHandler(event, () => !editor._hasSelection() && editor._handleKey(EMPTY_CHAR))\r\n }\r\n clean() {\r\n this._clearDragTimer();\r\n clearTimeout(this._backspaceHandlerTimeout);\r\n clearTimeout(this._caretTimeout);\r\n clearTimeout(this._inputHandlerTimer)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.mask.strategy.default.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport BaseMaskStrategy from \"./ui.text_editor.mask.strategy.base\";\r\nimport {\r\n getChar\r\n} from \"../../events/utils/index\";\r\nvar BACKSPACE_INPUT_TYPE = \"deleteContentBackward\";\r\nvar EMPTY_CHAR = \" \";\r\nclass DefaultMaskStrategy extends BaseMaskStrategy {\r\n _getStrategyName() {\r\n return \"default\"\r\n }\r\n getHandleEventNames() {\r\n return [...super.getHandleEventNames(), \"keyPress\"]\r\n }\r\n _keyPressHandler(event) {\r\n if (this._keyPressHandled) {\r\n return\r\n }\r\n this._keyPressHandled = true;\r\n if (this.editor._isControlKeyFired(event)) {\r\n return\r\n }\r\n var {\r\n editor: editor\r\n } = this;\r\n editor._maskKeyHandler(event, () => editor._handleKey(getChar(event)))\r\n }\r\n _inputHandler(event) {\r\n if (this._backspaceInputHandled(event.originalEvent && event.originalEvent.inputType)) {\r\n this._handleBackspaceInput(event)\r\n }\r\n if (event.originalEvent) {\r\n this._autoFillHandler(event)\r\n }\r\n if (this._keyPressHandled) {\r\n return\r\n }\r\n this._keyPressHandled = true;\r\n var inputValue = this.editorInput().val();\r\n var caret = this.editorCaret();\r\n if (!caret.end) {\r\n return\r\n }\r\n caret.start = caret.end - 1;\r\n var oldValue = inputValue.substring(0, caret.start) + inputValue.substring(caret.end);\r\n var char = inputValue[caret.start];\r\n var {\r\n editor: editor\r\n } = this;\r\n this.editorInput().val(oldValue);\r\n editor._caret({\r\n start: caret.start,\r\n end: caret.start\r\n });\r\n editor._maskKeyHandler(event, () => editor._handleKey(char))\r\n }\r\n _backspaceHandler(event) {\r\n var {\r\n editor: editor\r\n } = this;\r\n this._keyPressHandled = true;\r\n var afterBackspaceHandler = (needAdjustCaret, callBack) => {\r\n if (needAdjustCaret) {\r\n editor._direction(this.DIRECTION.FORWARD);\r\n editor._adjustCaret()\r\n }\r\n var currentCaret = this.editorCaret();\r\n return new Promise(resolve => {\r\n clearTimeout(this._backspaceHandlerTimeout);\r\n this._backspaceHandlerTimeout = setTimeout((function() {\r\n callBack(currentCaret);\r\n resolve()\r\n }))\r\n })\r\n };\r\n editor._maskKeyHandler(event, () => {\r\n if (editor._hasSelection()) {\r\n return afterBackspaceHandler(true, currentCaret => {\r\n editor._displayMask(currentCaret);\r\n editor._maskRulesChain.reset()\r\n })\r\n }\r\n if (editor._tryMoveCaretBackward()) {\r\n return afterBackspaceHandler(false, currentCaret => {\r\n this.editorCaret(currentCaret)\r\n })\r\n }\r\n editor._handleKey(EMPTY_CHAR, this.DIRECTION.BACKWARD);\r\n return afterBackspaceHandler(true, currentCaret => {\r\n editor._displayMask(currentCaret);\r\n editor._maskRulesChain.reset()\r\n })\r\n })\r\n }\r\n _backspaceInputHandled(inputType) {\r\n return inputType === BACKSPACE_INPUT_TYPE && !this._keyPressHandled\r\n }\r\n _handleBackspaceInput(event) {\r\n var {\r\n start: start,\r\n end: end\r\n } = this.editorCaret();\r\n this.editorCaret({\r\n start: start + 1,\r\n end: end + 1\r\n });\r\n this._backspaceHandler(event)\r\n }\r\n}\r\nexport default DefaultMaskStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.mask.strategy.input_events.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport BaseMaskStrategy from \"./ui.text_editor.mask.strategy.base\";\r\nvar DELETE_INPUT_TYPE = \"deleteContentBackward\";\r\nclass InputEventsMaskStrategy extends BaseMaskStrategy {\r\n _getStrategyName() {\r\n return \"inputEvents\"\r\n }\r\n getHandleEventNames() {\r\n return [...super.getHandleEventNames(), \"beforeInput\"]\r\n }\r\n _beforeInputHandler() {\r\n this._prevCaret = this.editorCaret()\r\n }\r\n _inputHandler(_ref) {\r\n var {\r\n originalEvent: originalEvent\r\n } = _ref;\r\n if (!originalEvent) {\r\n return\r\n }\r\n var {\r\n inputType: inputType,\r\n data: data\r\n } = originalEvent;\r\n var currentCaret = this.editorCaret();\r\n if (inputType === DELETE_INPUT_TYPE) {\r\n var length = this._prevCaret.end - this._prevCaret.start || 1;\r\n this.editor.setBackwardDirection();\r\n this._updateEditorMask({\r\n start: currentCaret.start,\r\n length: length,\r\n text: this._getEmptyString(length)\r\n })\r\n } else {\r\n var _this$_prevCaret, _this$_prevCaret2, _this$_prevCaret3;\r\n if (!currentCaret.end) {\r\n return\r\n }\r\n this._autoFillHandler(originalEvent);\r\n this.editorCaret(currentCaret);\r\n var _length = (null === (_this$_prevCaret = this._prevCaret) || void 0 === _this$_prevCaret ? void 0 : _this$_prevCaret.end) - (null === (_this$_prevCaret2 = this._prevCaret) || void 0 === _this$_prevCaret2 ? void 0 : _this$_prevCaret2.start);\r\n var newData = data + (_length ? this._getEmptyString(_length - data.length) : \"\");\r\n this.editor.setForwardDirection();\r\n var hasValidChars = this._updateEditorMask({\r\n start: null === (_this$_prevCaret3 = this._prevCaret) || void 0 === _this$_prevCaret3 ? void 0 : _this$_prevCaret3.start,\r\n length: _length || newData.length,\r\n text: newData\r\n });\r\n if (!hasValidChars) {\r\n this.editorCaret(this._prevCaret)\r\n }\r\n }\r\n }\r\n _getEmptyString(length) {\r\n return Array(length + 1).join(\" \")\r\n }\r\n _updateEditorMask(args) {\r\n var textLength = args.text.length;\r\n var updatedCharsCount = this.editor._handleChain(args);\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 = updatedCharsCount - textLength;\r\n if (start <= updatedCharsCount && updatedCharsCount > 1) {\r\n this.editorCaret({\r\n start: start + correction,\r\n end: end + correction\r\n })\r\n }\r\n this.editor.isForwardDirection() && this.editor._adjustCaret()\r\n }\r\n this.editor._displayMask();\r\n return !!updatedCharsCount\r\n }\r\n}\r\nexport default InputEventsMaskStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.mask.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport caretUtils from \"./utils.caret\";\r\nimport {\r\n isInputEventsL2Supported\r\n} from \"./utils.support\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n addNamespace,\r\n createEvent,\r\n isCommandKeyPressed,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n focused\r\n} from \"../widget/selectors\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isEmpty\r\n} from \"../../core/utils/string\";\r\nimport {\r\n name as wheelEventName\r\n} from \"../../events/core/wheel\";\r\nimport {\r\n EmptyMaskRule,\r\n StubMaskRule,\r\n MaskRule\r\n} from \"./ui.text_editor.mask.rule\";\r\nimport TextEditorBase from \"./ui.text_editor.base\";\r\nimport DefaultMaskStrategy from \"./ui.text_editor.mask.strategy.default\";\r\nimport InputEventsMaskStrategy from \"./ui.text_editor.mask.strategy.input_events\";\r\nvar stubCaret = function() {\r\n return {}\r\n};\r\nvar caret = caretUtils;\r\nvar EMPTY_CHAR = \" \";\r\nvar ESCAPED_CHAR = \"\\\\\";\r\nvar TEXTEDITOR_MASKED_CLASS = \"dx-texteditor-masked\";\r\nvar FORWARD_DIRECTION = \"forward\";\r\nvar BACKWARD_DIRECTION = \"backward\";\r\nvar buildInMaskRules = {\r\n 0: /[0-9]/,\r\n 9: /[0-9\\s]/,\r\n \"#\": /[-+0-9\\s]/,\r\n L: function(char) {\r\n return isLiteralChar(char)\r\n },\r\n l: function(char) {\r\n return isLiteralChar(char) || isSpaceChar(char)\r\n },\r\n C: /\\S/,\r\n c: /./,\r\n A: function(char) {\r\n return isLiteralChar(char) || isNumericChar(char)\r\n },\r\n a: function(char) {\r\n return isLiteralChar(char) || isNumericChar(char) || isSpaceChar(char)\r\n }\r\n};\r\n\r\nfunction isNumericChar(char) {\r\n return /[0-9]/.test(char)\r\n}\r\n\r\nfunction isLiteralChar(char) {\r\n var code = char.charCodeAt();\r\n return 64 < code && code < 91 || 96 < code && code < 123 || code > 127\r\n}\r\n\r\nfunction isSpaceChar(char) {\r\n return \" \" === char\r\n}\r\nvar TextEditorMask = TextEditorBase.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n mask: \"\",\r\n maskChar: \"_\",\r\n maskRules: {},\r\n maskInvalidMessage: messageLocalization.format(\"validation-mask\"),\r\n useMaskedValue: false,\r\n showMaskMode: \"always\"\r\n })\r\n },\r\n _supportedKeys: function() {\r\n var that = this;\r\n var keyHandlerMap = {\r\n backspace: that._maskStrategy.getHandler(\"backspace\"),\r\n del: that._maskStrategy.getHandler(\"del\"),\r\n enter: that._changeHandler\r\n };\r\n var result = that.callBase();\r\n each(keyHandlerMap, (function(key, callback) {\r\n var parentHandler = result[key];\r\n result[key] = function(e) {\r\n that.option(\"mask\") && callback.call(that, e);\r\n parentHandler && parentHandler(e)\r\n }\r\n }));\r\n return result\r\n },\r\n _getSubmitElement: function() {\r\n return !this.option(\"mask\") ? this.callBase() : this._$hiddenElement\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initMaskStrategy()\r\n },\r\n _initMaskStrategy: function() {\r\n this._maskStrategy = isInputEventsL2Supported() ? new InputEventsMaskStrategy(this) : new DefaultMaskStrategy(this)\r\n },\r\n _initMarkup: function() {\r\n this._renderHiddenElement();\r\n this.callBase()\r\n },\r\n _attachMouseWheelEventHandlers: function() {\r\n var hasMouseWheelHandler = this._onMouseWheel !== noop;\r\n if (!hasMouseWheelHandler) {\r\n return\r\n }\r\n var input = this._input();\r\n var eventName = addNamespace(wheelEventName, this.NAME);\r\n var mouseWheelAction = this._createAction(function(e) {\r\n var {\r\n event: event\r\n } = e;\r\n if (focused(input) && !isCommandKeyPressed(event)) {\r\n this._onMouseWheel(event);\r\n event.preventDefault();\r\n event.stopPropagation()\r\n }\r\n }.bind(this));\r\n eventsEngine.off(input, eventName);\r\n eventsEngine.on(input, eventName, (function(e) {\r\n mouseWheelAction({\r\n event: e\r\n })\r\n }))\r\n },\r\n _onMouseWheel: noop,\r\n _render: function() {\r\n this._renderMask();\r\n this.callBase();\r\n this._attachMouseWheelEventHandlers()\r\n },\r\n _renderHiddenElement: function() {\r\n if (this.option(\"mask\")) {\r\n this._$hiddenElement = $(\"\").attr(\"type\", \"hidden\").appendTo(this._inputWrapper())\r\n }\r\n },\r\n _removeHiddenElement: function() {\r\n this._$hiddenElement && this._$hiddenElement.remove()\r\n },\r\n _renderMask: function() {\r\n this.$element().removeClass(TEXTEDITOR_MASKED_CLASS);\r\n this._maskRulesChain = null;\r\n this._maskStrategy.detachEvents();\r\n if (!this.option(\"mask\")) {\r\n return\r\n }\r\n this.$element().addClass(TEXTEDITOR_MASKED_CLASS);\r\n this._maskStrategy.attachEvents();\r\n this._parseMask();\r\n this._renderMaskedValue()\r\n },\r\n _suppressCaretChanging: function(callback, args) {\r\n caret = stubCaret;\r\n try {\r\n callback.apply(this, args)\r\n } finally {\r\n caret = caretUtils\r\n }\r\n },\r\n _changeHandler: function(e) {\r\n var $input = this._input();\r\n var inputValue = $input.val();\r\n if (inputValue === this._changedValue) {\r\n return\r\n }\r\n this._changedValue = inputValue;\r\n var changeEvent = createEvent(e, {\r\n type: \"change\"\r\n });\r\n eventsEngine.trigger($input, changeEvent)\r\n },\r\n _parseMask: function() {\r\n this._maskRules = extend({}, buildInMaskRules, this.option(\"maskRules\"));\r\n this._maskRulesChain = this._parseMaskRule(0)\r\n },\r\n _parseMaskRule: function(index) {\r\n var mask = this.option(\"mask\");\r\n if (index >= mask.length) {\r\n return new EmptyMaskRule\r\n }\r\n var currentMaskChar = mask[index];\r\n var isEscapedChar = currentMaskChar === ESCAPED_CHAR;\r\n var result = isEscapedChar ? new StubMaskRule({\r\n maskChar: mask[index + 1]\r\n }) : this._getMaskRule(currentMaskChar);\r\n result.next(this._parseMaskRule(index + 1 + isEscapedChar));\r\n return result\r\n },\r\n _getMaskRule: function(pattern) {\r\n var ruleConfig;\r\n each(this._maskRules, (function(rulePattern, allowedChars) {\r\n if (rulePattern === pattern) {\r\n ruleConfig = {\r\n pattern: rulePattern,\r\n allowedChars: allowedChars\r\n };\r\n return false\r\n }\r\n }));\r\n return isDefined(ruleConfig) ? new MaskRule(extend({\r\n maskChar: this.option(\"maskChar\")\r\n }, ruleConfig)) : new StubMaskRule({\r\n maskChar: pattern\r\n })\r\n },\r\n _renderMaskedValue: function() {\r\n if (!this._maskRulesChain) {\r\n return\r\n }\r\n var value = this.option(\"value\") || \"\";\r\n this._maskRulesChain.clear(this._normalizeChainArguments());\r\n var chainArgs = {\r\n length: value.length\r\n };\r\n chainArgs[this._isMaskedValueMode() ? \"text\" : \"value\"] = value;\r\n this._handleChain(chainArgs);\r\n this._displayMask()\r\n },\r\n _replaceSelectedText: function(text, selection, char) {\r\n if (void 0 === char) {\r\n return text\r\n }\r\n var textBefore = text.slice(0, selection.start);\r\n var textAfter = text.slice(selection.end);\r\n var edited = textBefore + char + textAfter;\r\n return edited\r\n },\r\n _isMaskedValueMode: function() {\r\n return this.option(\"useMaskedValue\")\r\n },\r\n _displayMask: function(caret) {\r\n caret = caret || this._caret();\r\n this._renderValue();\r\n this._caret(caret)\r\n },\r\n _isValueEmpty: function() {\r\n return isEmpty(this._value)\r\n },\r\n _shouldShowMask: function() {\r\n var showMaskMode = this.option(\"showMaskMode\");\r\n if (\"onFocus\" === showMaskMode) {\r\n return focused(this._input()) || !this._isValueEmpty()\r\n }\r\n return true\r\n },\r\n _showMaskPlaceholder: function() {\r\n if (this._shouldShowMask()) {\r\n var text = this._maskRulesChain.text();\r\n this.option(\"text\", text);\r\n if (\"onFocus\" === this.option(\"showMaskMode\")) {\r\n this._renderDisplayText(text)\r\n }\r\n }\r\n },\r\n _renderValue: function() {\r\n if (this._maskRulesChain) {\r\n this._showMaskPlaceholder();\r\n if (this._$hiddenElement) {\r\n var value = this._maskRulesChain.value();\r\n var submitElementValue = !isEmpty(value) ? this._getPreparedValue() : \"\";\r\n this._$hiddenElement.val(submitElementValue)\r\n }\r\n }\r\n return this.callBase()\r\n },\r\n _getPreparedValue: function() {\r\n return this._convertToValue().replace(/\\s+$/, \"\")\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n if (!this._maskRulesChain) {\r\n this.callBase.apply(this, arguments);\r\n return\r\n }\r\n this._saveValueChangeEvent(e);\r\n this.option(\"value\", this._getPreparedValue())\r\n },\r\n _isControlKeyFired: function(e) {\r\n return this._isControlKey(normalizeKeyName(e)) || isCommandKeyPressed(e)\r\n },\r\n _handleChain: function(args) {\r\n var handledCount = this._maskRulesChain.handle(this._normalizeChainArguments(args));\r\n this._value = this._maskRulesChain.value();\r\n this._textValue = this._maskRulesChain.text();\r\n return handledCount\r\n },\r\n _normalizeChainArguments: function(args) {\r\n args = args || {};\r\n args.index = 0;\r\n args.fullText = this._maskRulesChain.text();\r\n return args\r\n },\r\n _convertToValue: function(text) {\r\n if (this._isMaskedValueMode()) {\r\n text = this._replaceMaskCharWithEmpty(text || this._textValue || \"\")\r\n } else {\r\n text = text || this._value || \"\"\r\n }\r\n return text\r\n },\r\n _replaceMaskCharWithEmpty: function(text) {\r\n return text.replace(new RegExp(this.option(\"maskChar\"), \"g\"), EMPTY_CHAR)\r\n },\r\n _maskKeyHandler: function(e, keyHandler) {\r\n if (this.option(\"readOnly\")) {\r\n return\r\n }\r\n this.setForwardDirection();\r\n e.preventDefault();\r\n this._handleSelection();\r\n var previousText = this._input().val();\r\n var raiseInputEvent = () => {\r\n if (previousText !== this._input().val()) {\r\n this._maskStrategy.runWithoutEventProcessing(() => eventsEngine.trigger(this._input(), \"input\"))\r\n }\r\n };\r\n var handled = keyHandler();\r\n if (handled) {\r\n handled.then(raiseInputEvent)\r\n } else {\r\n this.setForwardDirection();\r\n this._adjustCaret();\r\n this._displayMask();\r\n this._maskRulesChain.reset();\r\n raiseInputEvent()\r\n }\r\n },\r\n _handleKey: function(key, direction) {\r\n this._direction(direction || FORWARD_DIRECTION);\r\n this._adjustCaret(key);\r\n this._handleKeyChain(key);\r\n this._moveCaret()\r\n },\r\n _handleSelection: function() {\r\n if (!this._hasSelection()) {\r\n return\r\n }\r\n var caret = this._caret();\r\n var emptyChars = new Array(caret.end - caret.start + 1).join(EMPTY_CHAR);\r\n this._handleKeyChain(emptyChars)\r\n },\r\n _handleKeyChain: function(chars) {\r\n var caret = this._caret();\r\n var start = this.isForwardDirection() ? caret.start : caret.start - 1;\r\n var end = this.isForwardDirection() ? caret.end : caret.end - 1;\r\n var length = start === end ? 1 : end - start;\r\n this._handleChain({\r\n text: chars,\r\n start: start,\r\n length: length\r\n })\r\n },\r\n _tryMoveCaretBackward: function() {\r\n this.setBackwardDirection();\r\n var currentCaret = this._caret().start;\r\n this._adjustCaret();\r\n return !currentCaret || currentCaret !== this._caret().start\r\n },\r\n _adjustCaret: function(char) {\r\n var caretStart = this._caret().start;\r\n var isForwardDirection = this.isForwardDirection();\r\n var caret = this._maskRulesChain.adjustedCaret(caretStart, isForwardDirection, char);\r\n this._caret({\r\n start: caret,\r\n end: caret\r\n })\r\n },\r\n _moveCaret: function() {\r\n var currentCaret = this._caret().start;\r\n var maskRuleIndex = currentCaret + (this.isForwardDirection() ? 0 : -1);\r\n var caret = this._maskRulesChain.isAccepted(maskRuleIndex) ? currentCaret + (this.isForwardDirection() ? 1 : -1) : currentCaret;\r\n this._caret({\r\n start: caret,\r\n end: caret\r\n })\r\n },\r\n _caret: function(position, force) {\r\n var $input = this._input();\r\n if (!$input.length) {\r\n return\r\n }\r\n if (!arguments.length) {\r\n return caret($input)\r\n }\r\n caret($input, position, force)\r\n },\r\n _hasSelection: function() {\r\n var caret = this._caret();\r\n return caret.start !== caret.end\r\n },\r\n _direction: function(direction) {\r\n if (!arguments.length) {\r\n return this._typingDirection\r\n }\r\n this._typingDirection = direction\r\n },\r\n setForwardDirection: function() {\r\n this._direction(FORWARD_DIRECTION)\r\n },\r\n setBackwardDirection: function() {\r\n this._direction(BACKWARD_DIRECTION)\r\n },\r\n isForwardDirection: function() {\r\n return this._direction() === FORWARD_DIRECTION\r\n },\r\n _clean: function() {\r\n this._maskStrategy && this._maskStrategy.clean();\r\n this.callBase()\r\n },\r\n _validateMask: function() {\r\n if (!this._maskRulesChain) {\r\n return\r\n }\r\n var isValid = isEmpty(this.option(\"value\")) || this._maskRulesChain.isValid(this._normalizeChainArguments());\r\n this.option({\r\n isValid: isValid,\r\n validationError: isValid ? null : {\r\n editorSpecific: true,\r\n message: this.option(\"maskInvalidMessage\")\r\n }\r\n })\r\n },\r\n _updateHiddenElement: function() {\r\n this._removeHiddenElement();\r\n if (this.option(\"mask\")) {\r\n this._input().removeAttr(\"name\");\r\n this._renderHiddenElement()\r\n }\r\n this._setSubmitElementName(this.option(\"name\"))\r\n },\r\n _updateMaskOption: function() {\r\n this._updateHiddenElement();\r\n this._renderMask();\r\n this._validateMask()\r\n },\r\n _processEmptyMask: function(mask) {\r\n if (mask) {\r\n return\r\n }\r\n var value = this.option(\"value\");\r\n this.option({\r\n text: value,\r\n isValid: true\r\n });\r\n this.validationRequest.fire({\r\n value: value,\r\n editor: this\r\n });\r\n this._renderValue()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"mask\":\r\n this._updateMaskOption();\r\n this._processEmptyMask(args.value);\r\n break;\r\n case \"maskChar\":\r\n case \"maskRules\":\r\n case \"useMaskedValue\":\r\n this._updateMaskOption();\r\n break;\r\n case \"value\":\r\n this._renderMaskedValue();\r\n this._validateMask();\r\n this.callBase(args);\r\n this._changedValue = this._input().val();\r\n break;\r\n case \"maskInvalidMessage\":\r\n break;\r\n case \"showMaskMode\":\r\n this.option(\"text\", \"\");\r\n this._renderValue();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default TextEditorMask;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport TextEditorMask from \"./ui.text_editor.mask\";\r\nregisterComponent(\"dxTextEditor\", TextEditorMask);\r\nexport default TextEditorMask;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/base_props.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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/ui/collection/ui.collection_widget.live_update.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 CollectionWidget from \"./ui.collection_widget.edit\";\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 update,\r\n insert,\r\n indexByKey\r\n} from \"../../data/array_utils\";\r\nimport {\r\n keysEqual\r\n} from \"../../data/utils\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n findChanges\r\n} from \"../../core/utils/array_compare\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar PRIVATE_KEY_FIELD = \"__dx_key__\";\r\nexport default CollectionWidget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n repaintChangesOnly: false\r\n })\r\n },\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n this._customizeStoreLoadOptions = e => {\r\n var dataSource = this._dataSource;\r\n if (dataSource && !dataSource.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 }, this._dataSource && this._dataSource.on(\"customizeStoreLoadOptions\", this._customizeStoreLoadOptions)\r\n },\r\n reload: function() {\r\n this._correctionIndex = 0\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._refreshItemsCache();\r\n this._correctionIndex = 0\r\n },\r\n _findItemElementByKey: function(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: function(newItems, e) {\r\n if (null !== e && void 0 !== e && 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: function(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: function(item1, item2) {\r\n return this._isItemEquals(item1, item2)\r\n },\r\n _shouldAddNewGroup: function(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: function() {\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 } else {\r\n this._refreshItemsCache()\r\n }\r\n }\r\n return false\r\n },\r\n _refreshItemsCache: function() {\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: function() {\r\n this._dataSource && this._dataSource.off(\"customizeStoreLoadOptions\", this._customizeStoreLoadOptions);\r\n this.callBase()\r\n },\r\n _updateByChange: function(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: function(keyInfo, items, change, isPartialRefresh) {\r\n when(isPartialRefresh || insert(keyInfo, items, change.data, change.index)).done(() => {\r\n var _change$index;\r\n this._beforeItemElementInserted(change);\r\n var $itemContainer = this._getItemContainer(change.data);\r\n this._renderItem(null !== (_change$index = change.index) && void 0 !== _change$index ? _change$index : items.length, change.data, $itemContainer);\r\n this._afterItemElementInserted();\r\n this._correctionIndex++\r\n })\r\n },\r\n _getItemContainer: function(changeData) {\r\n return this._itemContainer()\r\n },\r\n _updateSelectionAfterRemoveByChange: function(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: function(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: function(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: function(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 dataSource = this._dataSource;\r\n var paginate = dataSource && dataSource.paginate();\r\n var group = dataSource && dataSource.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: function($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: function(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.edit.strategy.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 Class from \"../../core/class\";\r\nimport {\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n isRenderer\r\n} from \"../../core/utils/type\";\r\nvar abstract = Class.abstract;\r\nvar EditStrategy = Class.inherit({\r\n ctor: function(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: function(index) {\r\n var resultIndex = this._denormalizeItemIndex(index);\r\n return this.getKeysByItems([this.getItemDataByIndex(resultIndex)])[0]\r\n },\r\n _equalKeys: function(key1, key2) {\r\n if (this._collectionWidget._isKeySpecified()) {\r\n return equalByValue(key1, key2)\r\n } else {\r\n return key1 === key2\r\n }\r\n },\r\n beginCache: function() {\r\n this._cache = {}\r\n },\r\n endCache: function() {\r\n this._cache = null\r\n },\r\n getIndexByKey: abstract,\r\n getNormalizedIndex: function(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: function(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: function(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: function(movingIndex, destinationIndex) {\r\n return this._itemsFromSameParent(movingIndex, destinationIndex) && movingIndex < destinationIndex ? \"after\" : \"before\"\r\n },\r\n moveItemAtIndexToIndex: abstract,\r\n _isNormalizedItemIndex: function(index) {\r\n return \"number\" === typeof index && Math.round(index) === index\r\n },\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/ui/collection/ui.collection_widget.edit.strategy.plain.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport EditStrategy from \"./ui.collection_widget.edit.strategy\";\r\nvar PlainEditStrategy = EditStrategy.inherit({\r\n _getPlainItems: function() {\r\n return this._collectionWidget.option(\"items\") || []\r\n },\r\n getIndexByItemData: function(itemData) {\r\n var keyOf = this._collectionWidget.keyOf.bind(this._collectionWidget);\r\n if (keyOf) {\r\n return this.getIndexByKey(keyOf(itemData))\r\n } else {\r\n return this._getPlainItems().indexOf(itemData)\r\n }\r\n },\r\n getItemDataByIndex: function(index) {\r\n return this._getPlainItems()[index]\r\n },\r\n deleteItemAtIndex: function(index) {\r\n this._getPlainItems().splice(index, 1)\r\n },\r\n itemsGetter: function() {\r\n return this._getPlainItems()\r\n },\r\n getKeysByItems: function(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: function(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, length = keys.length; 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: function(keys, items) {\r\n return (items || keys).slice()\r\n },\r\n moveItemAtIndexToIndex: function(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: function(index) {\r\n return \"number\" === typeof index && Math.round(index) === index\r\n },\r\n _getNormalizedItemIndex: function(itemElement) {\r\n return this._collectionWidget._itemElements().index(itemElement)\r\n },\r\n _normalizeItemIndex: function(index) {\r\n return index\r\n },\r\n _denormalizeItemIndex: function(index) {\r\n return index\r\n },\r\n _getItemByNormalizedIndex: function(index) {\r\n return index > -1 ? this._collectionWidget._itemElements().eq(index) : null\r\n },\r\n _itemsFromSameParent: function() {\r\n return true\r\n }\r\n});\r\nexport default PlainEditStrategy;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/overlays/validation_message.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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\", \"positionRequest\", \"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 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: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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\", \"isValid\", \"name\", \"onClick\", \"onFocusIn\", \"onKeyDown\", \"readOnly\", \"rtlEnabled\", \"tabIndex\", \"validationError\", \"validationErrors\", \"validationMessageMode\", \"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 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 positionRequest: \"below\",\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 validationStatus: \"valid\",\r\n isValid: true,\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 validationStatus() {\r\n return EditorProps.validationStatus\r\n },\r\n get isValid() {\r\n return EditorProps.isValid\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/ui/overlay/z_index.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 length = zIndexStack.length;\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/events/core/emitter_registrator.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 readyCallbacks from \"../../core/utils/ready_callbacks\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n data as elementData\r\n} from \"../../core/element_data\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport registerEvent from \"./event_registrator\";\r\nimport {\r\n addNamespace,\r\n isMouseEvent\r\n} from \"../utils/index\";\r\nimport pointerEvents from \"../pointer\";\r\nimport {\r\n name as wheelEventName\r\n} from \"./wheel\";\r\nvar MANAGER_EVENT = \"dxEventManager\";\r\nvar EMITTER_DATA = \"dxEmitter\";\r\nvar EventManager = Class.inherit({\r\n ctor: function() {\r\n this._attachHandlers();\r\n this.reset();\r\n this._proxiedCancelHandler = this._cancelHandler.bind(this);\r\n this._proxiedAcceptHandler = this._acceptHandler.bind(this)\r\n },\r\n _attachHandlers: function() {\r\n readyCallbacks.add(function() {\r\n var document = domAdapter.getDocument();\r\n eventsEngine.subscribeGlobal(document, addNamespace(pointerEvents.down, MANAGER_EVENT), this._pointerDownHandler.bind(this));\r\n eventsEngine.subscribeGlobal(document, addNamespace(pointerEvents.move, MANAGER_EVENT), this._pointerMoveHandler.bind(this));\r\n eventsEngine.subscribeGlobal(document, addNamespace([pointerEvents.up, pointerEvents.cancel].join(\" \"), MANAGER_EVENT), this._pointerUpHandler.bind(this));\r\n eventsEngine.subscribeGlobal(document, addNamespace(wheelEventName, MANAGER_EVENT), this._mouseWheelHandler.bind(this))\r\n }.bind(this))\r\n },\r\n _eachEmitter: function(callback) {\r\n var activeEmitters = this._activeEmitters || [];\r\n var i = 0;\r\n while (activeEmitters.length > i) {\r\n var emitter = activeEmitters[i];\r\n if (false === callback(emitter)) {\r\n break\r\n }\r\n if (activeEmitters[i] === emitter) {\r\n i++\r\n }\r\n }\r\n },\r\n _applyToEmitters: function(method, arg) {\r\n this._eachEmitter((function(emitter) {\r\n emitter[method].call(emitter, arg)\r\n }))\r\n },\r\n reset: function() {\r\n this._eachEmitter(this._proxiedCancelHandler);\r\n this._activeEmitters = []\r\n },\r\n resetEmitter: function(emitter) {\r\n this._proxiedCancelHandler(emitter)\r\n },\r\n _pointerDownHandler: function(e) {\r\n if (isMouseEvent(e) && e.which > 1) {\r\n return\r\n }\r\n this._updateEmitters(e)\r\n },\r\n _updateEmitters: function(e) {\r\n if (!this._isSetChanged(e)) {\r\n return\r\n }\r\n this._cleanEmitters(e);\r\n this._fetchEmitters(e)\r\n },\r\n _isSetChanged: function(e) {\r\n var currentSet = this._closestEmitter(e);\r\n var previousSet = this._emittersSet || [];\r\n var setChanged = currentSet.length !== previousSet.length;\r\n each(currentSet, (function(index, emitter) {\r\n setChanged = setChanged || previousSet[index] !== emitter;\r\n return !setChanged\r\n }));\r\n this._emittersSet = currentSet;\r\n return setChanged\r\n },\r\n _closestEmitter: function(e) {\r\n var that = this;\r\n var result = [];\r\n var $element = $(e.target);\r\n\r\n function handleEmitter(_, emitter) {\r\n if (!!emitter && emitter.validatePointers(e) && emitter.validate(e)) {\r\n emitter.addCancelCallback(that._proxiedCancelHandler);\r\n emitter.addAcceptCallback(that._proxiedAcceptHandler);\r\n result.push(emitter)\r\n }\r\n }\r\n while ($element.length) {\r\n var emitters = elementData($element.get(0), EMITTER_DATA) || [];\r\n each(emitters, handleEmitter);\r\n $element = $element.parent()\r\n }\r\n return result\r\n },\r\n _acceptHandler: function(acceptedEmitter, e) {\r\n var that = this;\r\n this._eachEmitter((function(emitter) {\r\n if (emitter !== acceptedEmitter) {\r\n that._cancelEmitter(emitter, e)\r\n }\r\n }))\r\n },\r\n _cancelHandler: function(canceledEmitter, e) {\r\n this._cancelEmitter(canceledEmitter, e)\r\n },\r\n _cancelEmitter: function(emitter, e) {\r\n var activeEmitters = this._activeEmitters;\r\n if (e) {\r\n emitter.cancel(e)\r\n } else {\r\n emitter.reset()\r\n }\r\n emitter.removeCancelCallback();\r\n emitter.removeAcceptCallback();\r\n var emitterIndex = activeEmitters.indexOf(emitter);\r\n if (emitterIndex > -1) {\r\n activeEmitters.splice(emitterIndex, 1)\r\n }\r\n },\r\n _cleanEmitters: function(e) {\r\n this._applyToEmitters(\"end\", e);\r\n this.reset(e)\r\n },\r\n _fetchEmitters: function(e) {\r\n this._activeEmitters = this._emittersSet.slice();\r\n this._applyToEmitters(\"start\", e)\r\n },\r\n _pointerMoveHandler: function(e) {\r\n this._applyToEmitters(\"move\", e)\r\n },\r\n _pointerUpHandler: function(e) {\r\n this._updateEmitters(e)\r\n },\r\n _mouseWheelHandler: function(e) {\r\n if (!this._allowInterruptionByMouseWheel()) {\r\n return\r\n }\r\n e.pointers = [null];\r\n this._pointerDownHandler(e);\r\n this._adjustWheelEvent(e);\r\n this._pointerMoveHandler(e);\r\n e.pointers = [];\r\n this._pointerUpHandler(e)\r\n },\r\n _allowInterruptionByMouseWheel: function() {\r\n var allowInterruption = true;\r\n this._eachEmitter((function(emitter) {\r\n allowInterruption = emitter.allowInterruptionByMouseWheel() && allowInterruption;\r\n return allowInterruption\r\n }));\r\n return allowInterruption\r\n },\r\n _adjustWheelEvent: function(e) {\r\n var closestGestureEmitter = null;\r\n this._eachEmitter((function(emitter) {\r\n if (!emitter.gesture) {\r\n return\r\n }\r\n var direction = emitter.getDirection(e);\r\n if (\"horizontal\" !== direction && !e.shiftKey || \"vertical\" !== direction && e.shiftKey) {\r\n closestGestureEmitter = emitter;\r\n return false\r\n }\r\n }));\r\n if (!closestGestureEmitter) {\r\n return\r\n }\r\n var direction = closestGestureEmitter.getDirection(e);\r\n var verticalGestureDirection = \"both\" === direction && !e.shiftKey || \"vertical\" === direction;\r\n var prop = verticalGestureDirection ? \"pageY\" : \"pageX\";\r\n e[prop] += e.delta\r\n },\r\n isActive: function(element) {\r\n var result = false;\r\n this._eachEmitter((function(emitter) {\r\n result = result || emitter.getElement().is(element)\r\n }));\r\n return result\r\n }\r\n});\r\nvar eventManager = new EventManager;\r\nvar EMITTER_SUBSCRIPTION_DATA = \"dxEmitterSubscription\";\r\nvar registerEmitter = function(emitterConfig) {\r\n var emitterClass = emitterConfig.emitter;\r\n var emitterName = emitterConfig.events[0];\r\n var emitterEvents = emitterConfig.events;\r\n each(emitterEvents, (function(_, eventName) {\r\n registerEvent(eventName, {\r\n noBubble: !emitterConfig.bubble,\r\n setup: function(element) {\r\n var subscriptions = elementData(element, EMITTER_SUBSCRIPTION_DATA) || {};\r\n var emitters = elementData(element, EMITTER_DATA) || {};\r\n var emitter = emitters[emitterName] || new emitterClass(element);\r\n subscriptions[eventName] = true;\r\n emitters[emitterName] = emitter;\r\n elementData(element, EMITTER_DATA, emitters);\r\n elementData(element, EMITTER_SUBSCRIPTION_DATA, subscriptions)\r\n },\r\n add: function(element, handleObj) {\r\n var emitters = elementData(element, EMITTER_DATA);\r\n var emitter = emitters[emitterName];\r\n emitter.configure(extend({\r\n delegateSelector: handleObj.selector\r\n }, handleObj.data), handleObj.type)\r\n },\r\n teardown: function(element) {\r\n var subscriptions = elementData(element, EMITTER_SUBSCRIPTION_DATA);\r\n var emitters = elementData(element, EMITTER_DATA);\r\n var emitter = emitters[emitterName];\r\n delete subscriptions[eventName];\r\n var disposeEmitter = true;\r\n each(emitterEvents, (function(_, eventName) {\r\n disposeEmitter = disposeEmitter && !subscriptions[eventName];\r\n return disposeEmitter\r\n }));\r\n if (disposeEmitter) {\r\n if (eventManager.isActive(element)) {\r\n eventManager.resetEmitter(emitter)\r\n }\r\n emitter && emitter.dispose();\r\n delete emitters[emitterName]\r\n }\r\n }\r\n })\r\n }))\r\n};\r\nexport default registerEmitter;\r\n","/**\r\n * DevExtreme (esm/core/utils/window.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../dom_adapter\";\r\nvar hasWindowValue = \"undefined\" !== typeof window;\r\nvar hasWindow = () => hasWindowValue;\r\nvar windowObject = hasWindow() ? window : void 0;\r\nif (!windowObject) {\r\n windowObject = {};\r\n windowObject.window = windowObject\r\n}\r\nvar getWindow = () => windowObject;\r\nvar setWindow = (newWindowObject, hasWindow) => {\r\n if (void 0 === hasWindow) {\r\n hasWindowValue = \"undefined\" !== typeof window && window === newWindowObject\r\n } else {\r\n hasWindowValue = hasWindow\r\n }\r\n windowObject = newWindowObject\r\n};\r\nvar hasProperty = prop => hasWindow() && prop in windowObject;\r\nvar defaultScreenFactorFunc = width => {\r\n if (width < 768) {\r\n return \"xs\"\r\n } else if (width < 992) {\r\n return \"sm\"\r\n } else if (width < 1200) {\r\n return \"md\"\r\n } else {\r\n return \"lg\"\r\n }\r\n};\r\nvar getCurrentScreenFactor = screenFactorCallback => {\r\n var screenFactorFunc = screenFactorCallback || defaultScreenFactorFunc;\r\n var windowWidth = domAdapter.getDocumentElement().clientWidth;\r\n return screenFactorFunc(windowWidth)\r\n};\r\nvar getNavigator = () => hasWindow() ? windowObject.navigator : {\r\n userAgent: \"\"\r\n};\r\nexport {\r\n hasWindow,\r\n getWindow,\r\n setWindow,\r\n hasProperty,\r\n defaultScreenFactorFunc,\r\n getCurrentScreenFactor,\r\n getNavigator\r\n};\r\n","/**\r\n * DevExtreme (esm/events/core/event_registrator.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport callbacks from \"./event_registrator_callbacks\";\r\nvar registerEvent = function(name, eventObject) {\r\n var strategy = {};\r\n if (\"noBubble\" in eventObject) {\r\n strategy.noBubble = eventObject.noBubble\r\n }\r\n if (\"bindType\" in eventObject) {\r\n strategy.bindType = eventObject.bindType\r\n }\r\n if (\"delegateType\" in eventObject) {\r\n strategy.delegateType = eventObject.delegateType\r\n }\r\n each([\"setup\", \"teardown\", \"add\", \"remove\", \"trigger\", \"handle\", \"_default\", \"dispose\"], (function(_, methodName) {\r\n if (!eventObject[methodName]) {\r\n return\r\n }\r\n strategy[methodName] = function() {\r\n var args = [].slice.call(arguments);\r\n args.unshift(this);\r\n return eventObject[methodName].apply(eventObject, args)\r\n }\r\n }));\r\n callbacks.fire(name, strategy)\r\n};\r\nregisterEvent.callbacks = callbacks;\r\nexport default registerEvent;\r\n","/**\r\n * DevExtreme (esm/core/templates/template_base.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 domAdapter from \"../dom_adapter\";\r\nimport Callbacks from \"../utils/callbacks\";\r\nimport {\r\n contains\r\n} from \"../utils/dom\";\r\nimport {\r\n triggerShownEvent\r\n} from \"../../events/visibility_change\";\r\nimport errors from \"../errors\";\r\nexport var renderedCallbacks = Callbacks({\r\n syncStrategy: true\r\n});\r\nexport class TemplateBase {\r\n render(options) {\r\n options = options || {};\r\n var onRendered = options.onRendered;\r\n delete options.onRendered;\r\n var $result;\r\n if (options.renovated && options.transclude && this._element) {\r\n $result = $(\"
\").append(this._element).contents()\r\n } else {\r\n $result = this._renderCore(options)\r\n }\r\n this._ensureResultInContainer($result, options.container);\r\n renderedCallbacks.fire($result, options.container);\r\n onRendered && onRendered();\r\n return $result\r\n }\r\n _ensureResultInContainer($result, container) {\r\n if (!container) {\r\n return\r\n }\r\n var $container = $(container);\r\n var resultInContainer = contains($container.get(0), $result.get(0));\r\n $container.append($result);\r\n if (resultInContainer) {\r\n return\r\n }\r\n var resultInBody = domAdapter.getBody().contains($container.get(0));\r\n if (!resultInBody) {\r\n return\r\n }\r\n triggerShownEvent($result)\r\n }\r\n _renderCore() {\r\n throw errors.Error(\"E0001\")\r\n }\r\n}\r\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","/**\r\n * DevExtreme (esm/animation/easing.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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/fx.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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, 10)) {\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, 10);\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/core/memorized_callbacks.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport Callbacks from \"./utils/callbacks\";\r\nexport default class MemorizedCallbacks {\r\n constructor() {\r\n this.memory = [];\r\n this.callbacks = Callbacks()\r\n }\r\n add(fn) {\r\n each(this.memory, (_, item) => fn.apply(fn, item));\r\n this.callbacks.add(fn)\r\n }\r\n remove(fn) {\r\n this.callbacks.remove(fn)\r\n }\r\n fire() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n this.memory.push(args);\r\n this.callbacks.fire.apply(this.callbacks, args)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/widget/selectors.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nvar focusableFn = function(element, tabIndex) {\r\n if (!visible(element)) {\r\n return false\r\n }\r\n var nodeName = element.nodeName.toLowerCase();\r\n var isTabIndexNotNaN = !isNaN(tabIndex);\r\n var isDisabled = element.disabled;\r\n var isDefaultFocus = /^(input|select|textarea|button|object|iframe)$/.test(nodeName);\r\n var isHyperlink = \"a\" === nodeName;\r\n var isFocusable = true;\r\n var isContentEditable = element.isContentEditable;\r\n if (isDefaultFocus || isContentEditable) {\r\n isFocusable = !isDisabled\r\n } else if (isHyperlink) {\r\n isFocusable = element.href || isTabIndexNotNaN\r\n } else {\r\n isFocusable = isTabIndexNotNaN\r\n }\r\n return isFocusable\r\n};\r\n\r\nfunction visible(element) {\r\n var $element = $(element);\r\n return $element.is(\":visible\") && \"hidden\" !== $element.css(\"visibility\") && \"hidden\" !== $element.parents().css(\"visibility\")\r\n}\r\nexport var focusable = function(index, element) {\r\n return focusableFn(element, $(element).attr(\"tabIndex\"))\r\n};\r\nexport var tabbable = function(index, element) {\r\n var tabIndex = $(element).attr(\"tabIndex\");\r\n return (isNaN(tabIndex) || tabIndex >= 0) && focusableFn(element, tabIndex)\r\n};\r\nexport var focused = function($element) {\r\n var element = $($element).get(0);\r\n return domAdapter.getActiveElement(element) === element\r\n};\r\n","/**\r\n * DevExtreme (esm/core/devices.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"./utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n getWindow,\r\n getNavigator,\r\n hasWindow\r\n} from \"./utils/window\";\r\nimport {\r\n extend\r\n} from \"./utils/extend\";\r\nimport {\r\n isPlainObject\r\n} from \"./utils/type\";\r\nimport {\r\n each\r\n} from \"./utils/iterator\";\r\nimport errors from \"./errors\";\r\nimport Callbacks from \"./utils/callbacks\";\r\nimport readyCallbacks from \"./utils/ready_callbacks\";\r\nimport resizeCallbacks from \"./utils/resize_callbacks\";\r\nimport {\r\n EventsStrategy\r\n} from \"./events_strategy\";\r\nimport {\r\n sessionStorage as SessionStorage\r\n} from \"./utils/storage\";\r\nimport {\r\n changeCallback,\r\n value as viewPort\r\n} from \"./utils/view_port\";\r\nimport Config from \"./config\";\r\nvar navigator = getNavigator();\r\nvar window = getWindow();\r\nvar KNOWN_UA_TABLE = {\r\n iPhone: \"iPhone\",\r\n iPhone5: \"iPhone\",\r\n iPhone6: \"iPhone\",\r\n iPhone6plus: \"iPhone\",\r\n iPad: \"iPad\",\r\n iPadMini: \"iPad Mini\",\r\n androidPhone: \"Android Mobile\",\r\n androidTablet: \"Android\",\r\n msSurface: \"Windows ARM Tablet PC\",\r\n desktop: \"desktop\"\r\n};\r\nvar DEFAULT_DEVICE = {\r\n deviceType: \"desktop\",\r\n platform: \"generic\",\r\n version: [],\r\n phone: false,\r\n tablet: false,\r\n android: false,\r\n ios: false,\r\n generic: true,\r\n grade: \"A\",\r\n mac: false\r\n};\r\nvar uaParsers = {\r\n generic(userAgent) {\r\n var isPhone = /windows phone/i.test(userAgent) || userAgent.match(/WPDesktop/);\r\n var isTablet = !isPhone && /Windows(.*)arm(.*)Tablet PC/i.test(userAgent);\r\n var isDesktop = !isPhone && !isTablet && /msapphost/i.test(userAgent);\r\n var isMac = /((intel|ppc) mac os x)/.test(userAgent.toLowerCase());\r\n if (!(isPhone || isTablet || isDesktop || isMac)) {\r\n return\r\n }\r\n return {\r\n deviceType: isPhone ? \"phone\" : isTablet ? \"tablet\" : \"desktop\",\r\n platform: \"generic\",\r\n version: [],\r\n grade: \"A\",\r\n mac: isMac\r\n }\r\n },\r\n ios(userAgent) {\r\n if (!/ip(hone|od|ad)/i.test(userAgent)) {\r\n return\r\n }\r\n var isPhone = /ip(hone|od)/i.test(userAgent);\r\n var matches = userAgent.match(/os (\\d+)_(\\d+)_?(\\d+)?/i);\r\n var version = matches ? [parseInt(matches[1], 10), parseInt(matches[2], 10), parseInt(matches[3] || 0, 10)] : [];\r\n var isIPhone4 = 480 === window.screen.height;\r\n var grade = isIPhone4 ? \"B\" : \"A\";\r\n return {\r\n deviceType: isPhone ? \"phone\" : \"tablet\",\r\n platform: \"ios\",\r\n version: version,\r\n grade: grade\r\n }\r\n },\r\n android(userAgent) {\r\n if (!/android|htc_|silk/i.test(userAgent)) {\r\n return\r\n }\r\n var isPhone = /mobile/i.test(userAgent);\r\n var matches = userAgent.match(/android (\\d+)\\.?(\\d+)?\\.?(\\d+)?/i);\r\n var version = matches ? [parseInt(matches[1], 10), parseInt(matches[2] || 0, 10), parseInt(matches[3] || 0, 10)] : [];\r\n var worseThan4_4 = version.length > 1 && (version[0] < 4 || 4 === version[0] && version[1] < 4);\r\n var grade = worseThan4_4 ? \"B\" : \"A\";\r\n return {\r\n deviceType: isPhone ? \"phone\" : \"tablet\",\r\n platform: \"android\",\r\n version: version,\r\n grade: grade\r\n }\r\n }\r\n};\r\nclass Devices {\r\n constructor(options) {\r\n this._window = (null === options || void 0 === options ? void 0 : options.window) || window;\r\n this._realDevice = this._getDevice();\r\n this._currentDevice = void 0;\r\n this._currentOrientation = void 0;\r\n this._eventsStrategy = new EventsStrategy(this);\r\n this.changed = Callbacks();\r\n if (hasWindow()) {\r\n readyCallbacks.add(this._recalculateOrientation.bind(this));\r\n resizeCallbacks.add(this._recalculateOrientation.bind(this))\r\n }\r\n }\r\n current(deviceOrName) {\r\n if (deviceOrName) {\r\n this._currentDevice = this._getDevice(deviceOrName);\r\n this._forced = true;\r\n this.changed.fire();\r\n return\r\n }\r\n if (!this._currentDevice) {\r\n deviceOrName = void 0;\r\n try {\r\n deviceOrName = this._getDeviceOrNameFromWindowScope()\r\n } catch (e) {\r\n deviceOrName = this._getDeviceNameFromSessionStorage()\r\n } finally {\r\n if (!deviceOrName) {\r\n deviceOrName = this._getDeviceNameFromSessionStorage()\r\n }\r\n if (deviceOrName) {\r\n this._forced = true\r\n }\r\n }\r\n this._currentDevice = this._getDevice(deviceOrName)\r\n }\r\n return this._currentDevice\r\n }\r\n real(forceDevice) {\r\n return extend({}, this._realDevice)\r\n }\r\n orientation() {\r\n return this._currentOrientation\r\n }\r\n isForced() {\r\n return this._forced\r\n }\r\n isRippleEmulator() {\r\n return !!this._window.tinyHippos\r\n }\r\n _getCssClasses(device) {\r\n var result = [];\r\n var realDevice = this._realDevice;\r\n device = device || this.current();\r\n if (device.deviceType) {\r\n result.push(\"dx-device-\".concat(device.deviceType));\r\n if (\"desktop\" !== device.deviceType) {\r\n result.push(\"dx-device-mobile\")\r\n }\r\n }\r\n result.push(\"dx-device-\".concat(realDevice.platform));\r\n if (realDevice.version && realDevice.version.length) {\r\n result.push(\"dx-device-\".concat(realDevice.platform, \"-\").concat(realDevice.version[0]))\r\n }\r\n if (this.isSimulator()) {\r\n result.push(\"dx-simulator\")\r\n }\r\n if (Config().rtlEnabled) {\r\n result.push(\"dx-rtl\")\r\n }\r\n return result\r\n }\r\n attachCssClasses(element, device) {\r\n this._deviceClasses = this._getCssClasses(device).join(\" \");\r\n $(element).addClass(this._deviceClasses)\r\n }\r\n detachCssClasses(element) {\r\n $(element).removeClass(this._deviceClasses)\r\n }\r\n isSimulator() {\r\n try {\r\n return this._isSimulator || hasWindow() && this._window.top !== this._window.self && this._window.top[\"dx-force-device\"] || this.isRippleEmulator()\r\n } catch (e) {\r\n return false\r\n }\r\n }\r\n forceSimulator() {\r\n this._isSimulator = true\r\n }\r\n _getDevice(deviceName) {\r\n if (\"genericPhone\" === deviceName) {\r\n deviceName = {\r\n deviceType: \"phone\",\r\n platform: \"generic\",\r\n generic: true\r\n }\r\n }\r\n if (isPlainObject(deviceName)) {\r\n return this._fromConfig(deviceName)\r\n } else {\r\n var ua;\r\n if (deviceName) {\r\n ua = KNOWN_UA_TABLE[deviceName];\r\n if (!ua) {\r\n throw errors.Error(\"E0005\")\r\n }\r\n } else {\r\n ua = navigator.userAgent\r\n }\r\n return this._fromUA(ua)\r\n }\r\n }\r\n _getDeviceOrNameFromWindowScope() {\r\n var result;\r\n if (hasWindow() && (this._window.top[\"dx-force-device-object\"] || this._window.top[\"dx-force-device\"])) {\r\n result = this._window.top[\"dx-force-device-object\"] || this._window.top[\"dx-force-device\"]\r\n }\r\n return result\r\n }\r\n _getDeviceNameFromSessionStorage() {\r\n var sessionStorage = SessionStorage();\r\n if (!sessionStorage) {\r\n return\r\n }\r\n var deviceOrName = sessionStorage.getItem(\"dx-force-device\");\r\n try {\r\n return JSON.parse(deviceOrName)\r\n } catch (ex) {\r\n return deviceOrName\r\n }\r\n }\r\n _fromConfig(config) {\r\n var result = extend({}, DEFAULT_DEVICE, this._currentDevice, config);\r\n var shortcuts = {\r\n phone: \"phone\" === result.deviceType,\r\n tablet: \"tablet\" === result.deviceType,\r\n android: \"android\" === result.platform,\r\n ios: \"ios\" === result.platform,\r\n generic: \"generic\" === result.platform\r\n };\r\n return extend(result, shortcuts)\r\n }\r\n _fromUA(ua) {\r\n var config;\r\n each(uaParsers, (platform, parser) => {\r\n config = parser(ua);\r\n return !config\r\n });\r\n if (config) {\r\n return this._fromConfig(config)\r\n }\r\n return DEFAULT_DEVICE\r\n }\r\n _changeOrientation() {\r\n var $window = $(this._window);\r\n var orientation = getHeight($window) > getWidth($window) ? \"portrait\" : \"landscape\";\r\n if (this._currentOrientation === orientation) {\r\n return\r\n }\r\n this._currentOrientation = orientation;\r\n this._eventsStrategy.fireEvent(\"orientationChanged\", [{\r\n orientation: orientation\r\n }])\r\n }\r\n _recalculateOrientation() {\r\n var windowWidth = getWidth(this._window);\r\n if (this._currentWidth === windowWidth) {\r\n return\r\n }\r\n this._currentWidth = windowWidth;\r\n this._changeOrientation()\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 devices = new Devices;\r\nvar viewPortElement = viewPort();\r\nif (viewPortElement) {\r\n devices.attachCssClasses(viewPortElement)\r\n}\r\nchangeCallback.add((viewPort, prevViewport) => {\r\n devices.detachCssClasses(prevViewport);\r\n devices.attachCssClasses(viewPort)\r\n});\r\nexport default devices;\r\n","/**\r\n * DevExtreme (esm/animation/frame.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n hasWindow,\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = hasWindow() ? getWindow() : {};\r\nimport callOnce from \"../core/utils/call_once\";\r\nvar FRAME_ANIMATION_STEP_TIME = 1e3 / 60;\r\nvar request = function(callback) {\r\n return setTimeout(callback, FRAME_ANIMATION_STEP_TIME)\r\n};\r\nvar cancel = function(requestID) {\r\n clearTimeout(requestID)\r\n};\r\nvar setAnimationFrameMethods = callOnce((function() {\r\n var nativeRequest = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame;\r\n var nativeCancel = window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || window.oCancelAnimationFrame || window.msCancelAnimationFrame;\r\n if (nativeRequest && nativeCancel) {\r\n request = nativeRequest;\r\n cancel = nativeCancel\r\n }\r\n}));\r\nexport function requestAnimationFrame() {\r\n setAnimationFrameMethods();\r\n return request.apply(window, arguments)\r\n}\r\nexport function cancelAnimationFrame() {\r\n setAnimationFrameMethods();\r\n cancel.apply(window, arguments)\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/validation_engine.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../core/class\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n EventsStrategy\r\n} from \"../core/events_strategy\";\r\nimport errors from \"../core/errors\";\r\nimport {\r\n grep\r\n} from \"../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isString,\r\n isDate,\r\n isBoolean,\r\n isObject,\r\n isFunction,\r\n isPromise,\r\n isNumeric\r\n} from \"../core/utils/type\";\r\nimport numberLocalization from \"../localization/number\";\r\nimport messageLocalization from \"../localization/message\";\r\nimport {\r\n fromPromise,\r\n Deferred\r\n} from \"../core/utils/deferred\";\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 } else {\r\n return isNumeric(value)\r\n }\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 min = rule.min;\r\n var max = rule.max;\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 } else if (isDefined(max)) {\r\n return number <= max\r\n } else {\r\n throw errors.Error(\"E0101\")\r\n }\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 var _value;\r\n value = String(null !== (_value = 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 validator = rule.validator;\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 validator = rule.validator;\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 = new Deferred;\r\n promise.then((function(res) {\r\n deferred.resolve(res)\r\n }), (function(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 pattern = rule.pattern;\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: /^[\\d\\w._-]+@[\\d\\w._-]+\\.[\\w]+$/i\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) {\r\n this.group = group;\r\n this.validators = [];\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 = new 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, (function(val) {\r\n return val === validator\r\n }))[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, (function(_, validator) {\r\n var foundRules = grep(brokenRules, (function(rule) {\r\n return rule.validator === validator\r\n }));\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 brokenRules = this._validationInfo.result.brokenRules;\r\n var rules = grep(brokenRules, (function(rule) {\r\n return rule.validator !== result.validator\r\n }));\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 deferred = this._validationInfo.deferred;\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, (function(_, 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, (function(config) {\r\n return config.group === group\r\n }));\r\n if (result.length) {\r\n return result[0]\r\n }\r\n },\r\n findGroup($element, model) {\r\n var _$element$data, _$element$data$dxComp;\r\n var hasValidationGroup = null === (_$element$data = $element.data()) || void 0 === _$element$data ? void 0 : null === (_$element$data$dxComp = _$element$data.dxComponents) || void 0 === _$element$data$dxComp ? void 0 : _$element$data$dxComp.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()\r\n },\r\n addGroup(group) {\r\n var config = this.getGroupConfig(group);\r\n if (!config) {\r\n config = new GroupConfig(group);\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 _rules$;\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 === rules || void 0 === rules ? void 0 : null === (_rules$ = rules[0]) || void 0 === _rules$ ? void 0 : _rules$.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 _result$brokenRules;\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 !== (_result$brokenRules = result.brokenRules) && void 0 !== _result$brokenRules ? _result$brokenRules : []\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 _shouldRemoveGroup(group, validatorsInGroup) {\r\n var isDefaultGroup = void 0 === group;\r\n var isValidationGroupInstance = group && \"dxValidationGroup\" === group.NAME;\r\n return !isDefaultGroup && !isValidationGroupInstance && !validatorsInGroup.length\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 if (this._shouldRemoveGroup(group, validatorsInGroup)) {\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 } else if (value && !validationErrors) {\r\n return {\r\n validationErrors: [value]\r\n }\r\n } else 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/data/data_source/utils.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 = [\"items\"];\r\nimport ajaxUtils from \"../../core/utils/ajax\";\r\nimport Store from \"../abstract_store\";\r\nimport ArrayStore from \"../array_store\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../core/utils/iterator\";\r\nimport CustomStore from \"../custom_store\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n normalizeSortingInfo\r\n} from \"../utils\";\r\nexport var CANCELED_TOKEN = \"canceled\";\r\nexport var isPending = deferred => \"pending\" === deferred.state();\r\nexport var normalizeStoreLoadOptionAccessorArguments = originalArguments => {\r\n switch (originalArguments.length) {\r\n case 0:\r\n return;\r\n case 1:\r\n return originalArguments[0]\r\n }\r\n return [].slice.call(originalArguments)\r\n};\r\nvar mapGroup = (group, level, mapper) => map(group, item => {\r\n var restItem = _objectWithoutPropertiesLoose(item, _excluded);\r\n return _extends({}, restItem, {\r\n items: mapRecursive(item.items, level - 1, mapper)\r\n })\r\n});\r\nvar mapRecursive = (items, level, mapper) => {\r\n if (!Array.isArray(items)) {\r\n return items\r\n }\r\n return level ? mapGroup(items, level, mapper) : map(items, mapper)\r\n};\r\nexport var mapDataRespectingGrouping = (items, mapper, groupInfo) => {\r\n var level = groupInfo ? normalizeSortingInfo(groupInfo).length : 0;\r\n return mapRecursive(items, level, mapper)\r\n};\r\nexport var normalizeLoadResult = (data, extra) => {\r\n var _data;\r\n if (null !== (_data = data) && void 0 !== _data && _data.data) {\r\n extra = data;\r\n data = data.data\r\n }\r\n if (!Array.isArray(data)) {\r\n data = [data]\r\n }\r\n return {\r\n data: data,\r\n extra: extra\r\n }\r\n};\r\nvar createCustomStoreFromLoadFunc = options => {\r\n var storeConfig = {};\r\n each([\"useDefaultSearch\", \"key\", \"load\", \"loadMode\", \"cacheRawData\", \"byKey\", \"lookup\", \"totalCount\", \"insert\", \"update\", \"remove\"], (function() {\r\n storeConfig[this] = options[this];\r\n delete options[this]\r\n }));\r\n return new CustomStore(storeConfig)\r\n};\r\nvar createStoreFromConfig = storeConfig => {\r\n var alias = storeConfig.type;\r\n delete storeConfig.type;\r\n return Store.create(alias, storeConfig)\r\n};\r\nvar createCustomStoreFromUrl = (url, normalizationOptions) => new CustomStore({\r\n load: () => ajaxUtils.sendRequest({\r\n url: url,\r\n dataType: \"json\"\r\n }),\r\n loadMode: null === normalizationOptions || void 0 === normalizationOptions ? void 0 : normalizationOptions.fromUrlLoadMode\r\n});\r\nexport var normalizeDataSourceOptions = (options, normalizationOptions) => {\r\n var store;\r\n if (\"string\" === typeof options) {\r\n options = {\r\n paginate: false,\r\n store: createCustomStoreFromUrl(options, normalizationOptions)\r\n }\r\n }\r\n if (void 0 === options) {\r\n options = []\r\n }\r\n if (Array.isArray(options) || options instanceof Store) {\r\n options = {\r\n store: options\r\n }\r\n } else {\r\n options = extend({}, options)\r\n }\r\n if (void 0 === options.store) {\r\n options.store = []\r\n }\r\n store = options.store;\r\n if (\"load\" in options) {\r\n store = createCustomStoreFromLoadFunc(options)\r\n } else if (Array.isArray(store)) {\r\n store = new ArrayStore(store)\r\n } else if (isPlainObject(store)) {\r\n store = createStoreFromConfig(extend({}, store))\r\n }\r\n options.store = store;\r\n return options\r\n};\r\n","/**\r\n * DevExtreme (esm/core/dom_adapter.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport injector from \"./utils/dependency_injector\";\r\nimport {\r\n noop\r\n} from \"./utils/common\";\r\nvar ELEMENT_NODE = 1;\r\nvar TEXT_NODE = 3;\r\nvar DOCUMENT_NODE = 9;\r\nvar nativeDOMAdapterStrategy = {\r\n querySelectorAll: (element, selector) => element.querySelectorAll(selector),\r\n elementMatches(element, selector) {\r\n var matches = element.matches || element.matchesSelector || element.mozMatchesSelector || element.msMatchesSelector || element.oMatchesSelector || element.webkitMatchesSelector || (selector => {\r\n var doc = element.document || element.ownerDocument;\r\n if (!doc) {\r\n return false\r\n }\r\n var items = this.querySelectorAll(doc, selector);\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i] === element) {\r\n return true\r\n }\r\n }\r\n });\r\n return matches.call(element, selector)\r\n },\r\n createElement(tagName, context) {\r\n context = context || this._document;\r\n return context.createElement(tagName)\r\n },\r\n createElementNS(ns, tagName, context) {\r\n context = context || this._document;\r\n return context.createElementNS(ns, tagName)\r\n },\r\n createTextNode(text, context) {\r\n context = context || this._document;\r\n return context.createTextNode(text)\r\n },\r\n isNode: element => element && \"object\" === typeof element && \"nodeType\" in element && \"nodeName\" in element,\r\n isElementNode: element => element && element.nodeType === ELEMENT_NODE,\r\n isTextNode: element => element && element.nodeType === TEXT_NODE,\r\n isDocument: element => element && element.nodeType === DOCUMENT_NODE,\r\n removeElement(element) {\r\n var parentNode = element && element.parentNode;\r\n if (parentNode) {\r\n parentNode.removeChild(element)\r\n }\r\n },\r\n insertElement(parentElement, newElement, nextSiblingElement) {\r\n if (parentElement && newElement && parentElement !== newElement) {\r\n if (nextSiblingElement) {\r\n parentElement.insertBefore(newElement, nextSiblingElement)\r\n } else {\r\n parentElement.appendChild(newElement)\r\n }\r\n }\r\n },\r\n getAttribute: (element, name) => element.getAttribute(name),\r\n setAttribute(element, name, value) {\r\n element.setAttribute(name, value)\r\n },\r\n removeAttribute(element, name) {\r\n element.removeAttribute(name)\r\n },\r\n setProperty(element, name, value) {\r\n element[name] = value\r\n },\r\n setText(element, text) {\r\n if (element) {\r\n element.textContent = text\r\n }\r\n },\r\n setClass(element, className, isAdd) {\r\n if (1 === element.nodeType && className) {\r\n isAdd ? element.classList.add(className) : element.classList.remove(className)\r\n }\r\n },\r\n setStyle(element, name, value) {\r\n element.style[name] = value || \"\"\r\n },\r\n _document: \"undefined\" === typeof document ? void 0 : document,\r\n getDocument() {\r\n return this._document\r\n },\r\n getActiveElement(element) {\r\n var _element$getRootNode, _element$getRootNode2;\r\n var activeElementHolder = null !== (_element$getRootNode = null === element || void 0 === element ? void 0 : null === (_element$getRootNode2 = element.getRootNode) || void 0 === _element$getRootNode2 ? void 0 : _element$getRootNode2.call(element)) && void 0 !== _element$getRootNode ? _element$getRootNode : this._document;\r\n return activeElementHolder.activeElement\r\n },\r\n getBody() {\r\n return this._document.body\r\n },\r\n createDocumentFragment() {\r\n return this._document.createDocumentFragment()\r\n },\r\n getDocumentElement() {\r\n return this._document.documentElement\r\n },\r\n getLocation() {\r\n return this._document.location\r\n },\r\n getSelection() {\r\n return this._document.selection\r\n },\r\n getReadyState() {\r\n return this._document.readyState\r\n },\r\n getHead() {\r\n return this._document.head\r\n },\r\n hasDocumentProperty(property) {\r\n return property in this._document\r\n },\r\n listen(element, event, callback, options) {\r\n if (!element || !(\"addEventListener\" in element)) {\r\n return noop\r\n }\r\n element.addEventListener(event, callback, options);\r\n return () => {\r\n element.removeEventListener(event, callback)\r\n }\r\n },\r\n elementsFromPoint(x, y) {\r\n return this._document.elementsFromPoint(x, y)\r\n }\r\n};\r\nexport default injector(nativeDOMAdapterStrategy);\r\n","/**\r\n * DevExtreme (esm/ui/text_box/text_box.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport TextEditor from \"./ui.text_editor\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport {\r\n getOuterWidth,\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nvar ignoreKeys = [\"backspace\", \"tab\", \"enter\", \"pageUp\", \"pageDown\", \"end\", \"home\", \"leftArrow\", \"rightArrow\", \"downArrow\", \"upArrow\", \"del\"];\r\nvar TEXTBOX_CLASS = \"dx-textbox\";\r\nvar SEARCHBOX_CLASS = \"dx-searchbox\";\r\nvar ICON_CLASS = \"dx-icon\";\r\nvar SEARCH_ICON_CLASS = \"dx-icon-search\";\r\nvar TextBox = TextEditor.inherit({\r\n ctor: function(element, options) {\r\n if (options) {\r\n this._showClearButton = options.showClearButton\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: \"\",\r\n mode: \"text\",\r\n maxLength: null\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(TEXTBOX_CLASS);\r\n this.callBase();\r\n this.setAria(\"role\", \"textbox\")\r\n },\r\n _renderInputType: function() {\r\n this.callBase();\r\n this._renderSearchMode()\r\n },\r\n _useTemplates: function() {\r\n return false\r\n },\r\n _renderProps: function() {\r\n this.callBase();\r\n this._toggleMaxLengthProp()\r\n },\r\n _toggleMaxLengthProp: function() {\r\n var maxLength = this._getMaxLength();\r\n if (maxLength && maxLength > 0) {\r\n this._input().attr(\"maxLength\", maxLength)\r\n } else {\r\n this._input().removeAttr(\"maxLength\")\r\n }\r\n },\r\n _renderSearchMode: function() {\r\n var $element = this._$element;\r\n if (\"search\" === this.option(\"mode\")) {\r\n $element.addClass(SEARCHBOX_CLASS);\r\n this._renderSearchIcon();\r\n if (void 0 === this._showClearButton) {\r\n this._showClearButton = this.option(\"showClearButton\");\r\n this.option(\"showClearButton\", true)\r\n }\r\n } else {\r\n $element.removeClass(SEARCHBOX_CLASS);\r\n this._$searchIcon && this._$searchIcon.remove();\r\n this.option(\"showClearButton\", void 0 === this._showClearButton ? this.option(\"showClearButton\") : this._showClearButton);\r\n delete this._showClearButton\r\n }\r\n },\r\n _renderSearchIcon: function() {\r\n var $searchIcon = $(\"
\").addClass(ICON_CLASS).addClass(SEARCH_ICON_CLASS);\r\n $searchIcon.prependTo(this._input().parent());\r\n this._$searchIcon = $searchIcon\r\n },\r\n _getLabelContainerWidth: function() {\r\n if (this._$searchIcon) {\r\n var $inputContainer = this._input().parent();\r\n return getWidth($inputContainer) - this._getLabelBeforeWidth()\r\n }\r\n return this.callBase()\r\n },\r\n _getLabelBeforeWidth: function() {\r\n var labelBeforeWidth = this.callBase();\r\n if (this._$searchIcon) {\r\n labelBeforeWidth += getOuterWidth(this._$searchIcon)\r\n }\r\n return labelBeforeWidth\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"maxLength\":\r\n this._toggleMaxLengthProp();\r\n break;\r\n case \"mode\":\r\n this.callBase(args);\r\n this._updateLabelWidth();\r\n break;\r\n case \"mask\":\r\n this.callBase(args);\r\n this._toggleMaxLengthProp();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _onKeyDownCutOffHandler: function(e) {\r\n var actualMaxLength = this._getMaxLength();\r\n if (actualMaxLength && !e.ctrlKey && !this._hasSelection()) {\r\n var $input = $(e.target);\r\n var key = normalizeKeyName(e);\r\n this._cutOffExtraChar($input);\r\n return $input.val().length < actualMaxLength || ignoreKeys.includes(key) || \"\" !== window.getSelection().toString()\r\n } else {\r\n return true\r\n }\r\n },\r\n _onChangeCutOffHandler: function(e) {\r\n var $input = $(e.target);\r\n if (this.option(\"maxLength\")) {\r\n this._cutOffExtraChar($input)\r\n }\r\n },\r\n _cutOffExtraChar: function($input) {\r\n var actualMaxLength = this._getMaxLength();\r\n var textInput = $input.val();\r\n if (actualMaxLength && textInput.length > actualMaxLength) {\r\n $input.val(textInput.substr(0, actualMaxLength))\r\n }\r\n },\r\n _getMaxLength: function() {\r\n var isMaskSpecified = !!this.option(\"mask\");\r\n return isMaskSpecified ? null : this.option(\"maxLength\")\r\n }\r\n});\r\nregisterComponent(\"dxTextBox\", TextBox);\r\nexport default TextBox;\r\n","/**\r\n * DevExtreme (esm/ui/text_box.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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/core/utils/dom.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 each\r\n} from \"./iterator\";\r\nimport {\r\n isDefined,\r\n isRenderer,\r\n isWindow\r\n} from \"./type\";\r\nimport {\r\n getWindow\r\n} from \"./window\";\r\nvar window = getWindow();\r\nexport var resetActiveElement = () => {\r\n var activeElement = domAdapter.getActiveElement();\r\n if (activeElement && activeElement !== domAdapter.getBody()) {\r\n var _activeElement$blur;\r\n null === (_activeElement$blur = activeElement.blur) || void 0 === _activeElement$blur ? void 0 : _activeElement$blur.call(activeElement)\r\n }\r\n};\r\nexport var clearSelection = () => {\r\n var selection = window.getSelection();\r\n if (!selection) {\r\n return\r\n }\r\n if (\"Caret\" === selection.type) {\r\n return\r\n }\r\n if (selection.empty) {\r\n selection.empty()\r\n } else if (selection.removeAllRanges) {\r\n try {\r\n selection.removeAllRanges()\r\n } catch (e) {}\r\n }\r\n};\r\nexport var closestCommonParent = (startTarget, endTarget) => {\r\n var $startTarget = $(startTarget);\r\n var $endTarget = $(endTarget);\r\n if ($startTarget[0] === $endTarget[0]) {\r\n return $startTarget[0]\r\n }\r\n var $startParents = $startTarget.parents();\r\n var $endParents = $endTarget.parents();\r\n var startingParent = Math.min($startParents.length, $endParents.length);\r\n for (var i = -startingParent; i < 0; i++) {\r\n if ($startParents.get(i) === $endParents.get(i)) {\r\n return $startParents.get(i)\r\n }\r\n }\r\n};\r\nexport var extractTemplateMarkup = element => {\r\n element = $(element);\r\n var templateTag = element.length && element.filter((function() {\r\n var $node = $(this);\r\n return $node.is(\"script[type]\") && $node.attr(\"type\").indexOf(\"script\") < 0\r\n }));\r\n if (templateTag.length) {\r\n return templateTag.eq(0).html()\r\n } else {\r\n element = $(\"
\").append(element);\r\n return element.html()\r\n }\r\n};\r\nexport var normalizeTemplateElement = element => {\r\n var $element = isDefined(element) && (element.nodeType || isRenderer(element)) ? $(element) : $(\"
\").html(element).contents();\r\n if (1 === $element.length) {\r\n if ($element.is(\"script\")) {\r\n $element = normalizeTemplateElement($element.html().trim())\r\n } else if ($element.is(\"table\")) {\r\n $element = $element.children(\"tbody\").contents()\r\n }\r\n }\r\n return $element\r\n};\r\nexport var clipboardText = (event, text) => {\r\n var clipboard = event.originalEvent && event.originalEvent.clipboardData || window.clipboardData;\r\n if (!text) {\r\n return clipboard && clipboard.getData(\"Text\")\r\n }\r\n clipboard && clipboard.setData(\"Text\", text)\r\n};\r\nexport var contains = (container, element) => {\r\n if (!element) {\r\n return false\r\n }\r\n if (domAdapter.isTextNode(element)) {\r\n element = element.parentNode\r\n }\r\n if (domAdapter.isDocument(container)) {\r\n return container.documentElement.contains(element)\r\n }\r\n if (isWindow(container)) {\r\n return contains(container.document, element)\r\n }\r\n return container.contains ? container.contains(element) : !!(element.compareDocumentPosition(container) & element.DOCUMENT_POSITION_CONTAINS)\r\n};\r\nexport var createTextElementHiddenCopy = (element, text, options) => {\r\n var elementStyles = window.getComputedStyle($(element).get(0));\r\n var includePaddings = options && options.includePaddings;\r\n return $(\"
\").text(text).css({\r\n fontStyle: elementStyles.fontStyle,\r\n fontVariant: elementStyles.fontVariant,\r\n fontWeight: elementStyles.fontWeight,\r\n fontSize: elementStyles.fontSize,\r\n fontFamily: elementStyles.fontFamily,\r\n letterSpacing: elementStyles.letterSpacing,\r\n border: elementStyles.border,\r\n paddingTop: includePaddings ? elementStyles.paddingTop : \"\",\r\n paddingRight: includePaddings ? elementStyles.paddingRight : \"\",\r\n paddingBottom: includePaddings ? elementStyles.paddingBottom : \"\",\r\n paddingLeft: includePaddings ? elementStyles.paddingLeft : \"\",\r\n visibility: \"hidden\",\r\n whiteSpace: \"pre\",\r\n position: \"absolute\",\r\n float: \"left\"\r\n })\r\n};\r\nexport var insertBefore = (element, newElement) => {\r\n if (newElement) {\r\n domAdapter.insertElement(element.parentNode, newElement, element)\r\n }\r\n return element\r\n};\r\nexport var replaceWith = (element, newElement) => {\r\n if (!(newElement && newElement[0])) {\r\n return\r\n }\r\n if (newElement.is(element)) {\r\n return element\r\n }\r\n each(newElement, (_, currentElement) => {\r\n insertBefore(element[0], currentElement)\r\n });\r\n element.remove();\r\n return newElement\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/animator.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 Class from \"../../core/class\";\r\nvar abstract = Class.abstract;\r\nimport {\r\n requestAnimationFrame,\r\n cancelAnimationFrame\r\n} from \"../../animation/frame\";\r\nvar Animator = Class.inherit({\r\n ctor: function() {\r\n this._finished = true;\r\n this._stopped = false;\r\n this._proxiedStepCore = this._stepCore.bind(this)\r\n },\r\n start: function() {\r\n this._stopped = false;\r\n this._finished = false;\r\n this._stepCore()\r\n },\r\n stop: function() {\r\n this._stopped = true;\r\n cancelAnimationFrame(this._stepAnimationFrame)\r\n },\r\n _stepCore: function() {\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: function() {\r\n return this._stopped\r\n },\r\n inProgress: function() {\r\n return !(this._stopped || this._finished)\r\n }\r\n});\r\nexport default Animator;\r\n","/*!\n * devextreme-vue\n * Version: 22.1.5\n * Build date: Fri Sep 02 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createExtensionComponent = exports.createConfigurationComponent = exports.createComponent = void 0;\nvar vue_1 = require(\"vue\");\nvar component_1 = require(\"../../component\");\nvar configuration_component_1 = require(\"../../configuration-component\");\nvar extension_component_1 = require(\"../../extension-component\");\nvar vue_helper_1 = require(\"../../vue-helper\");\nfunction createComponent(config) {\n config.extends = component_1.initDxComponent();\n vue_helper_1.setCompatOptions(config);\n if (config.model) {\n vue_helper_1.setVModel(config);\n }\n return vue_1.defineComponent(config);\n}\nexports.createComponent = createComponent;\nfunction createConfigurationComponent(config) {\n config.extends = configuration_component_1.initDxConfiguration();\n vue_helper_1.setCompatOptions(config);\n return vue_1.defineComponent(config);\n}\nexports.createConfigurationComponent = createConfigurationComponent;\nfunction createExtensionComponent(config) {\n config.extends = extension_component_1.initDxExtensionComponent();\n vue_helper_1.setCompatOptions(config);\n return vue_1.defineComponent(config);\n}\nexports.createExtensionComponent = createExtensionComponent;\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","/**\r\n * DevExtreme (esm/core/renderer_base.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n cleanDataRecursive,\r\n removeData,\r\n data as elementData\r\n} from \"./element_data\";\r\nimport domAdapter from \"./dom_adapter\";\r\nimport {\r\n getWindow\r\n} from \"./utils/window\";\r\nimport {\r\n isObject,\r\n isWindow,\r\n isPlainObject,\r\n isString,\r\n isNumeric,\r\n isDefined,\r\n isFunction,\r\n type\r\n} from \"./utils/type\";\r\nimport {\r\n styleProp,\r\n normalizeStyleProp\r\n} from \"./utils/style\";\r\nimport {\r\n getOffset,\r\n getWindowByElement\r\n} from \"./utils/size\";\r\nimport {\r\n parseHTML,\r\n isTablePart\r\n} from \"./utils/html_parser\";\r\nvar window = getWindow();\r\nvar renderer;\r\nvar initRender = function(selector, context) {\r\n if (!selector) {\r\n this.length = 0;\r\n return this\r\n }\r\n if (\"string\" === typeof selector) {\r\n if (\"body\" === selector) {\r\n this[0] = context ? context.body : domAdapter.getBody();\r\n this.length = 1;\r\n return this\r\n }\r\n context = context || domAdapter.getDocument();\r\n if (\"<\" === selector[0]) {\r\n this[0] = domAdapter.createElement(selector.slice(1, -1), context);\r\n this.length = 1;\r\n return this\r\n } [].push.apply(this, domAdapter.querySelectorAll(context, selector));\r\n return this\r\n } else if (domAdapter.isNode(selector) || isWindow(selector)) {\r\n this[0] = selector;\r\n this.length = 1;\r\n return this\r\n } else if (Array.isArray(selector)) {\r\n [].push.apply(this, selector);\r\n return this\r\n }\r\n return renderer(selector.toArray ? selector.toArray() : [selector])\r\n};\r\nrenderer = function(selector, context) {\r\n return new initRender(selector, context)\r\n};\r\nrenderer.fn = {\r\n dxRenderer: true\r\n};\r\ninitRender.prototype = renderer.fn;\r\nvar repeatMethod = function(methodName, args) {\r\n for (var i = 0; i < this.length; i++) {\r\n var item = renderer(this[i]);\r\n item[methodName].apply(item, args)\r\n }\r\n return this\r\n};\r\nvar setAttributeValue = function(element, attrName, value) {\r\n if (void 0 !== value && null !== value) {\r\n domAdapter.setAttribute(element, attrName, value)\r\n } else {\r\n domAdapter.removeAttribute(element, attrName)\r\n }\r\n};\r\ninitRender.prototype.show = function() {\r\n return this.toggle(true)\r\n};\r\ninitRender.prototype.hide = function() {\r\n return this.toggle(false)\r\n};\r\ninitRender.prototype.toggle = function(value) {\r\n if (this[0]) {\r\n this.toggleClass(\"dx-state-invisible\", !value)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.attr = function(attrName, value) {\r\n if (this.length > 1 && arguments.length > 1) {\r\n return repeatMethod.call(this, \"attr\", arguments)\r\n }\r\n if (!this[0]) {\r\n if (isObject(attrName) || void 0 !== value) {\r\n return this\r\n } else {\r\n return\r\n }\r\n }\r\n if (!this[0].getAttribute) {\r\n return this.prop(attrName, value)\r\n }\r\n if (\"string\" === typeof attrName && 1 === arguments.length) {\r\n var result = this[0].getAttribute(attrName);\r\n return null == result ? void 0 : result\r\n } else if (isPlainObject(attrName)) {\r\n for (var key in attrName) {\r\n this.attr(key, attrName[key])\r\n }\r\n } else {\r\n setAttributeValue(this[0], attrName, value)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.removeAttr = function(attrName) {\r\n this[0] && domAdapter.removeAttribute(this[0], attrName);\r\n return this\r\n};\r\ninitRender.prototype.prop = function(propName, value) {\r\n if (!this[0]) {\r\n return this\r\n }\r\n if (\"string\" === typeof propName && 1 === arguments.length) {\r\n return this[0][propName]\r\n } else if (isPlainObject(propName)) {\r\n for (var key in propName) {\r\n this.prop(key, propName[key])\r\n }\r\n } else {\r\n domAdapter.setProperty(this[0], propName, value)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.addClass = function(className) {\r\n return this.toggleClass(className, true)\r\n};\r\ninitRender.prototype.removeClass = function(className) {\r\n return this.toggleClass(className, false)\r\n};\r\ninitRender.prototype.hasClass = function(className) {\r\n if (!this[0] || void 0 === this[0].className) {\r\n return false\r\n }\r\n var classNames = className.split(\" \");\r\n for (var i = 0; i < classNames.length; i++) {\r\n if (this[0].classList) {\r\n if (this[0].classList.contains(classNames[i])) {\r\n return true\r\n }\r\n } else {\r\n var _className = isString(this[0].className) ? this[0].className : domAdapter.getAttribute(this[0], \"class\");\r\n if ((_className || \"\").split(\" \").indexOf(classNames[i]) >= 0) {\r\n return true\r\n }\r\n }\r\n }\r\n return false\r\n};\r\ninitRender.prototype.toggleClass = function(className, value) {\r\n if (this.length > 1) {\r\n return repeatMethod.call(this, \"toggleClass\", arguments)\r\n }\r\n if (!this[0] || !className) {\r\n return this\r\n }\r\n value = void 0 === value ? !this.hasClass(className) : value;\r\n var classNames = className.split(\" \");\r\n for (var i = 0; i < classNames.length; i++) {\r\n domAdapter.setClass(this[0], classNames[i], value)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.html = function(value) {\r\n if (!arguments.length) {\r\n return this[0].innerHTML\r\n }\r\n this.empty();\r\n if (\"string\" === typeof value && !isTablePart(value) || \"number\" === typeof value) {\r\n this[0].innerHTML = value;\r\n return this\r\n }\r\n return this.append(parseHTML(value))\r\n};\r\nvar appendElements = function(element, nextSibling) {\r\n if (!this[0] || !element) {\r\n return\r\n }\r\n if (\"string\" === typeof element) {\r\n element = parseHTML(element)\r\n } else if (element.nodeType) {\r\n element = [element]\r\n } else if (isNumeric(element)) {\r\n element = [domAdapter.createTextNode(element)]\r\n }\r\n for (var i = 0; i < element.length; i++) {\r\n var item = element[i];\r\n var container = this[0];\r\n var wrapTR = \"TABLE\" === container.tagName && \"TR\" === item.tagName;\r\n if (wrapTR && container.tBodies && container.tBodies.length) {\r\n container = container.tBodies[0]\r\n }\r\n domAdapter.insertElement(container, item.nodeType ? item : item[0], nextSibling)\r\n }\r\n};\r\nvar setCss = function(name, value) {\r\n if (!this[0] || !this[0].style) {\r\n return\r\n }\r\n if (null === value || \"number\" === typeof value && isNaN(value)) {\r\n return\r\n }\r\n name = styleProp(name);\r\n for (var i = 0; i < this.length; i++) {\r\n this[i].style[name] = normalizeStyleProp(name, value)\r\n }\r\n};\r\ninitRender.prototype.css = function(name, value) {\r\n if (isString(name)) {\r\n if (2 === arguments.length) {\r\n setCss.call(this, name, value)\r\n } else {\r\n if (!this[0]) {\r\n return\r\n }\r\n name = styleProp(name);\r\n var result = window.getComputedStyle(this[0])[name] || this[0].style[name];\r\n return isNumeric(result) ? result.toString() : result\r\n }\r\n } else if (isPlainObject(name)) {\r\n for (var key in name) {\r\n setCss.call(this, key, name[key])\r\n }\r\n }\r\n return this\r\n};\r\ninitRender.prototype.prepend = function(element) {\r\n if (arguments.length > 1) {\r\n for (var i = 0; i < arguments.length; i++) {\r\n this.prepend(arguments[i])\r\n }\r\n return this\r\n }\r\n appendElements.apply(this, [element, this[0].firstChild]);\r\n return this\r\n};\r\ninitRender.prototype.append = function(element) {\r\n if (arguments.length > 1) {\r\n for (var i = 0; i < arguments.length; i++) {\r\n this.append(arguments[i])\r\n }\r\n return this\r\n }\r\n appendElements.apply(this, [element]);\r\n return this\r\n};\r\ninitRender.prototype.prependTo = function(element) {\r\n if (this.length > 1) {\r\n for (var i = this.length - 1; i >= 0; i--) {\r\n renderer(this[i]).prependTo(element)\r\n }\r\n return this\r\n }\r\n element = renderer(element);\r\n if (element[0]) {\r\n domAdapter.insertElement(element[0], this[0], element[0].firstChild)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.appendTo = function(element) {\r\n if (this.length > 1) {\r\n return repeatMethod.call(this, \"appendTo\", arguments)\r\n }\r\n domAdapter.insertElement(renderer(element)[0], this[0]);\r\n return this\r\n};\r\ninitRender.prototype.insertBefore = function(element) {\r\n if (element && element[0]) {\r\n domAdapter.insertElement(element[0].parentNode, this[0], element[0])\r\n }\r\n return this\r\n};\r\ninitRender.prototype.insertAfter = function(element) {\r\n if (element && element[0]) {\r\n domAdapter.insertElement(element[0].parentNode, this[0], element[0].nextSibling)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.before = function(element) {\r\n if (this[0]) {\r\n domAdapter.insertElement(this[0].parentNode, element[0], this[0])\r\n }\r\n return this\r\n};\r\ninitRender.prototype.after = function(element) {\r\n if (this[0]) {\r\n domAdapter.insertElement(this[0].parentNode, element[0], this[0].nextSibling)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.wrap = function(wrapper) {\r\n if (this[0]) {\r\n var wrap = renderer(wrapper);\r\n wrap.insertBefore(this);\r\n wrap.append(this)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.wrapInner = function(wrapper) {\r\n var contents = this.contents();\r\n if (contents.length) {\r\n contents.wrap(wrapper)\r\n } else {\r\n this.append(wrapper)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.replaceWith = function(element) {\r\n if (!(element && element[0])) {\r\n return\r\n }\r\n if (element.is(this)) {\r\n return this\r\n }\r\n element.insertBefore(this);\r\n this.remove();\r\n return element\r\n};\r\ninitRender.prototype.remove = function() {\r\n if (this.length > 1) {\r\n return repeatMethod.call(this, \"remove\", arguments)\r\n }\r\n cleanDataRecursive(this[0], true);\r\n domAdapter.removeElement(this[0]);\r\n return this\r\n};\r\ninitRender.prototype.detach = function() {\r\n if (this.length > 1) {\r\n return repeatMethod.call(this, \"detach\", arguments)\r\n }\r\n domAdapter.removeElement(this[0]);\r\n return this\r\n};\r\ninitRender.prototype.empty = function() {\r\n if (this.length > 1) {\r\n return repeatMethod.call(this, \"empty\", arguments)\r\n }\r\n cleanDataRecursive(this[0]);\r\n domAdapter.setText(this[0], \"\");\r\n return this\r\n};\r\ninitRender.prototype.clone = function() {\r\n var result = [];\r\n for (var i = 0; i < this.length; i++) {\r\n result.push(this[i].cloneNode(true))\r\n }\r\n return renderer(result)\r\n};\r\ninitRender.prototype.text = function(value) {\r\n if (!arguments.length) {\r\n var result = \"\";\r\n for (var i = 0; i < this.length; i++) {\r\n result += this[i] && this[i].textContent || \"\"\r\n }\r\n return result\r\n }\r\n var text = isFunction(value) ? value() : value;\r\n cleanDataRecursive(this[0], false);\r\n domAdapter.setText(this[0], isDefined(text) ? text : \"\");\r\n return this\r\n};\r\ninitRender.prototype.val = function(value) {\r\n if (1 === arguments.length) {\r\n return this.prop(\"value\", isDefined(value) ? value : \"\")\r\n }\r\n return this.prop(\"value\")\r\n};\r\ninitRender.prototype.contents = function() {\r\n if (!this[0]) {\r\n return renderer()\r\n }\r\n var result = [];\r\n result.push.apply(result, this[0].childNodes);\r\n return renderer(result)\r\n};\r\ninitRender.prototype.find = function(selector) {\r\n var result = renderer();\r\n if (!selector) {\r\n return result\r\n }\r\n var nodes = [];\r\n var i;\r\n if (\"string\" === typeof selector) {\r\n selector = selector.trim();\r\n for (i = 0; i < this.length; i++) {\r\n var element = this[i];\r\n if (domAdapter.isElementNode(element)) {\r\n var elementId = element.getAttribute(\"id\");\r\n var queryId = elementId || \"dx-query-children\";\r\n if (!elementId) {\r\n setAttributeValue(element, \"id\", queryId)\r\n }\r\n queryId = \"[id='\" + queryId + \"'] \";\r\n var querySelector = queryId + selector.replace(/([^\\\\])(,)/g, \"$1, \" + queryId);\r\n nodes.push.apply(nodes, domAdapter.querySelectorAll(element, querySelector));\r\n setAttributeValue(element, \"id\", elementId)\r\n } else if (domAdapter.isDocument(element)) {\r\n nodes.push.apply(nodes, domAdapter.querySelectorAll(element, selector))\r\n }\r\n }\r\n } else {\r\n for (i = 0; i < this.length; i++) {\r\n selector = domAdapter.isNode(selector) ? selector : selector[0];\r\n if (this[i] !== selector && this[i].contains(selector)) {\r\n nodes.push(selector)\r\n }\r\n }\r\n }\r\n return result.add(nodes)\r\n};\r\nvar isVisible = function(_, element) {\r\n var _element$host;\r\n element = null !== (_element$host = element.host) && void 0 !== _element$host ? _element$host : element;\r\n if (!element.nodeType) {\r\n return true\r\n }\r\n return !!(element.offsetWidth || element.offsetHeight || element.getClientRects().length)\r\n};\r\ninitRender.prototype.filter = function(selector) {\r\n if (!selector) {\r\n return renderer()\r\n }\r\n if (\":visible\" === selector) {\r\n return this.filter(isVisible)\r\n } else if (\":hidden\" === selector) {\r\n return this.filter((function(_, element) {\r\n return !isVisible(_, element)\r\n }))\r\n }\r\n var result = [];\r\n for (var i = 0; i < this.length; i++) {\r\n var item = this[i];\r\n if (domAdapter.isElementNode(item) && \"string\" === type(selector)) {\r\n domAdapter.elementMatches(item, selector) && result.push(item)\r\n } else if (domAdapter.isNode(selector) || isWindow(selector)) {\r\n selector === item && result.push(item)\r\n } else if (isFunction(selector)) {\r\n selector.call(item, i, item) && result.push(item)\r\n } else {\r\n for (var j = 0; j < selector.length; j++) {\r\n selector[j] === item && result.push(item)\r\n }\r\n }\r\n }\r\n return renderer(result)\r\n};\r\ninitRender.prototype.not = function(selector) {\r\n var result = [];\r\n var nodes = this.filter(selector).toArray();\r\n for (var i = 0; i < this.length; i++) {\r\n if (-1 === nodes.indexOf(this[i])) {\r\n result.push(this[i])\r\n }\r\n }\r\n return renderer(result)\r\n};\r\ninitRender.prototype.is = function(selector) {\r\n return !!this.filter(selector).length\r\n};\r\ninitRender.prototype.children = function(selector) {\r\n var result = [];\r\n for (var i = 0; i < this.length; i++) {\r\n var nodes = this[i] ? this[i].childNodes : [];\r\n for (var j = 0; j < nodes.length; j++) {\r\n if (domAdapter.isElementNode(nodes[j])) {\r\n result.push(nodes[j])\r\n }\r\n }\r\n }\r\n result = renderer(result);\r\n return selector ? result.filter(selector) : result\r\n};\r\ninitRender.prototype.siblings = function() {\r\n var element = this[0];\r\n if (!element || !element.parentNode) {\r\n return renderer()\r\n }\r\n var result = [];\r\n var parentChildNodes = element.parentNode.childNodes || [];\r\n for (var i = 0; i < parentChildNodes.length; i++) {\r\n var node = parentChildNodes[i];\r\n if (domAdapter.isElementNode(node) && node !== element) {\r\n result.push(node)\r\n }\r\n }\r\n return renderer(result)\r\n};\r\ninitRender.prototype.each = function(callback) {\r\n for (var i = 0; i < this.length; i++) {\r\n if (false === callback.call(this[i], i, this[i])) {\r\n break\r\n }\r\n }\r\n};\r\ninitRender.prototype.index = function(element) {\r\n if (!element) {\r\n return this.parent().children().index(this)\r\n }\r\n element = renderer(element);\r\n return this.toArray().indexOf(element[0])\r\n};\r\ninitRender.prototype.get = function(index) {\r\n return this[index < 0 ? this.length + index : index]\r\n};\r\ninitRender.prototype.eq = function(index) {\r\n index = index < 0 ? this.length + index : index;\r\n return renderer(this[index])\r\n};\r\ninitRender.prototype.first = function() {\r\n return this.eq(0)\r\n};\r\ninitRender.prototype.last = function() {\r\n return this.eq(-1)\r\n};\r\ninitRender.prototype.parent = function(selector) {\r\n if (!this[0]) {\r\n return renderer()\r\n }\r\n var result = renderer(this[0].parentNode);\r\n return !selector || result.is(selector) ? result : renderer()\r\n};\r\ninitRender.prototype.parents = function(selector) {\r\n var result = [];\r\n var parent = this.parent();\r\n while (parent && parent[0] && !domAdapter.isDocument(parent[0])) {\r\n if (domAdapter.isElementNode(parent[0])) {\r\n if (!selector || parent.is(selector)) {\r\n result.push(parent.get(0))\r\n }\r\n }\r\n parent = parent.parent()\r\n }\r\n return renderer(result)\r\n};\r\ninitRender.prototype.closest = function(selector) {\r\n if (this.is(selector)) {\r\n return this\r\n }\r\n var parent = this.parent();\r\n while (parent && parent.length) {\r\n if (parent.is(selector)) {\r\n return parent\r\n }\r\n parent = parent.parent()\r\n }\r\n return renderer()\r\n};\r\ninitRender.prototype.next = function(selector) {\r\n if (!this[0]) {\r\n return renderer()\r\n }\r\n var next = renderer(this[0].nextSibling);\r\n if (!arguments.length) {\r\n return next\r\n }\r\n while (next && next.length) {\r\n if (next.is(selector)) {\r\n return next\r\n }\r\n next = next.next()\r\n }\r\n return renderer()\r\n};\r\ninitRender.prototype.prev = function() {\r\n if (!this[0]) {\r\n return renderer()\r\n }\r\n return renderer(this[0].previousSibling)\r\n};\r\ninitRender.prototype.add = function(selector) {\r\n var targets = renderer(selector);\r\n var result = this.toArray();\r\n for (var i = 0; i < targets.length; i++) {\r\n var target = targets[i];\r\n if (-1 === result.indexOf(target)) {\r\n result.push(target)\r\n }\r\n }\r\n return renderer(result)\r\n};\r\nvar emptyArray = [];\r\ninitRender.prototype.splice = function() {\r\n return renderer(emptyArray.splice.apply(this, arguments))\r\n};\r\ninitRender.prototype.slice = function() {\r\n return renderer(emptyArray.slice.apply(this, arguments))\r\n};\r\ninitRender.prototype.toArray = function() {\r\n return emptyArray.slice.call(this)\r\n};\r\ninitRender.prototype.offset = function() {\r\n if (!this[0]) {\r\n return\r\n }\r\n return getOffset(this[0])\r\n};\r\ninitRender.prototype.offsetParent = function() {\r\n if (!this[0]) {\r\n return renderer()\r\n }\r\n var offsetParent = renderer(this[0].offsetParent);\r\n while (offsetParent[0] && \"static\" === offsetParent.css(\"position\")) {\r\n offsetParent = renderer(offsetParent[0].offsetParent)\r\n }\r\n offsetParent = offsetParent[0] ? offsetParent : renderer(domAdapter.getDocumentElement());\r\n return offsetParent\r\n};\r\ninitRender.prototype.position = function() {\r\n if (!this[0]) {\r\n return\r\n }\r\n var offset;\r\n var marginTop = parseFloat(this.css(\"marginTop\"));\r\n var marginLeft = parseFloat(this.css(\"marginLeft\"));\r\n if (\"fixed\" === this.css(\"position\")) {\r\n offset = this[0].getBoundingClientRect();\r\n return {\r\n top: offset.top - marginTop,\r\n left: offset.left - marginLeft\r\n }\r\n }\r\n offset = this.offset();\r\n var offsetParent = this.offsetParent();\r\n var parentOffset = {\r\n top: 0,\r\n left: 0\r\n };\r\n if (\"HTML\" !== offsetParent[0].nodeName) {\r\n parentOffset = offsetParent.offset()\r\n }\r\n parentOffset = {\r\n top: parentOffset.top + parseFloat(offsetParent.css(\"borderTopWidth\")),\r\n left: parentOffset.left + parseFloat(offsetParent.css(\"borderLeftWidth\"))\r\n };\r\n return {\r\n top: offset.top - parentOffset.top - marginTop,\r\n left: offset.left - parentOffset.left - marginLeft\r\n }\r\n};\r\n[{\r\n name: \"scrollLeft\",\r\n offsetProp: \"pageXOffset\",\r\n scrollWindow: function(win, value) {\r\n win.scrollTo(value, win.pageYOffset)\r\n }\r\n}, {\r\n name: \"scrollTop\",\r\n offsetProp: \"pageYOffset\",\r\n scrollWindow: function(win, value) {\r\n win.scrollTo(win.pageXOffset, value)\r\n }\r\n}].forEach((function(directionStrategy) {\r\n var propName = directionStrategy.name;\r\n initRender.prototype[propName] = function(value) {\r\n if (!this[0]) {\r\n return\r\n }\r\n var window = getWindowByElement(this[0]);\r\n if (void 0 === value) {\r\n return window ? window[directionStrategy.offsetProp] : this[0][propName]\r\n }\r\n if (window) {\r\n directionStrategy.scrollWindow(window, value)\r\n } else {\r\n this[0][propName] = value\r\n }\r\n return this\r\n }\r\n}));\r\ninitRender.prototype.data = function(key, value) {\r\n if (!this[0]) {\r\n return\r\n }\r\n if (arguments.length < 2) {\r\n return elementData.call(renderer, this[0], key)\r\n }\r\n elementData.call(renderer, this[0], key, value);\r\n return this\r\n};\r\ninitRender.prototype.removeData = function(key) {\r\n this[0] && removeData(this[0], key);\r\n return this\r\n};\r\nvar rendererWrapper = function() {\r\n return renderer.apply(this, arguments)\r\n};\r\nObject.defineProperty(rendererWrapper, \"fn\", {\r\n enumerable: true,\r\n configurable: true,\r\n get: function() {\r\n return renderer.fn\r\n },\r\n set: function(value) {\r\n renderer.fn = value\r\n }\r\n});\r\nexport default {\r\n set: function(strategy) {\r\n renderer = strategy\r\n },\r\n get: function() {\r\n return rendererWrapper\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/core/renderer.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport rendererBase from \"./renderer_base\";\r\nexport default rendererBase.get();\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/get_element_location_internal.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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/ui/scroll_view/ui.scrollable.old.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getWidth,\r\n getOuterWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n nativeScrolling\r\n} from \"../../core/utils/support\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isPlainObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\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 hasWindow\r\n} from \"../../core/utils/window\";\r\nimport devices from \"../../core/devices\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport DOMComponent from \"../../core/dom_component\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport scrollEvents from \"../../events/gesture/emitter.gesture.scroll\";\r\nimport {\r\n SimulatedStrategy\r\n} from \"./ui.scrollable.simulated\";\r\nimport NativeStrategy from \"./ui.scrollable.native\";\r\nimport {\r\n deviceDependentOptions\r\n} from \"./ui.scrollable.device\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n getElementLocationInternal\r\n} from \"../../renovation/ui/scroll_view/utils/get_element_location_internal\";\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: function() {\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 })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat(deviceDependentOptions(), [{\r\n device: function() {\r\n return nativeScrolling && \"android\" === devices.real().platform && !browser.mozilla\r\n },\r\n options: {\r\n useSimulatedScrollbar: true\r\n }\r\n }])\r\n },\r\n _initOptions: function(options) {\r\n this.callBase(options);\r\n if (!(\"useSimulatedScrollbar\" in options)) {\r\n this._setUseSimulatedScrollbar()\r\n }\r\n },\r\n _setUseSimulatedScrollbar: function() {\r\n if (!this.initialOption(\"useSimulatedScrollbar\")) {\r\n this.option(\"useSimulatedScrollbar\", !this.option(\"useNative\"))\r\n }\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initScrollableMarkup();\r\n this._locked = false\r\n },\r\n _visibilityChanged: function(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 } else {\r\n this._savedScrollOffset = this.scrollOffset()\r\n }\r\n },\r\n _initScrollableMarkup: function() {\r\n var $element = this.$element().addClass(SCROLLABLE_CLASS);\r\n var $container = this._$container = $(\"
\").addClass(SCROLLABLE_CONTAINER_CLASS);\r\n var $wrapper = this._$wrapper = $(\"
\").addClass(SCROLLABLE_WRAPPER_CLASS);\r\n var $content = this._$content = $(\"
\").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: function() {\r\n this.update();\r\n this._updateRtlPosition()\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderDirection()\r\n },\r\n _render: function() {\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: function(needInitializeRtlConfig) {\r\n this._strategy.updateRtlPosition(needInitializeRtlConfig)\r\n },\r\n _getMaxOffset: function() {\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: function() {\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, \".\" + 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, \".\" + SCROLLABLE);\r\n eventsEngine.on(this._$container, addNamespace(\"scroll\", SCROLLABLE), strategy.handleScroll.bind(strategy))\r\n },\r\n _validate: function(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: function() {\r\n var strategy = this._strategy;\r\n strategy.handleInit.apply(strategy, arguments)\r\n },\r\n _renderDisabledState: function() {\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: function() {\r\n this.$element().removeClass(\"dx-scrollable-\" + HORIZONTAL).removeClass(\"dx-scrollable-\" + VERTICAL).removeClass(\"dx-scrollable-\" + BOTH).addClass(\"dx-scrollable-\" + this.option(\"direction\"))\r\n },\r\n _renderStrategy: function() {\r\n this._createStrategy();\r\n this._strategy.render();\r\n this.$element().data(SCROLLABLE_STRATEGY, this._strategy)\r\n },\r\n _createStrategy: function() {\r\n this._strategy = this.option(\"useNative\") ? new NativeStrategy(this) : new SimulatedStrategy(this)\r\n },\r\n _createActions: function() {\r\n this._strategy && this._strategy.createActions()\r\n },\r\n _clean: function() {\r\n this._strategy && this._strategy.dispose()\r\n },\r\n _optionChanged: function(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 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: function() {\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: function() {\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: function() {\r\n return this._strategy.location()\r\n },\r\n _normalizeLocation: function(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 } else {\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 },\r\n _isLocked: function() {\r\n return this._locked\r\n },\r\n _lock: function() {\r\n this._locked = true\r\n },\r\n _unlock: function() {\r\n if (!this.option(\"disabled\")) {\r\n this._locked = false\r\n }\r\n },\r\n _isDirection: function(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: function() {\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: function() {\r\n return this._allowedDirectionValue\r\n },\r\n $content: function() {\r\n return this._$content\r\n },\r\n content: function() {\r\n return getPublicElement(this._$content)\r\n },\r\n container: function() {\r\n return getPublicElement(this._$container)\r\n },\r\n scrollOffset: function() {\r\n return this._strategy._getScrollOffset()\r\n },\r\n _isRtlNativeStrategy: function() {\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: function() {\r\n return this.scrollOffset().top\r\n },\r\n scrollLeft: function() {\r\n return this.scrollOffset().left\r\n },\r\n clientHeight: function() {\r\n return getHeight(this._$container)\r\n },\r\n scrollHeight: function() {\r\n return getOuterHeight(this.$content())\r\n },\r\n clientWidth: function() {\r\n return getWidth(this._$container)\r\n },\r\n scrollWidth: function() {\r\n return getOuterWidth(this.$content())\r\n },\r\n update: function() {\r\n if (!this._strategy) {\r\n return\r\n }\r\n return when(this._strategy.update()).done(function() {\r\n this._updateAllowedDirection()\r\n }.bind(this))\r\n },\r\n scrollBy: function(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: function(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 = 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: function(element, offset) {\r\n var $element = $(element);\r\n var elementInsideContent = this.$content().find(element).length;\r\n var elementIsInsideContent = $element.parents(\".\" + SCROLLABLE_CLASS).length - $element.parents(\".\" + 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: function($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: function() {\r\n if (!this.option(\"updateManually\")) {\r\n this.update()\r\n }\r\n },\r\n _useTemplates: function() {\r\n return false\r\n },\r\n isRenovated: function() {\r\n return !!Scrollable.IS_RENOVATED_WIDGET\r\n }\r\n});\r\nregisterComponent(SCROLLABLE, Scrollable);\r\nexport default Scrollable;\r\n","/**\r\n * DevExtreme (esm/core/templates/function_template.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n TemplateBase\r\n} from \"./template_base\";\r\nimport {\r\n normalizeTemplateElement\r\n} from \"../utils/dom\";\r\nexport class FunctionTemplate extends TemplateBase {\r\n constructor(render) {\r\n super();\r\n this._render = render\r\n }\r\n _renderCore(options) {\r\n return normalizeTemplateElement(this._render(options))\r\n }\r\n}\r\n","/*!\n * devextreme-vue\n * Version: 22.1.5\n * Build date: Fri Sep 02 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOptionInfo = exports.getOptionValue = exports.allKeysAreEqual = exports.forEachChildNode = exports.isEqual = exports.toComparable = exports.camelize = exports.lowercaseFirst = exports.uppercaseFirst = exports.getTemplatePropName = void 0;\nfunction getTemplatePropName(props, templateName) {\n for (var propName in props) {\n if (props[propName] === templateName) {\n return propName;\n }\n }\n return templateName;\n}\nexports.getTemplatePropName = getTemplatePropName;\nfunction uppercaseFirst(value) {\n return value[0].toUpperCase() + value.substr(1);\n}\nexports.uppercaseFirst = uppercaseFirst;\nfunction lowercaseFirst(value) {\n return value[0].toLowerCase() + value.substr(1);\n}\nexports.lowercaseFirst = lowercaseFirst;\nfunction camelize(value) {\n return lowercaseFirst(value.split(\"-\").map(function (v) { return uppercaseFirst(v); }).join(\"\"));\n}\nexports.camelize = camelize;\nfunction toComparable(value) {\n return value instanceof Date ? value.getTime() : value;\n}\nexports.toComparable = toComparable;\nfunction isEqual(value1, value2) {\n if (toComparable(value1) === toComparable(value2)) {\n return true;\n }\n if (Array.isArray(value1) && Array.isArray(value2)) {\n return value1.length === 0 && value2.length === 0;\n }\n return false;\n}\nexports.isEqual = isEqual;\nfunction forEachChildNode(el, callback) {\n Array.prototype.slice.call(el.childNodes).forEach(callback);\n}\nexports.forEachChildNode = forEachChildNode;\nfunction allKeysAreEqual(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n if (obj1Keys.length !== Object.keys(obj2).length) {\n return false;\n }\n for (var _i = 0, obj1Keys_1 = obj1Keys; _i < obj1Keys_1.length; _i++) {\n var key = obj1Keys_1[_i];\n if (!obj2.hasOwnProperty(key)) {\n return false;\n }\n }\n return true;\n}\nexports.allKeysAreEqual = allKeysAreEqual;\nfunction getOptionValue(options, optionPath) {\n var value = options;\n optionPath.split(\".\").forEach(function (p) {\n var optionInfo = getOptionInfo(p);\n if (value) {\n value = optionInfo.isCollection ?\n value[optionInfo.name] && value[optionInfo.name][optionInfo.index] :\n value[optionInfo.name];\n }\n });\n return value;\n}\nexports.getOptionValue = getOptionValue;\nfunction getOptionInfo(name) {\n var parts = name.split(\"[\");\n if (parts.length === 1) {\n return {\n isCollection: false,\n name: name,\n fullName: name\n };\n }\n return {\n isCollection: true,\n name: parts[0],\n fullName: name,\n index: Number(parts[1].slice(0, -1))\n };\n}\nexports.getOptionInfo = getOptionInfo;\n","/**\r\n * DevExtreme (esm/ui/editor/ui.data_expression.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport variableWrapper from \"../../core/utils/variable_wrapper\";\r\nimport {\r\n compileGetter,\r\n toComparable\r\n} from \"../../core/utils/data\";\r\nimport {\r\n ensureDefined,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isObject as isObjectType,\r\n isString,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport DataHelperMixin from \"../../data_helper\";\r\nimport {\r\n DataSource\r\n} from \"../../data/data_source/data_source\";\r\nimport ArrayStore from \"../../data/array_store\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar DataExpressionMixin = extend({}, DataHelperMixin, {\r\n _dataExpressionDefaultOptions: function() {\r\n return {\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 },\r\n _initDataExpressions: function() {\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: function() {\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 }\r\n },\r\n _compileDisplayGetter: function() {\r\n this._displayGetter = compileGetter(this._displayGetterExpr())\r\n },\r\n _displayGetterExpr: function() {\r\n return this.option(\"displayExpr\")\r\n },\r\n _compileValueGetter: function() {\r\n this._valueGetter = compileGetter(this._valueGetterExpr())\r\n },\r\n _valueGetterExpr: function() {\r\n return this.option(\"valueExpr\") || \"this\"\r\n },\r\n _loadValue: function(value) {\r\n var deferred = new 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(function(item) {\r\n this._isValueEquals(this._valueGetter(item), value) ? deferred.resolve(item) : deferred.reject()\r\n }.bind(this)).fail((function() {\r\n deferred.reject()\r\n }));\r\n this._loadValueDeferred = deferred;\r\n return deferred.promise()\r\n },\r\n _rejectValueLoading: function() {\r\n var _this$_loadValueDefer;\r\n null === (_this$_loadValueDefer = this._loadValueDeferred) || void 0 === _this$_loadValueDefer ? void 0 : _this$_loadValueDefer.reject({\r\n shouldSkipCallback: true\r\n })\r\n },\r\n _getCurrentValue: function() {\r\n return this.option(\"value\")\r\n },\r\n _unwrappedValue: function(value) {\r\n var _value;\r\n value = null !== (_value = 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: function(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: function(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: function(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: function(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: function(value1, value2) {\r\n return toComparable(value1, true) === toComparable(value2, true)\r\n },\r\n _initDynamicTemplates: noop,\r\n _setCollectionWidgetItemTemplate: function() {\r\n this._initDynamicTemplates();\r\n this._setCollectionWidgetOption(\"itemTemplate\", this.option(\"itemTemplate\"))\r\n },\r\n _getCollectionKeyExpr: function() {\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: function(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/drop_down_editor/ui.drop_down_list.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Guid from \"../../core/guid\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n noop,\r\n ensureDefined,\r\n grep\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isWindow,\r\n isDefined,\r\n isObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport DropDownEditor from \"./ui.drop_down_editor\";\r\nimport List from \"../list_light\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport devices from \"../../core/devices\";\r\nimport dataQuery from \"../../data/query\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport DataExpressionMixin from \"../editor/ui.data_expression\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n ChildDefaultTemplate\r\n} from \"../../core/templates/child_default_template\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport DataConverterMixin from \"../shared/grouped_data_converter_mixin\";\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: function() {\r\n var parent = this.callBase();\r\n return extend({}, parent, {\r\n tab: function(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: function() {\r\n return this.option(\"opened\") && \"instantly\" === this.option(\"applyValueMode\")\r\n },\r\n _setSelectedElement: function($element) {\r\n var value = this._valueGetter(this._list._getItemData($element));\r\n this._setValue(value)\r\n },\r\n _setValue: function(value) {\r\n this.option(\"value\", value)\r\n },\r\n _getDefaultOptions: function() {\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 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: function() {\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: function() {\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: function() {\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: function() {\r\n this._list._updateParentActiveDescendant = this._updateActiveDescendant.bind(this)\r\n },\r\n _initItems: function() {\r\n var items = this.option().items;\r\n if (items && !items.length && this._dataSource) {\r\n this.option().items = this._dataSource.items()\r\n }\r\n },\r\n _initActions: function() {\r\n this._initContentReadyAction();\r\n this._initSelectionChangedAction();\r\n this._initItemClickAction()\r\n },\r\n _initContentReadyAction: function() {\r\n this._contentReadyAction = this._createActionByOption(\"onContentReady\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initSelectionChangedAction: function() {\r\n this._selectionChangedAction = this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initItemClickAction: function() {\r\n this._itemClickAction = this._createActionByOption(\"onItemClick\")\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n item: new ChildDefaultTemplate(\"item\")\r\n })\r\n },\r\n _isEditable: function() {\r\n return this.callBase() || this.option(\"searchEnabled\")\r\n },\r\n _saveFocusOnWidget: function(e) {\r\n if (this._list && this._list.initialOption(\"focusStateEnabled\")) {\r\n this._focusInput()\r\n }\r\n },\r\n _fitIntoRange: function(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: function() {\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: function(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: function() {\r\n var items = this._items();\r\n var selectedItem = this.option(\"selectedItem\");\r\n var result = -1;\r\n each(items, function(index, item) {\r\n if (this._isValueEquals(item, selectedItem)) {\r\n result = index;\r\n return false\r\n }\r\n }.bind(this));\r\n return result\r\n },\r\n _createPopup: function() {\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: function() {\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, function(i, parent) {\r\n if (parent === $(\"body\").get(0)) {\r\n return false\r\n } else if (\"hidden\" === window.getComputedStyle(parent).overflowY) {\r\n this._$customBoundaryContainer = $(parent);\r\n return false\r\n }\r\n }.bind(this))\r\n }\r\n },\r\n _popupWrapperClass: function() {\r\n return DROPDOWNLIST_POPUP_WRAPPER_CLASS\r\n },\r\n _renderInputValue: function() {\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: function(value, callback) {\r\n return this._loadItem(value).always(callback)\r\n },\r\n _getItemFromPlain: function(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, function(item) {\r\n return this._isValueEquals(this._valueGetter(item), value)\r\n }.bind(this))[0]\r\n }\r\n return selectedItem\r\n },\r\n _loadItem: function(value, cache) {\r\n var selectedItem = this._getItemFromPlain(value, cache);\r\n return void 0 !== selectedItem ? (new Deferred).resolve(selectedItem).promise() : this._loadValue(value)\r\n },\r\n _getPlainItems: function(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() {\r\n var _this$_list;\r\n var opened = this.option(\"opened\");\r\n var listFocusedItemId = null === (_this$_list = this._list) || void 0 === _this$_list ? void 0 : _this$_list.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 })\r\n },\r\n _setSelectedItem: function(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: function(item) {\r\n return this._displayGetter(item)\r\n },\r\n _refreshSelected: function() {\r\n var cache = {};\r\n this._listItemElements().each(function(_, 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 }.bind(this))\r\n },\r\n _popupShownHandler: function() {\r\n this.callBase();\r\n this._setFocusPolicy()\r\n },\r\n _setFocusPolicy: function() {\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: function(value) {\r\n return this._isValueEquals(value, this.option(\"value\"))\r\n },\r\n _validateSearchMode: function() {\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: function() {\r\n this.option(\"selectedItem\", null)\r\n },\r\n _processDataSourceChanging: function() {\r\n this._setListDataSource();\r\n this._renderInputValue().fail(function() {\r\n if (this._isCustomValueAllowed()) {\r\n return\r\n }\r\n this._clearSelectedItem()\r\n }.bind(this))\r\n },\r\n _isCustomValueAllowed: function() {\r\n return this.option(\"displayCustomValue\")\r\n },\r\n reset: function() {\r\n this.callBase();\r\n this._clearFilter();\r\n this._clearSelectedItem()\r\n },\r\n _listItemElements: function() {\r\n return this._$list ? this._$list.find(LIST_ITEM_SELECTOR) : $()\r\n },\r\n _popupConfig: function() {\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: function() {\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 _setAriaTargetForList: function() {\r\n this._list._getAriaTarget = this._getAriaTarget.bind(this)\r\n },\r\n _renderList: function() {\r\n this._listId = \"dx-\" + (new Guid)._value;\r\n var $list = this._$list = $(\"
\").attr(\"id\", this._listId).appendTo(this._popup.$content());\r\n this._list = this._createComponent($list, List, this._listConfig());\r\n this._refreshList();\r\n this._setAriaTargetForList();\r\n this._list.option(\"_listAttributes\", {\r\n role: \"combobox\"\r\n });\r\n this._renderPreventBlurOnListClick();\r\n this._setListFocusedElementOptionChange()\r\n },\r\n _renderPreventBlurOnListClick: function() {\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 _renderOpenedState: function() {\r\n this.callBase();\r\n this._list && this._updateActiveDescendant();\r\n this.setAria({\r\n controls: this._list && this._listId,\r\n owns: this._popup && this._popupContentId\r\n })\r\n },\r\n _setDefaultAria: function() {\r\n this.setAria({\r\n haspopup: \"listbox\",\r\n autocomplete: \"list\"\r\n })\r\n },\r\n _refreshList: function() {\r\n if (this._list && this._shouldRefreshDataSource()) {\r\n this._setListDataSource()\r\n }\r\n },\r\n _shouldRefreshDataSource: function() {\r\n var dataSourceProvided = !!this._list.option(\"dataSource\");\r\n return dataSourceProvided !== this._needPassDataSourceToList()\r\n },\r\n _isDesktopDevice: function() {\r\n return \"desktop\" === devices.real().deviceType\r\n },\r\n _listConfig: function() {\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 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 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: function() {\r\n return this._needPassDataSourceToList() ? this._dataSource : null\r\n },\r\n _dataSourceOptions: function() {\r\n return {\r\n paginate: false\r\n }\r\n },\r\n _getGroupedOption: function() {\r\n return this.option(\"grouped\")\r\n },\r\n _dataSourceFromUrlLoadMode: function() {\r\n return \"raw\"\r\n },\r\n _listContentReadyHandler: function() {\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._dimensionChanged();\r\n this._contentReadyAction()\r\n },\r\n _setListOption: function(optionName, value) {\r\n this._setWidgetOption(\"_list\", arguments)\r\n },\r\n _listItemClickAction: function(e) {\r\n this._listItemClickHandler(e);\r\n this._itemClickAction(e)\r\n },\r\n _listItemClickHandler: noop,\r\n _setListDataSource: function() {\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: function() {\r\n return this.option(\"showDataBeforeSearch\") || this._isMinSearchLengthExceeded()\r\n },\r\n _isMinSearchLengthExceeded: function() {\r\n return this._searchValue().toString().length >= this.option(\"minSearchLength\")\r\n },\r\n _needClearFilter: function() {\r\n return this._canKeepDataSource() ? false : this._needPassDataSourceToList()\r\n },\r\n _canKeepDataSource: function() {\r\n var _this$_dataSource;\r\n var isMinSearchLengthExceeded = this._isMinSearchLengthExceeded();\r\n return (null === (_this$_dataSource = this._dataSource) || void 0 === _this$_dataSource ? void 0 : _this$_dataSource.isLoaded()) && this.option(\"showDataBeforeSearch\") && this.option(\"minSearchLength\") && !isMinSearchLengthExceeded && !this._isLastMinSearchLengthExceeded\r\n },\r\n _searchValue: function() {\r\n return this._input().val() || \"\"\r\n },\r\n _getSearchEvent: function() {\r\n return addNamespace(SEARCH_EVENT, this.NAME + \"Search\")\r\n },\r\n _getCompositionStartEvent: function() {\r\n return addNamespace(\"compositionstart\", this.NAME + \"CompositionStart\")\r\n },\r\n _getCompositionEndEvent: function() {\r\n return addNamespace(\"compositionend\", this.NAME + \"CompositionEnd\")\r\n },\r\n _getSetFocusPolicyEvent: function() {\r\n return addNamespace(\"input\", this.NAME + \"FocusPolicy\")\r\n },\r\n _renderEvents: function() {\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: function() {\r\n return this.option(\"searchEnabled\")\r\n },\r\n _refreshEvents: function() {\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: function(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: function(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: function() {\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: function() {\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: function(searchValue) {\r\n this._clearSearchTimer();\r\n var dataSource = this._dataSource;\r\n if (dataSource) {\r\n dataSource.searchExpr(this.option(\"searchExpr\") || this._displayGetterExpr());\r\n dataSource.searchOperation(this.option(\"searchMode\"));\r\n dataSource.searchValue(searchValue);\r\n dataSource.load().done(this._dataSourceFiltered.bind(this, searchValue))\r\n }\r\n },\r\n _clearFilter: function() {\r\n var dataSource = this._dataSource;\r\n dataSource && dataSource.searchValue() && dataSource.searchValue(null)\r\n },\r\n _dataSourceFiltered: function() {\r\n this._isLastMinSearchLengthExceeded = this._isMinSearchLengthExceeded();\r\n this._refreshList();\r\n this._refreshPopupVisibility()\r\n },\r\n _shouldOpenPopup: function() {\r\n return this._hasItemsToShow()\r\n },\r\n _refreshPopupVisibility: function() {\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._dimensionChanged()\r\n }\r\n },\r\n _dataSourceChangedHandler: function(newItems) {\r\n if (0 === this._dataSource.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: function() {\r\n var resultItems = this._dataSource && this._dataSource.items() || [];\r\n var resultAmount = resultItems.length;\r\n var isMinSearchLengthExceeded = this._needPassDataSourceToList();\r\n return !!(isMinSearchLengthExceeded && resultAmount)\r\n },\r\n _clearSearchTimer: function() {\r\n clearTimeout(this._searchTimer);\r\n delete this._searchTimer\r\n },\r\n _popupShowingHandler: function() {\r\n this._dimensionChanged()\r\n },\r\n _dimensionChanged: function() {\r\n this.callBase(arguments);\r\n this._popup && this._updatePopupDimensions()\r\n },\r\n _needPopupRepaint: function() {\r\n if (!this._dataSource) {\r\n return false\r\n }\r\n var currentPageIndex = this._dataSource.pageIndex();\r\n var needRepaint = isDefined(this._pageIndex) && currentPageIndex <= this._pageIndex || this._dataSource.isLastPage() && !this._list._scrollViewIsFull();\r\n this._pageIndex = currentPageIndex;\r\n return needRepaint\r\n },\r\n _updatePopupDimensions: function() {\r\n if (this._needPopupRepaint()) {\r\n this._popup.repaint()\r\n }\r\n this._list && this._list.updateDimensions()\r\n },\r\n _getMaxHeight: function() {\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: function() {\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: function() {\r\n this._clearSearchTimer();\r\n this.callBase()\r\n },\r\n _setCollectionWidgetOption: function() {\r\n this._setListOption.apply(this, arguments)\r\n },\r\n _setSubmitValue: function() {\r\n var value = this.option(\"value\");\r\n var submitValue = this._shouldUseDisplayValue(value) ? this._displayGetter(value) : value;\r\n this._getSubmitElement().val(submitValue)\r\n },\r\n _shouldUseDisplayValue: function(value) {\r\n return \"this\" === this.option(\"valueExpr\") && isObject(value)\r\n },\r\n _optionChanged: function(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 \"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/ui/select_box.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 ensureDefined\r\n} from \"../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isPromise\r\n} from \"../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n Deferred,\r\n fromPromise\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport errors from \"../core/errors\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport messageLocalization from \"../localization/message\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport DropDownList from \"./drop_down_editor/ui.drop_down_list\";\r\nimport \"./list/modules/selection\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../events/utils/index\";\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: function() {\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.reset()\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: function() {\r\n if (this.option(\"opened\") && \"instantly\" === this.option(\"applyValueMode\")) {\r\n this._resetCaretPosition(true)\r\n }\r\n parent.tab && parent.tab.apply(this, arguments);\r\n this._cancelSearchIfNeed()\r\n },\r\n upArrow: function(e) {\r\n if (parent.upArrow && 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 },\r\n downArrow: function(e) {\r\n if (parent.downArrow && 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 },\r\n leftArrow: function() {\r\n searchIfNeeded();\r\n parent.leftArrow && parent.leftArrow.apply(this, arguments)\r\n },\r\n rightArrow: function() {\r\n searchIfNeeded();\r\n parent.rightArrow && parent.rightArrow.apply(this, arguments)\r\n },\r\n home: function() {\r\n searchIfNeeded();\r\n parent.home && parent.home.apply(this, arguments)\r\n },\r\n end: function() {\r\n searchIfNeeded();\r\n parent.end && parent.end.apply(this, arguments)\r\n },\r\n escape: function() {\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: function(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: function(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: function() {\r\n return extend(this.callBase(), {\r\n placeholder: messageLocalization.format(\"Select\"),\r\n fieldTemplate: null,\r\n valueChangeEvent: \"change\",\r\n acceptCustomValue: false,\r\n onCustomItemCreating: function(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: function() {\r\n this.callBase();\r\n this._initCustomItemCreatingAction()\r\n },\r\n _initMarkup: function() {\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: function() {\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: function() {\r\n return this.callBase() + \" \" + SELECTBOX_POPUP_WRAPPER_CLASS\r\n },\r\n _cancelEditing: function() {\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: function() {\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: function() {\r\n var _items$indexOf;\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 !== (_items$indexOf = null === items || void 0 === items ? void 0 : items.indexOf(selectedItem)) && void 0 !== _items$indexOf ? _items$indexOf : -1;\r\n var focusedElement = -1 !== index && !this._isCustomItemSelected() ? $listItems.eq(index) : null;\r\n this._focusListElement(focusedElement)\r\n },\r\n _renderFocusedElement: function() {\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: function(element) {\r\n this._preventInputValueRender = true;\r\n this._list.option(\"focusedElement\", getPublicElement(element));\r\n delete this._preventInputValueRender\r\n },\r\n _scrollToSelectedItem: function() {\r\n this._list && this._list.scrollToItem(this._list.option(\"selectedItem\"))\r\n },\r\n _listContentReadyHandler: function() {\r\n this.callBase();\r\n var isPaginate = this._dataSource && this._dataSource.paginate();\r\n if (isPaginate && this._needPopupRepaint()) {\r\n return\r\n }\r\n this._scrollToSelectedItem()\r\n },\r\n _renderValue: function() {\r\n this._renderInputValue();\r\n this._setSubmitValue();\r\n return (new Deferred).resolve()\r\n },\r\n _renderInputValue: function() {\r\n return this.callBase().always(function() {\r\n this._renderInputValueAsync()\r\n }.bind(this))\r\n },\r\n _renderInputValueAsync: function() {\r\n this._renderTooltip();\r\n this._renderInputValueImpl().always(function() {\r\n this._refreshSelected()\r\n }.bind(this))\r\n },\r\n _renderInputValueImpl: function() {\r\n this._renderField();\r\n return (new Deferred).resolve()\r\n },\r\n _setNextItem: function(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: function(e) {\r\n var dataSourceIsLoaded = this._dataSource.isLoaded() ? (new Deferred).resolve() : this._dataSource.load();\r\n dataSourceIsLoaded.done(function() {\r\n var selectedIndex = this._getSelectedIndex();\r\n var hasPages = this._dataSource.pageSize();\r\n var isLastPage = this._dataSource.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._dataSource.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 }.bind(this))\r\n },\r\n _setSelectedItem: function(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: function() {\r\n return this.option(\"acceptCustomValue\") || this.callBase()\r\n },\r\n _displayValue: function(item) {\r\n item = !isDefined(item) && this._isCustomValueAllowed() ? this.option(\"value\") : item;\r\n return this.callBase(item)\r\n },\r\n _listConfig: function() {\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 selectionByClick: true\r\n })\r\n }\r\n return result\r\n },\r\n _listFocusedItemChangeHandler: function(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: function(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: function() {\r\n return this.option(\"showSelectionControls\") ? this._selectionChangeHandler.bind(this) : noop\r\n },\r\n _selectionChangeHandler: function(e) {\r\n each(e.addedItems || [], function(_, addedItem) {\r\n this._setValue(this._valueGetter(addedItem))\r\n }.bind(this))\r\n },\r\n _getActualSearchValue: function() {\r\n return this._dataSource.searchValue()\r\n },\r\n _toggleOpenState: function(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._dataSource) {\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: function() {\r\n if (this.option(\"tooltipEnabled\")) {\r\n this.$element().attr(\"title\", this.option(\"displayValue\"))\r\n }\r\n },\r\n _renderDimensions: function() {\r\n this.callBase();\r\n this._dimensionChanged()\r\n },\r\n _isValueEqualInputText: function() {\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: function() {\r\n if (this._isValueEqualInputText()) {\r\n this._cancelEditing()\r\n }\r\n this.callBase()\r\n },\r\n _popupHiddenHandler: function() {\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: function(saveEditingValue) {\r\n if (this.option(\"readOnly\")) {\r\n return\r\n }\r\n this._loadItemDeferred && this._loadItemDeferred.always(function() {\r\n var {\r\n selectedItem: initialSelectedItem,\r\n text: text\r\n } = this.option();\r\n if (this.option(\"acceptCustomValue\")) {\r\n if (!saveEditingValue) {\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(function(selectedItem) {\r\n var newSelectedItem = ensureDefined(selectedItem, initialSelectedItem);\r\n this._setSelectedItem(newSelectedItem);\r\n this._updateField(newSelectedItem);\r\n this._clearFilter()\r\n }.bind(this))\r\n }.bind(this))\r\n },\r\n _focusOutHandler: function(e) {\r\n if (!this._preventNestedFocusEvent(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: function(e) {\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 _this$_popup;\r\n var isPopupVisible = null === (_this$_popup = this._popup) || void 0 === _this$_popup ? void 0 : _this$_popup._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: function(value) {\r\n if (!arguments.length) {\r\n return this._shouldCancelSearchValue\r\n }\r\n this._shouldCancelSearchValue = value\r\n },\r\n _isOverlayNestedTarget: function(target) {\r\n return !!$(target).closest(\".\".concat(SELECTBOX_POPUP_WRAPPER_CLASS)).length\r\n },\r\n _clearTextValue: function() {\r\n if (this.option(\"selectedItem\")) {\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: function() {\r\n return this._needPassDataSourceToList() && this._wasSearch()\r\n },\r\n _isFocused: function() {\r\n var activeElement = domAdapter.getActiveElement();\r\n return this.callBase() && $(activeElement).closest(this._input()).length > 0\r\n },\r\n _renderValueChangeEvent: function() {\r\n if (this._isEditable()) {\r\n this.callBase()\r\n }\r\n },\r\n _fieldRenderData: function() {\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: function(value) {\r\n return this._isValueEquals(value, this.option(\"value\"))\r\n },\r\n _shouldCloseOnItemClick: function() {\r\n return !(this.option(\"showSelectionControls\") && \"single\" !== this.option(\"selectionMode\"))\r\n },\r\n _listItemClickHandler: function(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: function() {\r\n return this._wasSearch()\r\n },\r\n _completeSelection: function(value) {\r\n this._setValue(value)\r\n },\r\n _loadItem: function(value, cache) {\r\n var that = this;\r\n var deferred = new Deferred;\r\n this.callBase(value, cache).done(function(item) {\r\n deferred.resolve(item)\r\n }.bind(this)).fail(function(args) {\r\n if (null !== args && void 0 !== args && 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 }.bind(this));\r\n return deferred.promise()\r\n },\r\n _loadInputValue: function(value, callback) {\r\n this._loadItemDeferred = this._loadItem(value).always(callback);\r\n return this._loadItemDeferred\r\n },\r\n _isCustomItemSelected: function() {\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: function(e) {\r\n if (this.option(\"acceptCustomValue\") && this._isCustomItemSelected() && !this._isValueChanging) {\r\n this._isValueChanging = true;\r\n this._customItemAddedHandler(e);\r\n this._isValueChanging = false\r\n }\r\n },\r\n _initCustomItemCreatingAction: function() {\r\n this._customItemCreatingAction = this._createActionByOption(\"onCustomItemCreating\")\r\n },\r\n _createCustomItem: function(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: function(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: function(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 },\r\n _clearValueHandler: function(e) {\r\n this._preventFiltering = true;\r\n this.callBase(e);\r\n this._searchCanceled();\r\n return false\r\n },\r\n _wasSearch: function(value) {\r\n if (!arguments.length) {\r\n return !!this._wasSearchValue\r\n }\r\n this._wasSearchValue = value\r\n },\r\n _searchHandler: function() {\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: function(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: function() {\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: function() {\r\n return !this._preventSubstitution && this.option(\"searchEnabled\") && !this.option(\"acceptCustomValue\") && \"startswith\" === this.option(\"searchMode\")\r\n },\r\n _renderInputSubstitution: function() {\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: function() {\r\n this._renderInputValueAsync = noop;\r\n delete this._loadItemDeferred;\r\n this.callBase()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\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","/*!\n * devextreme-vue\n * Version: 22.1.5\n * Build date: Fri Sep 02 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TEMPLATE_MULTIPLE_ROOTS_ERROR = void 0;\nexports.TEMPLATE_MULTIPLE_ROOTS_ERROR = \"Template must have a single root node.\";\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scroll_view.native.pull_down.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport NativeStrategy from \"./ui.scrollable.native\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar SCROLLVIEW_PULLDOWN_REFRESHING_CLASS = \"dx-scrollview-pull-down-loading\";\r\nvar SCROLLVIEW_PULLDOWN_READY_CLASS = \"dx-scrollview-pull-down-ready\";\r\nvar SCROLLVIEW_PULLDOWN_IMAGE_CLASS = \"dx-scrollview-pull-down-image\";\r\nvar SCROLLVIEW_PULLDOWN_INDICATOR_CLASS = \"dx-scrollview-pull-down-indicator\";\r\nvar SCROLLVIEW_PULLDOWN_TEXT_CLASS = \"dx-scrollview-pull-down-text\";\r\nvar SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS = \"dx-scrollview-pull-down-text-visible\";\r\nvar STATE_RELEASED = 0;\r\nvar STATE_READY = 1;\r\nvar STATE_REFRESHING = 2;\r\nvar STATE_LOADING = 3;\r\nvar PULLDOWN_RELEASE_TIME = 400;\r\nvar PullDownNativeScrollViewStrategy = NativeStrategy.inherit({\r\n _init: function(scrollView) {\r\n this.callBase(scrollView);\r\n this._$topPocket = scrollView._$topPocket;\r\n this._$pullDown = scrollView._$pullDown;\r\n this._$refreshingText = scrollView._$refreshingText;\r\n this._$scrollViewContent = $(scrollView.content());\r\n this._$container = $(scrollView.container());\r\n this._initCallbacks()\r\n },\r\n _initCallbacks: function() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n render: function() {\r\n this.callBase();\r\n this._renderPullDown();\r\n this._releaseState()\r\n },\r\n _renderPullDown: function() {\r\n var $image = $(\"
\").addClass(SCROLLVIEW_PULLDOWN_IMAGE_CLASS);\r\n var $loadContainer = $(\"
\").addClass(SCROLLVIEW_PULLDOWN_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"
\")).$element();\r\n var $text = this._$pullDownText = $(\"
\").addClass(SCROLLVIEW_PULLDOWN_TEXT_CLASS);\r\n this._$pullingDownText = $(\"
\").text(this.option(\"pullingDownText\")).appendTo($text);\r\n this._$pulledDownText = $(\"
\").text(this.option(\"pulledDownText\")).appendTo($text);\r\n this._$refreshingText = $(\"
\").text(this.option(\"refreshingText\")).appendTo($text);\r\n this._$pullDown.empty().append($image).append($loadContainer.append($loadIndicator)).append($text)\r\n },\r\n _releaseState: function() {\r\n this._state = STATE_RELEASED;\r\n this._refreshPullDownText()\r\n },\r\n _refreshPullDownText: function() {\r\n var that = this;\r\n var pullDownTextItems = [{\r\n element: this._$pullingDownText,\r\n visibleState: STATE_RELEASED\r\n }, {\r\n element: this._$pulledDownText,\r\n visibleState: STATE_READY\r\n }, {\r\n element: this._$refreshingText,\r\n visibleState: STATE_REFRESHING\r\n }];\r\n each(pullDownTextItems, (function(_, item) {\r\n var action = that._state === item.visibleState ? \"addClass\" : \"removeClass\";\r\n item.element[action](SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS)\r\n }))\r\n },\r\n update: function() {\r\n this.callBase();\r\n this._setTopPocketOffset()\r\n },\r\n _updateDimensions: function() {\r\n this.callBase();\r\n this._topPocketSize = this._$topPocket.get(0).clientHeight;\r\n var contentEl = this._$scrollViewContent.get(0);\r\n var containerEl = this._$container.get(0);\r\n this._bottomBoundary = Math.max(contentEl.clientHeight - containerEl.clientHeight, 0)\r\n },\r\n _allowedDirections: function() {\r\n var allowedDirections = this.callBase();\r\n allowedDirections.vertical = allowedDirections.vertical || this._pullDownEnabled;\r\n return allowedDirections\r\n },\r\n _setTopPocketOffset: function() {\r\n this._$topPocket.css({\r\n top: -this._topPocketSize\r\n })\r\n },\r\n handleEnd: function() {\r\n this.callBase();\r\n this._complete()\r\n },\r\n handleStop: function() {\r\n this.callBase();\r\n this._complete()\r\n },\r\n _complete: function() {\r\n if (this._state === STATE_READY) {\r\n this._setPullDownOffset(this._topPocketSize);\r\n clearTimeout(this._pullDownRefreshTimeout);\r\n this._pullDownRefreshTimeout = setTimeout(function() {\r\n this._pullDownRefreshing()\r\n }.bind(this), 400)\r\n }\r\n },\r\n _setPullDownOffset: function(offset) {\r\n move(this._$topPocket, {\r\n top: offset\r\n });\r\n move(this._$scrollViewContent, {\r\n top: offset\r\n })\r\n },\r\n handleScroll: function(e) {\r\n this.callBase(e);\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n var currentLocation = this.location().top;\r\n var scrollDelta = (this._location || 0) - currentLocation;\r\n this._location = currentLocation;\r\n if (this._isPullDown()) {\r\n this._pullDownReady()\r\n } else if (scrollDelta > 0 && this._isReachBottom()) {\r\n this._reachBottom()\r\n } else {\r\n this._stateReleased()\r\n }\r\n },\r\n _isPullDown: function() {\r\n return this._pullDownEnabled && this._location >= this._topPocketSize\r\n },\r\n _isReachBottom: function() {\r\n return this._reachBottomEnabled && Math.round(this._bottomBoundary + Math.floor(this._location)) <= 1\r\n },\r\n _reachBottom: function() {\r\n if (this._state === STATE_LOADING) {\r\n return\r\n }\r\n this._state = STATE_LOADING;\r\n this.reachBottomCallbacks.fire()\r\n },\r\n _pullDownReady: function() {\r\n if (this._state === STATE_READY) {\r\n return\r\n }\r\n this._state = STATE_READY;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText()\r\n },\r\n _stateReleased: function() {\r\n if (this._state === STATE_RELEASED) {\r\n return\r\n }\r\n this._$pullDown.removeClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._releaseState()\r\n },\r\n _pullDownRefreshing: function() {\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n this._state = STATE_REFRESHING;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText();\r\n this.pullDownCallbacks.fire()\r\n },\r\n pullDownEnable: function(enabled) {\r\n if (enabled) {\r\n this._updateDimensions();\r\n this._setTopPocketOffset()\r\n }\r\n this._pullDownEnabled = enabled\r\n },\r\n reachBottomEnable: function(enabled) {\r\n this._reachBottomEnabled = enabled\r\n },\r\n pendingRelease: function() {\r\n this._state = STATE_READY\r\n },\r\n release: function() {\r\n var deferred = new Deferred;\r\n this._updateDimensions();\r\n clearTimeout(this._releaseTimeout);\r\n if (this._state === STATE_LOADING) {\r\n this._state = STATE_RELEASED\r\n }\r\n this._releaseTimeout = setTimeout(function() {\r\n this._setPullDownOffset(0);\r\n this._stateReleased();\r\n this.releaseCallbacks.fire();\r\n this._updateAction();\r\n deferred.resolve()\r\n }.bind(this), PULLDOWN_RELEASE_TIME);\r\n return deferred.promise()\r\n },\r\n dispose: function() {\r\n clearTimeout(this._pullDownRefreshTimeout);\r\n clearTimeout(this._releaseTimeout);\r\n this.callBase()\r\n }\r\n});\r\nexport default PullDownNativeScrollViewStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scroll_view.native.swipe_down.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport {\r\n eventData\r\n} from \"../../events/utils/index\";\r\nimport NativeStrategy from \"./ui.scrollable.native\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS = \"dx-scrollview-pull-down-loading\";\r\nvar SCROLLVIEW_PULLDOWN_INDICATOR_CLASS = \"dx-scrollview-pull-down-indicator\";\r\nvar SCROLLVIEW_PULLDOWN_REFRESHING_CLASS = \"dx-scrollview-pull-down-refreshing\";\r\nvar PULLDOWN_ICON_CLASS = \"dx-icon-pulldown\";\r\nvar STATE_RELEASED = 0;\r\nvar STATE_READY = 1;\r\nvar STATE_REFRESHING = 2;\r\nvar STATE_TOUCHED = 4;\r\nvar STATE_PULLED = 5;\r\nvar SwipeDownNativeScrollViewStrategy = NativeStrategy.inherit({\r\n _init: function(scrollView) {\r\n this.callBase(scrollView);\r\n this._$topPocket = scrollView._$topPocket;\r\n this._$pullDown = scrollView._$pullDown;\r\n this._$scrollViewContent = $(scrollView.content());\r\n this._$container = $(scrollView.container());\r\n this._initCallbacks();\r\n this._location = 0\r\n },\r\n _initCallbacks: function() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n render: function() {\r\n this.callBase();\r\n this._renderPullDown();\r\n this._releaseState()\r\n },\r\n _renderPullDown: function() {\r\n var $loadContainer = $(\"
\").addClass(SCROLLVIEW_PULLDOWN_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"
\")).$element();\r\n this._$icon = $(\"
\").addClass(PULLDOWN_ICON_CLASS);\r\n this._$pullDown.empty().append(this._$icon).append($loadContainer.append($loadIndicator))\r\n },\r\n _releaseState: function() {\r\n this._state = STATE_RELEASED;\r\n this._releasePullDown();\r\n this._updateDimensions()\r\n },\r\n _releasePullDown: function() {\r\n this._$pullDown.css({\r\n opacity: 0\r\n })\r\n },\r\n _updateDimensions: function() {\r\n this.callBase();\r\n this._topPocketSize = this._$topPocket.get(0).clientHeight;\r\n var contentEl = this._$scrollViewContent.get(0);\r\n var containerEl = this._$container.get(0);\r\n this._bottomBoundary = Math.max(contentEl.clientHeight - containerEl.clientHeight, 0)\r\n },\r\n _allowedDirections: function() {\r\n var allowedDirections = this.callBase();\r\n allowedDirections.vertical = allowedDirections.vertical || this._pullDownEnabled;\r\n return allowedDirections\r\n },\r\n handleInit: function(e) {\r\n this.callBase(e);\r\n if (this._state === STATE_RELEASED && 0 === this._location) {\r\n this._startClientY = eventData(e.originalEvent).y;\r\n this._state = STATE_TOUCHED\r\n }\r\n },\r\n handleMove: function(e) {\r\n this.callBase(e);\r\n this._deltaY = eventData(e.originalEvent).y - this._startClientY;\r\n if (this._state === STATE_TOUCHED) {\r\n if (this._pullDownEnabled && this._deltaY > 0) {\r\n this._state = STATE_PULLED\r\n } else {\r\n this._complete()\r\n }\r\n }\r\n if (this._state === STATE_PULLED) {\r\n e.preventDefault();\r\n this._movePullDown()\r\n }\r\n },\r\n _movePullDown: function() {\r\n var pullDownHeight = this._getPullDownHeight();\r\n var top = Math.min(3 * pullDownHeight, this._deltaY + this._getPullDownStartPosition());\r\n var angle = 180 * top / pullDownHeight / 3;\r\n this._$pullDown.css({\r\n opacity: 1\r\n }).toggleClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS, top < pullDownHeight);\r\n move(this._$pullDown, {\r\n top: top\r\n });\r\n this._$icon.css({\r\n transform: \"rotate(\" + angle + \"deg)\"\r\n })\r\n },\r\n _isPullDown: function() {\r\n return this._pullDownEnabled && this._state === STATE_PULLED && this._deltaY >= this._getPullDownHeight() - this._getPullDownStartPosition()\r\n },\r\n _getPullDownHeight: function() {\r\n return Math.round(.05 * getOuterHeight(this._$element))\r\n },\r\n _getPullDownStartPosition: function() {\r\n return -Math.round(1.5 * getOuterHeight(this._$pullDown))\r\n },\r\n handleEnd: function() {\r\n if (this._isPullDown()) {\r\n this._pullDownRefreshing()\r\n }\r\n this._complete()\r\n },\r\n handleStop: function() {\r\n this._complete()\r\n },\r\n _complete: function() {\r\n if (this._state === STATE_TOUCHED || this._state === STATE_PULLED) {\r\n this._releaseState()\r\n }\r\n },\r\n handleScroll: function(e) {\r\n this.callBase(e);\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n var currentLocation = this.location().top;\r\n var scrollDelta = this._location - currentLocation;\r\n this._location = currentLocation;\r\n if (scrollDelta > 0 && this._isReachBottom()) {\r\n this._reachBottom()\r\n } else {\r\n this._stateReleased()\r\n }\r\n },\r\n _isReachBottom: function() {\r\n return this._reachBottomEnabled && Math.round(this._bottomBoundary + Math.floor(this._location)) <= 1\r\n },\r\n _reachBottom: function() {\r\n this.reachBottomCallbacks.fire()\r\n },\r\n _stateReleased: function() {\r\n if (this._state === STATE_RELEASED) {\r\n return\r\n }\r\n this._$pullDown.removeClass(SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS);\r\n this._releaseState()\r\n },\r\n _pullDownRefreshing: function() {\r\n this._state = STATE_REFRESHING;\r\n this._pullDownRefreshHandler()\r\n },\r\n _pullDownRefreshHandler: function() {\r\n this._refreshPullDown();\r\n this.pullDownCallbacks.fire()\r\n },\r\n _refreshPullDown: function() {\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS);\r\n move(this._$pullDown, {\r\n top: this._getPullDownHeight()\r\n })\r\n },\r\n pullDownEnable: function(enabled) {\r\n this._$topPocket.toggle(enabled);\r\n this._pullDownEnabled = enabled\r\n },\r\n reachBottomEnable: function(enabled) {\r\n this._reachBottomEnabled = enabled\r\n },\r\n pendingRelease: function() {\r\n this._state = STATE_READY\r\n },\r\n release: function() {\r\n var deferred = new Deferred;\r\n this._updateDimensions();\r\n clearTimeout(this._releaseTimeout);\r\n this._releaseTimeout = setTimeout(function() {\r\n this._stateReleased();\r\n this.releaseCallbacks.fire();\r\n this._updateAction();\r\n deferred.resolve()\r\n }.bind(this), 800);\r\n return deferred.promise()\r\n },\r\n dispose: function() {\r\n clearTimeout(this._pullDownRefreshTimeout);\r\n clearTimeout(this._releaseTimeout);\r\n this.callBase()\r\n }\r\n});\r\nexport default SwipeDownNativeScrollViewStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scroll_view.simulated.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n executeAsync\r\n} from \"../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nvar math = Math;\r\nimport {\r\n Scroller,\r\n SimulatedStrategy\r\n} from \"./ui.scrollable.simulated\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nvar SCROLLVIEW_PULLDOWN_REFRESHING_CLASS = \"dx-scrollview-pull-down-loading\";\r\nvar SCROLLVIEW_PULLDOWN_READY_CLASS = \"dx-scrollview-pull-down-ready\";\r\nvar SCROLLVIEW_PULLDOWN_IMAGE_CLASS = \"dx-scrollview-pull-down-image\";\r\nvar SCROLLVIEW_PULLDOWN_INDICATOR_CLASS = \"dx-scrollview-pull-down-indicator\";\r\nvar SCROLLVIEW_PULLDOWN_TEXT_CLASS = \"dx-scrollview-pull-down-text\";\r\nvar SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS = \"dx-scrollview-pull-down-text-visible\";\r\nvar STATE_RELEASED = 0;\r\nvar STATE_READY = 1;\r\nvar STATE_REFRESHING = 2;\r\nvar STATE_LOADING = 3;\r\nvar ScrollViewScroller = Scroller.inherit({\r\n ctor: function() {\r\n this._topPocketSize = 0;\r\n this._bottomPocketSize = 0;\r\n this.callBase.apply(this, arguments);\r\n this._initCallbacks();\r\n this._releaseState()\r\n },\r\n _releaseState: function() {\r\n this._state = STATE_RELEASED;\r\n this._refreshPullDownText()\r\n },\r\n _refreshPullDownText: function() {\r\n var that = this;\r\n var pullDownTextItems = [{\r\n element: this._$pullingDownText,\r\n visibleState: STATE_RELEASED\r\n }, {\r\n element: this._$pulledDownText,\r\n visibleState: STATE_READY\r\n }, {\r\n element: this._$refreshingText,\r\n visibleState: STATE_REFRESHING\r\n }];\r\n each(pullDownTextItems, (function(_, item) {\r\n var action = that._state === item.visibleState ? \"addClass\" : \"removeClass\";\r\n item.element[action](SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS)\r\n }))\r\n },\r\n _initCallbacks: function() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n _updateBounds: function() {\r\n var considerPockets = \"horizontal\" !== this._direction;\r\n if (considerPockets) {\r\n this._topPocketSize = this._$topPocket.get(0).clientHeight;\r\n this._bottomPocketSize = this._$bottomPocket.get(0).clientHeight;\r\n var containerEl = this._$container.get(0);\r\n var contentEl = this._$content.get(0);\r\n this._bottomBoundary = Math.max(contentEl.clientHeight - this._bottomPocketSize - containerEl.clientHeight, 0)\r\n }\r\n this.callBase()\r\n },\r\n _updateScrollbar: function() {\r\n this._scrollbar.option({\r\n containerSize: this._containerSize(),\r\n contentSize: this._contentSize() - this._topPocketSize - this._bottomPocketSize,\r\n scaleRatio: this._getScaleRatio()\r\n })\r\n },\r\n _moveContent: function() {\r\n this.callBase();\r\n if (this._isPullDown()) {\r\n this._pullDownReady()\r\n } else if (this._isReachBottom()) {\r\n this._reachBottomReady()\r\n } else if (this._state !== STATE_RELEASED) {\r\n this._stateReleased()\r\n }\r\n },\r\n _moveScrollbar: function() {\r\n this._scrollbar.moveTo(this._topPocketSize + this._location)\r\n },\r\n _isPullDown: function() {\r\n return this._pullDownEnabled && this._location >= 0\r\n },\r\n _isReachBottom: function() {\r\n var containerEl = this._$container.get(0);\r\n return this._reachBottomEnabled && Math.round(this._bottomBoundary - Math.ceil(containerEl.scrollTop)) <= 1\r\n },\r\n _scrollComplete: function() {\r\n if (this._inBounds() && this._state === STATE_READY) {\r\n this._pullDownRefreshing()\r\n } else if (this._inBounds() && this._state === STATE_LOADING) {\r\n this._reachBottomLoading()\r\n } else {\r\n this.callBase()\r\n }\r\n },\r\n _reachBottomReady: function() {\r\n if (this._state === STATE_LOADING) {\r\n return\r\n }\r\n this._state = STATE_LOADING;\r\n this._minOffset = this._getMinOffset()\r\n },\r\n _getMaxOffset: function() {\r\n return -this._topPocketSize\r\n },\r\n _getMinOffset: function() {\r\n return math.min(this.callBase(), -this._topPocketSize)\r\n },\r\n _reachBottomLoading: function() {\r\n this.reachBottomCallbacks.fire()\r\n },\r\n _pullDownReady: function() {\r\n if (this._state === STATE_READY) {\r\n return\r\n }\r\n this._state = STATE_READY;\r\n this._maxOffset = 0;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText()\r\n },\r\n _stateReleased: function() {\r\n if (this._state === STATE_RELEASED) {\r\n return\r\n }\r\n this._releaseState();\r\n this._updateBounds();\r\n this._$pullDown.removeClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this.releaseCallbacks.fire()\r\n },\r\n _pullDownRefreshing: function() {\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n this._state = STATE_REFRESHING;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText();\r\n this.pullDownCallbacks.fire()\r\n },\r\n _releaseHandler: function() {\r\n if (this._state === STATE_RELEASED) {\r\n this._moveToBounds()\r\n }\r\n this._update();\r\n if (this._releaseTask) {\r\n this._releaseTask.abort()\r\n }\r\n this._releaseTask = executeAsync(this._release.bind(this));\r\n return this._releaseTask.promise\r\n },\r\n _release: function() {\r\n this._stateReleased();\r\n this._scrollComplete()\r\n },\r\n _reachBottomEnablingHandler: function(enabled) {\r\n if (this._reachBottomEnabled === enabled) {\r\n return\r\n }\r\n this._reachBottomEnabled = enabled;\r\n this._updateBounds()\r\n },\r\n _pullDownEnablingHandler: function(enabled) {\r\n if (this._pullDownEnabled === enabled) {\r\n return\r\n }\r\n this._pullDownEnabled = enabled;\r\n this._considerTopPocketChange();\r\n this._updateHandler()\r\n },\r\n _considerTopPocketChange: function() {\r\n this._location -= getHeight(this._$topPocket) || -this._topPocketSize;\r\n this._maxOffset = 0;\r\n this._move()\r\n },\r\n _pendingReleaseHandler: function() {\r\n this._state = STATE_READY\r\n },\r\n dispose: function() {\r\n if (this._releaseTask) {\r\n this._releaseTask.abort()\r\n }\r\n this.callBase()\r\n }\r\n});\r\nvar SimulatedScrollViewStrategy = SimulatedStrategy.inherit({\r\n _init: function(scrollView) {\r\n this.callBase(scrollView);\r\n this._$pullDown = scrollView._$pullDown;\r\n this._$topPocket = scrollView._$topPocket;\r\n this._$bottomPocket = scrollView._$bottomPocket;\r\n this._initCallbacks()\r\n },\r\n _initCallbacks: function() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n render: function() {\r\n this._renderPullDown();\r\n this.callBase()\r\n },\r\n _renderPullDown: function() {\r\n var $image = $(\"
\").addClass(SCROLLVIEW_PULLDOWN_IMAGE_CLASS);\r\n var $loadContainer = $(\"
\").addClass(SCROLLVIEW_PULLDOWN_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"
\")).$element();\r\n var $text = this._$pullDownText = $(\"
\").addClass(SCROLLVIEW_PULLDOWN_TEXT_CLASS);\r\n this._$pullingDownText = $(\"
\").text(this.option(\"pullingDownText\")).appendTo($text);\r\n this._$pulledDownText = $(\"
\").text(this.option(\"pulledDownText\")).appendTo($text);\r\n this._$refreshingText = $(\"
\").text(this.option(\"refreshingText\")).appendTo($text);\r\n this._$pullDown.empty().append($image).append($loadContainer.append($loadIndicator)).append($text)\r\n },\r\n pullDownEnable: function(enabled) {\r\n this._eventHandler(\"pullDownEnabling\", enabled)\r\n },\r\n reachBottomEnable: function(enabled) {\r\n this._eventHandler(\"reachBottomEnabling\", enabled)\r\n },\r\n _createScroller: function(direction) {\r\n var that = this;\r\n var scroller = that._scrollers[direction] = new ScrollViewScroller(that._scrollerOptions(direction));\r\n scroller.pullDownCallbacks.add((function() {\r\n that.pullDownCallbacks.fire()\r\n }));\r\n scroller.releaseCallbacks.add((function() {\r\n that.releaseCallbacks.fire()\r\n }));\r\n scroller.reachBottomCallbacks.add((function() {\r\n that.reachBottomCallbacks.fire()\r\n }))\r\n },\r\n _scrollerOptions: function(direction) {\r\n return extend(this.callBase(direction), {\r\n $topPocket: this._$topPocket,\r\n $bottomPocket: this._$bottomPocket,\r\n $pullDown: this._$pullDown,\r\n $pullDownText: this._$pullDownText,\r\n $pullingDownText: this._$pullingDownText,\r\n $pulledDownText: this._$pulledDownText,\r\n $refreshingText: this._$refreshingText\r\n })\r\n },\r\n pendingRelease: function() {\r\n this._eventHandler(\"pendingRelease\")\r\n },\r\n release: function() {\r\n return this._eventHandler(\"release\").done(this._updateAction)\r\n },\r\n location: function() {\r\n var location = this.callBase();\r\n location.top += getHeight(this._$topPocket);\r\n return location\r\n },\r\n dispose: function() {\r\n each(this._scrollers, (function() {\r\n this.dispose()\r\n }));\r\n this.callBase()\r\n }\r\n});\r\nexport default SimulatedScrollViewStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scroll_view.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport PullDownStrategy from \"./ui.scroll_view.native.pull_down\";\r\nimport SwipeDownStrategy from \"./ui.scroll_view.native.swipe_down\";\r\nimport SimulatedStrategy from \"./ui.scroll_view.simulated\";\r\nimport Scrollable from \"./ui.scrollable\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n isMaterial\r\n} from \"./../themes\";\r\nimport LoadPanel from \"../load_panel\";\r\nvar SCROLLVIEW_CLASS = \"dx-scrollview\";\r\nvar SCROLLVIEW_CONTENT_CLASS = SCROLLVIEW_CLASS + \"-content\";\r\nvar SCROLLVIEW_TOP_POCKET_CLASS = SCROLLVIEW_CLASS + \"-top-pocket\";\r\nvar SCROLLVIEW_BOTTOM_POCKET_CLASS = SCROLLVIEW_CLASS + \"-bottom-pocket\";\r\nvar SCROLLVIEW_PULLDOWN_CLASS = SCROLLVIEW_CLASS + \"-pull-down\";\r\nvar SCROLLVIEW_REACHBOTTOM_CLASS = SCROLLVIEW_CLASS + \"-scrollbottom\";\r\nvar SCROLLVIEW_REACHBOTTOM_INDICATOR_CLASS = SCROLLVIEW_REACHBOTTOM_CLASS + \"-indicator\";\r\nvar SCROLLVIEW_REACHBOTTOM_TEXT_CLASS = SCROLLVIEW_REACHBOTTOM_CLASS + \"-text\";\r\nvar SCROLLVIEW_LOADPANEL = SCROLLVIEW_CLASS + \"-loadpanel\";\r\nvar refreshStrategies = {\r\n pullDown: PullDownStrategy,\r\n swipeDown: SwipeDownStrategy,\r\n simulated: SimulatedStrategy\r\n};\r\nvar isServerSide = !hasWindow();\r\nvar scrollViewServerConfig = {\r\n finishLoading: noop,\r\n release: noop,\r\n refresh: noop,\r\n scrollOffset: () => ({\r\n top: 0,\r\n left: 0\r\n }),\r\n _optionChanged: function(args) {\r\n if (\"onUpdated\" !== args.name) {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n};\r\nvar ScrollView = Scrollable.inherit(isServerSide ? scrollViewServerConfig : {\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n pullingDownText: messageLocalization.format(\"dxScrollView-pullingDownText\"),\r\n pulledDownText: messageLocalization.format(\"dxScrollView-pulledDownText\"),\r\n refreshingText: messageLocalization.format(\"dxScrollView-refreshingText\"),\r\n reachBottomText: messageLocalization.format(\"dxScrollView-reachBottomText\"),\r\n onPullDown: null,\r\n onReachBottom: null,\r\n refreshStrategy: \"pullDown\"\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n var realDevice = devices.real();\r\n return \"android\" === realDevice.platform\r\n },\r\n options: {\r\n refreshStrategy: \"swipeDown\"\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n pullingDownText: \"\",\r\n pulledDownText: \"\",\r\n refreshingText: \"\",\r\n reachBottomText: \"\"\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._loadingIndicatorEnabled = true\r\n },\r\n _initScrollableMarkup: function() {\r\n this.callBase();\r\n this.$element().addClass(SCROLLVIEW_CLASS);\r\n this._initContent();\r\n this._initTopPocket();\r\n this._initBottomPocket();\r\n this._initLoadPanel()\r\n },\r\n _initContent: function() {\r\n var $content = $(\"
\").addClass(SCROLLVIEW_CONTENT_CLASS);\r\n this._$content.wrapInner($content)\r\n },\r\n _initTopPocket: function() {\r\n var $topPocket = this._$topPocket = $(\"
\").addClass(SCROLLVIEW_TOP_POCKET_CLASS);\r\n var $pullDown = this._$pullDown = $(\"
\").addClass(SCROLLVIEW_PULLDOWN_CLASS);\r\n $topPocket.append($pullDown);\r\n this._$content.prepend($topPocket)\r\n },\r\n _initBottomPocket: function() {\r\n var $bottomPocket = this._$bottomPocket = $(\"
\").addClass(SCROLLVIEW_BOTTOM_POCKET_CLASS);\r\n var $reachBottom = this._$reachBottom = $(\"
\").addClass(SCROLLVIEW_REACHBOTTOM_CLASS);\r\n var $loadContainer = $(\"
\").addClass(SCROLLVIEW_REACHBOTTOM_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"
\")).$element();\r\n var $text = this._$reachBottomText = $(\"
\").addClass(SCROLLVIEW_REACHBOTTOM_TEXT_CLASS);\r\n this._updateReachBottomText();\r\n $reachBottom.append($loadContainer.append($loadIndicator)).append($text);\r\n $bottomPocket.append($reachBottom);\r\n this._$content.append($bottomPocket)\r\n },\r\n _initLoadPanel: function() {\r\n var $loadPanelElement = $(\"
\").addClass(SCROLLVIEW_LOADPANEL).appendTo(this.$element());\r\n var loadPanelOptions = {\r\n shading: false,\r\n delay: 400,\r\n message: this.option(\"refreshingText\"),\r\n position: {\r\n of: this.$element()\r\n }\r\n };\r\n this._loadPanel = this._createComponent($loadPanelElement, LoadPanel, loadPanelOptions)\r\n },\r\n _updateReachBottomText: function() {\r\n this._$reachBottomText.text(this.option(\"reachBottomText\"))\r\n },\r\n _createStrategy: function() {\r\n var strategyName = this.option(\"useNative\") ? this.option(\"refreshStrategy\") : \"simulated\";\r\n var strategyClass = refreshStrategies[strategyName];\r\n this._strategy = new strategyClass(this);\r\n this._strategy.pullDownCallbacks.add(this._pullDownHandler.bind(this));\r\n this._strategy.releaseCallbacks.add(this._releaseHandler.bind(this));\r\n this._strategy.reachBottomCallbacks.add(this._reachBottomHandler.bind(this))\r\n },\r\n _createActions: function() {\r\n this.callBase();\r\n this._pullDownAction = this._createActionByOption(\"onPullDown\");\r\n this._reachBottomAction = this._createActionByOption(\"onReachBottom\");\r\n this._tryRefreshPocketState()\r\n },\r\n _tryRefreshPocketState: function() {\r\n this._pullDownEnable(this.hasActionSubscription(\"onPullDown\"));\r\n this._reachBottomEnable(this.hasActionSubscription(\"onReachBottom\"))\r\n },\r\n on: function(eventName) {\r\n var result = this.callBase.apply(this, arguments);\r\n if (\"pullDown\" === eventName || \"reachBottom\" === eventName) {\r\n this._tryRefreshPocketState()\r\n }\r\n return result\r\n },\r\n _pullDownEnable: function(enabled) {\r\n if (0 === arguments.length) {\r\n return this._pullDownEnabled\r\n }\r\n if (this._$pullDown && this._strategy) {\r\n this._$pullDown.toggle(enabled);\r\n this._strategy.pullDownEnable(enabled);\r\n this._pullDownEnabled = enabled\r\n }\r\n },\r\n _reachBottomEnable: function(enabled) {\r\n if (0 === arguments.length) {\r\n return this._reachBottomEnabled\r\n }\r\n if (this._$reachBottom && this._strategy) {\r\n this._$reachBottom.toggle(enabled);\r\n this._strategy.reachBottomEnable(enabled);\r\n this._reachBottomEnabled = enabled\r\n }\r\n },\r\n _pullDownHandler: function() {\r\n this._loadingIndicator(false);\r\n this._pullDownLoading()\r\n },\r\n _loadingIndicator: function(value) {\r\n if (arguments.length < 1) {\r\n return this._loadingIndicatorEnabled\r\n }\r\n this._loadingIndicatorEnabled = value\r\n },\r\n _pullDownLoading: function() {\r\n this.startLoading();\r\n this._pullDownAction()\r\n },\r\n _reachBottomHandler: function() {\r\n this._loadingIndicator(false);\r\n this._reachBottomLoading()\r\n },\r\n _reachBottomLoading: function() {\r\n this.startLoading();\r\n this._reachBottomAction()\r\n },\r\n _releaseHandler: function() {\r\n this.finishLoading();\r\n this._loadingIndicator(true)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"onPullDown\":\r\n case \"onReachBottom\":\r\n this._createActions();\r\n break;\r\n case \"pullingDownText\":\r\n case \"pulledDownText\":\r\n case \"refreshingText\":\r\n case \"refreshStrategy\":\r\n this._invalidate();\r\n break;\r\n case \"reachBottomText\":\r\n this._updateReachBottomText();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n content: function() {\r\n return getPublicElement(this._$content.children().eq(1))\r\n },\r\n release: function(preventReachBottom) {\r\n if (void 0 !== preventReachBottom) {\r\n this.toggleLoading(!preventReachBottom)\r\n }\r\n return this._strategy.release()\r\n },\r\n toggleLoading: function(showOrHide) {\r\n this._reachBottomEnable(showOrHide)\r\n },\r\n refresh: function() {\r\n if (!this.hasActionSubscription(\"onPullDown\")) {\r\n return\r\n }\r\n this._strategy.pendingRelease();\r\n this._pullDownLoading()\r\n },\r\n startLoading: function() {\r\n if (this._loadingIndicator() && this.$element().is(\":visible\")) {\r\n this._loadPanel.show()\r\n }\r\n this._lock()\r\n },\r\n finishLoading: function() {\r\n this._loadPanel.hide();\r\n this._unlock()\r\n },\r\n _dispose: function() {\r\n this._strategy.dispose();\r\n this.callBase();\r\n if (this._loadPanel) {\r\n this._loadPanel.$element().remove()\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxScrollView\", ScrollView);\r\nexport default ScrollView;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ScrollView from \"./scroll_view/ui.scroll_view\";\r\nexport default ScrollView;\r\n","/**\r\n * DevExtreme (esm/data_helper.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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/data_source/data_source\";\r\nimport {\r\n extend\r\n} from \"./core/utils/extend\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"./data/data_source/utils\";\r\nvar DATA_SOURCE_OPTIONS_METHOD = \"_dataSourceOptions\";\r\nvar DATA_SOURCE_CHANGED_METHOD = \"_dataSourceChangedHandler\";\r\nvar DATA_SOURCE_LOAD_ERROR_METHOD = \"_dataSourceLoadErrorHandler\";\r\nvar DATA_SOURCE_LOADING_CHANGED_METHOD = \"_dataSourceLoadingChangedHandler\";\r\nvar DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD = \"_dataSourceFromUrlLoadMode\";\r\nvar SPECIFIC_DATA_SOURCE_OPTION = \"_getSpecificDataSourceOption\";\r\nvar NORMALIZE_DATA_SOURCE = \"_normalizeDataSource\";\r\nvar DataHelperMixin = {\r\n postCtor: function() {\r\n this.on(\"disposing\", function() {\r\n this._disposeDataSource()\r\n }.bind(this))\r\n },\r\n _refreshDataSource: function() {\r\n this._initDataSource();\r\n this._loadDataSource()\r\n },\r\n _initDataSource: function() {\r\n var dataSourceOptions = SPECIFIC_DATA_SOURCE_OPTION in this ? this[SPECIFIC_DATA_SOURCE_OPTION]() : this.option(\"dataSource\");\r\n var widgetDataSourceOptions;\r\n var dataSourceType;\r\n this._disposeDataSource();\r\n if (dataSourceOptions) {\r\n if (dataSourceOptions instanceof DataSource) {\r\n this._isSharedDataSource = true;\r\n this._dataSource = dataSourceOptions\r\n } else {\r\n widgetDataSourceOptions = DATA_SOURCE_OPTIONS_METHOD in this ? this[DATA_SOURCE_OPTIONS_METHOD]() : {};\r\n dataSourceType = this._dataSourceType ? this._dataSourceType() : DataSource;\r\n dataSourceOptions = normalizeDataSourceOptions(dataSourceOptions, {\r\n fromUrlLoadMode: DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD in this && this[DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD]()\r\n });\r\n this._dataSource = new dataSourceType(extend(true, {}, widgetDataSourceOptions, dataSourceOptions))\r\n }\r\n if (NORMALIZE_DATA_SOURCE in this) {\r\n this._dataSource = this[NORMALIZE_DATA_SOURCE](this._dataSource)\r\n }\r\n this._addDataSourceHandlers()\r\n }\r\n },\r\n _addDataSourceHandlers: function() {\r\n if (DATA_SOURCE_CHANGED_METHOD in this) {\r\n this._addDataSourceChangeHandler()\r\n }\r\n if (DATA_SOURCE_LOAD_ERROR_METHOD in this) {\r\n this._addDataSourceLoadErrorHandler()\r\n }\r\n if (DATA_SOURCE_LOADING_CHANGED_METHOD in this) {\r\n this._addDataSourceLoadingChangedHandler()\r\n }\r\n this._addReadyWatcher()\r\n },\r\n _addReadyWatcher: function() {\r\n this._dataSource.on(\"loadingChanged\", function(isLoading) {\r\n this._ready && this._ready(!isLoading)\r\n }.bind(this))\r\n },\r\n _addDataSourceChangeHandler: function() {\r\n var dataSource = this._dataSource;\r\n this._proxiedDataSourceChangedHandler = function(e) {\r\n this[DATA_SOURCE_CHANGED_METHOD](dataSource.items(), e)\r\n }.bind(this);\r\n dataSource.on(\"changed\", this._proxiedDataSourceChangedHandler)\r\n },\r\n _addDataSourceLoadErrorHandler: function() {\r\n this._proxiedDataSourceLoadErrorHandler = this[DATA_SOURCE_LOAD_ERROR_METHOD].bind(this);\r\n this._dataSource.on(\"loadError\", this._proxiedDataSourceLoadErrorHandler)\r\n },\r\n _addDataSourceLoadingChangedHandler: function() {\r\n this._proxiedDataSourceLoadingChangedHandler = this[DATA_SOURCE_LOADING_CHANGED_METHOD].bind(this);\r\n this._dataSource.on(\"loadingChanged\", this._proxiedDataSourceLoadingChangedHandler)\r\n },\r\n _loadDataSource: function() {\r\n if (this._dataSource) {\r\n var dataSource = this._dataSource;\r\n if (dataSource.isLoaded()) {\r\n this._proxiedDataSourceChangedHandler && this._proxiedDataSourceChangedHandler()\r\n } else {\r\n dataSource.load()\r\n }\r\n }\r\n },\r\n _loadSingle: function(key, value) {\r\n key = \"this\" === key ? this._dataSource.key() || \"this\" : key;\r\n return this._dataSource.loadSingle(key, value)\r\n },\r\n _isLastPage: function() {\r\n return !this._dataSource || this._dataSource.isLastPage() || !this._dataSource._pageSize\r\n },\r\n _isDataSourceLoading: function() {\r\n return this._dataSource && this._dataSource.isLoading()\r\n },\r\n _disposeDataSource: function() {\r\n if (this._dataSource) {\r\n if (this._isSharedDataSource) {\r\n delete this._isSharedDataSource;\r\n this._proxiedDataSourceChangedHandler && this._dataSource.off(\"changed\", this._proxiedDataSourceChangedHandler);\r\n this._proxiedDataSourceLoadErrorHandler && this._dataSource.off(\"loadError\", this._proxiedDataSourceLoadErrorHandler);\r\n this._proxiedDataSourceLoadingChangedHandler && this._dataSource.off(\"loadingChanged\", this._proxiedDataSourceLoadingChangedHandler)\r\n } else {\r\n this._dataSource.dispose()\r\n }\r\n delete this._dataSource;\r\n delete this._proxiedDataSourceChangedHandler;\r\n delete this._proxiedDataSourceLoadErrorHandler;\r\n delete this._proxiedDataSourceLoadingChangedHandler\r\n }\r\n },\r\n getDataSource: function() {\r\n return this._dataSource || null\r\n }\r\n};\r\nexport default DataHelperMixin;\r\n","/**\r\n * DevExtreme (esm/core/utils/style.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n camelize\r\n} from \"./inflector\";\r\nimport callOnce from \"./call_once\";\r\nimport {\r\n isNumeric,\r\n isString\r\n} from \"./type\";\r\nimport domAdapter from \"../dom_adapter\";\r\nvar jsPrefixes = [\"\", \"Webkit\", \"Moz\", \"O\", \"Ms\"];\r\nvar cssPrefixes = {\r\n \"\": \"\",\r\n Webkit: \"-webkit-\",\r\n Moz: \"-moz-\",\r\n O: \"-o-\",\r\n ms: \"-ms-\"\r\n};\r\nvar getStyles = callOnce((function() {\r\n return domAdapter.createElement(\"dx\").style\r\n}));\r\nvar forEachPrefixes = function(prop, callBack) {\r\n prop = camelize(prop, true);\r\n var result;\r\n for (var i = 0, cssPrefixesCount = jsPrefixes.length; i < cssPrefixesCount; i++) {\r\n var jsPrefix = jsPrefixes[i];\r\n var prefixedProp = jsPrefix + prop;\r\n var lowerPrefixedProp = camelize(prefixedProp);\r\n result = callBack(lowerPrefixedProp, jsPrefix);\r\n if (void 0 === result) {\r\n result = callBack(prefixedProp, jsPrefix)\r\n }\r\n if (void 0 !== result) {\r\n break\r\n }\r\n }\r\n return result || \"\"\r\n};\r\nvar styleProp = function(name) {\r\n if (name in getStyles()) {\r\n return name\r\n }\r\n var originalName = name;\r\n name = name.charAt(0).toUpperCase() + name.substr(1);\r\n for (var i = 1; i < jsPrefixes.length; i++) {\r\n var prefixedProp = jsPrefixes[i].toLowerCase() + name;\r\n if (prefixedProp in getStyles()) {\r\n return prefixedProp\r\n }\r\n }\r\n return originalName\r\n};\r\nvar stylePropPrefix = function(prop) {\r\n return forEachPrefixes(prop, (function(specific, jsPrefix) {\r\n if (specific in getStyles()) {\r\n return cssPrefixes[jsPrefix]\r\n }\r\n }))\r\n};\r\nvar pxExceptions = [\"fillOpacity\", \"columnCount\", \"flexGrow\", \"flexShrink\", \"fontWeight\", \"lineHeight\", \"opacity\", \"zIndex\", \"zoom\"];\r\nvar parsePixelValue = function(value) {\r\n if (isNumeric(value)) {\r\n return value\r\n } else if (isString(value)) {\r\n return Number(value.replace(\"px\", \"\"))\r\n }\r\n return NaN\r\n};\r\nvar normalizeStyleProp = function(prop, value) {\r\n if (isNumeric(value) && -1 === pxExceptions.indexOf(prop)) {\r\n value += \"px\"\r\n }\r\n return value\r\n};\r\nvar setDimensionProperty = function(elements, propertyName, value) {\r\n if (elements) {\r\n value = isNumeric(value) ? value += \"px\" : value;\r\n for (var i = 0; i < elements.length; ++i) {\r\n elements[i].style[propertyName] = value\r\n }\r\n }\r\n};\r\nvar setWidth = function(elements, value) {\r\n setDimensionProperty(elements, \"width\", value)\r\n};\r\nvar setHeight = function(elements, value) {\r\n setDimensionProperty(elements, \"height\", value)\r\n};\r\nexport {\r\n styleProp,\r\n stylePropPrefix,\r\n normalizeStyleProp,\r\n parsePixelValue,\r\n setWidth,\r\n setHeight\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/constants.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var TOOLBAR_CLASS = \"dx-toolbar\";\r\n","/**\r\n * DevExtreme (esm/ui/shared/grouped_data_converter_mixin.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isObject\r\n} from \"../../core/utils/type\";\r\nvar isCorrectStructure = data => Array.isArray(data) && data.every(item => {\r\n var hasTwoFields = 2 === Object.keys(item).length;\r\n var hasCorrectFields = \"key\" in item && \"items\" in item;\r\n return hasTwoFields && hasCorrectFields && Array.isArray(item.items)\r\n});\r\nexport default {\r\n _getSpecificDataSourceOption: function() {\r\n var dataSource = this.option(\"dataSource\");\r\n var hasSimpleItems = false;\r\n var data = {};\r\n if (this._getGroupedOption() && isCorrectStructure(dataSource)) {\r\n data = dataSource.reduce((accumulator, item) => {\r\n var items = item.items.map(innerItem => {\r\n if (!isObject(innerItem)) {\r\n innerItem = {\r\n text: innerItem\r\n };\r\n hasSimpleItems = true\r\n }\r\n if (!(\"key\" in innerItem)) {\r\n innerItem.key = item.key\r\n }\r\n return innerItem\r\n });\r\n return accumulator.concat(items)\r\n }, []);\r\n dataSource = {\r\n store: {\r\n type: \"array\",\r\n data: data\r\n },\r\n group: {\r\n selector: \"key\",\r\n keepInitialKeyOrder: true\r\n }\r\n };\r\n if (hasSimpleItems) {\r\n dataSource.searchExpr = \"text\"\r\n }\r\n }\r\n return dataSource\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/utils/get_updated_options.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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\", \"rootElementRef\", \"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.setRootElementRef = this.setRootElementRef.bind(this);\r\n this.updateWidget = this.updateWidget.bind(this)\r\n }\r\n get config() {\r\n if (\"ConfigContext\" in this.context) {\r\n return this.context.ConfigContext\r\n }\r\n return ConfigContext\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.setupWidget, []), new InfernoEffect(this.setRootElementRef, []), 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[2]) || 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 setRootElementRef() {\r\n var {\r\n rootElementRef: rootElementRef\r\n } = this.props;\r\n if (rootElementRef) {\r\n rootElementRef.current = this.widgetRef.current\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/events/index.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"./core/events_engine\";\r\nexport var on = eventsEngine.on;\r\nexport var one = eventsEngine.one;\r\nexport var off = eventsEngine.off;\r\nexport var trigger = eventsEngine.trigger;\r\nexport var triggerHandler = eventsEngine.triggerHandler;\r\nexport var Event = eventsEngine.Event;\r\n","/**\r\n * DevExtreme (esm/events/contextmenu.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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/events/hold.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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/renovation/ui/scroll_view/utils/get_relative_offset.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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/core/utils/view_port.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 readyCallbacks from \"./ready_callbacks\";\r\nvar ready = readyCallbacks.add;\r\nimport callbacks from \"./callbacks\";\r\nvar changeCallback = callbacks();\r\nvar $originalViewPort = $();\r\nvar value = function() {\r\n var $current;\r\n return function(element) {\r\n if (!arguments.length) {\r\n return $current\r\n }\r\n var $element = $(element);\r\n $originalViewPort = $element;\r\n var isNewViewportFound = !!$element.length;\r\n var prevViewPort = value();\r\n $current = isNewViewportFound ? $element : $(\"body\");\r\n changeCallback.fire(isNewViewportFound ? value() : $(), prevViewPort)\r\n }\r\n}();\r\nready((function() {\r\n value(\".dx-viewport\")\r\n}));\r\nexport {\r\n value,\r\n changeCallback\r\n};\r\nexport function originalViewPort() {\r\n return $originalViewPort\r\n}\r\n","/**\r\n * DevExtreme (esm/core/template_manager.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 isDefined,\r\n isFunction,\r\n isRenderer\r\n} from \"./utils/type\";\r\nimport {\r\n noop\r\n} from \"./utils/common\";\r\nimport {\r\n extend\r\n} from \"./utils/extend\";\r\nimport {\r\n FunctionTemplate\r\n} from \"./templates/function_template\";\r\nimport {\r\n EmptyTemplate\r\n} from \"./templates/empty_template\";\r\nimport {\r\n findTemplates,\r\n suitableTemplatesByName,\r\n templateKey,\r\n getNormalizedTemplateArgs,\r\n validateTemplateSource,\r\n defaultCreateElement,\r\n acquireTemplate\r\n} from \"./utils/template_manager\";\r\nvar TEXT_NODE = 3;\r\nvar ANONYMOUS_TEMPLATE_NAME = \"template\";\r\nvar TEMPLATE_OPTIONS_NAME = \"dxTemplate\";\r\nvar TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\r\nvar DX_POLYMORPH_WIDGET_TEMPLATE = new FunctionTemplate(_ref => {\r\n var {\r\n model: model,\r\n parent: parent\r\n } = _ref;\r\n var widgetName = model.widget;\r\n if (!widgetName) {\r\n return $()\r\n }\r\n var widgetElement = $(\"
\");\r\n var widgetOptions = model.options || {};\r\n if (parent) {\r\n parent._createComponent(widgetElement, widgetName, widgetOptions)\r\n } else {\r\n widgetElement[widgetName](widgetOptions)\r\n }\r\n return widgetElement\r\n});\r\nexport class TemplateManager {\r\n constructor(createElement, anonymousTemplateName) {\r\n this._tempTemplates = [];\r\n this._defaultTemplates = {};\r\n this._anonymousTemplateName = anonymousTemplateName || ANONYMOUS_TEMPLATE_NAME;\r\n this._createElement = createElement || defaultCreateElement;\r\n this._createTemplateIfNeeded = this._createTemplateIfNeeded.bind(this)\r\n }\r\n static createDefaultOptions() {\r\n return {\r\n integrationOptions: {\r\n watchMethod: function(fn, callback) {\r\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n if (!options.skipImmediate) {\r\n callback(fn())\r\n }\r\n return noop\r\n },\r\n templates: {\r\n \"dx-polymorph-widget\": DX_POLYMORPH_WIDGET_TEMPLATE\r\n },\r\n useDeferUpdateForTemplates: true\r\n }\r\n }\r\n }\r\n get anonymousTemplateName() {\r\n return this._anonymousTemplateName\r\n }\r\n addDefaultTemplates(templates) {\r\n this._defaultTemplates = extend({}, this._defaultTemplates, templates)\r\n }\r\n dispose() {\r\n this._tempTemplates.forEach(tempTemplate => {\r\n tempTemplate.template.dispose && tempTemplate.template.dispose()\r\n });\r\n this._tempTemplates = []\r\n }\r\n extractTemplates($el) {\r\n var templates = this._extractTemplates($el);\r\n var anonymousTemplateMeta = this._extractAnonymousTemplate($el);\r\n return {\r\n templates: templates,\r\n anonymousTemplateMeta: anonymousTemplateMeta\r\n }\r\n }\r\n _extractTemplates($el) {\r\n var templates = findTemplates($el, TEMPLATE_OPTIONS_NAME);\r\n var suitableTemplates = suitableTemplatesByName(templates);\r\n templates.forEach(_ref2 => {\r\n var {\r\n element: element,\r\n options: {\r\n name: name\r\n }\r\n } = _ref2;\r\n if (element === suitableTemplates[name]) {\r\n $(element).addClass(TEMPLATE_WRAPPER_CLASS).detach()\r\n } else {\r\n $(element).remove()\r\n }\r\n });\r\n return Object.keys(suitableTemplates).map(name => ({\r\n name: name,\r\n template: this._createTemplate(suitableTemplates[name])\r\n }))\r\n }\r\n _extractAnonymousTemplate($el) {\r\n var $anonymousTemplate = $el.contents().detach();\r\n var $notJunkTemplateContent = $anonymousTemplate.filter((_, element) => {\r\n var isTextNode = element.nodeType === TEXT_NODE;\r\n var isEmptyText = $(element).text().trim().length < 1;\r\n return !(isTextNode && isEmptyText)\r\n });\r\n return $notJunkTemplateContent.length > 0 ? {\r\n template: this._createTemplate($anonymousTemplate),\r\n name: this._anonymousTemplateName\r\n } : {}\r\n }\r\n _createTemplateIfNeeded(templateSource) {\r\n var cachedTemplate = this._tempTemplates.filter(tempTemplate => tempTemplate.source === templateKey(templateSource))[0];\r\n if (cachedTemplate) {\r\n return cachedTemplate.template\r\n }\r\n var template = this._createTemplate(templateSource);\r\n this._tempTemplates.push({\r\n template: template,\r\n source: templateKey(templateSource)\r\n });\r\n return template\r\n }\r\n _createTemplate(templateSource) {\r\n return this._createElement(validateTemplateSource(templateSource))\r\n }\r\n getTemplate(templateSource, templates, _ref3, context) {\r\n var {\r\n isAsyncTemplate: isAsyncTemplate,\r\n skipTemplates: skipTemplates\r\n } = _ref3;\r\n if (!isFunction(templateSource)) {\r\n return acquireTemplate(templateSource, this._createTemplateIfNeeded, templates, isAsyncTemplate, skipTemplates, this._defaultTemplates)\r\n }\r\n return new FunctionTemplate(options => {\r\n var templateSourceResult = templateSource.apply(context, getNormalizedTemplateArgs(options));\r\n if (!isDefined(templateSourceResult)) {\r\n return new EmptyTemplate\r\n }\r\n var dispose = false;\r\n var template = acquireTemplate(templateSourceResult, templateSource => {\r\n if (templateSource.nodeType || isRenderer(templateSource) && !$(templateSource).is(\"script\")) {\r\n return new FunctionTemplate(() => templateSource)\r\n }\r\n dispose = true;\r\n return this._createTemplate(templateSource)\r\n }, templates, isAsyncTemplate, skipTemplates, this._defaultTemplates);\r\n var result = template.render(options);\r\n dispose && template.dispose && template.dispose();\r\n return result\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/dom_component.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 config from \"./config\";\r\nimport errors from \"./errors\";\r\nimport windowResizeCallbacks from \"../core/utils/resize_callbacks\";\r\nimport {\r\n Component\r\n} from \"./component\";\r\nimport {\r\n TemplateManager\r\n} from \"./template_manager\";\r\nimport {\r\n attachInstanceToElement,\r\n getInstanceByElement\r\n} from \"./utils/public_component\";\r\nimport {\r\n cleanDataRecursive\r\n} from \"./element_data\";\r\nimport {\r\n each\r\n} from \"./utils/iterator\";\r\nimport {\r\n extend\r\n} from \"./utils/extend\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport {\r\n grep,\r\n noop\r\n} from \"./utils/common\";\r\nimport {\r\n isString,\r\n isDefined,\r\n isFunction\r\n} from \"./utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n resize as resizeEvent,\r\n visibility as visibilityEvents\r\n} from \"../events/short\";\r\nvar {\r\n abstract: abstract\r\n} = Component;\r\nvar DOMComponent = Component.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n width: void 0,\r\n height: void 0,\r\n rtlEnabled: config().rtlEnabled,\r\n elementAttr: {},\r\n disabled: false,\r\n integrationOptions: {}\r\n }, this._useTemplates() ? TemplateManager.createDefaultOptions() : {})\r\n },\r\n ctor(element, options) {\r\n this._customClass = null;\r\n this._createElement(element);\r\n attachInstanceToElement(this._$element, this, this._dispose);\r\n this.callBase(options)\r\n },\r\n _createElement(element) {\r\n this._$element = $(element)\r\n },\r\n _getSynchronizableOptionsForCreateComponent: () => [\"rtlEnabled\", \"disabled\", \"templatesRenderAsynchronously\"],\r\n _checkFunctionValueDeprecation: function(optionNames) {\r\n if (!this.option(\"_ignoreFunctionValueDeprecation\")) {\r\n optionNames.forEach(optionName => {\r\n if (isFunction(this.option(optionName))) {\r\n errors.log(\"W0017\", optionName)\r\n }\r\n })\r\n }\r\n },\r\n _visibilityChanged: abstract,\r\n _dimensionChanged: abstract,\r\n _init() {\r\n this.callBase();\r\n this._checkFunctionValueDeprecation([\"width\", \"height\", \"maxHeight\", \"maxWidth\", \"minHeight\", \"minWidth\", \"popupHeight\", \"popupWidth\"]);\r\n this._attachWindowResizeCallback();\r\n this._initTemplateManager()\r\n },\r\n _setOptionsByDevice(instanceCustomRules) {\r\n this.callBase([].concat(this.constructor._classCustomRules || [], instanceCustomRules || []))\r\n },\r\n _isInitialOptionValue(name) {\r\n var isCustomOption = this.constructor._classCustomRules && Object.prototype.hasOwnProperty.call(this._convertRulesToOptions(this.constructor._classCustomRules), name);\r\n return !isCustomOption && this.callBase(name)\r\n },\r\n _attachWindowResizeCallback() {\r\n if (this._isDimensionChangeSupported()) {\r\n var windowResizeCallBack = this._windowResizeCallBack = this._dimensionChanged.bind(this);\r\n windowResizeCallbacks.add(windowResizeCallBack)\r\n }\r\n },\r\n _isDimensionChangeSupported() {\r\n return this._dimensionChanged !== abstract\r\n },\r\n _renderComponent() {\r\n this._initMarkup();\r\n hasWindow() && this._render()\r\n },\r\n _initMarkup() {\r\n var {\r\n rtlEnabled: rtlEnabled\r\n } = this.option() || {};\r\n this._renderElementAttributes();\r\n this._toggleRTLDirection(rtlEnabled);\r\n this._renderVisibilityChange();\r\n this._renderDimensions()\r\n },\r\n _render() {\r\n this._attachVisibilityChangeHandlers()\r\n },\r\n _renderElementAttributes() {\r\n var {\r\n elementAttr: elementAttr\r\n } = this.option() || {};\r\n var attributes = extend({}, elementAttr);\r\n var classNames = attributes.class;\r\n delete attributes.class;\r\n this.$element().attr(attributes).removeClass(this._customClass).addClass(classNames);\r\n this._customClass = classNames\r\n },\r\n _renderVisibilityChange() {\r\n if (this._isDimensionChangeSupported()) {\r\n this._attachDimensionChangeHandlers()\r\n }\r\n if (this._isVisibilityChangeSupported()) {\r\n var $element = this.$element();\r\n $element.addClass(\"dx-visibility-change-handler\")\r\n }\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 if (this._isCssUpdateRequired(element, height, width)) {\r\n $element.css({\r\n width: null === width ? \"\" : width,\r\n height: null === height ? \"\" : height\r\n })\r\n }\r\n },\r\n _isCssUpdateRequired: (element, height, width) => !!(isDefined(width) || isDefined(height) || element.style.width || element.style.height),\r\n _attachDimensionChangeHandlers() {\r\n var $el = this.$element();\r\n var namespace = \"\".concat(this.NAME, \"VisibilityChange\");\r\n resizeEvent.off($el, {\r\n namespace: namespace\r\n });\r\n resizeEvent.on($el, () => this._dimensionChanged(), {\r\n namespace: namespace\r\n })\r\n },\r\n _attachVisibilityChangeHandlers() {\r\n if (this._isVisibilityChangeSupported()) {\r\n var $el = this.$element();\r\n var namespace = \"\".concat(this.NAME, \"VisibilityChange\");\r\n this._isHidden = !this._isVisible();\r\n visibilityEvents.off($el, {\r\n namespace: namespace\r\n });\r\n visibilityEvents.on($el, () => this._checkVisibilityChanged(\"shown\"), () => this._checkVisibilityChanged(\"hiding\"), {\r\n namespace: namespace\r\n })\r\n }\r\n },\r\n _isVisible() {\r\n var $element = this.$element();\r\n return $element.is(\":visible\")\r\n },\r\n _checkVisibilityChanged(action) {\r\n var isVisible = this._isVisible();\r\n if (isVisible) {\r\n if (\"hiding\" === action && !this._isHidden) {\r\n this._visibilityChanged(false);\r\n this._isHidden = true\r\n } else if (\"shown\" === action && this._isHidden) {\r\n this._isHidden = false;\r\n this._visibilityChanged(true)\r\n }\r\n }\r\n },\r\n _isVisibilityChangeSupported() {\r\n return this._visibilityChanged !== abstract && hasWindow()\r\n },\r\n _clean: noop,\r\n _modelByElement() {\r\n var {\r\n modelByElement: modelByElement\r\n } = this.option();\r\n var $element = this.$element();\r\n return modelByElement ? modelByElement($element) : void 0\r\n },\r\n _invalidate() {\r\n if (this._isUpdateAllowed()) {\r\n throw errors.Error(\"E0007\")\r\n }\r\n this._requireRefresh = true\r\n },\r\n _refresh() {\r\n this._clean();\r\n this._renderComponent()\r\n },\r\n _dispose() {\r\n this._templateManager && this._templateManager.dispose();\r\n this.callBase();\r\n this._clean();\r\n this._detachWindowResizeCallback()\r\n },\r\n _detachWindowResizeCallback() {\r\n if (this._isDimensionChangeSupported()) {\r\n windowResizeCallbacks.remove(this._windowResizeCallBack)\r\n }\r\n },\r\n _toggleRTLDirection(rtl) {\r\n var $element = this.$element();\r\n $element.toggleClass(\"dx-rtl\", rtl)\r\n },\r\n _createComponent(element, component) {\r\n var config = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n var synchronizableOptions = grep(this._getSynchronizableOptionsForCreateComponent(), value => !(value in config));\r\n var {\r\n integrationOptions: integrationOptions\r\n } = this.option();\r\n var {\r\n nestedComponentOptions: nestedComponentOptions\r\n } = this.option();\r\n nestedComponentOptions = nestedComponentOptions || noop;\r\n var nestedComponentConfig = extend({\r\n integrationOptions: integrationOptions\r\n }, nestedComponentOptions(this));\r\n synchronizableOptions.forEach(optionName => nestedComponentConfig[optionName] = this.option(optionName));\r\n this._extendConfig(config, nestedComponentConfig);\r\n var instance = void 0;\r\n if (isString(component)) {\r\n var $element = $(element)[component](config);\r\n instance = $element[component](\"instance\")\r\n } else if (element) {\r\n instance = component.getInstance(element);\r\n if (instance) {\r\n instance.option(config)\r\n } else {\r\n instance = new component(element, config)\r\n }\r\n }\r\n if (instance) {\r\n var optionChangedHandler = _ref => {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n if (synchronizableOptions.includes(name)) {\r\n instance.option(name, value)\r\n }\r\n };\r\n this.on(\"optionChanged\", optionChangedHandler);\r\n instance.on(\"disposing\", () => this.off(\"optionChanged\", optionChangedHandler))\r\n }\r\n return instance\r\n },\r\n _extendConfig(config, extendConfig) {\r\n each(extendConfig, (key, value) => {\r\n !Object.prototype.hasOwnProperty.call(config, key) && (config[key] = value)\r\n })\r\n },\r\n _defaultActionConfig() {\r\n var $element = this.$element();\r\n var context = this._modelByElement($element);\r\n return extend(this.callBase(), {\r\n context: context\r\n })\r\n },\r\n _defaultActionArgs() {\r\n var $element = this.$element();\r\n var model = this._modelByElement($element);\r\n var element = this.element();\r\n return extend(this.callBase(), {\r\n element: element,\r\n model: model\r\n })\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"width\":\r\n case \"height\":\r\n this._renderDimensions();\r\n break;\r\n case \"rtlEnabled\":\r\n this._invalidate();\r\n break;\r\n case \"elementAttr\":\r\n this._renderElementAttributes();\r\n break;\r\n case \"disabled\":\r\n case \"integrationOptions\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _removeAttributes(element) {\r\n var attrs = element.attributes;\r\n for (var i = attrs.length - 1; i >= 0; i--) {\r\n var attr = attrs[i];\r\n if (attr) {\r\n var {\r\n name: name\r\n } = attr;\r\n if (!name.indexOf(\"aria-\") || -1 !== name.indexOf(\"dx-\") || \"role\" === name || \"style\" === name || \"tabindex\" === name) {\r\n element.removeAttribute(name)\r\n }\r\n }\r\n }\r\n },\r\n _removeClasses(element) {\r\n element.className = element.className.split(\" \").filter(cssClass => 0 !== cssClass.lastIndexOf(\"dx-\", 0)).join(\" \")\r\n },\r\n _updateDOMComponent(renderRequired) {\r\n if (renderRequired) {\r\n this._renderComponent()\r\n } else if (this._requireRefresh) {\r\n this._requireRefresh = false;\r\n this._refresh()\r\n }\r\n },\r\n endUpdate() {\r\n var renderRequired = this._isInitializingRequired();\r\n this.callBase();\r\n this._isUpdateAllowed() && this._updateDOMComponent(renderRequired)\r\n },\r\n $element() {\r\n return this._$element\r\n },\r\n element() {\r\n var $element = this.$element();\r\n return getPublicElement($element)\r\n },\r\n dispose() {\r\n var element = this.$element().get(0);\r\n cleanDataRecursive(element, true);\r\n element.textContent = \"\";\r\n this._removeAttributes(element);\r\n this._removeClasses(element)\r\n },\r\n resetOption(optionName) {\r\n this.callBase(optionName);\r\n if (\"width\" === optionName || \"height\" === optionName) {\r\n var initialOption = this.initialOption(optionName);\r\n !isDefined(initialOption) && this.$element().css(optionName, \"\")\r\n }\r\n },\r\n _getAnonymousTemplateName() {\r\n return\r\n },\r\n _initTemplateManager() {\r\n if (this._templateManager || !this._useTemplates()) {\r\n return\r\n }\r\n var {\r\n integrationOptions: integrationOptions = {}\r\n } = this.option();\r\n var {\r\n createTemplate: createTemplate\r\n } = integrationOptions;\r\n this._templateManager = new TemplateManager(createTemplate, this._getAnonymousTemplateName());\r\n this._initTemplates()\r\n },\r\n _initTemplates() {\r\n var {\r\n templates: templates,\r\n anonymousTemplateMeta: anonymousTemplateMeta\r\n } = this._templateManager.extractTemplates(this.$element());\r\n var anonymousTemplate = this.option(\"integrationOptions.templates.\".concat(anonymousTemplateMeta.name));\r\n templates.forEach(_ref2 => {\r\n var {\r\n name: name,\r\n template: template\r\n } = _ref2;\r\n this._options.silent(\"integrationOptions.templates.\".concat(name), template)\r\n });\r\n if (anonymousTemplateMeta.name && !anonymousTemplate) {\r\n this._options.silent(\"integrationOptions.templates.\".concat(anonymousTemplateMeta.name), anonymousTemplateMeta.template);\r\n this._options.silent(\"_hasAnonymousTemplateContent\", true)\r\n }\r\n },\r\n _getTemplateByOption(optionName) {\r\n return this._getTemplate(this.option(optionName))\r\n },\r\n _getTemplate(templateSource) {\r\n var templates = this.option(\"integrationOptions.templates\");\r\n var isAsyncTemplate = this.option(\"templatesRenderAsynchronously\");\r\n var skipTemplates = this.option(\"integrationOptions.skipTemplates\");\r\n return this._templateManager.getTemplate(templateSource, templates, {\r\n isAsyncTemplate: isAsyncTemplate,\r\n skipTemplates: skipTemplates\r\n }, this)\r\n },\r\n _saveTemplate(name, template) {\r\n this._setOptionWithoutOptionChange(\"integrationOptions.templates.\" + name, this._templateManager._createTemplate(template))\r\n },\r\n _useTemplates: () => true\r\n});\r\nDOMComponent.getInstance = function(element) {\r\n return getInstanceByElement($(element), this)\r\n};\r\nDOMComponent.defaultOptions = function(rule) {\r\n this._classCustomRules = this._classCustomRules || [];\r\n this._classCustomRules.push(rule)\r\n};\r\nexport default DOMComponent;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/common/consts.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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/core/utils/position.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 if (isWindow(element)) {\r\n return {\r\n width: element.outerWidth,\r\n height: element.outerHeight\r\n }\r\n }\r\n return element.getBoundingClientRect()\r\n};\r\nexport {\r\n getBoundingRect,\r\n getDefaultAlignment\r\n};\r\n","/**\r\n * DevExtreme (esm/mobile/hide_callback.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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/overlay/ui.overlay.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 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 $ from \"../../core/renderer\";\r\nimport {\r\n EmptyTemplate\r\n} from \"../../core/templates/empty_template\";\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 isFunction,\r\n isObject,\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 errors from \"../../core/errors\";\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 \"../widget/selectors\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport * as zIndexPool from \"./z_index\";\r\nimport {\r\n OverlayPositionController,\r\n OVERLAY_POSITION_ALIASES\r\n} from \"./overlay_position_controller\";\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: function() {\r\n return extend(this.callBase(), {\r\n escape: function() {\r\n this.hide()\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\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 position: extend({}, OVERLAY_POSITION_ALIASES.center),\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 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\n closeOnOutsideClick: false,\r\n hideOnOutsideClick: false,\r\n copyRootClassesToWrapper: false,\r\n _ignoreCopyRootClassesToWrapperDeprecation: false,\r\n _ignoreElementAttrDeprecation: 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 onPositioned: null,\r\n propagateOutsideClick: false,\r\n ignoreChildEvents: true,\r\n _checkParentVisibility: true,\r\n _fixWrapperPosition: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return !hasWindow()\r\n },\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: function() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n animation: true\r\n })\r\n },\r\n $wrapper: function() {\r\n return this._$wrapper\r\n },\r\n _eventBindingTarget: function() {\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: function(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 }\r\n },\r\n _init: function() {\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 = $(\"
\").addClass(OVERLAY_WRAPPER_CLASS);\r\n this._$content = $(\"
\").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: function() {\r\n this._$content.toggleClass(INNER_OVERLAY_CLASS, this.option(\"innerOverlay\"))\r\n },\r\n _initHideTopOverlayHandler: function(handler) {\r\n this._hideTopOverlayHandler = handler\r\n },\r\n _getActionsList: function() {\r\n return [\"onShowing\", \"onShown\", \"onHiding\", \"onHidden\", \"onPositioned\", \"onVisualPositionChanged\"]\r\n },\r\n _initActions: function() {\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: function() {\r\n var _this = this;\r\n this._proxiedDocumentDownHandler = function() {\r\n return _this._documentDownHandler(...arguments)\r\n }\r\n },\r\n _areContentDimensionsRendered: function(entry) {\r\n var _entry$contentBoxSize, _this$_renderedDimens3, _this$_renderedDimens4;\r\n var contentBox = null === (_entry$contentBoxSize = entry.contentBoxSize) || void 0 === _entry$contentBoxSize ? void 0 : _entry$contentBoxSize[0];\r\n if (contentBox) {\r\n var _this$_renderedDimens, _this$_renderedDimens2;\r\n return parseInt(contentBox.inlineSize, 10) === (null === (_this$_renderedDimens = this._renderedDimensions) || void 0 === _this$_renderedDimens ? void 0 : _this$_renderedDimens.width) && parseInt(contentBox.blockSize, 10) === (null === (_this$_renderedDimens2 = this._renderedDimensions) || void 0 === _this$_renderedDimens2 ? void 0 : _this$_renderedDimens2.height)\r\n }\r\n var contentRect = entry.contentRect;\r\n return parseInt(contentRect.width, 10) === (null === (_this$_renderedDimens3 = this._renderedDimensions) || void 0 === _this$_renderedDimens3 ? void 0 : _this$_renderedDimens3.width) && parseInt(contentRect.height, 10) === (null === (_this$_renderedDimens4 = this._renderedDimensions) || void 0 === _this$_renderedDimens4 ? void 0 : _this$_renderedDimens4.height)\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this._renderWrapperAttributes();\r\n this._initPositionController()\r\n },\r\n _documentDownHandler: function(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: function(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: function() {\r\n return ANONYMOUS_TEMPLATE_NAME\r\n },\r\n _initTemplates: function() {\r\n this._templateManager.addDefaultTemplates({\r\n content: new EmptyTemplate\r\n });\r\n this.callBase()\r\n },\r\n _isTopOverlay: function() {\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: function() {\r\n return OVERLAY_STACK\r\n },\r\n _zIndexInitValue: function() {\r\n return Overlay.baseZIndex()\r\n },\r\n _toggleViewPortSubscription: function(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: function() {\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: function(visible) {\r\n this._stopAnimation();\r\n return visible ? this._show() : this._hide()\r\n },\r\n _getAnimationConfig: function() {\r\n return this._getOptionValue(\"animation\", this)\r\n },\r\n _animateShowing: function() {\r\n var _this$_getAnimationCo, _showAnimation$start, _showAnimation$comple, _this3 = this;\r\n var animation = null !== (_this$_getAnimationCo = this._getAnimationConfig()) && void 0 !== _this$_getAnimationCo ? _this$_getAnimationCo : {};\r\n var showAnimation = this._normalizeAnimation(animation.show, \"to\");\r\n var startShowAnimation = null !== (_showAnimation$start = null === showAnimation || void 0 === showAnimation ? void 0 : showAnimation.start) && void 0 !== _showAnimation$start ? _showAnimation$start : noop;\r\n var completeShowAnimation = null !== (_showAnimation$comple = null === showAnimation || void 0 === showAnimation ? void 0 : showAnimation.complete) && void 0 !== _showAnimation$comple ? _showAnimation$comple : 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 _show: function() {\r\n this._showingDeferred = new 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 (new Deferred).resolve().promise()\r\n }\r\n this._currentVisible = true;\r\n if (this._isHidingActionCanceled) {\r\n delete this._isHidingActionCanceled;\r\n this._showingDeferred.resolve()\r\n } else {\r\n var show = () => {\r\n this._stopAnimation();\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 if (showingArgs.cancel) {\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.option(\"visible\", false);\r\n this._showingDeferred.resolve()\r\n })()\r\n } else {\r\n (() => {\r\n this._$content.css(\"visibility\", \"\");\r\n this._renderVisibility(true);\r\n this._animateShowing()\r\n })()\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: function(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: function() {\r\n var _this$_getAnimationCo2, _hideAnimation$start, _hideAnimation$comple, _this4 = this;\r\n var animation = null !== (_this$_getAnimationCo2 = this._getAnimationConfig()) && void 0 !== _this$_getAnimationCo2 ? _this$_getAnimationCo2 : {};\r\n var hideAnimation = this._normalizeAnimation(animation.hide, \"from\");\r\n var startHideAnimation = null !== (_hideAnimation$start = null === hideAnimation || void 0 === hideAnimation ? void 0 : hideAnimation.start) && void 0 !== _hideAnimation$start ? _hideAnimation$start : noop;\r\n var completeHideAnimation = null !== (_hideAnimation$comple = null === hideAnimation || void 0 === hideAnimation ? void 0 : hideAnimation.complete) && void 0 !== _hideAnimation$comple ? _hideAnimation$comple : noop;\r\n this._animate(hideAnimation, (function() {\r\n var _this4$_actions;\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 === (_this4$_actions = _this4._actions) || void 0 === _this4$_actions ? void 0 : _this4$_actions.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: function() {\r\n if (!this._currentVisible) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n this._currentVisible = false;\r\n this._hidingDeferred = new Deferred;\r\n var hidingArgs = {\r\n cancel: false\r\n };\r\n if (this._isShowingActionCanceled) {\r\n this._hidingDeferred.resolve()\r\n } else {\r\n this._actions.onHiding(hidingArgs);\r\n this._toggleSafariScrolling();\r\n if (hidingArgs.cancel) {\r\n (() => {\r\n this._isHidingActionCanceled = true;\r\n this.option(\"visible\", true);\r\n this._hidingDeferred.resolve()\r\n })()\r\n } else {\r\n (() => {\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 }\r\n }\r\n return this._hidingDeferred.promise()\r\n },\r\n _forceFocusLost: function() {\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: function(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: function() {\r\n fx.stop(this._$content, true)\r\n },\r\n _renderVisibility: function(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._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: function(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: function(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: function() {\r\n var _this5 = this;\r\n this._proxiedTabTerminatorHandler = function() {\r\n _this5._tabKeyHandler(...arguments)\r\n }\r\n },\r\n _toggleTabTerminator: function(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: function() {\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: function(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: function(enabled) {\r\n if (hasWindow()) {\r\n this._toggleHideTopOverlayCallback(enabled);\r\n this._toggleHideOnParentsScrollSubscription(enabled)\r\n }\r\n },\r\n _toggleHideTopOverlayCallback: function(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: function(needSubscribe) {\r\n var _this$_parentsScrollS;\r\n var scrollEvent = addNamespace(\"scroll\", this.NAME);\r\n var {\r\n prevTargets: prevTargets,\r\n handler: handler\r\n } = null !== (_this$_parentsScrollS = this._parentsScrollSubscriptionInfo) && void 0 !== _this$_parentsScrollS ? _this$_parentsScrollS : {};\r\n eventsEngine.off(prevTargets, scrollEvent, handler);\r\n var closeOnScroll = this.option(\"hideOnParentScroll\");\r\n if (needSubscribe && closeOnScroll) {\r\n var $parents = this._hideOnParentScrollTarget().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: function(e) {\r\n var closeHandled = false;\r\n var closeOnScroll = this.option(\"hideOnParentScroll\");\r\n if (isFunction(closeOnScroll)) {\r\n closeHandled = closeOnScroll(e)\r\n }\r\n if (!closeHandled && !this._showAnimationProcessing) {\r\n this.hide()\r\n }\r\n },\r\n _hideOnParentScrollTarget: function() {\r\n return this._$wrapper\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._appendContentToElement();\r\n this._renderVisibilityAnimate(this.option(\"visible\"))\r\n },\r\n _appendContentToElement: function() {\r\n if (!this._$content.parent().is(this.$element())) {\r\n this._$content.appendTo(this.$element())\r\n }\r\n },\r\n _renderContent: function() {\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: function() {\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((function() {\r\n var $element = $(this);\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: function() {\r\n var whenContentRendered = new 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 }\r\n });\r\n this._renderScrollTerminator();\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 } = 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 }\r\n },\r\n _initPositionController() {\r\n this._positionController = new OverlayPositionController(this._getPositionControllerConfig())\r\n },\r\n _renderScrollTerminator: function() {\r\n var $scrollTerminator = this._$wrapper;\r\n var terminatorEventName = addNamespace(dragEventMove, this.NAME);\r\n eventsEngine.off($scrollTerminator, terminatorEventName);\r\n eventsEngine.on($scrollTerminator, terminatorEventName, {\r\n validate: function() {\r\n return true\r\n },\r\n getDirection: function() {\r\n return \"both\"\r\n },\r\n _toggleGestureCover: function(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 originalEvent = e.originalEvent.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 _moveFromContainer: function() {\r\n this._$content.appendTo(this.$element());\r\n this._detachWrapperToContainer()\r\n },\r\n _detachWrapperToContainer: function() {\r\n this._$wrapper.detach()\r\n },\r\n _moveToContainer: function() {\r\n this._$wrapper.appendTo(this._positionController.$container);\r\n this._$content.appendTo(this._$wrapper)\r\n },\r\n _renderGeometry: function(options) {\r\n var {\r\n visible: visible\r\n } = this.option();\r\n if (visible && hasWindow()) {\r\n this._renderGeometryImpl()\r\n }\r\n },\r\n _renderGeometryImpl: function() {\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: function() {\r\n return isWindow(this._positionController.$visualContainer.get(0)) && this.option(\"shading\")\r\n },\r\n _toggleSafariScrolling: function() {\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: function() {\r\n this._positionController.styleWrapperPosition();\r\n this._renderWrapperDimensions();\r\n this._positionController.positionWrapper()\r\n },\r\n _renderWrapperDimensions: function() {\r\n var $visualContainer = this._positionController.$visualContainer;\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: function() {\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: function() {\r\n return this._$content\r\n },\r\n _attachKeyboardEvents: function() {\r\n this._keyboardListenerId = keyboard.on(this._$content, null, opts => this._keyboardHandler(opts))\r\n },\r\n _keyboardHandler: function(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: function() {\r\n return this.option(\"visible\")\r\n },\r\n _visibilityChanged: function(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: function() {\r\n this._renderGeometry()\r\n },\r\n _clean: function() {\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: function() {\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: function(rtl) {\r\n this._$content.toggleClass(RTL_DIRECTION_CLASS, rtl)\r\n },\r\n _optionChanged: function(args) {\r\n var value = args.value;\r\n if (this._getActionsList().includes(args.name)) {\r\n this._initActions();\r\n return\r\n }\r\n switch (args.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 if (!this._animateDeferred) {\r\n return\r\n }\r\n this._animateDeferred.resolveWith(this)\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(args.value);\r\n this._toggleHideTopOverlayCallback(this.option(\"visible\"));\r\n break;\r\n case \"hideOnParentScroll\":\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 = args.value;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n toggle: function(showing) {\r\n showing = void 0 === showing ? !this.option(\"visible\") : showing;\r\n var result = new Deferred;\r\n if (showing === this.option(\"visible\")) {\r\n return result.resolveWith(this, [showing]).promise()\r\n }\r\n var animateDeferred = new 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 });\r\n return result.promise()\r\n },\r\n $content: function() {\r\n return this._$content\r\n },\r\n show: function() {\r\n return this.toggle(true)\r\n },\r\n hide: function() {\r\n return this.toggle(false)\r\n },\r\n content: function() {\r\n return getPublicElement(this._$content)\r\n },\r\n repaint: function() {\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","/*!\n * devextreme-vue\n * Version: 22.1.5\n * Build date: Fri Sep 02 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOption = void 0;\nvar config = {\n useLegacyTemplateEngine: false\n};\nfunction setOptions(options) {\n config = __assign(__assign({}, config), options);\n}\nfunction getOption(optionName) {\n return config[optionName];\n}\nexports.getOption = getOption;\nexports.default = setOptions;\n","/**\r\n * DevExtreme (esm/core/templates/bindable_template.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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/ui/text_box/texteditor_button_collection/button.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nexport default class TextEditorButton {\r\n constructor(name, editor, options) {\r\n this.instance = null;\r\n this.$container = null;\r\n this.$placeMarker = null;\r\n this.editor = editor;\r\n this.name = name;\r\n this.options = options || {}\r\n }\r\n _addPlaceMarker($container) {\r\n this.$placeMarker = $(\"
\").appendTo($container)\r\n }\r\n _addToContainer($element) {\r\n var {\r\n $placeMarker: $placeMarker,\r\n $container: $container\r\n } = this;\r\n $placeMarker ? $placeMarker.replaceWith($element) : $element.appendTo($container)\r\n }\r\n _attachEvents() {\r\n throw \"Not implemented\"\r\n }\r\n _create() {\r\n throw \"Not implemented\"\r\n }\r\n _isRendered() {\r\n return !!this.instance\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor,\r\n options: options\r\n } = this;\r\n return options.visible || !editor.option(\"readOnly\")\r\n }\r\n _isDisabled() {\r\n throw \"Not implemented\"\r\n }\r\n _shouldRender() {\r\n return this._isVisible() && !this._isRendered()\r\n }\r\n dispose() {\r\n var {\r\n instance: instance,\r\n $placeMarker: $placeMarker\r\n } = this;\r\n if (instance) {\r\n instance.dispose ? instance.dispose() : instance.remove();\r\n this.instance = null\r\n }\r\n $placeMarker && $placeMarker.remove()\r\n }\r\n render() {\r\n var $container = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.$container;\r\n this.$container = $container;\r\n if (this._isVisible()) {\r\n var {\r\n instance: instance,\r\n $element: $element\r\n } = this._create();\r\n this.instance = instance;\r\n this._attachEvents(instance, $element)\r\n } else {\r\n this._addPlaceMarker($container)\r\n }\r\n }\r\n update() {\r\n if (this._shouldRender()) {\r\n this.render()\r\n }\r\n return !!this.instance\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/events/swipe.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 e.preventDefault()\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","/*!\n * devextreme-vue\n * Version: 22.1.5\n * Build date: Fri Sep 02 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.discover = exports.mountTemplate = void 0;\nvar VueType = __importStar(require(\"vue\"));\nvar errors_1 = require(\"./errors\");\nvar TEMPLATE_PROP = \"template\";\nvar Vue = VueType.default || VueType;\nfunction asConfigurable(component) {\n if (!component.$vnode) {\n return undefined;\n }\n var configurable = component.$vnode.componentOptions;\n if (!configurable.$_config || !configurable.$_config.name) {\n return undefined;\n }\n return configurable;\n}\nfunction hasTemplate(component) {\n return TEMPLATE_PROP in component.$props && (component.$vnode.data && component.$vnode.data.scopedSlots);\n}\nfunction discover(component) {\n var templates = {};\n for (var slotName in component.$scopedSlots) {\n if (slotName === \"default\" && component.$slots.default) {\n continue;\n }\n var slot = component.$scopedSlots[slotName];\n if (!slot) {\n continue;\n }\n templates[slotName] = slot;\n }\n for (var _i = 0, _a = component.$children; _i < _a.length; _i++) {\n var childComponent = _a[_i];\n var configurable = asConfigurable(childComponent);\n if (!configurable) {\n continue;\n }\n var defaultSlot = childComponent.$scopedSlots.default;\n if (!defaultSlot || !hasTemplate(childComponent)) {\n continue;\n }\n var templateName = configurable.$_config.fullPath + \".\" + TEMPLATE_PROP;\n templates[templateName] = defaultSlot;\n }\n return templates;\n}\nexports.discover = discover;\nfunction mountTemplate(getSlot, parent, data, name, placeholder) {\n return new Vue({\n el: placeholder,\n name: name,\n inject: [\"eventBus\"],\n parent: parent,\n created: function () {\n var _this = this;\n this.eventBus.$on(\"updated\", function () {\n _this.$forceUpdate();\n });\n },\n render: function (createElement) {\n var content = getSlot()(data);\n if (!content) {\n return createElement(\"div\");\n }\n if (content.length > 1) {\n throw new Error(errors_1.TEMPLATE_MULTIPLE_ROOTS_ERROR);\n }\n return content[0];\n },\n destroyed: function () {\n // T857821\n this.eventBus.$off(\"updated\");\n }\n });\n}\nexports.mountTemplate = mountTemplate;\n","/*!\n * devextreme-vue\n * Version: 22.1.5\n * Build date: Fri Sep 02 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setEmitOptionChangedFunc = exports.bindOptionWatchers = void 0;\nvar vue_1 = require(\"vue\");\nvar config_1 = require(\"./config\");\nvar helpers_1 = require(\"./helpers\");\nvar vue_helper_1 = require(\"./vue-helper\");\nvar Configuration = /** @class */ (function () {\n function Configuration(updateFunc, name, initialValues, expectedChildren, isCollectionItem, collectionItemIndex, ownerConfig) {\n this._updateFunc = updateFunc;\n this._name = name;\n this._initialValues = initialValues ? initialValues : {};\n this._nestedConfigurations = [];\n this._isCollectionItem = !!isCollectionItem;\n this._collectionItemIndex = collectionItemIndex;\n this._expectedChildren = expectedChildren || {};\n this._ownerConfig = ownerConfig;\n this._componentChanges = [];\n this.updateValue = this.updateValue.bind(this);\n }\n Object.defineProperty(Configuration.prototype, \"name\", {\n get: function () {\n return this._name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"fullName\", {\n get: function () {\n return this._name && this._isCollectionItem\n ? this._name + \"[\" + this._collectionItemIndex + \"]\"\n : this._name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"componentsCountChanged\", {\n get: function () {\n return this._componentChanges;\n },\n enumerable: false,\n configurable: true\n });\n Configuration.prototype.cleanComponentsCountChanged = function () {\n this._componentChanges = [];\n };\n Object.defineProperty(Configuration.prototype, \"fullPath\", {\n get: function () {\n return this._ownerConfig && this._ownerConfig.fullPath\n ? this._ownerConfig.fullPath + \".\" + this.fullName\n : this.fullName;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"ownerConfig\", {\n get: function () {\n return this._ownerConfig;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"options\", {\n get: function () {\n return this._options;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"initialValues\", {\n get: function () {\n return this._initialValues;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"expectedChildren\", {\n get: function () {\n return this._expectedChildren;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"nested\", {\n get: function () {\n return this._nestedConfigurations;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"prevNestedOptions\", {\n get: function () {\n return this._prevNestedConfigOptions;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"collectionItemIndex\", {\n get: function () {\n return this._collectionItemIndex;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"isCollectionItem\", {\n get: function () {\n return this._isCollectionItem;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"updateFunc\", {\n get: function () {\n return this._updateFunc;\n },\n enumerable: false,\n configurable: true\n });\n Configuration.prototype.init = function (options) {\n this._options = options ? options : [];\n };\n Object.defineProperty(Configuration.prototype, \"emitOptionChanged\", {\n set: function (handler) {\n this._emitOptionChanged = handler;\n },\n enumerable: false,\n configurable: true\n });\n Configuration.prototype.setPrevNestedOptions = function (value) {\n this._prevNestedConfigOptions = value;\n };\n Configuration.prototype.onOptionChanged = function (args) {\n if (helpers_1.isEqual(args.value, args.previousValue)) {\n return;\n }\n this._onOptionChanged(args.fullName.split(\".\"), args);\n };\n Configuration.prototype.cleanNested = function () {\n this._nestedConfigurations = [];\n };\n Configuration.prototype.createNested = function (name, initialValues, isCollectionItem, expectedChildren) {\n var expected = this._expectedChildren[name];\n var actualName = name;\n var actualIsCollectionItem = isCollectionItem;\n if (expected) {\n actualIsCollectionItem = expected.isCollectionItem;\n if (expected.optionName) {\n actualName = expected.optionName;\n }\n }\n var collectionItemIndex = -1;\n if (actualIsCollectionItem && actualName) {\n collectionItemIndex = this._nestedConfigurations.filter(function (c) { return c._name && c._name === actualName; }).length;\n }\n var configuration = new Configuration(this._updateFunc, actualName, initialValues, expectedChildren, actualIsCollectionItem, collectionItemIndex, this);\n this._nestedConfigurations.push(configuration);\n return configuration;\n };\n Configuration.prototype.updateValue = function (nestedName, value) {\n var fullName = [this.fullPath, nestedName].filter(function (n) { return n; }).join(\".\");\n this._updateFunc(fullName, value);\n };\n Configuration.prototype.getNestedOptionValues = function () {\n var values = {};\n this._nestedConfigurations.forEach(function (o) {\n if (!o._name) {\n return;\n }\n var nestedValue = __assign(__assign({}, o.initialValues), o.getNestedOptionValues());\n if (!nestedValue) {\n return;\n }\n if (!o._isCollectionItem) {\n values[o._name] = nestedValue;\n }\n else {\n var arr = values[o._name];\n if (!arr || !Array.isArray(arr)) {\n arr = [];\n values[o._name] = arr;\n }\n arr.push(nestedValue);\n }\n });\n return values;\n };\n Configuration.prototype.getOptionsToWatch = function () {\n var blackList = {};\n this._nestedConfigurations.forEach(function (c) { return c._name && (blackList[c._name] = true); });\n return this._options.filter(function (o) { return !blackList[o]; });\n };\n Configuration.prototype._onOptionChanged = function (optionRelPath, args) {\n if (optionRelPath.length === 0) {\n return;\n }\n var optionInfo = helpers_1.getOptionInfo(optionRelPath[0]);\n if (optionInfo.isCollection || optionRelPath.length > 1) {\n var nestedConfig = this._getNestedConfig(optionInfo.fullName);\n if (nestedConfig) {\n nestedConfig._onOptionChanged(optionRelPath.slice(1), args);\n return;\n }\n this._tryEmitOptionChanged(optionInfo.name, args.component.option(this.fullPath ? this.fullPath + \".\" + optionInfo.name : optionInfo.name));\n }\n else {\n this._tryEmitOptionChanged(optionInfo.name, args.value);\n }\n };\n Configuration.prototype._getNestedConfig = function (fullName) {\n for (var _i = 0, _a = this._nestedConfigurations; _i < _a.length; _i++) {\n var nestedConfig = _a[_i];\n if (nestedConfig.fullName === fullName) {\n return nestedConfig;\n }\n }\n return undefined;\n };\n Configuration.prototype._tryEmitOptionChanged = function (name, value) {\n if (this._emitOptionChanged) {\n this._emitOptionChanged(name, value);\n }\n };\n return Configuration;\n}());\nfunction bindOptionWatchers(config, vueInstance, innerChanges) {\n var targets = config && config.getOptionsToWatch();\n if (targets) {\n targets.forEach(function (optionName) {\n vueInstance.$watch(optionName, function (value) {\n var rawValue = vue_1.toRaw(value);\n if (!innerChanges.hasOwnProperty(optionName) ||\n innerChanges[optionName] !== rawValue) {\n config.updateValue(optionName, value);\n }\n delete innerChanges[optionName];\n }, { deep: config_1.getOption(\"deepWatch\") });\n });\n }\n}\nexports.bindOptionWatchers = bindOptionWatchers;\nfunction hasProp(vueInstance, propName) {\n var props = vueInstance.$options.props;\n return props && props.hasOwnProperty(propName);\n}\nfunction hasVModelValue(options, props, vnode) {\n var _a;\n return options.model\n && props.hasOwnProperty(vue_helper_1.VMODEL_NAME)\n && ((_a = vnode === null || vnode === void 0 ? void 0 : vnode.props) === null || _a === void 0 ? void 0 : _a.hasOwnProperty(vue_helper_1.VMODEL_NAME));\n}\nfunction setEmitOptionChangedFunc(config, vueInstance, innerChanges) {\n config.emitOptionChanged = function (name, value) {\n var _a;\n var props = vueInstance.$props;\n var vnode = (_a = vueInstance === null || vueInstance === void 0 ? void 0 : vueInstance.$) === null || _a === void 0 ? void 0 : _a.vnode;\n if (hasProp(vueInstance, name) && !helpers_1.isEqual(value, props[name]) && vueInstance.$emit) {\n innerChanges[name] = vue_1.toRaw(value);\n var eventName = name === \"value\" && hasVModelValue(vueInstance.$options, props, vnode) ?\n \"update:\" + vue_helper_1.VMODEL_NAME :\n \"update:\" + name;\n vueInstance.$emit(eventName, value);\n }\n };\n}\nexports.setEmitOptionChangedFunc = setEmitOptionChangedFunc;\nexports.default = Configuration;\n","/*!\n * devextreme-vue\n * Version: 22.1.5\n * Build date: Fri Sep 02 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isVue3 = exports.getVueVersion = void 0;\nvar VueType = __importStar(require(\"vue\"));\nvar Vue = VueType.default || VueType;\nfunction getVueVersion() {\n var currentVersion = Vue.version;\n return Number(currentVersion.split(\".\")[0]);\n}\nexports.getVueVersion = getVueVersion;\nfunction isVue3() {\n return getVueVersion() === 3;\n}\nexports.isVue3 = isVue3;\n","/**\r\n * DevExtreme (esm/events/pointer/base.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 browser from \"../../core/utils/browser\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n addNamespace,\r\n eventSource,\r\n fireEvent\r\n} from \"../utils/index\";\r\nvar POINTER_EVENTS_NAMESPACE = \"dxPointerEvents\";\r\nvar BaseStrategy = Class.inherit({\r\n ctor: function(eventName, originalEvents) {\r\n this._eventName = eventName;\r\n this._originalEvents = addNamespace(originalEvents, POINTER_EVENTS_NAMESPACE);\r\n this._handlerCount = 0;\r\n this.noBubble = this._isNoBubble()\r\n },\r\n _isNoBubble: function() {\r\n var eventName = this._eventName;\r\n return \"dxpointerenter\" === eventName || \"dxpointerleave\" === eventName\r\n },\r\n _handler: function(e) {\r\n var delegateTarget = this._getDelegateTarget(e);\r\n var event = {\r\n type: this._eventName,\r\n pointerType: e.pointerType || eventSource(e),\r\n originalEvent: e,\r\n delegateTarget: delegateTarget,\r\n timeStamp: browser.mozilla ? (new Date).getTime() : e.timeStamp\r\n };\r\n var originalEvent = e.originalEvent;\r\n if (null !== originalEvent && void 0 !== originalEvent && originalEvent.target.shadowRoot) {\r\n var _originalEvent$path, _originalEvent$compos;\r\n var path = null !== (_originalEvent$path = originalEvent.path) && void 0 !== _originalEvent$path ? _originalEvent$path : null === (_originalEvent$compos = originalEvent.composedPath) || void 0 === _originalEvent$compos ? void 0 : _originalEvent$compos.call(originalEvent);\r\n event.target = path[0]\r\n }\r\n return this._fireEvent(event)\r\n },\r\n _getDelegateTarget: function(e) {\r\n var delegateTarget;\r\n if (this.noBubble) {\r\n delegateTarget = e.delegateTarget\r\n }\r\n return delegateTarget\r\n },\r\n _fireEvent: function(args) {\r\n return fireEvent(args)\r\n },\r\n _setSelector: function(handleObj) {\r\n this._selector = this.noBubble && handleObj ? handleObj.selector : null\r\n },\r\n _getSelector: function() {\r\n return this._selector\r\n },\r\n setup: function() {\r\n return true\r\n },\r\n add: function(element, handleObj) {\r\n if (this._handlerCount <= 0 || this.noBubble) {\r\n element = this.noBubble ? element : domAdapter.getDocument();\r\n this._setSelector(handleObj);\r\n var that = this;\r\n eventsEngine.on(element, this._originalEvents, this._getSelector(), (function(e) {\r\n that._handler(e)\r\n }))\r\n }\r\n if (!this.noBubble) {\r\n this._handlerCount++\r\n }\r\n },\r\n remove: function(handleObj) {\r\n this._setSelector(handleObj);\r\n if (!this.noBubble) {\r\n this._handlerCount--\r\n }\r\n },\r\n teardown: function(element) {\r\n if (this._handlerCount && !this.noBubble) {\r\n return\r\n }\r\n element = this.noBubble ? element : domAdapter.getDocument();\r\n if (this._originalEvents !== \".\" + POINTER_EVENTS_NAMESPACE) {\r\n eventsEngine.off(element, this._originalEvents, this._getSelector())\r\n }\r\n },\r\n dispose: function(element) {\r\n element = this.noBubble ? element : domAdapter.getDocument();\r\n eventsEngine.off(element, this._originalEvents)\r\n }\r\n});\r\nexport default BaseStrategy;\r\n","/**\r\n * DevExtreme (esm/events/pointer/touch.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport BaseStrategy from \"./base\";\r\nvar eventMap = {\r\n dxpointerdown: \"touchstart\",\r\n dxpointermove: \"touchmove\",\r\n dxpointerup: \"touchend\",\r\n dxpointercancel: \"touchcancel\",\r\n dxpointerover: \"\",\r\n dxpointerout: \"\",\r\n dxpointerenter: \"\",\r\n dxpointerleave: \"\"\r\n};\r\nvar normalizeTouchEvent = function(e) {\r\n var pointers = [];\r\n each(e.touches, (function(_, touch) {\r\n pointers.push(extend({\r\n pointerId: touch.identifier\r\n }, touch))\r\n }));\r\n return {\r\n pointers: pointers,\r\n pointerId: e.changedTouches[0].identifier\r\n }\r\n};\r\nvar skipTouchWithSameIdentifier = function(pointerEvent) {\r\n return \"ios\" === devices.real().platform && (\"dxpointerdown\" === pointerEvent || \"dxpointerup\" === pointerEvent)\r\n};\r\nvar TouchStrategy = BaseStrategy.inherit({\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n this._pointerId = 0\r\n },\r\n _handler: function(e) {\r\n if (skipTouchWithSameIdentifier(this._eventName)) {\r\n var touch = e.changedTouches[0];\r\n if (this._pointerId === touch.identifier && 0 !== this._pointerId) {\r\n return\r\n }\r\n this._pointerId = touch.identifier\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _fireEvent: function(args) {\r\n return this.callBase(extend(normalizeTouchEvent(args.originalEvent), args))\r\n }\r\n});\r\nTouchStrategy.map = eventMap;\r\nTouchStrategy.normalize = normalizeTouchEvent;\r\nexport default TouchStrategy;\r\n","/**\r\n * DevExtreme (esm/events/pointer/mouse.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 BaseStrategy from \"./base\";\r\nimport Observer from \"./observer\";\r\nvar eventMap = {\r\n dxpointerdown: \"mousedown\",\r\n dxpointermove: \"mousemove\",\r\n dxpointerup: \"mouseup\",\r\n dxpointercancel: \"\",\r\n dxpointerover: \"mouseover\",\r\n dxpointerout: \"mouseout\",\r\n dxpointerenter: \"mouseenter\",\r\n dxpointerleave: \"mouseleave\"\r\n};\r\nvar normalizeMouseEvent = function(e) {\r\n e.pointerId = 1;\r\n return {\r\n pointers: observer.pointers(),\r\n pointerId: 1\r\n }\r\n};\r\nvar observer;\r\nvar activated = false;\r\nvar activateStrategy = function() {\r\n if (activated) {\r\n return\r\n }\r\n observer = new Observer(eventMap, (function() {\r\n return true\r\n }));\r\n activated = true\r\n};\r\nvar MouseStrategy = BaseStrategy.inherit({\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n activateStrategy()\r\n },\r\n _fireEvent: function(args) {\r\n return this.callBase(extend(normalizeMouseEvent(args.originalEvent), args))\r\n }\r\n});\r\nMouseStrategy.map = eventMap;\r\nMouseStrategy.normalize = normalizeMouseEvent;\r\nMouseStrategy.activate = activateStrategy;\r\nMouseStrategy.resetObserver = function() {\r\n observer.reset()\r\n};\r\nexport default MouseStrategy;\r\n","/**\r\n * DevExtreme (esm/events/pointer/observer.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport readyCallbacks from \"../../core/utils/ready_callbacks\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nvar addEventsListener = function(events, handler) {\r\n readyCallbacks.add((function() {\r\n events.split(\" \").forEach((function(event) {\r\n domAdapter.listen(domAdapter.getDocument(), event, handler, true)\r\n }))\r\n }))\r\n};\r\nvar Observer = function(eventMap, pointerEquals, onPointerAdding) {\r\n onPointerAdding = onPointerAdding || function() {};\r\n var pointers = [];\r\n var getPointerIndex = function(e) {\r\n var index = -1;\r\n each(pointers, (function(i, pointer) {\r\n if (!pointerEquals(e, pointer)) {\r\n return true\r\n }\r\n index = i;\r\n return false\r\n }));\r\n return index\r\n };\r\n var removePointer = function(e) {\r\n var index = getPointerIndex(e);\r\n if (index > -1) {\r\n pointers.splice(index, 1)\r\n }\r\n };\r\n addEventsListener(eventMap.dxpointerdown, (function(e) {\r\n if (-1 === getPointerIndex(e)) {\r\n onPointerAdding(e);\r\n pointers.push(e)\r\n }\r\n }));\r\n addEventsListener(eventMap.dxpointermove, (function(e) {\r\n pointers[getPointerIndex(e)] = e\r\n }));\r\n addEventsListener(eventMap.dxpointerup, removePointer);\r\n addEventsListener(eventMap.dxpointercancel, removePointer);\r\n this.pointers = function() {\r\n return pointers\r\n };\r\n this.reset = function() {\r\n pointers = []\r\n }\r\n};\r\nexport default Observer;\r\n","/**\r\n * DevExtreme (esm/events/pointer/mouse_and_touch.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 BaseStrategy from \"./base\";\r\nimport MouseStrategy from \"./mouse\";\r\nimport TouchStrategy from \"./touch\";\r\nimport {\r\n isMouseEvent\r\n} from \"../utils/index\";\r\nvar eventMap = {\r\n dxpointerdown: \"touchstart mousedown\",\r\n dxpointermove: \"touchmove mousemove\",\r\n dxpointerup: \"touchend mouseup\",\r\n dxpointercancel: \"touchcancel\",\r\n dxpointerover: \"mouseover\",\r\n dxpointerout: \"mouseout\",\r\n dxpointerenter: \"mouseenter\",\r\n dxpointerleave: \"mouseleave\"\r\n};\r\nvar activated = false;\r\nvar activateStrategy = function() {\r\n if (activated) {\r\n return\r\n }\r\n MouseStrategy.activate();\r\n activated = true\r\n};\r\nvar MouseAndTouchStrategy = BaseStrategy.inherit({\r\n EVENT_LOCK_TIMEOUT: 100,\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n activateStrategy()\r\n },\r\n _handler: function(e) {\r\n var isMouse = isMouseEvent(e);\r\n if (!isMouse) {\r\n this._skipNextEvents = true\r\n }\r\n if (isMouse && this._mouseLocked) {\r\n return\r\n }\r\n if (isMouse && this._skipNextEvents) {\r\n this._skipNextEvents = false;\r\n this._mouseLocked = true;\r\n clearTimeout(this._unlockMouseTimer);\r\n var that = this;\r\n this._unlockMouseTimer = setTimeout((function() {\r\n that._mouseLocked = false\r\n }), this.EVENT_LOCK_TIMEOUT);\r\n return\r\n }\r\n return this.callBase(e)\r\n },\r\n _fireEvent: function(args) {\r\n var normalizer = isMouseEvent(args.originalEvent) ? MouseStrategy.normalize : TouchStrategy.normalize;\r\n return this.callBase(extend(normalizer(args.originalEvent), args))\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n this._skipNextEvents = false;\r\n this._mouseLocked = false;\r\n clearTimeout(this._unlockMouseTimer)\r\n }\r\n});\r\nMouseAndTouchStrategy.map = eventMap;\r\nMouseAndTouchStrategy.resetObserver = MouseStrategy.resetObserver;\r\nexport default MouseAndTouchStrategy;\r\n","/**\r\n * DevExtreme (esm/events/pointer.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport * as support from \"../core/utils/support\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport devices from \"../core/devices\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport TouchStrategy from \"./pointer/touch\";\r\nimport MouseStrategy from \"./pointer/mouse\";\r\nimport MouseAndTouchStrategy from \"./pointer/mouse_and_touch\";\r\nvar getStrategy = (support, device) => {\r\n var {\r\n tablet: tablet,\r\n phone: phone\r\n } = device;\r\n if (support.touch && !(tablet || phone)) {\r\n return MouseAndTouchStrategy\r\n }\r\n if (support.touch) {\r\n return TouchStrategy\r\n }\r\n return MouseStrategy\r\n};\r\nvar EventStrategy = getStrategy(support, devices.real());\r\neach(EventStrategy.map, (pointerEvent, originalEvents) => {\r\n registerEvent(pointerEvent, new EventStrategy(pointerEvent, originalEvents))\r\n});\r\nvar pointer = {\r\n down: \"dxpointerdown\",\r\n up: \"dxpointerup\",\r\n move: \"dxpointermove\",\r\n cancel: \"dxpointercancel\",\r\n enter: \"dxpointerenter\",\r\n leave: \"dxpointerleave\",\r\n over: \"dxpointerover\",\r\n out: \"dxpointerout\"\r\n};\r\nexport default pointer;\r\n","/**\r\n * DevExtreme (esm/core/utils/browser.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 \"./extend\";\r\nimport {\r\n getNavigator\r\n} from \"./window\";\r\nvar navigator = getNavigator();\r\nvar webkitRegExp = /(webkit)[ /]([\\w.]+)/;\r\nvar mozillaRegExp = /(mozilla)(?:.*? rv:([\\w.]+))/;\r\nvar browserFromUA = ua => {\r\n ua = ua.toLowerCase();\r\n var result = {};\r\n var matches = webkitRegExp.exec(ua) || ua.indexOf(\"compatible\") < 0 && mozillaRegExp.exec(ua) || [];\r\n var browserName = matches[1];\r\n var browserVersion = matches[2];\r\n if (\"webkit\" === browserName) {\r\n result.webkit = true;\r\n if (ua.indexOf(\"chrome\") >= 0 || ua.indexOf(\"crios\") >= 0) {\r\n browserName = \"chrome\";\r\n browserVersion = /(?:chrome|crios)\\/(\\d+\\.\\d+)/.exec(ua);\r\n browserVersion = browserVersion && browserVersion[1]\r\n } else if (ua.indexOf(\"fxios\") >= 0) {\r\n browserName = \"mozilla\";\r\n browserVersion = /fxios\\/(\\d+\\.\\d+)/.exec(ua);\r\n browserVersion = browserVersion && browserVersion[1]\r\n } else if (ua.indexOf(\"safari\") >= 0 && /version|phantomjs/.test(ua)) {\r\n browserName = \"safari\";\r\n browserVersion = /(?:version|phantomjs)\\/([0-9.]+)/.exec(ua);\r\n browserVersion = browserVersion && browserVersion[1]\r\n } else {\r\n browserName = \"unknown\";\r\n browserVersion = /applewebkit\\/([0-9.]+)/.exec(ua);\r\n browserVersion = browserVersion && browserVersion[1]\r\n }\r\n }\r\n if (browserName) {\r\n result[browserName] = true;\r\n result.version = browserVersion\r\n }\r\n return result\r\n};\r\nexport default extend({\r\n _fromUA: browserFromUA\r\n}, browserFromUA(navigator.userAgent));\r\n","/**\r\n * DevExtreme (esm/core/utils/array.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 \"./type\";\r\nimport {\r\n orderEach\r\n} from \"./object\";\r\nimport config from \"../config\";\r\n\r\nfunction createOccurrenceMap(array) {\r\n return array.reduce((map, value) => {\r\n var _map$value;\r\n map[value] = (null !== (_map$value = map[value]) && void 0 !== _map$value ? _map$value : 0) + 1;\r\n return map\r\n }, {})\r\n}\r\nexport var wrapToArray = function(item) {\r\n return Array.isArray(item) ? item : [item]\r\n};\r\nexport var getUniqueValues = function(values) {\r\n return [...new Set(values)]\r\n};\r\nexport var getIntersection = function(firstArray, secondArray) {\r\n var secondArrayMap = createOccurrenceMap(secondArray);\r\n return firstArray.filter(value => secondArrayMap[value]--)\r\n};\r\nexport var removeDuplicates = function() {\r\n var from = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\r\n var toRemove = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [];\r\n var toRemoveMap = createOccurrenceMap(toRemove);\r\n return from.filter(value => !toRemoveMap[value]--)\r\n};\r\nexport var normalizeIndexes = function(items, indexPropName, currentItem, needIndexCallback) {\r\n var indexedItems = {};\r\n var {\r\n useLegacyVisibleIndex: useLegacyVisibleIndex\r\n } = config();\r\n var currentIndex = 0;\r\n var shouldUpdateIndex = item => !isDefined(item[indexPropName]) && (!needIndexCallback || needIndexCallback(item));\r\n items.forEach(item => {\r\n var index = item[indexPropName];\r\n if (index >= 0) {\r\n indexedItems[index] = indexedItems[index] || [];\r\n if (item === currentItem) {\r\n indexedItems[index].unshift(item)\r\n } else {\r\n indexedItems[index].push(item)\r\n }\r\n } else {\r\n item[indexPropName] = void 0\r\n }\r\n });\r\n if (!useLegacyVisibleIndex) {\r\n items.forEach(item => {\r\n if (shouldUpdateIndex(item)) {\r\n while (indexedItems[currentIndex]) {\r\n currentIndex++\r\n }\r\n indexedItems[currentIndex] = [item];\r\n currentIndex++\r\n }\r\n })\r\n }\r\n currentIndex = 0;\r\n orderEach(indexedItems, (function(index, items) {\r\n items.forEach(item => {\r\n if (index >= 0) {\r\n item[indexPropName] = currentIndex++\r\n }\r\n })\r\n }));\r\n if (useLegacyVisibleIndex) {\r\n items.forEach(item => {\r\n if (shouldUpdateIndex(item)) {\r\n item[indexPropName] = currentIndex++\r\n }\r\n })\r\n }\r\n};\r\nexport var groupBy = (array, getGroupName) => array.reduce((groupedResult, item) => {\r\n var _groupedResult$groupN;\r\n var groupName = getGroupName(item);\r\n groupedResult[groupName] = null !== (_groupedResult$groupN = groupedResult[groupName]) && void 0 !== _groupedResult$groupN ? _groupedResult$groupN : [];\r\n groupedResult[groupName].push(item);\r\n return groupedResult\r\n}, {});\r\n","/**\r\n * DevExtreme (esm/events/core/keyboard_processor.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 Class from \"../../core/class\";\r\nimport {\r\n addNamespace,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nvar COMPOSITION_START_EVENT = \"compositionstart\";\r\nvar COMPOSITION_END_EVENT = \"compositionend\";\r\nvar KEYDOWN_EVENT = \"keydown\";\r\nvar NAMESPACE = \"KeyboardProcessor\";\r\nvar createKeyDownOptions = e => ({\r\n keyName: normalizeKeyName(e),\r\n key: e.key,\r\n code: e.code,\r\n ctrl: e.ctrlKey,\r\n location: e.location,\r\n metaKey: e.metaKey,\r\n shift: e.shiftKey,\r\n alt: e.altKey,\r\n which: e.which,\r\n originalEvent: e\r\n});\r\nvar KeyboardProcessor = Class.inherit({\r\n _keydown: addNamespace(KEYDOWN_EVENT, NAMESPACE),\r\n _compositionStart: addNamespace(COMPOSITION_START_EVENT, NAMESPACE),\r\n _compositionEnd: addNamespace(COMPOSITION_END_EVENT, NAMESPACE),\r\n ctor: function(options) {\r\n options = options || {};\r\n if (options.element) {\r\n this._element = $(options.element)\r\n }\r\n if (options.focusTarget) {\r\n this._focusTarget = options.focusTarget\r\n }\r\n this._handler = options.handler;\r\n if (this._element) {\r\n this._processFunction = e => {\r\n var focusTargets = $(this._focusTarget).toArray();\r\n var isNotFocusTarget = this._focusTarget && this._focusTarget !== e.target && !focusTargets.includes(e.target);\r\n var shouldSkipProcessing = this._isComposingJustFinished && 229 === e.which || this._isComposing || isNotFocusTarget;\r\n this._isComposingJustFinished = false;\r\n if (!shouldSkipProcessing) {\r\n this.process(e)\r\n }\r\n };\r\n this._toggleProcessingWithContext = this.toggleProcessing.bind(this);\r\n eventsEngine.on(this._element, this._keydown, this._processFunction);\r\n eventsEngine.on(this._element, this._compositionStart, this._toggleProcessingWithContext);\r\n eventsEngine.on(this._element, this._compositionEnd, this._toggleProcessingWithContext)\r\n }\r\n },\r\n dispose: function() {\r\n if (this._element) {\r\n eventsEngine.off(this._element, this._keydown, this._processFunction);\r\n eventsEngine.off(this._element, this._compositionStart, this._toggleProcessingWithContext);\r\n eventsEngine.off(this._element, this._compositionEnd, this._toggleProcessingWithContext)\r\n }\r\n this._element = void 0;\r\n this._handler = void 0\r\n },\r\n process: function(e) {\r\n this._handler(createKeyDownOptions(e))\r\n },\r\n toggleProcessing: function(_ref) {\r\n var {\r\n type: type\r\n } = _ref;\r\n this._isComposing = type === COMPOSITION_START_EVENT;\r\n this._isComposingJustFinished = !this._isComposing\r\n }\r\n});\r\nKeyboardProcessor.createKeyDownOptions = createKeyDownOptions;\r\nexport default KeyboardProcessor;\r\n","/**\r\n * DevExtreme (esm/events/core/emitter.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 Class from \"../../core/class\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isDxMouseWheelEvent,\r\n hasTouches,\r\n fireEvent\r\n} from \"../utils/index\";\r\nvar Emitter = Class.inherit({\r\n ctor: function(element) {\r\n this._$element = $(element);\r\n this._cancelCallback = Callbacks();\r\n this._acceptCallback = Callbacks()\r\n },\r\n getElement: function() {\r\n return this._$element\r\n },\r\n validate: function(e) {\r\n return !isDxMouseWheelEvent(e)\r\n },\r\n validatePointers: function(e) {\r\n return 1 === hasTouches(e)\r\n },\r\n allowInterruptionByMouseWheel: function() {\r\n return true\r\n },\r\n configure: function(data) {\r\n extend(this, data)\r\n },\r\n addCancelCallback: function(callback) {\r\n this._cancelCallback.add(callback)\r\n },\r\n removeCancelCallback: function() {\r\n this._cancelCallback.empty()\r\n },\r\n _cancel: function(e) {\r\n this._cancelCallback.fire(this, e)\r\n },\r\n addAcceptCallback: function(callback) {\r\n this._acceptCallback.add(callback)\r\n },\r\n removeAcceptCallback: function() {\r\n this._acceptCallback.empty()\r\n },\r\n _accept: function(e) {\r\n this._acceptCallback.fire(this, e)\r\n },\r\n _requestAccept: function(e) {\r\n this._acceptRequestEvent = e\r\n },\r\n _forgetAccept: function() {\r\n this._accept(this._acceptRequestEvent);\r\n this._acceptRequestEvent = null\r\n },\r\n start: noop,\r\n move: noop,\r\n end: noop,\r\n cancel: noop,\r\n reset: function() {\r\n if (this._acceptRequestEvent) {\r\n this._accept(this._acceptRequestEvent)\r\n }\r\n },\r\n _fireEvent: function(eventName, e, params) {\r\n var eventData = extend({\r\n type: eventName,\r\n originalEvent: e,\r\n target: this._getEmitterTarget(e),\r\n delegateTarget: this.getElement().get(0)\r\n }, params);\r\n e = fireEvent(eventData);\r\n if (e.cancel) {\r\n this._cancel(e)\r\n }\r\n return e\r\n },\r\n _getEmitterTarget: function(e) {\r\n return (this.delegateSelector ? $(e.target).closest(this.delegateSelector) : this.getElement()).get(0)\r\n },\r\n dispose: noop\r\n});\r\nexport default Emitter;\r\n","/*!\n * devextreme-vue\n * Version: 22.1.5\n * Build date: Fri Sep 02 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TemplatesManager = void 0;\nvar templates_discovering_1 = require(\"./templates-discovering\");\nvar dom_adapter_1 = __importDefault(require(\"devextreme/core/dom_adapter\"));\nvar events_1 = require(\"devextreme/events\");\nvar constants_1 = require(\"./constants\");\nvar helpers_1 = require(\"./helpers\");\nvar TemplatesManager = /** @class */ (function () {\n function TemplatesManager(component) {\n this._slots = {};\n this._templates = {};\n this._isDirty = false;\n this._component = component;\n this.discover();\n }\n TemplatesManager.prototype.discover = function () {\n var slots = templates_discovering_1.discover(this._component);\n this._slots = __assign(__assign({}, this._slots), slots);\n if (!helpers_1.allKeysAreEqual(this._templates, slots)) {\n this._prepareTemplates();\n }\n };\n Object.defineProperty(TemplatesManager.prototype, \"templates\", {\n get: function () {\n return this._templates;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TemplatesManager.prototype, \"isDirty\", {\n get: function () {\n return this._isDirty;\n },\n enumerable: false,\n configurable: true\n });\n TemplatesManager.prototype.resetDirtyFlag = function () {\n this._isDirty = false;\n };\n TemplatesManager.prototype._prepareTemplates = function () {\n this._templates = {};\n for (var _i = 0, _a = Object.keys(this._slots); _i < _a.length; _i++) {\n var name_1 = _a[_i];\n this._templates[name_1] = this.createDxTemplate(name_1);\n }\n this._isDirty = true;\n };\n TemplatesManager.prototype.createDxTemplate = function (name) {\n var _this = this;\n return {\n render: function (data) {\n var rendered = (function (onRendered, counter) {\n if (counter === void 0) { counter = 0; }\n return function () {\n if (counter === 1 && onRendered) {\n onRendered();\n }\n counter++;\n };\n })(data.onRendered);\n var scopeData = { data: data.model, index: data.index, onRendered: rendered };\n var placeholder = document.createElement(\"div\");\n var container = data.container.get ? data.container.get(0) : data.container;\n container.appendChild(placeholder);\n var mountedTemplate = templates_discovering_1.mountTemplate(function () { return _this._slots[name]; }, _this._component, scopeData, name, placeholder);\n var element = mountedTemplate.$el;\n container.removeChild(placeholder);\n while (placeholder.firstChild) {\n container.appendChild(placeholder.firstChild);\n }\n dom_adapter_1.default.setClass(element, constants_1.DX_TEMPLATE_WRAPPER_CLASS, true);\n if (element.nodeType === Node.TEXT_NODE) {\n var removalListener = document.createElement(container.nodeName === \"TABLE\" ? \"tbody\" : \"span\");\n removalListener.style.display = \"none\";\n container.appendChild(removalListener);\n events_1.one(removalListener, constants_1.DX_REMOVE_EVENT, mountedTemplate.$.appContext.app.unmount.bind(mountedTemplate));\n }\n else {\n events_1.one(element, constants_1.DX_REMOVE_EVENT, mountedTemplate.$.appContext.app.unmount.bind(mountedTemplate));\n }\n rendered();\n return element;\n }\n };\n };\n return TemplatesManager;\n}());\nexports.TemplatesManager = TemplatesManager;\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scrollable.native.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n isDxMouseWheelEvent\r\n} from \"../../events/utils/index\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport devices from \"../../core/devices\";\r\nimport Class from \"../../core/class\";\r\nimport Scrollbar from \"./ui.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: function(scrollable) {\r\n this._init(scrollable)\r\n },\r\n _init: function(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: function() {\r\n var device = devices.real();\r\n var deviceType = device.platform;\r\n this._$element.addClass(SCROLLABLE_NATIVE_CLASS).addClass(SCROLLABLE_NATIVE_CLASS + \"-\" + 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: function(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: function() {\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: function(direction) {\r\n if (!this._isDirection(direction)) {\r\n return\r\n }\r\n this._scrollbars[direction] = new Scrollbar($(\"
\").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: function(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: function(callback) {\r\n callback = callback.bind(this);\r\n each(this._scrollbars || {}, (function(direction, scrollbar) {\r\n callback(scrollbar, direction)\r\n }))\r\n },\r\n createActions: function() {\r\n this._scrollAction = this._createActionByOption(\"onScroll\");\r\n this._updateAction = this._createActionByOption(\"onUpdated\")\r\n },\r\n _createActionArgs: function() {\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: function() {\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: function(left) {\r\n return this._isDirection(HORIZONTAL) ? Math.round(left) >= 0 : void 0\r\n },\r\n _isReachedRight: function(left) {\r\n return this._isDirection(HORIZONTAL) ? Math.round(Math.abs(left) - this._getMaxOffset().left) >= 0 : void 0\r\n },\r\n _isScrollbarVisible: function() {\r\n var {\r\n showScrollbar: showScrollbar\r\n } = this.option();\r\n return \"never\" !== showScrollbar && false !== showScrollbar\r\n },\r\n handleScroll: function(e) {\r\n this._eventForUserAction = e;\r\n this._moveScrollbars();\r\n this._scrollAction(this._createActionArgs())\r\n },\r\n _moveScrollbars: function() {\r\n var {\r\n top: top,\r\n left: left\r\n } = this._getScrollOffset();\r\n this._eachScrollbar((function(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: function() {\r\n clearTimeout(this._hideScrollbarTimeout);\r\n this._hideScrollbarTimeout = setTimeout(function() {\r\n this._eachScrollbar((function(scrollbar) {\r\n scrollbar.option(\"visible\", false)\r\n }))\r\n }.bind(this), HIDE_SCROLLBAR_TIMEOUT)\r\n },\r\n location: function() {\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: function() {\r\n this._update();\r\n this._updateAction(this._createActionArgs())\r\n },\r\n _update: function() {\r\n this._updateDimensions();\r\n this._updateScrollbars()\r\n },\r\n _updateDimensions: function() {\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: function() {\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: function() {\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: function() {\r\n var className = this._$element.get(0).className;\r\n var scrollableNativeRegexp = new RegExp(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, \".\" + SCROLLABLE_NATIVE);\r\n eventsEngine.off(this._$container, \".\" + SCROLLABLE_NATIVE);\r\n this._removeScrollbars();\r\n clearTimeout(this._hideScrollbarTimeout)\r\n },\r\n _removeScrollbars: function() {\r\n this._eachScrollbar((function(scrollbar) {\r\n scrollbar.$element().remove()\r\n }))\r\n },\r\n scrollBy: function(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: function(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: function() {\r\n return this._allowedDirection()\r\n }\r\n});\r\nexport default NativeStrategy;\r\n","/**\r\n * DevExtreme (esm/renovation/common/config_context.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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/core/utils/comparator.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../dom_adapter\";\r\nimport {\r\n toComparable\r\n} from \"./data\";\r\nimport {\r\n isRenderer\r\n} from \"./type\";\r\nvar hasNegation = function(oldValue, newValue) {\r\n return 1 / oldValue === 1 / newValue\r\n};\r\nexport var equals = function(oldValue, newValue) {\r\n oldValue = toComparable(oldValue, true);\r\n newValue = toComparable(newValue, true);\r\n if (oldValue && newValue && isRenderer(oldValue) && isRenderer(newValue)) {\r\n return newValue.is(oldValue)\r\n }\r\n var oldValueIsNaN = oldValue !== oldValue;\r\n var newValueIsNaN = newValue !== newValue;\r\n if (oldValueIsNaN && newValueIsNaN) {\r\n return true\r\n }\r\n if (0 === oldValue && 0 === newValue) {\r\n return hasNegation(oldValue, newValue)\r\n }\r\n if (null === oldValue || \"object\" !== typeof oldValue || domAdapter.isElementNode(oldValue)) {\r\n return oldValue === newValue\r\n }\r\n return false\r\n};\r\n","/**\r\n * DevExtreme (esm/core/options/option_manager.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n compileGetter,\r\n compileSetter,\r\n getPathParts\r\n} from \"../utils/data\";\r\nimport {\r\n noop\r\n} from \"../utils/common\";\r\nimport {\r\n equals\r\n} from \"../utils/comparator\";\r\nimport {\r\n extend\r\n} from \"../utils/extend\";\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../utils/type\";\r\nimport {\r\n normalizeOptions\r\n} from \"./utils\";\r\nvar cachedGetters = {};\r\nvar cachedSetters = {};\r\nexport class OptionManager {\r\n constructor(options, optionsByReference) {\r\n this._options = options;\r\n this._optionsByReference = optionsByReference;\r\n this._changingCallback;\r\n this._changedCallback;\r\n this._namePreparedCallbacks\r\n }\r\n _setByReference(options, rulesOptions) {\r\n extend(true, options, rulesOptions);\r\n for (var fieldName in this._optionsByReference) {\r\n if (Object.prototype.hasOwnProperty.call(rulesOptions, fieldName)) {\r\n options[fieldName] = rulesOptions[fieldName]\r\n }\r\n }\r\n }\r\n _setPreparedValue(name, value, merge, silent) {\r\n var previousValue = this.get(this._options, name, false);\r\n if (!equals(previousValue, value)) {\r\n var path = getPathParts(name);\r\n !silent && this._changingCallback(name, previousValue, value);\r\n cachedSetters[name] = cachedSetters[name] || compileSetter(name);\r\n cachedSetters[name](this._options, value, {\r\n functionsAsIs: true,\r\n merge: isDefined(merge) ? merge : !this._optionsByReference[name],\r\n unwrapObservables: path.length > 1 && !!this._optionsByReference[path[0]]\r\n });\r\n !silent && this._changedCallback(name, value, previousValue)\r\n }\r\n }\r\n _prepareRelevantNames(options, name, value, silent) {\r\n if (isPlainObject(value)) {\r\n for (var valueName in value) {\r\n this._prepareRelevantNames(options, \"\".concat(name, \".\").concat(valueName), value[valueName])\r\n }\r\n }\r\n this._namePreparedCallbacks(options, name, value, silent)\r\n }\r\n get() {\r\n var options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._options;\r\n var name = arguments.length > 1 ? arguments[1] : void 0;\r\n var unwrapObservables = arguments.length > 2 ? arguments[2] : void 0;\r\n cachedGetters[name] = cachedGetters[name] || compileGetter(name);\r\n return cachedGetters[name](options, {\r\n functionsAsIs: true,\r\n unwrapObservables: unwrapObservables\r\n })\r\n }\r\n set(options, value, merge, silent) {\r\n options = normalizeOptions(options, value);\r\n for (var name in options) {\r\n this._prepareRelevantNames(options, name, options[name], silent)\r\n }\r\n for (var _name in options) {\r\n this._setPreparedValue(_name, options[_name], merge, silent)\r\n }\r\n }\r\n onRelevantNamesPrepared(callBack) {\r\n this._namePreparedCallbacks = callBack\r\n }\r\n onChanging(callBack) {\r\n this._changingCallback = callBack\r\n }\r\n onChanged(callBack) {\r\n this._changedCallback = callBack\r\n }\r\n dispose() {\r\n this._changingCallback = noop;\r\n this._changedCallback = noop\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/options/index.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 isFunction,\r\n isObject,\r\n type\r\n} from \"../utils/type\";\r\nimport {\r\n equalByValue,\r\n noop\r\n} from \"../utils/common\";\r\nimport {\r\n OptionManager\r\n} from \"./option_manager\";\r\nimport {\r\n getPathParts\r\n} from \"../utils/data\";\r\nimport {\r\n getFieldName,\r\n getParentName,\r\n convertRulesToOptions,\r\n getNestedOptionValue\r\n} from \"./utils\";\r\nimport {\r\n extend\r\n} from \"../utils/extend\";\r\nexport class Options {\r\n constructor(options, defaultOptions, optionsByReference, deprecatedOptions) {\r\n this._deprecatedCallback;\r\n this._startChangeCallback;\r\n this._endChangeCallback;\r\n this._default = defaultOptions;\r\n this._deprecated = deprecatedOptions;\r\n this._deprecatedNames = [];\r\n this._initDeprecatedNames();\r\n this._optionManager = new OptionManager(options, optionsByReference);\r\n this._optionManager.onRelevantNamesPrepared((options, name, value, silent) => this._setRelevantNames(options, name, value, silent));\r\n this._cachedOptions = {};\r\n this._rules = []\r\n }\r\n set _initial(value) {\r\n this._initialOptions = value\r\n }\r\n get _initial() {\r\n if (!this._initialOptions) {\r\n var rulesOptions = this._getByRules(this.silent(\"defaultOptionsRules\"));\r\n this._initialOptions = this._default;\r\n this._optionManager._setByReference(this._initialOptions, rulesOptions)\r\n }\r\n return this._initialOptions\r\n }\r\n _initDeprecatedNames() {\r\n for (var optionName in this._deprecated) {\r\n this._deprecatedNames.push(optionName)\r\n }\r\n }\r\n _getByRules(rules) {\r\n rules = Array.isArray(rules) ? this._rules.concat(rules) : this._rules;\r\n return convertRulesToOptions(rules)\r\n }\r\n _notifyDeprecated(option) {\r\n var info = this._deprecated[option];\r\n if (info) {\r\n this._deprecatedCallback(option, info)\r\n }\r\n }\r\n _setRelevantNames(options, name, value, silent) {\r\n if (name) {\r\n var normalizedName = this._normalizeName(name, silent);\r\n if (normalizedName && normalizedName !== name) {\r\n this._setField(options, normalizedName, value);\r\n this._clearField(options, name)\r\n }\r\n }\r\n }\r\n _setField(options, fullName, value) {\r\n var fieldName = \"\";\r\n var fieldObject = null;\r\n do {\r\n fieldName = fieldName ? \".\".concat(fieldName) : \"\";\r\n fieldName = getFieldName(fullName) + fieldName;\r\n fullName = getParentName(fullName);\r\n fieldObject = fullName ? this._optionManager.get(options, fullName, false) : options\r\n } while (!fieldObject);\r\n fieldObject[fieldName] = value\r\n }\r\n _clearField(options, name) {\r\n delete options[name];\r\n var previousFieldName = getParentName(name);\r\n var fieldObject = previousFieldName ? this._optionManager.get(options, previousFieldName, false) : options;\r\n if (fieldObject) {\r\n delete fieldObject[getFieldName(name)]\r\n }\r\n }\r\n _normalizeName(name, silent) {\r\n if (this._deprecatedNames.length && name) {\r\n for (var i = 0; i < this._deprecatedNames.length; i++) {\r\n if (this._deprecatedNames[i] === name) {\r\n var deprecate = this._deprecated[name];\r\n if (deprecate) {\r\n !silent && this._notifyDeprecated(name);\r\n return deprecate.alias || name\r\n }\r\n }\r\n }\r\n }\r\n return name\r\n }\r\n addRules(rules) {\r\n this._rules = rules.concat(this._rules)\r\n }\r\n applyRules(rules) {\r\n var options = this._getByRules(rules);\r\n this.silent(options)\r\n }\r\n dispose() {\r\n this._deprecatedCallback = noop;\r\n this._startChangeCallback = noop;\r\n this._endChangeCallback = noop;\r\n this._optionManager.dispose()\r\n }\r\n onChanging(callBack) {\r\n this._optionManager.onChanging(callBack)\r\n }\r\n onChanged(callBack) {\r\n this._optionManager.onChanged(callBack)\r\n }\r\n onDeprecated(callBack) {\r\n this._deprecatedCallback = callBack\r\n }\r\n onStartChange(callBack) {\r\n this._startChangeCallback = callBack\r\n }\r\n onEndChange(callBack) {\r\n this._endChangeCallback = callBack\r\n }\r\n isInitial(name) {\r\n var value = this.silent(name);\r\n var initialValue = this.initial(name);\r\n var areFunctions = isFunction(value) && isFunction(initialValue);\r\n return areFunctions ? value.toString() === initialValue.toString() : equalByValue(value, initialValue)\r\n }\r\n initial(name) {\r\n return getNestedOptionValue(this._initial, name)\r\n }\r\n option(options, value) {\r\n var isGetter = arguments.length < 2 && \"object\" !== type(options);\r\n if (isGetter) {\r\n return this._optionManager.get(void 0, this._normalizeName(options))\r\n } else {\r\n this._startChangeCallback();\r\n try {\r\n this._optionManager.set(options, value)\r\n } finally {\r\n this._endChangeCallback()\r\n }\r\n }\r\n }\r\n silent(options, value) {\r\n var isGetter = arguments.length < 2 && \"object\" !== type(options);\r\n if (isGetter) {\r\n return this._optionManager.get(void 0, options, void 0, true)\r\n } else {\r\n this._optionManager.set(options, value, void 0, true)\r\n }\r\n }\r\n reset(name) {\r\n if (name) {\r\n var fullPath = getPathParts(name);\r\n var value = fullPath.reduce((value, field) => value ? value[field] : this.initial(field), null);\r\n var defaultValue = isObject(value) ? _extends({}, value) : value;\r\n this._optionManager.set(name, defaultValue, false)\r\n }\r\n }\r\n getAliasesByName(name) {\r\n return Object.keys(this._deprecated).filter(aliasName => name === this._deprecated[aliasName].alias)\r\n }\r\n isDeprecated(name) {\r\n return Object.prototype.hasOwnProperty.call(this._deprecated, name)\r\n }\r\n cache(name, options) {\r\n var isGetter = arguments.length < 2;\r\n if (isGetter) {\r\n return this._cachedOptions[name]\r\n } else {\r\n this._cachedOptions[name] = extend(this._cachedOptions[name], options)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/postponed_operations.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 when\r\n} from \"./utils/deferred\";\r\nimport {\r\n isDefined\r\n} from \"./utils/type\";\r\nexport class PostponedOperations {\r\n constructor() {\r\n this._postponedOperations = {}\r\n }\r\n add(key, fn, postponedPromise) {\r\n if (key in this._postponedOperations) {\r\n postponedPromise && this._postponedOperations[key].promises.push(postponedPromise)\r\n } else {\r\n var completePromise = new Deferred;\r\n this._postponedOperations[key] = {\r\n fn: fn,\r\n completePromise: completePromise,\r\n promises: postponedPromise ? [postponedPromise] : []\r\n }\r\n }\r\n return this._postponedOperations[key].completePromise.promise()\r\n }\r\n callPostponedOperations() {\r\n for (var key in this._postponedOperations) {\r\n var operation = this._postponedOperations[key];\r\n if (isDefined(operation)) {\r\n if (operation.promises && operation.promises.length) {\r\n when(...operation.promises).done(operation.fn).then(operation.completePromise.resolve)\r\n } else {\r\n operation.fn().done(operation.completePromise.resolve)\r\n }\r\n }\r\n }\r\n this._postponedOperations = {}\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/component.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 extend\r\n} from \"./utils/extend\";\r\nimport {\r\n Options\r\n} from \"./options/index\";\r\nimport {\r\n convertRulesToOptions\r\n} from \"./options/utils\";\r\nimport Class from \"./class\";\r\nimport Action from \"./action\";\r\nimport errors from \"./errors\";\r\nimport Callbacks from \"./utils/callbacks\";\r\nimport {\r\n EventsStrategy\r\n} from \"./events_strategy\";\r\nimport {\r\n name as publicComponentName\r\n} from \"./utils/public_component\";\r\nimport {\r\n PostponedOperations\r\n} from \"./postponed_operations\";\r\nimport {\r\n isFunction,\r\n isPlainObject,\r\n isDefined\r\n} from \"./utils/type\";\r\nimport {\r\n noop\r\n} from \"./utils/common\";\r\nimport {\r\n getPathParts\r\n} from \"./utils/data\";\r\nvar getEventName = actionName => actionName.charAt(2).toLowerCase() + actionName.substr(3);\r\nvar isInnerOption = optionName => 0 === optionName.indexOf(\"_\", 0);\r\nexport var Component = Class.inherit({\r\n _setDeprecatedOptions() {\r\n this._deprecatedOptions = {}\r\n },\r\n _getDeprecatedOptions() {\r\n return this._deprecatedOptions\r\n },\r\n _getDefaultOptions: () => ({\r\n onInitialized: null,\r\n onOptionChanged: null,\r\n onDisposing: null,\r\n defaultOptionsRules: null\r\n }),\r\n _defaultOptionsRules: () => [],\r\n _setOptionsByDevice(rules) {\r\n this._options.applyRules(rules)\r\n },\r\n _convertRulesToOptions: rules => convertRulesToOptions(rules),\r\n _isInitialOptionValue(name) {\r\n return this._options.isInitial(name)\r\n },\r\n _setOptionsByReference() {\r\n this._optionsByReference = {}\r\n },\r\n _getOptionsByReference() {\r\n return this._optionsByReference\r\n },\r\n ctor() {\r\n var options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\r\n var {\r\n _optionChangedCallbacks: _optionChangedCallbacks,\r\n _disposingCallbacks: _disposingCallbacks\r\n } = options;\r\n this.NAME = publicComponentName(this.constructor);\r\n this._eventsStrategy = EventsStrategy.create(this, options.eventsStrategy);\r\n this._updateLockCount = 0;\r\n this._optionChangedCallbacks = _optionChangedCallbacks || Callbacks();\r\n this._disposingCallbacks = _disposingCallbacks || Callbacks();\r\n this.postponedOperations = new PostponedOperations;\r\n this._createOptions(options)\r\n },\r\n _createOptions(options) {\r\n this.beginUpdate();\r\n try {\r\n this._setOptionsByReference();\r\n this._setDeprecatedOptions();\r\n this._options = new Options(this._getDefaultOptions(), this._getDefaultOptions(), this._getOptionsByReference(), this._getDeprecatedOptions());\r\n this._options.onChanging((name, previousValue, value) => this._initialized && this._optionChanging(name, previousValue, value));\r\n this._options.onDeprecated((option, info) => this._logDeprecatedOptionWarning(option, info));\r\n this._options.onChanged((name, value, previousValue) => this._notifyOptionChanged(name, value, previousValue));\r\n this._options.onStartChange(() => this.beginUpdate());\r\n this._options.onEndChange(() => this.endUpdate());\r\n this._options.addRules(this._defaultOptionsRules());\r\n if (options && options.onInitializing) {\r\n options.onInitializing.apply(this, [options])\r\n }\r\n this._setOptionsByDevice(options.defaultOptionsRules);\r\n this._initOptions(options)\r\n } finally {\r\n this.endUpdate()\r\n }\r\n },\r\n _initOptions(options) {\r\n this.option(options)\r\n },\r\n _init() {\r\n this._createOptionChangedAction();\r\n this.on(\"disposing\", args => {\r\n this._disposingCallbacks.fireWith(this, [args])\r\n })\r\n },\r\n _logDeprecatedOptionWarning(option, info) {\r\n var message = info.message || \"Use the '\".concat(info.alias, \"' option instead\");\r\n errors.log(\"W0001\", this.NAME, option, info.since, message)\r\n },\r\n _logDeprecatedComponentWarning(since, alias) {\r\n errors.log(\"W0000\", this.NAME, since, \"Use the '\".concat(alias, \"' widget instead\"))\r\n },\r\n _createOptionChangedAction() {\r\n this._optionChangedAction = this._createActionByOption(\"onOptionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _createDisposingAction() {\r\n this._disposingAction = this._createActionByOption(\"onDisposing\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"onDisposing\":\r\n case \"onInitialized\":\r\n break;\r\n case \"onOptionChanged\":\r\n this._createOptionChangedAction()\r\n }\r\n },\r\n _dispose() {\r\n this._optionChangedCallbacks.empty();\r\n this._createDisposingAction();\r\n this._disposingAction();\r\n this._eventsStrategy.dispose();\r\n this._options.dispose();\r\n this._disposed = true\r\n },\r\n _lockUpdate() {\r\n this._updateLockCount++\r\n },\r\n _unlockUpdate() {\r\n this._updateLockCount = Math.max(this._updateLockCount - 1, 0)\r\n },\r\n _isUpdateAllowed() {\r\n return 0 === this._updateLockCount\r\n },\r\n _isInitializingRequired() {\r\n return !this._initializing && !this._initialized\r\n },\r\n isInitialized() {\r\n return this._initialized\r\n },\r\n _commitUpdate() {\r\n this.postponedOperations.callPostponedOperations();\r\n this._isInitializingRequired() && this._initializeComponent()\r\n },\r\n _initializeComponent() {\r\n this._initializing = true;\r\n try {\r\n this._init()\r\n } finally {\r\n this._initializing = false;\r\n this._lockUpdate();\r\n this._createActionByOption(\"onInitialized\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })();\r\n this._unlockUpdate();\r\n this._initialized = true\r\n }\r\n },\r\n instance() {\r\n return this\r\n },\r\n beginUpdate: function() {\r\n this._lockUpdate()\r\n },\r\n endUpdate: function() {\r\n this._unlockUpdate();\r\n this._isUpdateAllowed() && this._commitUpdate()\r\n },\r\n _optionChanging: noop,\r\n _notifyOptionChanged(option, value, previousValue) {\r\n if (this._initialized) {\r\n var optionNames = [option].concat(this._options.getAliasesByName(option));\r\n for (var i = 0; i < optionNames.length; i++) {\r\n var name = optionNames[i];\r\n var args = {\r\n name: getPathParts(name)[0],\r\n fullName: name,\r\n value: value,\r\n previousValue: previousValue\r\n };\r\n if (!isInnerOption(name)) {\r\n this._optionChangedCallbacks.fireWith(this, [extend(this._defaultActionArgs(), args)]);\r\n this._optionChangedAction(extend({}, args))\r\n }\r\n if (!this._disposed && this._cancelOptionChange !== name) {\r\n this._optionChanged(args)\r\n }\r\n }\r\n }\r\n },\r\n initialOption(name) {\r\n return this._options.initial(name)\r\n },\r\n _defaultActionConfig() {\r\n return {\r\n context: this,\r\n component: this\r\n }\r\n },\r\n _defaultActionArgs() {\r\n return {\r\n component: this\r\n }\r\n },\r\n _createAction(actionSource, config) {\r\n var action;\r\n return e => {\r\n if (!isDefined(e)) {\r\n e = {}\r\n }\r\n if (!isPlainObject(e)) {\r\n e = {\r\n actionValue: e\r\n }\r\n }\r\n action = action || new Action(actionSource, extend(config, this._defaultActionConfig()));\r\n return action.execute.call(action, extend(e, this._defaultActionArgs()))\r\n }\r\n },\r\n _createActionByOption(optionName, config) {\r\n var _this = this;\r\n var action;\r\n var eventName;\r\n var actionFunc;\r\n var result = function() {\r\n if (!eventName) {\r\n config = config || {};\r\n if (\"string\" !== typeof optionName) {\r\n throw errors.Error(\"E0008\")\r\n }\r\n if (0 === optionName.indexOf(\"on\")) {\r\n eventName = getEventName(optionName)\r\n }\r\n actionFunc = _this.option(optionName)\r\n }\r\n if (!action && !actionFunc && !config.beforeExecute && !config.afterExecute && !_this._eventsStrategy.hasEvent(eventName)) {\r\n return\r\n }\r\n if (!action) {\r\n var beforeExecute = config.beforeExecute;\r\n config.beforeExecute = function() {\r\n for (var _len2 = arguments.length, props = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\r\n props[_key2] = arguments[_key2]\r\n }\r\n beforeExecute && beforeExecute.apply(_this, props);\r\n _this._eventsStrategy.fireEvent(eventName, props[0].args)\r\n };\r\n action = _this._createAction(actionFunc, config)\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 if (Config().wrapActionsBeforeExecute) {\r\n var beforeActionExecute = _this.option(\"beforeActionExecute\") || noop;\r\n var wrappedAction = beforeActionExecute(_this, action, config) || action;\r\n return wrappedAction.apply(_this, args)\r\n }\r\n return action.apply(_this, args)\r\n };\r\n if (Config().wrapActionsBeforeExecute) {\r\n return result\r\n }\r\n var onActionCreated = this.option(\"onActionCreated\") || noop;\r\n return onActionCreated(this, result, config) || result\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 hasActionSubscription: function(actionName) {\r\n return !!this._options.silent(actionName) || this._eventsStrategy.hasEvent(getEventName(actionName))\r\n },\r\n isOptionDeprecated(name) {\r\n return this._options.isDeprecated(name)\r\n },\r\n _setOptionWithoutOptionChange(name, value) {\r\n this._cancelOptionChange = name;\r\n this.option(name, value);\r\n this._cancelOptionChange = false\r\n },\r\n _getOptionValue(name, context) {\r\n var value = this.option(name);\r\n if (isFunction(value)) {\r\n return value.bind(context)()\r\n }\r\n return value\r\n },\r\n option() {\r\n return this._options.option(...arguments)\r\n },\r\n resetOption(name) {\r\n this.beginUpdate();\r\n this._options.reset(name);\r\n this.endUpdate()\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/data/utils.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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\nimport domAdapter from \"../core/dom_adapter\";\r\nimport readyCallbacks from \"../core/utils/ready_callbacks\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n equalByValue\r\n} from \"../core/utils/common\";\r\nvar ready = readyCallbacks.add;\r\nexport var XHR_ERROR_UNLOAD = \"DEVEXTREME_XHR_ERROR_UNLOAD\";\r\nexport var normalizeBinaryCriterion = function(crit) {\r\n return [crit[0], crit.length < 3 ? \"=\" : String(crit[1]).toLowerCase(), crit.length < 2 ? true : crit[crit.length - 1]]\r\n};\r\nexport var normalizeSortingInfo = function(info) {\r\n if (!Array.isArray(info)) {\r\n info = [info]\r\n }\r\n return map(info, (function(i) {\r\n var result = {\r\n selector: isFunction(i) || \"string\" === typeof i ? i : i.getter || i.field || i.selector,\r\n desc: !!(i.desc || \"d\" === String(i.dir).charAt(0).toLowerCase())\r\n };\r\n if (i.compare) {\r\n result.compare = i.compare\r\n }\r\n return result\r\n }))\r\n};\r\nexport var errorMessageFromXhr = function() {\r\n var textStatusMessages = {\r\n timeout: \"Network connection timeout\",\r\n error: \"Unspecified network error\",\r\n parsererror: \"Unexpected server response\"\r\n };\r\n var unloading;\r\n ready((function() {\r\n var window = getWindow();\r\n domAdapter.listen(window, \"beforeunload\", (function() {\r\n unloading = true\r\n }))\r\n }));\r\n return function(xhr, textStatus) {\r\n if (unloading) {\r\n return XHR_ERROR_UNLOAD\r\n }\r\n if (xhr.status < 400) {\r\n return function(textStatus) {\r\n var result = textStatusMessages[textStatus];\r\n if (!result) {\r\n return textStatus\r\n }\r\n return result\r\n }(textStatus)\r\n }\r\n return xhr.statusText\r\n }\r\n}();\r\nexport var aggregators = {\r\n count: {\r\n seed: 0,\r\n step: function(count) {\r\n return 1 + count\r\n }\r\n },\r\n sum: {\r\n seed: 0,\r\n step: function(sum, item) {\r\n return sum + item\r\n }\r\n },\r\n min: {\r\n step: function(min, item) {\r\n return item < min ? item : min\r\n }\r\n },\r\n max: {\r\n step: function(max, item) {\r\n return item > max ? item : max\r\n }\r\n },\r\n avg: {\r\n seed: [0, 0],\r\n step: function(pair, value) {\r\n return [pair[0] + value, pair[1] + 1]\r\n },\r\n finalize: function(pair) {\r\n return pair[1] ? pair[0] / pair[1] : NaN\r\n }\r\n }\r\n};\r\nexport var processRequestResultLock = function() {\r\n var lockCount = 0;\r\n var lockDeferred;\r\n return {\r\n obtain: function() {\r\n if (0 === lockCount) {\r\n lockDeferred = new Deferred\r\n }\r\n lockCount++\r\n },\r\n release: function() {\r\n lockCount--;\r\n if (lockCount < 1) {\r\n lockDeferred.resolve()\r\n }\r\n },\r\n promise: function() {\r\n var deferred = 0 === lockCount ? (new Deferred).resolve() : lockDeferred;\r\n return deferred.promise()\r\n },\r\n reset: function() {\r\n lockCount = 0;\r\n if (lockDeferred) {\r\n lockDeferred.resolve()\r\n }\r\n }\r\n }\r\n}();\r\nexport function isDisjunctiveOperator(condition) {\r\n return /^(or|\\|\\||\\|)$/i.test(condition)\r\n}\r\nexport function isConjunctiveOperator(condition) {\r\n return /^(and|&&|&)$/i.test(condition)\r\n}\r\nexport var keysEqual = function(keyExpr, key1, key2) {\r\n if (Array.isArray(keyExpr)) {\r\n var names = map(key1, (function(v, k) {\r\n return k\r\n }));\r\n var name;\r\n for (var i = 0; i < names.length; i++) {\r\n name = names[i];\r\n if (!equalByValue(key1[name], key2[name], 0, false)) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return equalByValue(key1, key2, 0, false)\r\n};\r\nvar BASE64_CHARS = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\r\nexport var base64_encode = function(input) {\r\n if (!Array.isArray(input)) {\r\n input = stringToByteArray(String(input))\r\n }\r\n var result = \"\";\r\n\r\n function getBase64Char(index) {\r\n return BASE64_CHARS.charAt(index)\r\n }\r\n for (var i = 0; i < input.length; i += 3) {\r\n var octet1 = input[i];\r\n var octet2 = input[i + 1];\r\n var octet3 = input[i + 2];\r\n result += map([octet1 >> 2, (3 & octet1) << 4 | octet2 >> 4, isNaN(octet2) ? 64 : (15 & octet2) << 2 | octet3 >> 6, isNaN(octet3) ? 64 : 63 & octet3], getBase64Char).join(\"\")\r\n }\r\n return result\r\n};\r\n\r\nfunction stringToByteArray(str) {\r\n var bytes = [];\r\n var code;\r\n var i;\r\n for (i = 0; i < str.length; i++) {\r\n code = str.charCodeAt(i);\r\n if (code < 128) {\r\n bytes.push(code)\r\n } else if (code < 2048) {\r\n bytes.push(192 + (code >> 6), 128 + (63 & code))\r\n } else if (code < 65536) {\r\n bytes.push(224 + (code >> 12), 128 + (code >> 6 & 63), 128 + (63 & code))\r\n } else if (code < 2097152) {\r\n bytes.push(240 + (code >> 18), 128 + (code >> 12 & 63), 128 + (code >> 6 & 63), 128 + (63 & code))\r\n }\r\n }\r\n return bytes\r\n}\r\nexport var isUnaryOperation = function(crit) {\r\n return \"!\" === crit[0] && Array.isArray(crit[1])\r\n};\r\nvar isGroupOperator = function(value) {\r\n return \"and\" === value || \"or\" === value\r\n};\r\nexport var isGroupCriterion = function(crit) {\r\n var first = crit[0];\r\n var second = crit[1];\r\n if (Array.isArray(first)) {\r\n return true\r\n }\r\n if (isFunction(first)) {\r\n if (Array.isArray(second) || isFunction(second) || isGroupOperator(second)) {\r\n return true\r\n }\r\n }\r\n return false\r\n};\r\nexport var trivialPromise = function() {\r\n var d = new Deferred;\r\n return d.resolve.apply(d, arguments).promise()\r\n};\r\nexport var rejectedPromise = function() {\r\n var d = new Deferred;\r\n return d.reject.apply(d, arguments).promise()\r\n};\r\n\r\nfunction throttle(func, timeout) {\r\n var timeoutId;\r\n var lastArgs;\r\n return function() {\r\n lastArgs = arguments;\r\n if (!timeoutId) {\r\n timeoutId = setTimeout(() => {\r\n timeoutId = void 0;\r\n if (lastArgs) {\r\n func.call(this, lastArgs)\r\n }\r\n }, isFunction(timeout) ? timeout() : timeout)\r\n }\r\n return timeoutId\r\n }\r\n}\r\nexport function throttleChanges(func, timeout) {\r\n var cache = [];\r\n var throttled = throttle((function() {\r\n func.call(this, cache);\r\n cache = []\r\n }), timeout);\r\n return function(changes) {\r\n if (Array.isArray(changes)) {\r\n cache.push(...changes)\r\n }\r\n return throttled.call(this, cache)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/load_indicator.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 $ from \"../core/renderer\";\r\nimport {\r\n getNavigator\r\n} from \"../core/utils/window\";\r\nvar navigator = getNavigator();\r\nimport {\r\n animation\r\n} from \"../core/utils/support\";\r\nimport {\r\n current,\r\n isMaterial,\r\n isGeneric\r\n} from \"./themes\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport devices from \"../core/devices\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport Widget from \"./widget/ui.widget\";\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: function() {\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: function() {\r\n var themeName = current();\r\n return this.callBase().concat([{\r\n device: function() {\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: function() {\r\n return isMaterial(themeName)\r\n },\r\n options: {\r\n _animatingSegmentCount: 2,\r\n _animatingSegmentInner: true\r\n }\r\n }, {\r\n device: function() {\r\n return isGeneric(themeName)\r\n },\r\n options: {\r\n _animatingSegmentCount: 7\r\n }\r\n }])\r\n },\r\n _useTemplates: function() {\r\n return false\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(LOADINDICATOR_CLASS)\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderWrapper();\r\n this._renderIndicatorContent();\r\n this._renderMarkup()\r\n },\r\n _renderWrapper: function() {\r\n this._$wrapper = $(\"
\").addClass(LOADINDICATOR_WRAPPER_CLASS);\r\n this.$element().append(this._$wrapper)\r\n },\r\n _renderIndicatorContent: function() {\r\n this._$content = $(\"
\").addClass(LOADINDICATOR_CONTENT_CLASS);\r\n this._$wrapper.append(this._$content)\r\n },\r\n _renderMarkup: function() {\r\n if (animation() && !this.option(\"viaImage\") && !this.option(\"indicatorSrc\")) {\r\n this._renderMarkupForAnimation()\r\n } else {\r\n this._renderMarkupForImage()\r\n }\r\n },\r\n _renderMarkupForAnimation: function() {\r\n var animatingSegmentInner = this.option(\"_animatingSegmentInner\");\r\n this._$indicator = $(\"
\").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 = $(\"
\").addClass(LOADINDICATOR_SEGMENT_CLASS).addClass(LOADINDICATOR_SEGMENT_CLASS + i);\r\n if (animatingSegmentInner) {\r\n $segment.append($(\"
\").addClass(LOADINDICATOR_SEGMENT_INNER_CLASS))\r\n }\r\n this._$indicator.append($segment)\r\n }\r\n },\r\n _renderMarkupForImage: function() {\r\n var indicatorSrc = this.option(\"indicatorSrc\");\r\n this._$wrapper.addClass(LOADINDICATOR_IMAGE_CLASS);\r\n if (indicatorSrc) {\r\n this._$wrapper.css(\"backgroundImage\", \"url(\" + indicatorSrc + \")\")\r\n }\r\n },\r\n _renderDimensions: function() {\r\n this.callBase();\r\n this._updateContentSizeForAnimation()\r\n },\r\n _updateContentSizeForAnimation: function() {\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: function() {\r\n this.callBase();\r\n this._removeMarkupForAnimation();\r\n this._removeMarkupForImage()\r\n },\r\n _removeMarkupForAnimation: function() {\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: function() {\r\n this._$wrapper.css(\"backgroundImage\", \"none\")\r\n },\r\n _optionChanged: function(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/popup/popup_drag.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n locate,\r\n move\r\n} from \"../../animation/translator\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n getOffset,\r\n getOuterWidth,\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport {\r\n fitIntoRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n isWindow\r\n} from \"../../core/utils/type\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n start as dragStartEvent,\r\n move as dragMoveEvent,\r\n end as dragEndEvent\r\n} from \"../../events/drag\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nvar KEYBOARD_DRAG_STEP = 5;\r\nclass PopupDrag {\r\n constructor(config) {\r\n this.init(config)\r\n }\r\n init(_ref) {\r\n var {\r\n dragEnabled: dragEnabled,\r\n handle: handle,\r\n draggableElement: draggableElement,\r\n positionController: positionController\r\n } = _ref;\r\n this._positionController = positionController;\r\n this._draggableElement = draggableElement;\r\n this._handle = handle;\r\n this._dragEnabled = dragEnabled;\r\n this.unsubscribe();\r\n if (!dragEnabled) {\r\n return\r\n }\r\n this.subscribe()\r\n }\r\n moveDown(e) {\r\n this._moveTo(KEYBOARD_DRAG_STEP, 0, e)\r\n }\r\n moveUp(e) {\r\n this._moveTo(-KEYBOARD_DRAG_STEP, 0, e)\r\n }\r\n moveLeft(e) {\r\n this._moveTo(0, -KEYBOARD_DRAG_STEP, e)\r\n }\r\n moveRight(e) {\r\n this._moveTo(0, KEYBOARD_DRAG_STEP, e)\r\n }\r\n subscribe() {\r\n var eventNames = this._getEventNames();\r\n eventsEngine.on(this._handle, eventNames.startEventName, e => {\r\n this._dragStartHandler(e)\r\n });\r\n eventsEngine.on(this._handle, eventNames.updateEventName, e => {\r\n this._dragUpdateHandler(e)\r\n });\r\n eventsEngine.on(this._handle, eventNames.endEventName, e => {\r\n this._dragEndHandler(e)\r\n })\r\n }\r\n unsubscribe() {\r\n var eventNames = this._getEventNames();\r\n eventsEngine.off(this._handle, eventNames.startEventName);\r\n eventsEngine.off(this._handle, eventNames.updateEventName);\r\n eventsEngine.off(this._handle, eventNames.endEventName)\r\n }\r\n _getEventNames() {\r\n var startEventName = addNamespace(dragStartEvent, \"overlayDrag\");\r\n var updateEventName = addNamespace(dragMoveEvent, \"overlayDrag\");\r\n var endEventName = addNamespace(dragEndEvent, \"overlayDrag\");\r\n return {\r\n startEventName: startEventName,\r\n updateEventName: updateEventName,\r\n endEventName: endEventName\r\n }\r\n }\r\n _dragStartHandler(e) {\r\n var allowedOffsets = this._getAllowedOffsets();\r\n this._prevOffset = {\r\n x: 0,\r\n y: 0\r\n };\r\n e.targetElements = [];\r\n e.maxTopOffset = allowedOffsets.top;\r\n e.maxBottomOffset = allowedOffsets.bottom;\r\n e.maxLeftOffset = allowedOffsets.left;\r\n e.maxRightOffset = allowedOffsets.right\r\n }\r\n _dragUpdateHandler(e) {\r\n var targetOffset = {\r\n top: e.offset.y - this._prevOffset.y,\r\n left: e.offset.x - this._prevOffset.x\r\n };\r\n this._moveByOffset(targetOffset);\r\n this._prevOffset = e.offset\r\n }\r\n _dragEndHandler(event) {\r\n this._positionController.dragHandled();\r\n this._positionController.detectVisualPositionChange(event)\r\n }\r\n _moveTo(top, left, e) {\r\n if (!this._dragEnabled) {\r\n return\r\n }\r\n e.preventDefault();\r\n e.stopPropagation();\r\n var offset = this._fitOffsetIntoAllowedRange(top, left);\r\n this._moveByOffset(offset);\r\n this._dragEndHandler(e)\r\n }\r\n _fitOffsetIntoAllowedRange(top, left) {\r\n var allowedOffsets = this._getAllowedOffsets();\r\n return {\r\n top: fitIntoRange(top, -allowedOffsets.top, allowedOffsets.bottom),\r\n left: fitIntoRange(left, -allowedOffsets.left, allowedOffsets.right)\r\n }\r\n }\r\n _getContainerDimensions() {\r\n var document = domAdapter.getDocument();\r\n var container = this._positionController.$dragResizeContainer.get(0);\r\n var containerWidth = getOuterWidth(container);\r\n var containerHeight = getOuterHeight(container);\r\n if (isWindow(container)) {\r\n containerHeight = Math.max(document.body.clientHeight, containerHeight);\r\n containerWidth = Math.max(document.body.clientWidth, containerWidth)\r\n }\r\n return {\r\n width: containerWidth,\r\n height: containerHeight\r\n }\r\n }\r\n _getContainerPosition() {\r\n var container = this._positionController.$dragResizeContainer.get(0);\r\n return isWindow(container) ? {\r\n top: 0,\r\n left: 0\r\n } : getOffset(container)\r\n }\r\n _getElementPosition() {\r\n return getOffset(this._draggableElement)\r\n }\r\n _getInnerDelta() {\r\n var containerDimensions = this._getContainerDimensions();\r\n var elementDimensions = this._getElementDimensions();\r\n return {\r\n x: containerDimensions.width - elementDimensions.width,\r\n y: containerDimensions.height - elementDimensions.height\r\n }\r\n }\r\n _getOuterDelta() {\r\n var {\r\n width: width,\r\n height: height\r\n } = this._getElementDimensions();\r\n var outsideDragFactor = this._positionController.outsideDragFactor;\r\n return {\r\n x: width * outsideDragFactor,\r\n y: height * outsideDragFactor\r\n }\r\n }\r\n _getFullDelta() {\r\n var fullDelta = this._getInnerDelta();\r\n var outerDelta = this._getOuterDelta();\r\n return {\r\n x: fullDelta.x + outerDelta.x,\r\n y: fullDelta.y + outerDelta.y\r\n }\r\n }\r\n _getElementDimensions() {\r\n return {\r\n width: this._draggableElement.offsetWidth,\r\n height: this._draggableElement.offsetHeight\r\n }\r\n }\r\n _getAllowedOffsets() {\r\n var fullDelta = this._getFullDelta();\r\n var isDragAllowed = fullDelta.y >= 0 && fullDelta.x >= 0;\r\n if (!isDragAllowed) {\r\n return {\r\n top: 0,\r\n bottom: 0,\r\n left: 0,\r\n right: 0\r\n }\r\n }\r\n var elementPosition = this._getElementPosition();\r\n var containerPosition = this._getContainerPosition();\r\n var outerDelta = this._getOuterDelta();\r\n return {\r\n top: elementPosition.top - containerPosition.top + outerDelta.y,\r\n bottom: -elementPosition.top + containerPosition.top + fullDelta.y,\r\n left: elementPosition.left - containerPosition.left + outerDelta.x,\r\n right: -elementPosition.left + containerPosition.left + fullDelta.x\r\n }\r\n }\r\n _moveByOffset(offset) {\r\n var currentPosition = locate(this._draggableElement);\r\n var newPosition = {\r\n left: currentPosition.left + offset.left,\r\n top: currentPosition.top + offset.top\r\n };\r\n move(this._draggableElement, newPosition)\r\n }\r\n}\r\nexport default PopupDrag;\r\n","/**\r\n * DevExtreme (esm/ui/resizable.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n getOuterWidth,\r\n getOuterHeight,\r\n getInnerWidth,\r\n getInnerHeight,\r\n getWidth,\r\n getHeight\r\n} from \"../core/utils/size\";\r\nimport {\r\n locate,\r\n move\r\n} from \"../animation/translator\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport DOMComponent from \"../core/dom_component\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n pairToObject\r\n} from \"../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n fitIntoRange,\r\n inRange\r\n} from \"../core/utils/math\";\r\nimport {\r\n isPlainObject,\r\n isFunction,\r\n isWindow\r\n} from \"../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n start as dragEventStart,\r\n move as dragEventMove,\r\n end as dragEventEnd\r\n} from \"../events/drag\";\r\nimport {\r\n addNamespace\r\n} from \"../events/utils/index\";\r\nimport {\r\n triggerResizeEvent\r\n} from \"../events/visibility_change\";\r\nvar RESIZABLE = \"dxResizable\";\r\nvar RESIZABLE_CLASS = \"dx-resizable\";\r\nvar RESIZABLE_RESIZING_CLASS = \"dx-resizable-resizing\";\r\nvar RESIZABLE_HANDLE_CLASS = \"dx-resizable-handle\";\r\nvar RESIZABLE_HANDLE_TOP_CLASS = \"dx-resizable-handle-top\";\r\nvar RESIZABLE_HANDLE_BOTTOM_CLASS = \"dx-resizable-handle-bottom\";\r\nvar RESIZABLE_HANDLE_LEFT_CLASS = \"dx-resizable-handle-left\";\r\nvar RESIZABLE_HANDLE_RIGHT_CLASS = \"dx-resizable-handle-right\";\r\nvar RESIZABLE_HANDLE_CORNER_CLASS = \"dx-resizable-handle-corner\";\r\nvar DRAGSTART_START_EVENT_NAME = addNamespace(dragEventStart, RESIZABLE);\r\nvar DRAGSTART_EVENT_NAME = addNamespace(dragEventMove, RESIZABLE);\r\nvar DRAGSTART_END_EVENT_NAME = addNamespace(dragEventEnd, RESIZABLE);\r\nvar SIDE_BORDER_WIDTH_STYLES = {\r\n left: \"borderLeftWidth\",\r\n top: \"borderTopWidth\",\r\n right: \"borderRightWidth\",\r\n bottom: \"borderBottomWidth\"\r\n};\r\nvar Resizable = DOMComponent.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n handles: \"all\",\r\n step: \"1\",\r\n stepPrecision: \"simple\",\r\n area: void 0,\r\n minWidth: 30,\r\n maxWidth: 1 / 0,\r\n minHeight: 30,\r\n maxHeight: 1 / 0,\r\n onResizeStart: null,\r\n onResize: null,\r\n onResizeEnd: null,\r\n roundStepValue: true,\r\n keepAspectRatio: true\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(RESIZABLE_CLASS)\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderHandles()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderActions()\r\n },\r\n _renderActions: function() {\r\n this._resizeStartAction = this._createActionByOption(\"onResizeStart\");\r\n this._resizeEndAction = this._createActionByOption(\"onResizeEnd\");\r\n this._resizeAction = this._createActionByOption(\"onResize\")\r\n },\r\n _renderHandles: function() {\r\n this._handles = [];\r\n var handles = this.option(\"handles\");\r\n if (\"none\" === handles || !handles) {\r\n return\r\n }\r\n var directions = \"all\" === handles ? [\"top\", \"bottom\", \"left\", \"right\"] : handles.split(\" \");\r\n var activeHandlesMap = {};\r\n each(directions, (index, handleName) => {\r\n activeHandlesMap[handleName] = true;\r\n this._renderHandle(handleName)\r\n });\r\n activeHandlesMap.bottom && activeHandlesMap.right && this._renderHandle(\"corner-bottom-right\");\r\n activeHandlesMap.bottom && activeHandlesMap.left && this._renderHandle(\"corner-bottom-left\");\r\n activeHandlesMap.top && activeHandlesMap.right && this._renderHandle(\"corner-top-right\");\r\n activeHandlesMap.top && activeHandlesMap.left && this._renderHandle(\"corner-top-left\");\r\n this._attachEventHandlers()\r\n },\r\n _renderHandle: function(handleName) {\r\n var $handle = $(\"
\").addClass(RESIZABLE_HANDLE_CLASS).addClass(RESIZABLE_HANDLE_CLASS + \"-\" + handleName).appendTo(this.$element());\r\n this._handles.push($handle)\r\n },\r\n _attachEventHandlers: function() {\r\n if (this.option(\"disabled\")) {\r\n return\r\n }\r\n var handlers = {};\r\n handlers[DRAGSTART_START_EVENT_NAME] = this._dragStartHandler.bind(this);\r\n handlers[DRAGSTART_EVENT_NAME] = this._dragHandler.bind(this);\r\n handlers[DRAGSTART_END_EVENT_NAME] = this._dragEndHandler.bind(this);\r\n this._handles.forEach(handleElement => {\r\n eventsEngine.on(handleElement, handlers, {\r\n direction: \"both\",\r\n immediate: true\r\n })\r\n })\r\n },\r\n _detachEventHandlers: function() {\r\n this._handles.forEach(handleElement => {\r\n eventsEngine.off(handleElement)\r\n })\r\n },\r\n _toggleEventHandlers: function(shouldAttachEvents) {\r\n shouldAttachEvents ? this._attachEventHandlers() : this._detachEventHandlers()\r\n },\r\n _getElementSize: function() {\r\n var $element = this.$element();\r\n return \"border-box\" === $element.css(\"boxSizing\") ? {\r\n width: getOuterWidth($element),\r\n height: getOuterHeight($element)\r\n } : {\r\n width: getWidth($element),\r\n height: getHeight($element)\r\n }\r\n },\r\n _dragStartHandler: function(e) {\r\n var $element = this.$element();\r\n if ($element.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n e.cancel = true;\r\n return\r\n }\r\n this._toggleResizingClass(true);\r\n this._movingSides = this._getMovingSides(e);\r\n this._elementLocation = locate($element);\r\n this._elementSize = this._getElementSize();\r\n this._renderDragOffsets(e);\r\n this._resizeStartAction({\r\n event: e,\r\n width: this._elementSize.width,\r\n height: this._elementSize.height,\r\n handles: this._movingSides\r\n });\r\n e.targetElements = null\r\n },\r\n _toggleResizingClass: function(value) {\r\n this.$element().toggleClass(RESIZABLE_RESIZING_CLASS, value)\r\n },\r\n _renderDragOffsets: function(e) {\r\n var area = this._getArea();\r\n if (!area) {\r\n return\r\n }\r\n var $handle = $(e.target).closest(\".\" + RESIZABLE_HANDLE_CLASS);\r\n var handleWidth = getOuterWidth($handle);\r\n var handleHeight = getOuterHeight($handle);\r\n var handleOffset = $handle.offset();\r\n var areaOffset = area.offset;\r\n var scrollOffset = this._getAreaScrollOffset();\r\n e.maxLeftOffset = this._leftMaxOffset = handleOffset.left - areaOffset.left - scrollOffset.scrollX;\r\n e.maxRightOffset = this._rightMaxOffset = areaOffset.left + area.width - handleOffset.left - handleWidth + scrollOffset.scrollX;\r\n e.maxTopOffset = this._topMaxOffset = handleOffset.top - areaOffset.top - scrollOffset.scrollY;\r\n e.maxBottomOffset = this._bottomMaxOffset = areaOffset.top + area.height - handleOffset.top - handleHeight + scrollOffset.scrollY\r\n },\r\n _getBorderWidth: function($element, direction) {\r\n if (isWindow($element.get(0))) {\r\n return 0\r\n }\r\n var borderWidth = $element.css(SIDE_BORDER_WIDTH_STYLES[direction]);\r\n return parseInt(borderWidth) || 0\r\n },\r\n _proportionate: function(direction, value) {\r\n var size = this._elementSize;\r\n var factor = \"x\" === direction ? size.width / size.height : size.height / size.width;\r\n return value * factor\r\n },\r\n _getProportionalDelta: function(_ref) {\r\n var {\r\n x: x,\r\n y: y\r\n } = _ref;\r\n var proportionalY = this._proportionate(\"y\", x);\r\n if (proportionalY >= y) {\r\n return {\r\n x: x,\r\n y: proportionalY\r\n }\r\n }\r\n var proportionalX = this._proportionate(\"x\", y);\r\n if (proportionalX >= x) {\r\n return {\r\n x: proportionalX,\r\n y: y\r\n }\r\n }\r\n return {\r\n x: 0,\r\n y: 0\r\n }\r\n },\r\n _getDirectionName: function(axis) {\r\n var sides = this._movingSides;\r\n if (\"x\" === axis) {\r\n return sides.left ? \"left\" : \"right\"\r\n } else {\r\n return sides.top ? \"top\" : \"bottom\"\r\n }\r\n },\r\n _fitIntoArea: function(axis, value) {\r\n var _this;\r\n var directionName = this._getDirectionName(axis);\r\n return Math.min(value, null !== (_this = this[\"_\".concat(directionName, \"MaxOffset\")]) && void 0 !== _this ? _this : 1 / 0)\r\n },\r\n _fitDeltaProportionally: function(delta) {\r\n var fittedDelta = _extends({}, delta);\r\n var size = this._elementSize;\r\n var {\r\n minWidth: minWidth,\r\n minHeight: minHeight,\r\n maxWidth: maxWidth,\r\n maxHeight: maxHeight\r\n } = this.option();\r\n var getWidth = () => size.width + fittedDelta.x;\r\n var getHeight = () => size.height + fittedDelta.y;\r\n var isInArea = axis => fittedDelta[axis] === this._fitIntoArea(axis, fittedDelta[axis]);\r\n var isFittedX = () => inRange(getWidth(), minWidth, maxWidth) && isInArea(\"x\");\r\n var isFittedY = () => inRange(getHeight(), minHeight, maxHeight) && isInArea(\"y\");\r\n if (!isFittedX()) {\r\n var x = this._fitIntoArea(\"x\", fitIntoRange(getWidth(), minWidth, maxWidth) - size.width);\r\n fittedDelta = {\r\n x: x,\r\n y: this._proportionate(\"y\", x)\r\n }\r\n }\r\n if (!isFittedY()) {\r\n var y = this._fitIntoArea(\"y\", fitIntoRange(getHeight(), minHeight, maxHeight) - size.height);\r\n fittedDelta = {\r\n x: this._proportionate(\"x\", y),\r\n y: y\r\n }\r\n }\r\n return isFittedX() && isFittedY() ? fittedDelta : {\r\n x: 0,\r\n y: 0\r\n }\r\n },\r\n _fitDelta: function(_ref2) {\r\n var {\r\n x: x,\r\n y: y\r\n } = _ref2;\r\n var size = this._elementSize;\r\n var {\r\n minWidth: minWidth,\r\n minHeight: minHeight,\r\n maxWidth: maxWidth,\r\n maxHeight: maxHeight\r\n } = this.option();\r\n return {\r\n x: fitIntoRange(size.width + x, minWidth, maxWidth) - size.width,\r\n y: fitIntoRange(size.height + y, minHeight, maxHeight) - size.height\r\n }\r\n },\r\n _getDeltaByOffset: function(offset) {\r\n var sides = this._movingSides;\r\n var shouldKeepAspectRatio = this._isCornerHandler(sides) && this.option(\"keepAspectRatio\");\r\n var delta = {\r\n x: offset.x * (sides.left ? -1 : 1),\r\n y: offset.y * (sides.top ? -1 : 1)\r\n };\r\n if (shouldKeepAspectRatio) {\r\n var proportionalDelta = this._getProportionalDelta(delta);\r\n var fittedProportionalDelta = this._fitDeltaProportionally(proportionalDelta);\r\n delta = fittedProportionalDelta\r\n } else {\r\n var fittedDelta = this._fitDelta(delta);\r\n var roundedFittedDelta = this._roundByStep(fittedDelta);\r\n delta = roundedFittedDelta\r\n }\r\n return delta\r\n },\r\n _updatePosition: function(delta, _ref3) {\r\n var {\r\n width: width,\r\n height: height\r\n } = _ref3;\r\n var location = this._elementLocation;\r\n var sides = this._movingSides;\r\n var $element = this.$element();\r\n var elementRect = this._getElementSize();\r\n var offsetTop = delta.y * (sides.top ? -1 : 1) - ((elementRect.height || height) - height);\r\n var offsetLeft = delta.x * (sides.left ? -1 : 1) - ((elementRect.width || width) - width);\r\n move($element, {\r\n top: location.top + (sides.top ? offsetTop : 0),\r\n left: location.left + (sides.left ? offsetLeft : 0)\r\n })\r\n },\r\n _dragHandler: function(e) {\r\n var offset = this._getOffset(e);\r\n var delta = this._getDeltaByOffset(offset);\r\n var dimensions = this._updateDimensions(delta);\r\n this._updatePosition(delta, dimensions);\r\n this._triggerResizeAction(e, dimensions)\r\n },\r\n _updateDimensions: function(delta) {\r\n var isAbsoluteSize = size => \"px\" === size.substring(size.length - 2);\r\n var isStepPrecisionStrict = \"strict\" === this.option(\"stepPrecision\");\r\n var size = this._elementSize;\r\n var width = size.width + delta.x;\r\n var height = size.height + delta.y;\r\n var elementStyle = this.$element().get(0).style;\r\n var shouldRenderWidth = delta.x || isStepPrecisionStrict || isAbsoluteSize(elementStyle.width);\r\n var shouldRenderHeight = delta.y || isStepPrecisionStrict || isAbsoluteSize(elementStyle.height);\r\n if (shouldRenderWidth) {\r\n this.option({\r\n width: width\r\n })\r\n }\r\n if (shouldRenderHeight) {\r\n this.option({\r\n height: height\r\n })\r\n }\r\n return {\r\n width: shouldRenderWidth ? width : size.width,\r\n height: shouldRenderHeight ? height : size.height\r\n }\r\n },\r\n _triggerResizeAction: function(e, _ref4) {\r\n var {\r\n width: width,\r\n height: height\r\n } = _ref4;\r\n this._resizeAction({\r\n event: e,\r\n width: this.option(\"width\") || width,\r\n height: this.option(\"height\") || height,\r\n handles: this._movingSides\r\n });\r\n triggerResizeEvent(this.$element())\r\n },\r\n _isCornerHandler: sides => 0 === Object.values(sides).reduce((xor, value) => xor ^ value, 0),\r\n _getOffset: function(e) {\r\n var offset = e.offset;\r\n var sides = this._movingSides;\r\n if (!sides.left && !sides.right) {\r\n offset.x = 0\r\n }\r\n if (!sides.top && !sides.bottom) {\r\n offset.y = 0\r\n }\r\n return offset\r\n },\r\n _roundByStep: function(delta) {\r\n return \"strict\" === this.option(\"stepPrecision\") ? this._roundStrict(delta) : this._roundNotStrict(delta)\r\n },\r\n _getSteps: function() {\r\n return pairToObject(this.option(\"step\"), !this.option(\"roundStepValue\"))\r\n },\r\n _roundNotStrict: function(delta) {\r\n var steps = this._getSteps();\r\n return {\r\n x: delta.x - delta.x % steps.h,\r\n y: delta.y - delta.y % steps.v\r\n }\r\n },\r\n _roundStrict: function(delta) {\r\n var sides = this._movingSides;\r\n var offset = {\r\n x: delta.x * (sides.left ? -1 : 1),\r\n y: delta.y * (sides.top ? -1 : 1)\r\n };\r\n var steps = this._getSteps();\r\n var location = this._elementLocation;\r\n var size = this._elementSize;\r\n var xPos = sides.left ? location.left : location.left + size.width;\r\n var yPos = sides.top ? location.top : location.top + size.height;\r\n var newXShift = (xPos + offset.x) % steps.h;\r\n var newYShift = (yPos + offset.y) % steps.v;\r\n var sign = Math.sign || (x => {\r\n x = +x;\r\n if (0 === x || isNaN(x)) {\r\n return x\r\n }\r\n return x > 0 ? 1 : -1\r\n });\r\n var separatorOffset = (steps, offset) => (1 + .2 * sign(offset)) % 1 * steps;\r\n var isSmallOffset = (offset, steps) => Math.abs(offset) < .2 * steps;\r\n var newOffsetX = offset.x - newXShift;\r\n var newOffsetY = offset.y - newYShift;\r\n if (newXShift > separatorOffset(steps.h, offset.x)) {\r\n newOffsetX += steps.h\r\n }\r\n if (newYShift > separatorOffset(steps.v, offset.y)) {\r\n newOffsetY += steps.v\r\n }\r\n var roundedOffset_x = (sides.left || sides.right) && !isSmallOffset(offset.x, steps.h) ? newOffsetX : 0,\r\n roundedOffset_y = (sides.top || sides.bottom) && !isSmallOffset(offset.y, steps.v) ? newOffsetY : 0;\r\n return {\r\n x: roundedOffset_x * (sides.left ? -1 : 1),\r\n y: roundedOffset_y * (sides.top ? -1 : 1)\r\n }\r\n },\r\n _getMovingSides: function(e) {\r\n var $target = $(e.target);\r\n var hasCornerTopLeftClass = $target.hasClass(RESIZABLE_HANDLE_CORNER_CLASS + \"-top-left\");\r\n var hasCornerTopRightClass = $target.hasClass(RESIZABLE_HANDLE_CORNER_CLASS + \"-top-right\");\r\n var hasCornerBottomLeftClass = $target.hasClass(RESIZABLE_HANDLE_CORNER_CLASS + \"-bottom-left\");\r\n var hasCornerBottomRightClass = $target.hasClass(RESIZABLE_HANDLE_CORNER_CLASS + \"-bottom-right\");\r\n return {\r\n top: $target.hasClass(RESIZABLE_HANDLE_TOP_CLASS) || hasCornerTopLeftClass || hasCornerTopRightClass,\r\n left: $target.hasClass(RESIZABLE_HANDLE_LEFT_CLASS) || hasCornerTopLeftClass || hasCornerBottomLeftClass,\r\n bottom: $target.hasClass(RESIZABLE_HANDLE_BOTTOM_CLASS) || hasCornerBottomLeftClass || hasCornerBottomRightClass,\r\n right: $target.hasClass(RESIZABLE_HANDLE_RIGHT_CLASS) || hasCornerTopRightClass || hasCornerBottomRightClass\r\n }\r\n },\r\n _getArea: function() {\r\n var area = this.option(\"area\");\r\n if (isFunction(area)) {\r\n area = area.call(this)\r\n }\r\n if (isPlainObject(area)) {\r\n return this._getAreaFromObject(area)\r\n }\r\n return this._getAreaFromElement(area)\r\n },\r\n _getAreaScrollOffset: function() {\r\n var area = this.option(\"area\");\r\n var isElement = !isFunction(area) && !isPlainObject(area);\r\n var scrollOffset = {\r\n scrollY: 0,\r\n scrollX: 0\r\n };\r\n if (isElement) {\r\n var areaElement = $(area)[0];\r\n if (isWindow(areaElement)) {\r\n scrollOffset.scrollX = areaElement.pageXOffset;\r\n scrollOffset.scrollY = areaElement.pageYOffset\r\n }\r\n }\r\n return scrollOffset\r\n },\r\n _getAreaFromObject: function(area) {\r\n var result = {\r\n width: area.right - area.left,\r\n height: area.bottom - area.top,\r\n offset: {\r\n left: area.left,\r\n top: area.top\r\n }\r\n };\r\n this._correctAreaGeometry(result);\r\n return result\r\n },\r\n _getAreaFromElement: function(area) {\r\n var $area = $(area);\r\n var result;\r\n if ($area.length) {\r\n result = {\r\n width: getInnerWidth($area),\r\n height: getInnerHeight($area),\r\n offset: extend({\r\n top: 0,\r\n left: 0\r\n }, isWindow($area[0]) ? {} : $area.offset())\r\n };\r\n this._correctAreaGeometry(result, $area)\r\n }\r\n return result\r\n },\r\n _correctAreaGeometry: function(result, $area) {\r\n var areaBorderLeft = $area ? this._getBorderWidth($area, \"left\") : 0;\r\n var areaBorderTop = $area ? this._getBorderWidth($area, \"top\") : 0;\r\n result.offset.left += areaBorderLeft + this._getBorderWidth(this.$element(), \"left\");\r\n result.offset.top += areaBorderTop + this._getBorderWidth(this.$element(), \"top\");\r\n result.width -= getOuterWidth(this.$element()) - getInnerWidth(this.$element());\r\n result.height -= getOuterHeight(this.$element()) - getInnerHeight(this.$element())\r\n },\r\n _dragEndHandler: function(e) {\r\n var $element = this.$element();\r\n this._resizeEndAction({\r\n event: e,\r\n width: getOuterWidth($element),\r\n height: getOuterHeight($element),\r\n handles: this._movingSides\r\n });\r\n this._toggleResizingClass(false)\r\n },\r\n _renderWidth: function(width) {\r\n this.option(\"width\", fitIntoRange(width, this.option(\"minWidth\"), this.option(\"maxWidth\")))\r\n },\r\n _renderHeight: function(height) {\r\n this.option(\"height\", fitIntoRange(height, this.option(\"minHeight\"), this.option(\"maxHeight\")))\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"disabled\":\r\n this._toggleEventHandlers(!args.value);\r\n this.callBase(args);\r\n break;\r\n case \"handles\":\r\n this._invalidate();\r\n break;\r\n case \"minWidth\":\r\n case \"maxWidth\":\r\n hasWindow() && this._renderWidth(getOuterWidth(this.$element()));\r\n break;\r\n case \"minHeight\":\r\n case \"maxHeight\":\r\n hasWindow() && this._renderHeight(getOuterHeight(this.$element()));\r\n break;\r\n case \"onResize\":\r\n case \"onResizeStart\":\r\n case \"onResizeEnd\":\r\n this._renderActions();\r\n break;\r\n case \"area\":\r\n case \"stepPrecision\":\r\n case \"step\":\r\n case \"roundStepValue\":\r\n case \"keepAspectRatio\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clean: function() {\r\n this.$element().find(\".\" + RESIZABLE_HANDLE_CLASS).remove()\r\n },\r\n _useTemplates: function() {\r\n return false\r\n }\r\n});\r\nregisterComponent(RESIZABLE, Resizable);\r\nexport default Resizable;\r\n","/**\r\n * DevExtreme (esm/ui/popup/popup_position_controller.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"fullScreen\", \"forceApplyBindings\", \"dragOutsideBoundary\", \"dragAndResizeArea\", \"outsideDragFactor\"];\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n originalViewPort\r\n} from \"../../core/utils/view_port\";\r\nimport {\r\n OverlayPositionController\r\n} from \"../overlay/overlay_position_controller\";\r\nvar window = getWindow();\r\nclass PopupPositionController extends OverlayPositionController {\r\n constructor(_ref) {\r\n var {\r\n fullScreen: fullScreen,\r\n forceApplyBindings: forceApplyBindings,\r\n dragOutsideBoundary: dragOutsideBoundary,\r\n dragAndResizeArea: dragAndResizeArea,\r\n outsideDragFactor: outsideDragFactor\r\n } = _ref, args = _objectWithoutPropertiesLoose(_ref, _excluded);\r\n super(args);\r\n this._props = _extends({}, this._props, {\r\n fullScreen: fullScreen,\r\n forceApplyBindings: forceApplyBindings,\r\n dragOutsideBoundary: dragOutsideBoundary,\r\n dragAndResizeArea: dragAndResizeArea,\r\n outsideDragFactor: outsideDragFactor\r\n });\r\n this._$dragResizeContainer = void 0;\r\n this._outsideDragFactor = void 0;\r\n this._lastPositionBeforeFullScreen = void 0;\r\n this._updateDragResizeContainer();\r\n this._updateOutsideDragFactor()\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 return this._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 this._updateOutsideDragFactor()\r\n }\r\n set outsideDragFactor(outsideDragFactor) {\r\n this._props.outsideDragFactor = outsideDragFactor;\r\n this._updateOutsideDragFactor()\r\n }\r\n updateContainer(containerProp) {\r\n super.updateContainer(containerProp);\r\n this._updateDragResizeContainer()\r\n }\r\n dragHandled() {\r\n this.restorePositionOnNextRender(false)\r\n }\r\n resizeHandled() {\r\n this.restorePositionOnNextRender(false)\r\n }\r\n positionContent() {\r\n if (this._props.fullScreen) {\r\n move(this._$content, {\r\n top: 0,\r\n left: 0\r\n });\r\n this.detectVisualPositionChange()\r\n } else {\r\n var _this$_props$forceApp, _this$_props;\r\n null === (_this$_props$forceApp = (_this$_props = this._props).forceApplyBindings) || void 0 === _this$_props$forceApp ? void 0 : _this$_props$forceApp.call(_this$_props);\r\n if (!this._shouldRenderContentInitialPosition && this._lastPositionBeforeFullScreen) {\r\n move(this._$content, this._lastPositionBeforeFullScreen);\r\n this._lastPositionBeforeFullScreen = void 0;\r\n this.detectVisualPositionChange()\r\n } else {\r\n super.positionContent()\r\n }\r\n }\r\n }\r\n _updateOutsideDragFactor() {\r\n this._outsideDragFactor = this._getOutsideDragFactor()\r\n }\r\n _getOutsideDragFactor() {\r\n if (this._props.dragOutsideBoundary) {\r\n return 1\r\n }\r\n return this._props.outsideDragFactor\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 this._lastPositionBeforeFullScreen = this._visualPosition\r\n }\r\n _fullScreenDisabled() {\r\n this.restorePositionOnNextRender(false)\r\n }\r\n}\r\nexport {\r\n PopupPositionController\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/popup/ui.popup.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n EmptyTemplate\r\n} from \"../../core/templates/empty_template\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n camelize\r\n} from \"../../core/utils/inflector\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n getVisibleHeight,\r\n addOffsetToMaxHeight,\r\n addOffsetToMinHeight,\r\n getVerticalOffsets,\r\n getOuterWidth,\r\n getWidth,\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport {\r\n isDefined,\r\n isObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n compare as compareVersions\r\n} from \"../../core/utils/version\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n triggerResizeEvent\r\n} from \"../../events/visibility_change\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport PopupDrag from \"./popup_drag\";\r\nimport Resizable from \"../resizable\";\r\nimport Button from \"../button\";\r\nimport Overlay from \"../overlay/ui.overlay\";\r\nimport {\r\n isMaterial,\r\n current as currentTheme\r\n} from \"../themes\";\r\nimport \"../toolbar/ui.toolbar.base\";\r\nimport resizeObserverSingleton from \"../../core/resize_observer\";\r\nimport * as zIndexPool from \"../overlay/z_index\";\r\nimport {\r\n PopupPositionController\r\n} from \"./popup_position_controller\";\r\nvar window = getWindow();\r\nvar POPUP_CLASS = \"dx-popup\";\r\nvar POPUP_WRAPPER_CLASS = \"dx-popup-wrapper\";\r\nvar POPUP_FULL_SCREEN_CLASS = \"dx-popup-fullscreen\";\r\nvar POPUP_FULL_SCREEN_WIDTH_CLASS = \"dx-popup-fullscreen-width\";\r\nvar POPUP_NORMAL_CLASS = \"dx-popup-normal\";\r\nvar POPUP_CONTENT_CLASS = \"dx-popup-content\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar POPUP_DRAGGABLE_CLASS = \"dx-popup-draggable\";\r\nvar POPUP_TITLE_CLASS = \"dx-popup-title\";\r\nvar POPUP_TITLE_CLOSEBUTTON_CLASS = \"dx-closebutton\";\r\nvar POPUP_BOTTOM_CLASS = \"dx-popup-bottom\";\r\nvar POPUP_HAS_CLOSE_BUTTON_CLASS = \"dx-has-close-button\";\r\nvar TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\r\nvar POPUP_CONTENT_FLEX_HEIGHT_CLASS = \"dx-popup-flex-height\";\r\nvar POPUP_CONTENT_INHERIT_HEIGHT_CLASS = \"dx-popup-inherit-height\";\r\nvar ALLOWED_TOOLBAR_ITEM_ALIASES = [\"cancel\", \"clear\", \"done\"];\r\nvar BUTTON_DEFAULT_TYPE = \"default\";\r\nvar BUTTON_NORMAL_TYPE = \"normal\";\r\nvar BUTTON_TEXT_MODE = \"text\";\r\nvar BUTTON_CONTAINED_MODE = \"contained\";\r\nvar IS_OLD_SAFARI = browser.safari && compareVersions(browser.version, [11]) < 0;\r\nvar HEIGHT_STRATEGIES = {\r\n static: \"\",\r\n inherit: POPUP_CONTENT_INHERIT_HEIGHT_CLASS,\r\n flex: POPUP_CONTENT_FLEX_HEIGHT_CLASS\r\n};\r\nvar getButtonPlace = name => {\r\n var device = devices.current();\r\n var platform = device.platform;\r\n var toolbar = \"bottom\";\r\n var location = \"before\";\r\n if (\"ios\" === platform) {\r\n switch (name) {\r\n case \"cancel\":\r\n toolbar = \"top\";\r\n break;\r\n case \"clear\":\r\n toolbar = \"top\";\r\n location = \"after\";\r\n break;\r\n case \"done\":\r\n location = \"after\"\r\n }\r\n } else if (\"android\" === platform) {\r\n switch (name) {\r\n case \"cancel\":\r\n case \"done\":\r\n location = \"after\"\r\n }\r\n }\r\n return {\r\n toolbar: toolbar,\r\n location: location\r\n }\r\n};\r\nvar Popup = Overlay.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n upArrow: e => {\r\n var _this$_drag;\r\n null === (_this$_drag = this._drag) || void 0 === _this$_drag ? void 0 : _this$_drag.moveUp(e)\r\n },\r\n downArrow: e => {\r\n var _this$_drag2;\r\n null === (_this$_drag2 = this._drag) || void 0 === _this$_drag2 ? void 0 : _this$_drag2.moveDown(e)\r\n },\r\n leftArrow: e => {\r\n var _this$_drag3;\r\n null === (_this$_drag3 = this._drag) || void 0 === _this$_drag3 ? void 0 : _this$_drag3.moveLeft(e)\r\n },\r\n rightArrow: e => {\r\n var _this$_drag4;\r\n null === (_this$_drag4 = this._drag) || void 0 === _this$_drag4 ? void 0 : _this$_drag4.moveRight(e)\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n fullScreen: false,\r\n title: \"\",\r\n showTitle: true,\r\n titleTemplate: \"title\",\r\n onTitleRendered: null,\r\n dragOutsideBoundary: false,\r\n dragEnabled: false,\r\n dragAndResizeArea: void 0,\r\n outsideDragFactor: 0,\r\n onResizeStart: null,\r\n onResize: null,\r\n onResizeEnd: null,\r\n resizeEnabled: false,\r\n toolbarItems: [],\r\n showCloseButton: false,\r\n bottomTemplate: \"bottom\",\r\n useDefaultToolbarButtons: false,\r\n useFlatToolbarButtons: false,\r\n autoResizeEnabled: true\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n var themeName = currentTheme();\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n animation: this._iosAnimation\r\n }\r\n }, {\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n animation: this._androidAnimation\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n showCloseButton: true\r\n }\r\n }, {\r\n device: function(_device) {\r\n return \"desktop\" === devices.real().deviceType && \"generic\" === _device.platform\r\n },\r\n options: {\r\n dragEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial(themeName)\r\n },\r\n options: {\r\n useDefaultToolbarButtons: true,\r\n useFlatToolbarButtons: true,\r\n showCloseButton: false\r\n }\r\n }])\r\n },\r\n _iosAnimation: {\r\n show: {\r\n type: \"slide\",\r\n duration: 400,\r\n from: {\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\"\r\n }\r\n },\r\n to: {\r\n position: {\r\n my: \"center\",\r\n at: \"center\"\r\n }\r\n }\r\n },\r\n hide: {\r\n type: \"slide\",\r\n duration: 400,\r\n from: {\r\n opacity: 1,\r\n position: {\r\n my: \"center\",\r\n at: \"center\"\r\n }\r\n },\r\n to: {\r\n opacity: 1,\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\"\r\n }\r\n }\r\n }\r\n },\r\n _androidAnimation: function() {\r\n return this.option(\"fullScreen\") ? {\r\n show: {\r\n type: \"slide\",\r\n duration: 300,\r\n from: {\r\n top: \"30%\",\r\n opacity: 0\r\n },\r\n to: {\r\n top: 0,\r\n opacity: 1\r\n }\r\n },\r\n hide: {\r\n type: \"slide\",\r\n duration: 300,\r\n from: {\r\n top: 0,\r\n opacity: 1\r\n },\r\n to: {\r\n top: \"30%\",\r\n opacity: 0\r\n }\r\n }\r\n } : {\r\n show: {\r\n type: \"fade\",\r\n duration: 400,\r\n from: 0,\r\n to: 1\r\n },\r\n hide: {\r\n type: \"fade\",\r\n duration: 400,\r\n from: 1,\r\n to: 0\r\n }\r\n }\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._updateResizeCallbackSkipCondition();\r\n this.$element().addClass(POPUP_CLASS);\r\n this.$wrapper().addClass(POPUP_WRAPPER_CLASS);\r\n this._$popupContent = this._$content.wrapInner($(\"
\").addClass(POPUP_CONTENT_CLASS)).children().eq(0)\r\n },\r\n _render: function() {\r\n var isFullscreen = this.option(\"fullScreen\");\r\n this._toggleFullScreenClass(isFullscreen);\r\n this.callBase()\r\n },\r\n _toggleFullScreenClass: function(value) {\r\n this.$overlayContent().toggleClass(POPUP_FULL_SCREEN_CLASS, value).toggleClass(POPUP_NORMAL_CLASS, !value)\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n title: new EmptyTemplate,\r\n bottom: new EmptyTemplate\r\n })\r\n },\r\n _getActionsList: function() {\r\n return this.callBase().concat([\"onResizeStart\", \"onResize\", \"onResizeEnd\"])\r\n },\r\n _contentResizeHandler: function(entry) {\r\n if (!this._shouldSkipContentResize(entry)) {\r\n this._renderGeometry({\r\n shouldOnlyReposition: true\r\n })\r\n }\r\n },\r\n _doesShowAnimationChangeDimensions: function() {\r\n var animation = this.option(\"animation\");\r\n return [\"to\", \"from\"].some(prop => {\r\n var _animation$show;\r\n var config = null === animation || void 0 === animation ? void 0 : null === (_animation$show = animation.show) || void 0 === _animation$show ? void 0 : _animation$show[prop];\r\n return isObject(config) && (\"width\" in config || \"height\" in config)\r\n })\r\n },\r\n _updateResizeCallbackSkipCondition() {\r\n var doesShowAnimationChangeDimensions = this._doesShowAnimationChangeDimensions();\r\n this._shouldSkipContentResize = entry => doesShowAnimationChangeDimensions && this._showAnimationProcessing || this._areContentDimensionsRendered(entry)\r\n },\r\n _observeContentResize: function(shouldObserve) {\r\n if (!this.option(\"useResizeObserver\")) {\r\n return\r\n }\r\n var contentElement = this._$content.get(0);\r\n if (shouldObserve) {\r\n resizeObserverSingleton.observe(contentElement, entry => {\r\n this._contentResizeHandler(entry)\r\n })\r\n } else {\r\n resizeObserverSingleton.unobserve(contentElement)\r\n }\r\n },\r\n _renderContentImpl: function() {\r\n this._renderTitle();\r\n this.callBase();\r\n this._renderResize();\r\n this._renderBottom()\r\n },\r\n _renderTitle: function() {\r\n var items = this._getToolbarItems(\"top\");\r\n var titleText = this.option(\"title\");\r\n var showTitle = this.option(\"showTitle\");\r\n if (showTitle && !!titleText) {\r\n items.unshift({\r\n location: devices.current().ios ? \"center\" : \"before\",\r\n text: titleText\r\n })\r\n }\r\n if (showTitle || items.length > 0) {\r\n this._$title && this._$title.remove();\r\n var $title = $(\"
\").addClass(POPUP_TITLE_CLASS).insertBefore(this.$content());\r\n this._$title = this._renderTemplateByType(\"titleTemplate\", items, $title).addClass(POPUP_TITLE_CLASS);\r\n this._renderDrag();\r\n this._executeTitleRenderAction(this._$title);\r\n this._$title.toggleClass(POPUP_HAS_CLOSE_BUTTON_CLASS, this._hasCloseButton())\r\n } else if (this._$title) {\r\n this._$title.detach()\r\n }\r\n },\r\n _renderTemplateByType: function(optionName, data, $container, additionalToolbarOptions) {\r\n var {\r\n rtlEnabled: rtlEnabled,\r\n useDefaultToolbarButtons: useDefaultToolbarButtons,\r\n useFlatToolbarButtons: useFlatToolbarButtons,\r\n disabled: disabled\r\n } = this.option();\r\n var template = this._getTemplateByOption(optionName);\r\n var toolbarTemplate = template instanceof EmptyTemplate;\r\n if (toolbarTemplate) {\r\n var integrationOptions = extend({}, this.option(\"integrationOptions\"), {\r\n skipTemplates: [\"content\", \"title\"]\r\n });\r\n var toolbarOptions = extend(additionalToolbarOptions, {\r\n items: data,\r\n rtlEnabled: rtlEnabled,\r\n useDefaultButtons: useDefaultToolbarButtons,\r\n useFlatButtons: useFlatToolbarButtons,\r\n disabled: disabled,\r\n integrationOptions: integrationOptions\r\n });\r\n this._getTemplate(\"dx-polymorph-widget\").render({\r\n container: $container,\r\n model: {\r\n widget: \"dxToolbarBase\",\r\n options: toolbarOptions\r\n }\r\n });\r\n var $toolbar = $container.children(\"div\");\r\n $container.replaceWith($toolbar);\r\n return $toolbar\r\n } else {\r\n var $result = $(template.render({\r\n container: getPublicElement($container)\r\n }));\r\n if ($result.hasClass(TEMPLATE_WRAPPER_CLASS)) {\r\n $container.replaceWith($result);\r\n $container = $result\r\n }\r\n return $container\r\n }\r\n },\r\n _renderVisibilityAnimate: function(visible) {\r\n this._observeContentResize(visible);\r\n return this.callBase(visible)\r\n },\r\n _executeTitleRenderAction: function($titleElement) {\r\n this._getTitleRenderAction()({\r\n titleElement: getPublicElement($titleElement)\r\n })\r\n },\r\n _getTitleRenderAction: function() {\r\n return this._titleRenderAction || this._createTitleRenderAction()\r\n },\r\n _createTitleRenderAction: function() {\r\n return this._titleRenderAction = this._createActionByOption(\"onTitleRendered\", {\r\n element: this.element(),\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _getCloseButton: function() {\r\n return {\r\n toolbar: \"top\",\r\n location: \"after\",\r\n template: this._getCloseButtonRenderer()\r\n }\r\n },\r\n _getCloseButtonRenderer: function() {\r\n return (_, __, container) => {\r\n var $button = $(\"
\").addClass(POPUP_TITLE_CLOSEBUTTON_CLASS);\r\n this._createComponent($button, Button, {\r\n icon: \"close\",\r\n onClick: this._createToolbarItemAction(void 0),\r\n stylingMode: \"text\",\r\n integrationOptions: {}\r\n });\r\n $(container).append($button)\r\n }\r\n },\r\n _getToolbarItems: function(toolbar) {\r\n var toolbarItems = this.option(\"toolbarItems\");\r\n var toolbarsItems = [];\r\n this._toolbarItemClasses = [];\r\n var currentPlatform = devices.current().platform;\r\n var index = 0;\r\n each(toolbarItems, (_, data) => {\r\n var isShortcut = isDefined(data.shortcut);\r\n var item = isShortcut ? getButtonPlace(data.shortcut) : data;\r\n if (isShortcut && \"ios\" === currentPlatform && index < 2) {\r\n item.toolbar = \"top\";\r\n index++\r\n }\r\n item.toolbar = data.toolbar || item.toolbar || \"top\";\r\n if (item && item.toolbar === toolbar) {\r\n if (isShortcut) {\r\n extend(item, {\r\n location: data.location\r\n }, this._getToolbarItemByAlias(data))\r\n }\r\n var isLTROrder = \"generic\" === currentPlatform;\r\n if (\"done\" === data.shortcut && isLTROrder || \"cancel\" === data.shortcut && !isLTROrder) {\r\n toolbarsItems.unshift(item)\r\n } else {\r\n toolbarsItems.push(item)\r\n }\r\n }\r\n });\r\n if (\"top\" === toolbar && this._hasCloseButton()) {\r\n toolbarsItems.push(this._getCloseButton())\r\n }\r\n return toolbarsItems\r\n },\r\n _hasCloseButton() {\r\n return this.option(\"showCloseButton\") && this.option(\"showTitle\")\r\n },\r\n _getLocalizationKey: itemType => \"done\" === itemType.toLowerCase() ? \"OK\" : camelize(itemType, true),\r\n _getToolbarItemByAlias: function(data) {\r\n var that = this;\r\n var itemType = data.shortcut;\r\n if (!ALLOWED_TOOLBAR_ITEM_ALIASES.includes(itemType)) {\r\n return false\r\n }\r\n var itemConfig = extend({\r\n text: messageLocalization.format(this._getLocalizationKey(itemType)),\r\n onClick: this._createToolbarItemAction(data.onClick),\r\n integrationOptions: {},\r\n type: that.option(\"useDefaultToolbarButtons\") ? BUTTON_DEFAULT_TYPE : BUTTON_NORMAL_TYPE,\r\n stylingMode: that.option(\"useFlatToolbarButtons\") ? BUTTON_TEXT_MODE : BUTTON_CONTAINED_MODE\r\n }, data.options || {});\r\n var itemClass = POPUP_CLASS + \"-\" + itemType;\r\n this._toolbarItemClasses.push(itemClass);\r\n return {\r\n template: function(_, __, container) {\r\n var $toolbarItem = $(\"
\").addClass(itemClass).appendTo(container);\r\n that._createComponent($toolbarItem, Button, itemConfig)\r\n }\r\n }\r\n },\r\n _createToolbarItemAction: function(clickAction) {\r\n return this._createAction(clickAction, {\r\n afterExecute: function(e) {\r\n e.component.hide()\r\n }\r\n })\r\n },\r\n _renderBottom: function() {\r\n var items = this._getToolbarItems(\"bottom\");\r\n if (items.length) {\r\n this._$bottom && this._$bottom.remove();\r\n var $bottom = $(\"
\").addClass(POPUP_BOTTOM_CLASS).insertAfter(this.$content());\r\n this._$bottom = this._renderTemplateByType(\"bottomTemplate\", items, $bottom, {\r\n compactMode: true\r\n }).addClass(POPUP_BOTTOM_CLASS);\r\n this._toggleClasses()\r\n } else {\r\n this._$bottom && this._$bottom.detach()\r\n }\r\n },\r\n _toggleDisabledState: function(value) {\r\n this.callBase(...arguments);\r\n this.$content().toggleClass(DISABLED_STATE_CLASS, Boolean(value))\r\n },\r\n _toggleClasses: function() {\r\n var aliases = ALLOWED_TOOLBAR_ITEM_ALIASES;\r\n each(aliases, (_, alias) => {\r\n var className = POPUP_CLASS + \"-\" + alias;\r\n if (this._toolbarItemClasses.includes(className)) {\r\n this.$wrapper().addClass(className + \"-visible\");\r\n this._$bottom.addClass(className)\r\n } else {\r\n this.$wrapper().removeClass(className + \"-visible\");\r\n this._$bottom.removeClass(className)\r\n }\r\n })\r\n },\r\n _toggleFocusClass(isFocused, $element) {\r\n this.callBase(isFocused, $element);\r\n if (isFocused && !zIndexPool.isLastZIndexInStack(this._zIndex)) {\r\n var zIndex = zIndexPool.create(this._zIndexInitValue());\r\n zIndexPool.remove(this._zIndex);\r\n this._zIndex = zIndex;\r\n this._$wrapper.css(\"zIndex\", zIndex);\r\n this._$content.css(\"zIndex\", zIndex)\r\n }\r\n },\r\n _getPositionControllerConfig() {\r\n var {\r\n fullScreen: fullScreen,\r\n forceApplyBindings: forceApplyBindings,\r\n dragOutsideBoundary: dragOutsideBoundary,\r\n dragAndResizeArea: dragAndResizeArea,\r\n outsideDragFactor: outsideDragFactor\r\n } = this.option();\r\n return extend({}, this.callBase(), {\r\n fullScreen: fullScreen,\r\n forceApplyBindings: forceApplyBindings,\r\n dragOutsideBoundary: dragOutsideBoundary,\r\n dragAndResizeArea: dragAndResizeArea,\r\n outsideDragFactor: outsideDragFactor\r\n })\r\n },\r\n _initPositionController() {\r\n this._positionController = new PopupPositionController(this._getPositionControllerConfig())\r\n },\r\n _getDragTarget: function() {\r\n return this.topToolbar()\r\n },\r\n _renderGeometry: function(options) {\r\n var {\r\n visible: visible,\r\n useResizeObserver: useResizeObserver\r\n } = this.option();\r\n if (visible && hasWindow()) {\r\n var isAnimated = this._showAnimationProcessing;\r\n var shouldRepeatAnimation = isAnimated && !(null !== options && void 0 !== options && options.forceStopAnimation) && useResizeObserver;\r\n this._isAnimationPaused = shouldRepeatAnimation || void 0;\r\n this._stopAnimation();\r\n if (null !== options && void 0 !== options && options.shouldOnlyReposition) {\r\n this._positionController.positionContent()\r\n } else {\r\n this._renderGeometryImpl()\r\n }\r\n if (shouldRepeatAnimation) {\r\n this._animateShowing();\r\n this._isAnimationPaused = void 0\r\n }\r\n }\r\n },\r\n _cacheDimensions: function() {\r\n if (!this.option(\"useResizeObserver\")) {\r\n return\r\n }\r\n this._renderedDimensions = {\r\n width: parseInt(getWidth(this._$content), 10),\r\n height: parseInt(getHeight(this._$content), 10)\r\n }\r\n },\r\n _renderGeometryImpl: function() {\r\n this._resetContentHeight();\r\n this.callBase();\r\n this._cacheDimensions();\r\n this._setContentHeight()\r\n },\r\n _resetContentHeight: function() {\r\n var height = this._getOptionValue(\"height\");\r\n if (\"auto\" === height) {\r\n this.$content().css({\r\n height: \"auto\",\r\n maxHeight: \"none\"\r\n })\r\n }\r\n },\r\n _renderDrag: function() {\r\n var $dragTarget = this._getDragTarget();\r\n var dragEnabled = this.option(\"dragEnabled\");\r\n if (!$dragTarget) {\r\n return\r\n }\r\n var config = {\r\n dragEnabled: dragEnabled,\r\n handle: $dragTarget.get(0),\r\n draggableElement: this._$content.get(0),\r\n positionController: this._positionController\r\n };\r\n if (this._drag) {\r\n this._drag.init(config)\r\n } else {\r\n this._drag = new PopupDrag(config)\r\n }\r\n this.$overlayContent().toggleClass(POPUP_DRAGGABLE_CLASS, dragEnabled)\r\n },\r\n _renderResize: function() {\r\n this._resizable = this._createComponent(this._$content, Resizable, {\r\n handles: this.option(\"resizeEnabled\") ? \"all\" : \"none\",\r\n onResizeEnd: e => {\r\n this._resizeEndHandler(e);\r\n this._observeContentResize(true)\r\n },\r\n onResize: e => {\r\n this._setContentHeight();\r\n this._actions.onResize(e)\r\n },\r\n onResizeStart: e => {\r\n this._observeContentResize(false);\r\n this._actions.onResizeStart(e)\r\n },\r\n minHeight: 100,\r\n minWidth: 100,\r\n area: this._positionController.$dragResizeContainer,\r\n keepAspectRatio: false\r\n })\r\n },\r\n _resizeEndHandler: function(e) {\r\n var width = this._resizable.option(\"width\");\r\n var height = this._resizable.option(\"height\");\r\n width && this._setOptionWithoutOptionChange(\"width\", width);\r\n height && this._setOptionWithoutOptionChange(\"height\", height);\r\n this._cacheDimensions();\r\n this._positionController.resizeHandled();\r\n this._positionController.detectVisualPositionChange(e.event);\r\n this._actions.onResizeEnd(e)\r\n },\r\n _setContentHeight: function() {\r\n (this.option(\"forceApplyBindings\") || noop)();\r\n var overlayContent = this.$overlayContent().get(0);\r\n var currentHeightStrategyClass = this._chooseHeightStrategy(overlayContent);\r\n this.$content().css(this._getHeightCssStyles(currentHeightStrategyClass, overlayContent));\r\n this._setHeightClasses(this.$overlayContent(), currentHeightStrategyClass)\r\n },\r\n _heightStrategyChangeOffset: function(currentHeightStrategyClass, popupVerticalPaddings) {\r\n return currentHeightStrategyClass === HEIGHT_STRATEGIES.flex ? -popupVerticalPaddings : 0\r\n },\r\n _chooseHeightStrategy: function(overlayContent) {\r\n var isAutoWidth = \"auto\" === overlayContent.style.width || \"\" === overlayContent.style.width;\r\n var currentHeightStrategyClass = HEIGHT_STRATEGIES.static;\r\n if (this._isAutoHeight() && this.option(\"autoResizeEnabled\")) {\r\n if (isAutoWidth || IS_OLD_SAFARI) {\r\n currentHeightStrategyClass = HEIGHT_STRATEGIES.inherit\r\n } else {\r\n currentHeightStrategyClass = HEIGHT_STRATEGIES.flex\r\n }\r\n }\r\n return currentHeightStrategyClass\r\n },\r\n _getHeightCssStyles: function(currentHeightStrategyClass, overlayContent) {\r\n var cssStyles = {};\r\n var contentMaxHeight = this._getOptionValue(\"maxHeight\", overlayContent);\r\n var contentMinHeight = this._getOptionValue(\"minHeight\", overlayContent);\r\n var popupHeightParts = this._splitPopupHeight();\r\n var toolbarsAndVerticalOffsetsHeight = popupHeightParts.header + popupHeightParts.footer + popupHeightParts.contentVerticalOffsets + popupHeightParts.popupVerticalOffsets + this._heightStrategyChangeOffset(currentHeightStrategyClass, popupHeightParts.popupVerticalPaddings);\r\n if (currentHeightStrategyClass === HEIGHT_STRATEGIES.static) {\r\n if (!this._isAutoHeight() || contentMaxHeight || contentMinHeight) {\r\n var overlayHeight = this.option(\"fullScreen\") ? Math.min(getBoundingRect(overlayContent).height, getWindow().innerHeight) : getBoundingRect(overlayContent).height;\r\n var contentHeight = overlayHeight - toolbarsAndVerticalOffsetsHeight;\r\n cssStyles = {\r\n height: Math.max(0, contentHeight),\r\n minHeight: \"auto\",\r\n maxHeight: \"auto\"\r\n }\r\n }\r\n } else {\r\n var container = $(this._positionController.$visualContainer).get(0);\r\n var maxHeightValue = addOffsetToMaxHeight(contentMaxHeight, -toolbarsAndVerticalOffsetsHeight, container);\r\n var minHeightValue = addOffsetToMinHeight(contentMinHeight, -toolbarsAndVerticalOffsetsHeight, container);\r\n cssStyles = {\r\n height: \"auto\",\r\n minHeight: minHeightValue,\r\n maxHeight: maxHeightValue\r\n }\r\n }\r\n return cssStyles\r\n },\r\n _setHeightClasses: function($container, currentClass) {\r\n var excessClasses = \"\";\r\n for (var name in HEIGHT_STRATEGIES) {\r\n if (HEIGHT_STRATEGIES[name] !== currentClass) {\r\n excessClasses += \" \" + HEIGHT_STRATEGIES[name]\r\n }\r\n }\r\n $container.removeClass(excessClasses).addClass(currentClass)\r\n },\r\n _isAutoHeight: function() {\r\n return \"auto\" === this.$overlayContent().get(0).style.height\r\n },\r\n _splitPopupHeight: function() {\r\n var topToolbar = this.topToolbar();\r\n var bottomToolbar = this.bottomToolbar();\r\n return {\r\n header: getVisibleHeight(topToolbar && topToolbar.get(0)),\r\n footer: getVisibleHeight(bottomToolbar && bottomToolbar.get(0)),\r\n contentVerticalOffsets: getVerticalOffsets(this.$overlayContent().get(0), true),\r\n popupVerticalOffsets: getVerticalOffsets(this.$content().get(0), true),\r\n popupVerticalPaddings: getVerticalOffsets(this.$content().get(0), false)\r\n }\r\n },\r\n _isAllWindowCovered: function() {\r\n return this.callBase() || this.option(\"fullScreen\")\r\n },\r\n _renderDimensions: function() {\r\n if (this.option(\"fullScreen\")) {\r\n this.$overlayContent().css({\r\n width: \"100%\",\r\n height: \"100%\",\r\n minWidth: \"\",\r\n maxWidth: \"\",\r\n minHeight: \"\",\r\n maxHeight: \"\"\r\n })\r\n } else {\r\n this.callBase()\r\n }\r\n if (hasWindow()) {\r\n this._renderFullscreenWidthClass()\r\n }\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n this._observeContentResize(false)\r\n },\r\n _renderFullscreenWidthClass: function() {\r\n this.$overlayContent().toggleClass(POPUP_FULL_SCREEN_WIDTH_CLASS, getOuterWidth(this.$overlayContent()) === getWidth(window))\r\n },\r\n refreshPosition: function() {\r\n this._renderPosition()\r\n },\r\n _optionChanged: function(args) {\r\n var _this$_resizable2;\r\n var value = args.value;\r\n switch (args.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 \"showTitle\":\r\n case \"title\":\r\n case \"titleTemplate\":\r\n this._renderTitle();\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent());\r\n break;\r\n case \"bottomTemplate\":\r\n this._renderBottom();\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent());\r\n break;\r\n case \"container\":\r\n this.callBase(args);\r\n if (this.option(\"resizeEnabled\")) {\r\n var _this$_resizable;\r\n null === (_this$_resizable = this._resizable) || void 0 === _this$_resizable ? void 0 : _this$_resizable.option(\"area\", this._positionController.$dragResizeContainer)\r\n }\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n null === (_this$_resizable2 = this._resizable) || void 0 === _this$_resizable2 ? void 0 : _this$_resizable2.option(args.name, args.value);\r\n break;\r\n case \"onTitleRendered\":\r\n this._createTitleRenderAction(args.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 = args.value;\r\n this._toggleFullScreenClass(args.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 default:\r\n this.callBase(args)\r\n }\r\n },\r\n bottomToolbar: function() {\r\n return this._$bottom\r\n },\r\n topToolbar: function() {\r\n return this._$title\r\n },\r\n $content: function() {\r\n return this._$popupContent\r\n },\r\n content: function() {\r\n return getPublicElement(this.$content())\r\n },\r\n $overlayContent: function() {\r\n return this._$content\r\n }\r\n});\r\nregisterComponent(\"dxPopup\", Popup);\r\nexport default Popup;\r\n","/**\r\n * DevExtreme (esm/ui/popup.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Popup from \"./popup/ui.popup\";\r\nexport default Popup;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scrollbar.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport readyCallback from \"../../core/utils/ready_callbacks\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n deferRenderer\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport pointerEvents from \"../../events/pointer\";\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: function() {\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: function() {\r\n this.callBase();\r\n this._isHovered = false\r\n },\r\n _initMarkup: function() {\r\n this._renderThumb();\r\n this.callBase()\r\n },\r\n _render: function() {\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: function() {\r\n this._$thumb = $(\"
\").addClass(SCROLLABLE_SCROLL_CLASS);\r\n $(\"
\").addClass(SCROLLABLE_SCROLL_CONTENT_CLASS).appendTo(this._$thumb);\r\n this.$element().addClass(SCROLLABLE_SCROLLBAR_CLASS).append(this._$thumb)\r\n },\r\n isThumb: function($element) {\r\n return !!this.$element().find($element).length\r\n },\r\n _isHoverMode: function() {\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: function() {\r\n var direction = this.option(\"direction\");\r\n this.$element().addClass(\"dx-scrollbar-\" + direction);\r\n this._dimension = direction === HORIZONTAL ? \"width\" : \"height\";\r\n this._prop = direction === HORIZONTAL ? \"left\" : \"top\"\r\n },\r\n _attachPointerDownHandler: function() {\r\n eventsEngine.on(this._$thumb, addNamespace(pointerEvents.down, SCROLLBAR), this.feedbackOn.bind(this))\r\n },\r\n feedbackOn: function() {\r\n this.$element().addClass(SCROLLABLE_SCROLLBAR_ACTIVE_CLASS);\r\n activeScrollbar = this\r\n },\r\n feedbackOff: function() {\r\n this.$element().removeClass(SCROLLABLE_SCROLLBAR_ACTIVE_CLASS);\r\n activeScrollbar = null\r\n },\r\n cursorEnter: function() {\r\n this._isHovered = true;\r\n if (this._needScrollbar()) {\r\n this.option(\"visible\", true)\r\n }\r\n },\r\n cursorLeave: function() {\r\n this._isHovered = false;\r\n this.option(\"visible\", false)\r\n },\r\n _renderDimensions: function() {\r\n this._$thumb.css({\r\n width: this.option(\"width\"),\r\n height: this.option(\"height\")\r\n })\r\n },\r\n _toggleVisibility: function(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: function(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: function(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: function(location) {\r\n return -location * this._thumbRatio\r\n },\r\n _update: function() {\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: function() {\r\n return this.option(\"visibilityMode\") === SCROLLBAR_VISIBLE.never\r\n },\r\n _needScrollbar: function() {\r\n return !this._isHidden() && this._baseContainerToContentRatio < 1\r\n },\r\n containerToContentRatio: function() {\r\n return this._realContainerToContentRatio\r\n },\r\n _normalizeSize: function(size) {\r\n return isPlainObject(size) ? size[this._dimension] || 0 : size\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n if (this === activeScrollbar) {\r\n activeScrollbar = null\r\n }\r\n eventsEngine.off(this._$thumb, \".\" + SCROLLBAR)\r\n },\r\n _optionChanged: function(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((function() {\r\n eventsEngine.subscribeGlobal(domAdapter.getDocument(), addNamespace(pointerEvents.up, SCROLLBAR), (function() {\r\n if (activeScrollbar) {\r\n activeScrollbar.feedbackOff()\r\n }\r\n }))\r\n}));\r\nexport default Scrollbar;\r\n","/**\r\n * DevExtreme (esm/renovation/utils/combine_classes.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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/events/core/emitter.feedback.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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","/*!\n * devextreme-vue\n * Version: 22.1.5\n * Build date: Fri Sep 02 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pullAllChildren = void 0;\nfunction pullAllChildren(directChildren, allChildren, config) {\n if (!directChildren || directChildren.length === 0) {\n return;\n }\n pullConfigComponents(directChildren, allChildren, config);\n}\nexports.pullAllChildren = pullAllChildren;\nfunction pullConfigComponents(children, nodes, ownerConfig) {\n children.forEach(function (node) {\n nodes.push(node);\n if (!node.componentOptions) {\n return;\n }\n var configComponent = node.componentOptions.Ctor;\n if (!configComponent.$_optionName) {\n return;\n }\n var initialValues = __assign(__assign({}, configComponent.$_predefinedProps), node.componentOptions.propsData);\n var config = ownerConfig.createNested(configComponent.$_optionName, initialValues, configComponent.$_isCollectionItem, configComponent.$_expectedChildren);\n node.componentOptions.$_config = config;\n node.componentOptions.$_innerChanges = {};\n if (node.componentOptions.children) {\n pullConfigComponents(node.componentOptions.children, nodes, config);\n }\n });\n}\n","/*!\n * devextreme-vue\n * Version: 22.1.5\n * Build date: Fri Sep 02 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOptionInfo = exports.getOptionValue = exports.allKeysAreEqual = exports.forEachChildNode = exports.isEqual = exports.toComparable = exports.camelize = exports.lowercaseFirst = exports.uppercaseFirst = exports.getTemplatePropName = void 0;\nfunction getTemplatePropName(props, templateName) {\n for (var propName in props) {\n if (props[propName] === templateName) {\n return propName;\n }\n }\n return templateName;\n}\nexports.getTemplatePropName = getTemplatePropName;\nfunction uppercaseFirst(value) {\n return value[0].toUpperCase() + value.substr(1);\n}\nexports.uppercaseFirst = uppercaseFirst;\nfunction lowercaseFirst(value) {\n return value[0].toLowerCase() + value.substr(1);\n}\nexports.lowercaseFirst = lowercaseFirst;\nfunction camelize(value) {\n return lowercaseFirst(value.split(\"-\").map(function (v) { return uppercaseFirst(v); }).join(\"\"));\n}\nexports.camelize = camelize;\nfunction toComparable(value) {\n return value instanceof Date ? value.getTime() : value;\n}\nexports.toComparable = toComparable;\nfunction isEqual(value1, value2) {\n if (toComparable(value1) === toComparable(value2)) {\n return true;\n }\n if (Array.isArray(value1) && Array.isArray(value2)) {\n return value1.length === 0 && value2.length === 0;\n }\n return false;\n}\nexports.isEqual = isEqual;\nfunction forEachChildNode(el, callback) {\n Array.prototype.slice.call(el.childNodes).forEach(callback);\n}\nexports.forEachChildNode = forEachChildNode;\nfunction allKeysAreEqual(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n if (obj1Keys.length !== Object.keys(obj2).length) {\n return false;\n }\n for (var _i = 0, obj1Keys_1 = obj1Keys; _i < obj1Keys_1.length; _i++) {\n var key = obj1Keys_1[_i];\n if (!obj2.hasOwnProperty(key)) {\n return false;\n }\n }\n return true;\n}\nexports.allKeysAreEqual = allKeysAreEqual;\nfunction getOptionValue(options, optionPath) {\n var value = options;\n optionPath.split(\".\").forEach(function (p) {\n var optionInfo = getOptionInfo(p);\n if (value) {\n value = optionInfo.isCollection ?\n value[optionInfo.name] && value[optionInfo.name][optionInfo.index] :\n value[optionInfo.name];\n }\n });\n return value;\n}\nexports.getOptionValue = getOptionValue;\nfunction getOptionInfo(name) {\n var parts = name.split(\"[\");\n if (parts.length === 1) {\n return {\n isCollection: false,\n name: name,\n fullName: name\n };\n }\n return {\n isCollection: true,\n name: parts[0],\n fullName: name,\n index: Number(parts[1].slice(0, -1))\n };\n}\nexports.getOptionInfo = getOptionInfo;\n","/*!\n * devextreme-vue\n * Version: 22.1.5\n * Build date: Fri Sep 02 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DX_REMOVE_EVENT = exports.DX_TEMPLATE_WRAPPER_CLASS = void 0;\nvar DX_TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\nexports.DX_TEMPLATE_WRAPPER_CLASS = DX_TEMPLATE_WRAPPER_CLASS;\nvar DX_REMOVE_EVENT = \"dxremove\";\nexports.DX_REMOVE_EVENT = DX_REMOVE_EVENT;\n","/**\r\n * DevExtreme (esm/ui/selection/selection.strategy.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dataQuery from \"../../data/query\";\r\nimport {\r\n getKeyHash,\r\n noop,\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isPlainObject,\r\n isObject\r\n} from \"../../core/utils/type\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nexport default Class.inherit({\r\n ctor: function(options) {\r\n this.options = options;\r\n this._setOption(\"disabledItemKeys\", []);\r\n this._clearItemKeys()\r\n },\r\n _clearItemKeys: function() {\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: noop,\r\n _setOption: function(name, value) {\r\n this.options[name] = value\r\n },\r\n onSelectionChanged: function() {\r\n var addedItemKeys = this.options.addedItemKeys;\r\n var removedItemKeys = this.options.removedItemKeys;\r\n var addedItems = this.options.addedItems;\r\n var removedItems = this.options.removedItems;\r\n var selectedItems = this.options.selectedItems;\r\n var selectedItemKeys = this.options.selectedItemKeys;\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: function(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: function(items) {\r\n return items.filter((function(item) {\r\n return !(null !== item && void 0 !== item && item.disabled)\r\n }))\r\n },\r\n _clearSelection: function(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: function(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: function(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 = new 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((function(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: function(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: function(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: function() {\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 && 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: function() {\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 } else {\r\n return false\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/selection/selection.strategy.deferred.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport SelectionStrategy from \"./selection.strategy\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport dataQuery from \"../../data/query\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nexport default SelectionStrategy.inherit({\r\n getSelectedItems: function() {\r\n return this._loadFilteredData(this.options.selectionFilter)\r\n },\r\n getSelectedItemKeys: function() {\r\n var d = new 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((function(items) {\r\n var keys = items.map((function(item) {\r\n return that.options.keyOf(item)\r\n }));\r\n d.resolve(keys)\r\n })).fail(d.reject);\r\n return d.promise()\r\n },\r\n selectedItemKeys: function(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])\r\n }\r\n }\r\n }\r\n this.onSelectionChanged();\r\n return (new Deferred).resolve()\r\n },\r\n setSelectedItems: function(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: function(itemData) {\r\n return this.isItemKeySelected(itemData)\r\n },\r\n isItemKeySelected: function(itemData) {\r\n var selectionFilter = this.options.selectionFilter;\r\n if (!selectionFilter) {\r\n return true\r\n }\r\n return !!dataQuery([itemData]).filter(selectionFilter).toArray().length\r\n },\r\n _getKeyExpr: function() {\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: function(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: function(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: function(key) {\r\n var filter = this._getFilterByKey(key);\r\n this._addSelectionFilter(false, filter)\r\n },\r\n removeSelectedItem: function(key) {\r\n var filter = this._getFilterByKey(key);\r\n this._addSelectionFilter(true, filter)\r\n },\r\n validate: function() {\r\n var key = this.options.key;\r\n if (key && void 0 === key()) {\r\n throw errors.Error(\"E1042\", \"Deferred selection\")\r\n }\r\n },\r\n _findSubFilter: function(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: function(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: function(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: function(filter) {\r\n if (filter && isString(filter[0])) {\r\n filter = [filter]\r\n }\r\n return filter\r\n },\r\n _isOnlyNegativeFiltersLeft: function(filters) {\r\n return filters.every((filterItem, i) => {\r\n if (i % 2 === 0) {\r\n return Array.isArray(filterItem) && \"!\" === filterItem[0]\r\n } else {\r\n return \"and\" === filterItem\r\n }\r\n })\r\n },\r\n _addSelectionFilter: function(isDeselect, filter, isSelectAll) {\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 (selectionFilter && selectionFilter.length) {\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 if (needAddFilter) {\r\n selectionFilter = this._addFilterOperator(selectionFilter, currentOperation)\r\n }\r\n }\r\n if (needAddFilter) {\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: function(filter) {\r\n if (filter && 1 === filter.length) {\r\n filter = filter[0]\r\n }\r\n return filter\r\n },\r\n _removeFilterByIndex: function(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: function(filter, key) {\r\n return 3 === filter.length && filter[0] === key && \"=\" === filter[1]\r\n },\r\n _isKeyFilter: function(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: function(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: function(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 } else {\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 },\r\n getSelectAllState: function() {\r\n var filter = this.options.filter();\r\n var selectionFilter = this.options.selectionFilter;\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});\r\n","/**\r\n * DevExtreme (esm/core/utils/selection_filter.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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\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 currentKeyValue = itemKeyValue && itemKeyValue[currentKeyExpr];\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 filterExpr = this.getExpr(keyExpr);\r\n var combinedFilter = filterExpr;\r\n if (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/ui/selection/selection.strategy.standard.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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} from \"../../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n removeDuplicates,\r\n getUniqueValues\r\n} from \"../../core/utils/array\";\r\nimport {\r\n isKeysEqual\r\n} from \"../../core/utils/array_compare\";\r\nimport dataQuery from \"../../data/query\";\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 errors from \"../widget/ui.errors\";\r\nimport SelectionStrategy from \"./selection.strategy\";\r\nexport default SelectionStrategy.inherit({\r\n ctor: function(options) {\r\n this.callBase(options);\r\n this._initSelectedItemKeyHash()\r\n },\r\n _initSelectedItemKeyHash: function() {\r\n this._setOption(\"keyHashIndices\", this.options.equalByReference ? null : {})\r\n },\r\n getSelectedItemKeys: function() {\r\n return this.options.selectedItemKeys.slice(0)\r\n },\r\n getSelectedItems: function() {\r\n return this.options.selectedItems.slice(0)\r\n },\r\n _preserveSelectionUpdate: function(items, isDeselect) {\r\n var keyOf = this.options.keyOf;\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: function(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: function(keys, isDeselect, isSelectAll, filter) {\r\n var deferred = new 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);\r\n var deselectedItems = [];\r\n if (isDeselect) {\r\n var selectedItems = this.options.selectedItems;\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: function(items) {\r\n var internalKeys = [];\r\n var keyOf = this.options.keyOf;\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: function(keys) {\r\n var allowNullValue = this.options.allowNullValue;\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: function() {\r\n var mode = this.options.mode;\r\n return \"all\" === mode || \"multiple\" === mode\r\n },\r\n _requestInProgress: function() {\r\n var _this$_lastLoadDeferr;\r\n return \"pending\" === (null === (_this$_lastLoadDeferr = this._lastLoadDeferred) || void 0 === _this$_lastLoadDeferr ? void 0 : _this$_lastLoadDeferr.state())\r\n },\r\n _concatRequestsItems: function(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: function(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: function(keys, isDeselect, isSelectAll) {\r\n var currentKeys = keys;\r\n if (this._isMultiSelectEnabled() && this._shouldMergeWithLastRequest && !isDeselect && !isSelectAll) {\r\n var _this$_lastRequestDat, _this$_lastRequestDat2;\r\n currentKeys = removeDuplicates(keys.concat(null === (_this$_lastRequestDat = this._lastRequestData) || void 0 === _this$_lastRequestDat ? void 0 : _this$_lastRequestDat.addedItems), null === (_this$_lastRequestDat2 = this._lastRequestData) || void 0 === _this$_lastRequestDat2 ? void 0 : _this$_lastRequestDat2.removedItems);\r\n currentKeys = getUniqueValues(currentKeys)\r\n }\r\n return currentKeys\r\n },\r\n _loadSelectedItems: function(keys, isDeselect, isSelectAll, updatedKeys) {\r\n var that = this;\r\n var deferred = new 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((function() {\r\n var currentKeys = that._updateKeysByLastRequestData(keys, isDeselect, isSelectAll);\r\n that._shouldMergeWithLastRequest = false;\r\n that._loadSelectedItemsCore(currentKeys, isDeselect, isSelectAll, filter).done(deferred.resolve).fail(deferred.reject)\r\n }));\r\n that._lastLoadDeferred = deferred;\r\n return deferred\r\n },\r\n selectedItemKeys: function(keys, preserve, isDeselect, isSelectAll, updatedKeys) {\r\n var that = this;\r\n var deferred = that._loadSelectedItems(keys, isDeselect, isSelectAll, updatedKeys);\r\n deferred.done((function(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: function(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: function(key, ignoreIndicesMap) {\r\n var selectedItemKeys = this.options.selectedItemKeys;\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: function(key, ignoreIndicesMap) {\r\n var indices = this.options.keyHashIndices[key];\r\n if (indices && indices.length > 1 && ignoreIndicesMap) {\r\n indices = indices.filter((function(index) {\r\n return !ignoreIndicesMap[index]\r\n }))\r\n }\r\n return indices && indices[0] >= 0 ? indices[0] : -1\r\n },\r\n _indexOfSelectedItemKey: function(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: function(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: function(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: function(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: function(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: function(key, checkPending) {\r\n var shouldCheckPending = checkPending && this._lastRequestData && this._requestInProgress();\r\n if (shouldCheckPending) {\r\n var _this$_lastRequestDat3;\r\n var addedItems = null !== (_this$_lastRequestDat3 = this._lastRequestData.addedItems) && void 0 !== _this$_lastRequestDat3 ? _this$_lastRequestDat3 : [];\r\n return addedItems.includes(key)\r\n } else {\r\n return false\r\n }\r\n },\r\n _getKeyHash: function(key) {\r\n return this.options.equalByReference ? key : getKeyHash(key)\r\n },\r\n setSelectedItems: function(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: function(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: function(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: function(visibleOnly) {\r\n if (visibleOnly) {\r\n return this._getVisibleSelectAllState()\r\n } else {\r\n return this._getFullSelectAllState()\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/selection/selection.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 deferredStrategy from \"./selection.strategy.deferred\";\r\nimport standardStrategy from \"./selection.strategy.standard\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\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 Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nexport default Class.inherit({\r\n ctor: function(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: function() {\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: function(item) {\r\n return item\r\n },\r\n load: function() {\r\n return (new Deferred).resolve([])\r\n },\r\n totalCount: function() {\r\n return -1\r\n },\r\n isSelectableItem: function() {\r\n return true\r\n },\r\n isItemSelected: function() {\r\n return false\r\n },\r\n getItemData: function(item) {\r\n return item\r\n },\r\n dataFields: noop,\r\n filter: noop\r\n }\r\n },\r\n validate: function() {\r\n this._selectionStrategy.validate()\r\n },\r\n getSelectedItemKeys: function() {\r\n return this._selectionStrategy.getSelectedItemKeys()\r\n },\r\n getSelectedItems: function() {\r\n return this._selectionStrategy.getSelectedItems()\r\n },\r\n selectionFilter: function(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: function(keys, updatedKeys) {\r\n return this.selectedItemKeys(keys, false, false, false, updatedKeys)\r\n },\r\n select: function(keys) {\r\n return this.selectedItemKeys(keys, true)\r\n },\r\n deselect: function(keys) {\r\n return this.selectedItemKeys(keys, true, true)\r\n },\r\n selectedItemKeys: function(keys, preserve, isDeselect, isSelectAll, updatedKeys) {\r\n var _keys;\r\n keys = null !== (_keys = 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: function() {\r\n return this.selectedItemKeys([])\r\n },\r\n _addSelectedItem: function(itemData, key) {\r\n this._selectionStrategy.addSelectedItem(key, itemData)\r\n },\r\n _removeSelectedItem: function(key) {\r\n this._selectionStrategy.removeSelectedItem(key)\r\n },\r\n _setSelectedItems: function(keys, items) {\r\n this._selectionStrategy.setSelectedItems(keys, items)\r\n },\r\n onSelectionChanged: function() {\r\n this._selectionStrategy.onSelectionChanged()\r\n },\r\n changeItemSelection: function(itemIndex, keys, setFocusOnly) {\r\n var _this$options$allowLo, _this$options;\r\n var isSelectedItemsChanged;\r\n var items = this.options.plainItems();\r\n var item = items[itemIndex];\r\n var deferred;\r\n var allowLoadByRange = null === (_this$options$allowLo = (_this$options = this.options).allowLoadByRange) || void 0 === _this$options$allowLo ? void 0 : _this$options$allowLo.call(_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 (allowLoadByRange) {\r\n indexOffset = item.loadIndex - itemIndex;\r\n itemIndex = item.loadIndex;\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 if (keys.shift && \"multiple\" === this.options.mode && this._focusedItemIndex >= 0) {\r\n if (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: function(item) {\r\n return this.options.isSelectableItem(item)\r\n },\r\n isSelectable: function() {\r\n return \"single\" === this.options.mode || \"multiple\" === this.options.mode\r\n },\r\n isItemDataSelected: function(data) {\r\n return this._selectionStrategy.isItemDataSelected(data, {\r\n checkPending: true\r\n })\r\n },\r\n isItemSelected: function(arg, options) {\r\n return this._selectionStrategy.isItemKeySelected(arg, options)\r\n },\r\n _resetItemSelectionWhenShiftKeyPressed: function() {\r\n delete this._shiftFocusedItemIndex\r\n },\r\n _resetFocusedItemIndex: function() {\r\n this._focusedItemIndex = -1\r\n },\r\n changeItemSelectionWhenShiftKeyInVirtualPaging: function(loadIndex) {\r\n var loadOptions = this.options.getLoadOptions(loadIndex, this._focusedItemIndex, this._shiftFocusedItemIndex);\r\n var deferred = new 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: function(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 keyOf = this.options.keyOf;\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: function() {\r\n this._setSelectedItems([], [])\r\n },\r\n selectAll: function(isOnePage) {\r\n this._resetFocusedItemIndex();\r\n if (isOnePage) {\r\n return this._onePageSelectAll(false)\r\n } else {\r\n return this.selectedItemKeys([], true, false, true)\r\n }\r\n },\r\n deselectAll: function(isOnePage) {\r\n this._resetFocusedItemIndex();\r\n if (isOnePage) {\r\n return this._onePageSelectAll(true)\r\n } else {\r\n return this.selectedItemKeys([], true, true, true)\r\n }\r\n },\r\n _onePageSelectAll: function(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 (new Deferred).resolve()\r\n },\r\n getSelectAllState: function(visibleOnly) {\r\n return this._selectionStrategy.getSelectAllState(visibleOnly)\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/core/templates/child_default_template.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n TemplateBase\r\n} from \"./template_base\";\r\nexport class ChildDefaultTemplate extends TemplateBase {\r\n constructor(name) {\r\n super();\r\n this.name = name\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/call_once.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar callOnce = function(handler) {\r\n var result;\r\n var _wrappedHandler = function() {\r\n result = handler.apply(this, arguments);\r\n _wrappedHandler = function() {\r\n return result\r\n };\r\n return result\r\n };\r\n return function() {\r\n return _wrappedHandler.apply(this, arguments)\r\n }\r\n};\r\nexport default callOnce;\r\n","/**\r\n * DevExtreme (esm/core/element.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar strategy = function(element) {\r\n return element && element.get(0)\r\n};\r\nexport function getPublicElement(element) {\r\n return strategy(element)\r\n}\r\nexport function setPublicElementWrapper(newStrategy) {\r\n strategy = newStrategy\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/widget/utils.ink_ripple.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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/ui/list/ui.list.edit.strategy.grouped.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 isNumeric\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport storeHelper from \"../../data/store_helper\";\r\nimport query from \"../../data/query\";\r\nimport EditStrategy from \"../collection/ui.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: function() {\r\n return this._collectionWidget._itemContainer().find(\".\" + LIST_GROUP_CLASS)\r\n },\r\n _groupItemElements: function($group) {\r\n return $group.find(\".\" + LIST_ITEM_CLASS)\r\n },\r\n getIndexByItemData: function(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, (function(groupIndex, group) {\r\n if (!group.items) {\r\n return false\r\n }\r\n each(group.items, (function(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: function(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: function() {\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: function(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: function(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: function(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, (function(groupIndex, group) {\r\n if (!group.items) {\r\n return\r\n }\r\n each(group.items, (function(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: function(items) {\r\n var dataSource = this._collectionWidget.getDataSource();\r\n var group = dataSource && dataSource.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: function(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, (function(_, key) {\r\n var itemMeta = getItemMeta(key);\r\n if (!itemMeta) {\r\n return\r\n }\r\n var groupKey = itemMeta.groupKey;\r\n var item = itemMeta.item;\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: function(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: function(index) {\r\n return index && isNumeric(index.group) && isNumeric(index.item)\r\n },\r\n _getNormalizedItemIndex: function(itemElement) {\r\n var $item = $(itemElement);\r\n var $group = $item.closest(\".\" + 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: function(index) {\r\n return combineIndex(index)\r\n },\r\n _denormalizeItemIndex: function(index) {\r\n return splitIndex(index)\r\n },\r\n _getItemByNormalizedIndex: function(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: function(firstIndex, secondIndex) {\r\n return splitIndex(firstIndex).group === splitIndex(secondIndex).group\r\n }\r\n});\r\nexport default GroupedEditStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.provider.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 Class from \"../../core/class\";\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 \"../widget/ui.errors\";\r\nimport {\r\n registry\r\n} from \"./ui.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}), (function() {\r\n return \"menu\"\r\n}), (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}), (function() {\r\n return \"selection\"\r\n}), (function() {\r\n return \"default\"\r\n}));\r\nregisterOption((function() {\r\n return this.option(\"itemDragging.allowReordering\") || this.option(\"itemDragging.allowDropInsideItem\") || this.option(\"itemDragging.group\")\r\n}), (function() {\r\n return \"reorder\"\r\n}), (function() {\r\n return \"default\"\r\n}));\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: function(list) {\r\n this._list = list;\r\n this._fetchRequiredDecorators()\r\n },\r\n dispose: function() {\r\n if (this._decorators && this._decorators.length) {\r\n each(this._decorators, (function(_, decorator) {\r\n decorator.dispose()\r\n }))\r\n }\r\n },\r\n _fetchRequiredDecorators: function() {\r\n this._decorators = [];\r\n each(editOptionsRegistry, function(_, 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 }.bind(this))\r\n },\r\n _createDecorator: function(type, subType) {\r\n var decoratorClass = this._findDecorator(type, subType);\r\n return new decoratorClass(this._list)\r\n },\r\n _findDecorator: function(type, subType) {\r\n var _registry$type;\r\n var foundDecorator = null === (_registry$type = registry[type]) || void 0 === _registry$type ? void 0 : _registry$type[subType];\r\n if (!foundDecorator) {\r\n throw errors.Error(\"E1012\", type, subType)\r\n }\r\n return foundDecorator\r\n },\r\n modifyItemElement: function(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: function() {\r\n this._applyDecorators(DECORATOR_AFTER_RENDER_METHOD)\r\n },\r\n _prependBeforeBags: function($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: function($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: function(method, config, containerClass) {\r\n var $collector = $(\"
\");\r\n each(this._decorators, (function() {\r\n var $container = $(\"
\").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: function(method, config) {\r\n each(this._decorators, (function() {\r\n this[method](config)\r\n }))\r\n },\r\n _handlerExists: function(name) {\r\n if (!this._decorators) {\r\n return false\r\n }\r\n var decorators = this._decorators;\r\n var length = decorators.length;\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: function(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 length = decorators.length;\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: function($itemElement, e) {\r\n return this._eventHandler(\"handleClick\", $itemElement, e)\r\n },\r\n handleKeyboardEvents: function(currentFocusedIndex, moveFocusUp) {\r\n return this._eventHandler(\"handleKeyboardEvents\", currentFocusedIndex, moveFocusUp)\r\n },\r\n handleEnterPressing: function(e) {\r\n return this._eventHandler(\"handleEnterPressing\", e)\r\n },\r\n contextMenuHandlerExists: function() {\r\n return this._handlerExists(\"handleContextMenu\")\r\n },\r\n handleContextMenu: function($itemElement, e) {\r\n return this._eventHandler(\"handleContextMenu\", $itemElement, e)\r\n },\r\n getExcludedItemSelectors: function() {\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/ui/list/ui.list.edit.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 isTouchEvent\r\n} from \"../../events/utils/index\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport GroupedEditStrategy from \"./ui.list.edit.strategy.grouped\";\r\nimport localizationMessage from \"../../localization/message\";\r\nimport EditProvider from \"./ui.list.edit.provider\";\r\nimport {\r\n ListBase\r\n} from \"./ui.list.base\";\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._isDataSourceLoading()) {\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: function(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: function(changeData) {\r\n if (this.option(\"grouped\")) {\r\n var _this$_editStrategy$g;\r\n var groupIndex = null === (_this$_editStrategy$g = this._editStrategy.getIndexByItemData(changeData)) || void 0 === _this$_editStrategy$g ? void 0 : _this$_editStrategy$g.group;\r\n return this._getGroupContainerByIndex(groupIndex)\r\n } else {\r\n return this.callBase(changeData)\r\n }\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._dataSource.pageIndex(0);\r\n this._dataSource.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});\r\nexport default ListEdit;\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.search.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ListEdit from \"./ui.list.edit\";\r\nimport searchBoxMixin from \"../widget/ui.search_box_mixin\";\r\nvar ListSearch = ListEdit.inherit(searchBoxMixin).inherit({\r\n _addWidgetPrefix: function(className) {\r\n return \"dx-list-\" + className\r\n },\r\n _getCombinedFilter: function() {\r\n var filter;\r\n var storeLoadOptions;\r\n var dataSource = this._dataSource;\r\n if (dataSource) {\r\n storeLoadOptions = {\r\n filter: dataSource.filter()\r\n };\r\n dataSource._addSearchFilter(storeLoadOptions);\r\n filter = storeLoadOptions.filter\r\n }\r\n return filter\r\n },\r\n _initDataSource: function() {\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 if (this._dataSource) {\r\n value && value.length && this._dataSource.searchValue(value);\r\n mode.length && this._dataSource.searchOperation(searchBoxMixin.getOperationBySearchMode(mode));\r\n expr && this._dataSource.searchExpr(expr)\r\n }\r\n }\r\n});\r\nexport default ListSearch;\r\n","/**\r\n * DevExtreme (esm/ui/list_light.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ListEdit from \"./list/ui.list.edit.search\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nregisterComponent(\"dxList\", ListEdit);\r\nexport default ListEdit;\r\n","/*!\n * devextreme-vue\n * Version: 22.1.5\n * Build date: Fri Sep 02 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BaseComponent = exports.DxComponent = void 0;\nvar VueType = __importStar(require(\"vue\"));\nvar events_1 = require(\"devextreme/events\");\nvar children_processing_1 = require(\"./children-processing\");\nvar configuration_1 = __importStar(require(\"./configuration\"));\nvar configuration_component_1 = require(\"./configuration-component\");\nvar constants_1 = require(\"./constants\");\nvar helpers_1 = require(\"./helpers\");\nvar templates_manager_1 = require(\"./templates-manager\");\nvar Vue = VueType.default || VueType;\nvar BaseComponent = function () { return Vue.extend({\n inheritAttrs: false,\n data: function () {\n return {\n eventBus: new Vue()\n };\n },\n provide: function () {\n return {\n eventBus: this.eventBus\n };\n },\n render: function (createElement) {\n var children = [];\n if (this.$_config.cleanNested) {\n this.$_config.cleanNested();\n }\n children_processing_1.pullAllChildren(this.$slots.default, children, this.$_config);\n this.$_processChildren(children);\n return createElement(\"div\", {\n attrs: { id: this.$attrs.id }\n }, children);\n },\n beforeUpdate: function () {\n this.$_config.setPrevNestedOptions(this.$_config.getNestedOptionValues());\n },\n updated: function () {\n var _a, _b;\n this.$children.forEach(function (child) { return configuration_component_1.initOptionChangedFunc(configuration_component_1.getConfig(child), child, configuration_component_1.getInnerChanges(child)); });\n this.$_templatesManager.discover();\n this.$_instance.beginUpdate();\n if (this.$_templatesManager.isDirty) {\n this.$_instance.option(\"integrationOptions.templates\", this.$_templatesManager.templates);\n var props = (_b = (_a = this.$vnode) === null || _a === void 0 ? void 0 : _a.componentOptions) === null || _b === void 0 ? void 0 : _b.propsData;\n for (var _i = 0, _c = Object.keys(this.$_templatesManager.templates); _i < _c.length; _i++) {\n var name_1 = _c[_i];\n this.$_instance.option(helpers_1.getTemplatePropName(props, name_1), name_1);\n }\n this.$_templatesManager.resetDirtyFlag();\n }\n for (var _d = 0, _e = Object.keys(this.$_pendingOptions); _d < _e.length; _d++) {\n var name_2 = _e[_d];\n this.$_instance.option(name_2, this.$_pendingOptions[name_2]);\n }\n this.$_pendingOptions = {};\n this.$_applyConfigurationChanges();\n this.$_instance.endUpdate();\n this.eventBus.$emit(\"updated\");\n },\n beforeDestroy: function () {\n var instance = this.$_instance;\n if (instance) {\n events_1.triggerHandler(this.$el, constants_1.DX_REMOVE_EVENT);\n instance.dispose();\n }\n },\n created: function () {\n var _this = this;\n this.$_config = new configuration_1.default(function (n, v) { return _this.$_pendingOptions[n] = v; }, null, this.$options.propsData && __assign({}, this.$options.propsData), this.$_expectedChildren);\n this.$_innerChanges = {};\n this.$_config.init(this.$props && Object.keys(this.$props));\n },\n methods: {\n $_applyConfigurationChanges: function () {\n var _this = this;\n this.$_config.componentsCountChanged.forEach(function (_a) {\n var optionPath = _a.optionPath, isCollection = _a.isCollection, removed = _a.removed;\n var options = _this.$_config.getNestedOptionValues();\n if (!isCollection && removed) {\n _this.$_instance.resetOption(optionPath);\n }\n else {\n _this.$_instance.option(optionPath, helpers_1.getOptionValue(options, optionPath));\n }\n });\n this.$_config.cleanComponentsCountChanged();\n },\n $_createWidget: function (element) {\n var thisComponent = this;\n thisComponent.$_pendingOptions = {};\n thisComponent.$_templatesManager = new templates_manager_1.TemplatesManager(this);\n var config = this.$_config;\n var options = __assign(__assign(__assign(__assign({}, this.$options.propsData), config.initialValues), config.getNestedOptionValues()), this.$_getIntegrationOptions());\n var instance = new this.$_WidgetClass(element, options);\n thisComponent.$_instance = instance;\n instance.on(\"optionChanged\", function (args) { return config.onOptionChanged(args); });\n configuration_1.setEmitOptionChangedFunc(config, this, this.$_innerChanges);\n configuration_1.bindOptionWatchers(config, this, this.$_innerChanges);\n this.$_createEmitters(instance);\n },\n $_getIntegrationOptions: function () {\n var _a, _b;\n var result = __assign({ integrationOptions: {\n watchMethod: this.$_getWatchMethod(),\n } }, this.$_getExtraIntegrationOptions());\n if (this.$_templatesManager.isDirty) {\n var templates = this.$_templatesManager.templates;\n result.integrationOptions.templates = templates;\n var props = (_b = (_a = this.$vnode) === null || _a === void 0 ? void 0 : _a.componentOptions) === null || _b === void 0 ? void 0 : _b.propsData;\n for (var _i = 0, _c = Object.keys(templates); _i < _c.length; _i++) {\n var name_3 = _c[_i];\n result[helpers_1.getTemplatePropName(props, name_3)] = name_3;\n }\n this.$_templatesManager.resetDirtyFlag();\n }\n return result;\n },\n $_getWatchMethod: function () {\n var _this = this;\n return function (valueGetter, valueChangeCallback, options) {\n options = options || {};\n if (!options.skipImmediate) {\n valueChangeCallback(valueGetter());\n }\n return _this.$watch(function () {\n return valueGetter();\n }, function (newValue, oldValue) {\n if (helpers_1.toComparable(oldValue) !== helpers_1.toComparable(newValue) || options.deep) {\n valueChangeCallback(newValue);\n }\n }, {\n deep: options.deep\n });\n };\n },\n $_getExtraIntegrationOptions: function () {\n return {};\n },\n $_processChildren: function (_children) {\n return;\n },\n $_createEmitters: function (instance) {\n var _this = this;\n Object.keys(this.$listeners).forEach(function (listenerName) {\n var eventName = helpers_1.camelize(listenerName);\n instance.on(eventName, function (e) {\n _this.$emit(listenerName, e);\n });\n });\n }\n }\n}); };\nexports.BaseComponent = BaseComponent;\nfunction cleanWidgetNode(node) {\n var removedNodes = [];\n helpers_1.forEachChildNode(node, function (childNode) {\n var parent = childNode.parentNode;\n var isExtension = childNode.hasAttribute && childNode.hasAttribute(\"isExtension\");\n if ((childNode.nodeName === \"#comment\" || isExtension) && parent) {\n removedNodes.push(childNode);\n parent.removeChild(childNode);\n }\n });\n return removedNodes;\n}\nfunction restoreNodes(el, nodes) {\n nodes.forEach(function (node) {\n el.appendChild(node);\n });\n}\nvar DxComponent = function () { return BaseComponent().extend({\n methods: {\n $_getExtraIntegrationOptions: function () {\n return {\n onInitializing: function () {\n this.beginUpdate();\n }\n };\n },\n $_processChildren: function (children) {\n children.forEach(function (childNode) {\n if (!childNode.componentOptions) {\n return;\n }\n childNode.componentOptions.$_hasOwner = true;\n });\n },\n },\n mounted: function () {\n var _this = this;\n var nodes = cleanWidgetNode(this.$el);\n this.$_createWidget(this.$el);\n this.$_instance.endUpdate();\n restoreNodes(this.$el, nodes);\n if (this.$slots && this.$slots.default) {\n this.$slots.default.forEach(function (child) {\n var childExtension = child.componentInstance;\n if (childExtension && childExtension.$_isExtension) {\n childExtension.attachTo(_this.$el);\n }\n });\n }\n }\n}); };\nexports.DxComponent = DxComponent;\n","/*!\n * devextreme-vue\n * Version: 22.1.5\n * Build date: Fri Sep 02 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.discover = exports.mountTemplate = void 0;\nvar vue_helper_1 = require(\"./vue-helper\");\nvar vue_1 = require(\"vue\");\nvar TEMPLATE_PROP = \"template\";\nfunction asConfigurable(component) {\n var componentOptions = component;\n if (!componentOptions) {\n return;\n }\n if (!componentOptions.$_config || !componentOptions.$_config.name) {\n return undefined;\n }\n return componentOptions;\n}\nfunction hasTemplate(component) {\n return TEMPLATE_PROP in component.type.props && vue_helper_1.configurationTemplate(component);\n}\nfunction discover(component) {\n var templates = {};\n var namedTeplates = vue_helper_1.declaredTemplates(component);\n for (var slotName in namedTeplates) {\n if (slotName === \"default\" && component.$slots.default) {\n continue;\n }\n var slot = namedTeplates[slotName];\n if (!slot) {\n continue;\n }\n templates[slotName] = slot;\n }\n var componentChildren = vue_helper_1.getChildren(component);\n for (var _i = 0, componentChildren_1 = componentChildren; _i < componentChildren_1.length; _i++) {\n var childComponent = componentChildren_1[_i];\n var configurable = asConfigurable(childComponent);\n if (!configurable) {\n continue;\n }\n var defaultSlot = vue_helper_1.configurationDefaultTemplate(childComponent);\n if (!defaultSlot || !hasTemplate(childComponent)) {\n continue;\n }\n var templateName = configurable.$_config.fullPath + \".\" + TEMPLATE_PROP;\n templates[templateName] = defaultSlot;\n }\n return templates;\n}\nexports.discover = discover;\nfunction clearConfiguration(content) {\n var newContent = [];\n content.forEach(function (item) {\n var configurable = vue_helper_1.getConfigurationOptions(item);\n if (!configurable || !configurable.$_optionName) {\n newContent.push(item);\n }\n });\n return newContent;\n}\nfunction mountTemplate(getSlot, parent, data, name, placeholder) {\n return vue_helper_1.mount({\n name: name,\n inject: [\"eventBus\"],\n created: function () {\n this.eventBus.add(this.$_updatedHandler);\n },\n mounted: function () {\n data.onRendered();\n },\n unmounted: function () {\n this.eventBus.remove(this.$_updatedHandler);\n },\n methods: {\n $_updatedHandler: function () {\n this.$forceUpdate();\n }\n },\n render: function () {\n var content = clearConfiguration(getSlot()(data));\n if (!content) {\n return vue_1.h(\"div\");\n }\n return content.length > 1 ? content : content[0];\n }\n }, parent, placeholder);\n}\nexports.mountTemplate = mountTemplate;\n","/**\r\n * DevExtreme (esm/ui/widget/ui.errors.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errorUtils from \"../../core/utils/error\";\r\nimport errors from \"../../core/errors\";\r\nexport default errorUtils(errors.ERROR_MESSAGES, {\r\n E1001: \"Module '{0}'. Controller '{1}' is already registered\",\r\n E1002: \"Module '{0}'. Controller '{1}' does not inherit from DevExpress.ui.dxDataGrid.Controller\",\r\n E1003: \"Module '{0}'. View '{1}' is already registered\",\r\n E1004: \"Module '{0}'. View '{1}' does not inherit from DevExpress.ui.dxDataGrid.View\",\r\n E1005: \"Public method '{0}' is already registered\",\r\n E1006: \"Public method '{0}.{1}' does not exist\",\r\n E1007: \"State storing cannot be provided due to the restrictions of the browser\",\r\n E1010: \"The template does not contain the TextBox widget\",\r\n E1011: 'Items cannot be deleted from the List. Implement the \"remove\" function in the data store',\r\n E1012: \"Editing type '{0}' with the name '{1}' is unsupported\",\r\n E1016: \"Unexpected type of data source is provided for a lookup column\",\r\n E1018: \"The 'collapseAll' method cannot be called if you use a remote data source\",\r\n E1019: \"Search mode '{0}' is unavailable\",\r\n E1020: \"The type cannot be changed after initialization\",\r\n E1021: \"{0} '{1}' you are trying to remove does not exist\",\r\n E1022: 'The \"markers\" option is given an invalid value. Assign an array instead',\r\n E1023: 'The \"routes\" option is given an invalid value. Assign an array instead',\r\n E1025: \"This layout is too complex to render\",\r\n E1026: 'The \"calculateCustomSummary\" function is missing from a field whose \"summaryType\" option is set to \"custom\"',\r\n E1031: \"Unknown subscription in the Scheduler widget: '{0}'\",\r\n E1032: \"Unknown start date in an appointment: '{0}'\",\r\n E1033: \"Unknown step in the date navigator: '{0}'\",\r\n E1034: \"The browser does not implement an API for saving files\",\r\n E1035: \"The editor cannot be created because of an internal error: {0}\",\r\n E1037: \"Invalid structure of grouped data\",\r\n E1038: \"The browser does not support local storages for local web pages\",\r\n E1039: \"A cell's position cannot be calculated\",\r\n E1040: \"The '{0}' key value is not unique within the data array\",\r\n E1041: \"The '{0}' script is referenced after the DevExtreme scripts or not referenced at all\",\r\n E1042: \"{0} requires the key field to be specified\",\r\n E1043: \"Changes cannot be processed due to the incorrectly set key\",\r\n E1044: \"The key field specified by the keyExpr option does not match the key field specified in the data store\",\r\n E1045: \"Editing requires the key field to be specified in the data store\",\r\n E1046: \"The '{0}' key field is not found in data objects\",\r\n E1047: 'The \"{0}\" field is not found in the fields array',\r\n E1048: 'The \"{0}\" operation is not found in the filterOperations array',\r\n E1049: \"Column '{0}': filtering is allowed but the 'dataField' or 'name' option is not specified\",\r\n E1050: \"The validationRules option does not apply to third-party editors defined in the editCellTemplate\",\r\n E1051: 'HtmlEditor\\'s valueType is \"{0}\", but the {0} converter was not imported.',\r\n E1052: '{0} should have the \"dataSource\" option specified',\r\n E1053: 'The \"buttons\" option accepts an array that contains only objects or string values',\r\n E1054: \"All text editor buttons must have names\",\r\n E1055: 'One or several text editor buttons have invalid or non-unique \"name\" values',\r\n E1056: 'The {0} widget does not support buttons of the \"{1}\" type',\r\n E1058: 'The \"startDayHour\" must be earlier than the \"endDayHour\"',\r\n E1059: \"The following column names are not unique: {0}\",\r\n E1060: \"All editable columns must have names\",\r\n W1001: 'The \"key\" option cannot be modified after initialization',\r\n W1002: \"An item with the key '{0}' does not exist\",\r\n W1003: \"A group with the key '{0}' in which you are trying to select items does not exist\",\r\n W1004: \"The item '{0}' you are trying to select in the group '{1}' does not exist\",\r\n W1005: \"Due to column data types being unspecified, data has been loaded twice in order to apply initial filter settings. To resolve this issue, specify data types for all grid columns.\",\r\n W1006: \"The map service returned the following error: '{0}'\",\r\n W1007: \"No item with key {0} was found in the data source, but this key was used as the parent key for item {1}\",\r\n W1008: \"Cannot scroll to the '{0}' date because it does not exist on the current view\",\r\n W1009: \"Searching works only if data is specified using the dataSource option\",\r\n W1010: \"The capability to select all items works with source data of plain structure only\",\r\n W1011: 'The \"keyExpr\" option is not applied when dataSource is not an array',\r\n W1012: \"The '{0}' key field is not found in data objects\",\r\n W1013: 'The \"message\" field in the dialog component was renamed to \"messageHtml\". Change your code correspondingly. In addition, if you used HTML code in the message, make sure that it is secure',\r\n W1014: \"The Floating Action Button exceeds the recommended speed dial action count. If you need to display more speed dial actions, increase the maxSpeedDialActionCount option value in the global config.\",\r\n W1015: 'The \"cellDuration\" should divide the range from the \"startDayHour\" to the \"endDayHour\" into even intervals',\r\n W1016: \"The '{0}' field in the HTML Editor toolbar item configuration was renamed to '{1}'. Please make a corresponding change in your code.\",\r\n W1017: \"The 'key' property is not specified for a lookup data source. Please specify it to prevent requests for the entire dataset when users filter data.\",\r\n W1018: \"Infinite scrolling may not work properly with multiple selection. To use these features together, set 'selection.deferred' to true or set 'selection.selectAllMode' to 'page'.\",\r\n W1019: \"Filter query string exceeds maximum length limit of {0} characters.\",\r\n W1020: \"hideEvent is ignored when the shading property is true\"\r\n});\r\n","/**\r\n * DevExtreme (esm/data/array_store.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n rejectedPromise,\r\n trivialPromise\r\n} from \"./utils\";\r\nimport Query from \"./query\";\r\nimport {\r\n errors\r\n} from \"./errors\";\r\nimport Store from \"./abstract_store\";\r\nimport {\r\n indexByKey,\r\n insert,\r\n applyBatch,\r\n update,\r\n remove\r\n} from \"./array_utils\";\r\nvar ArrayStore = Store.inherit({\r\n ctor: function(options) {\r\n if (Array.isArray(options)) {\r\n options = {\r\n data: options\r\n }\r\n } else {\r\n options = options || {}\r\n }\r\n this.callBase(options);\r\n var initialArray = options.data;\r\n if (initialArray && !Array.isArray(initialArray)) {\r\n throw errors.Error(\"E4006\")\r\n }\r\n this._array = initialArray || []\r\n },\r\n createQuery: function() {\r\n return Query(this._array, {\r\n errorHandler: this._errorHandler\r\n })\r\n },\r\n _byKeyImpl: function(key) {\r\n var index = indexByKey(this, this._array, key);\r\n if (-1 === index) {\r\n return rejectedPromise(errors.Error(\"E4009\"))\r\n }\r\n return trivialPromise(this._array[index])\r\n },\r\n _insertImpl: function(values) {\r\n return insert(this, this._array, values)\r\n },\r\n _pushImpl: function(changes) {\r\n applyBatch({\r\n keyInfo: this,\r\n data: this._array,\r\n changes: changes\r\n })\r\n },\r\n _updateImpl: function(key, values) {\r\n return update(this, this._array, key, values)\r\n },\r\n _removeImpl: function(key) {\r\n return remove(this, this._array, key)\r\n },\r\n clear: function() {\r\n this._eventsStrategy.fireEvent(\"modifying\");\r\n this._array = [];\r\n this._eventsStrategy.fireEvent(\"modified\")\r\n }\r\n}, \"array\");\r\nexport default ArrayStore;\r\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.async.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport CollectionWidgetEdit from \"./ui.collection_widget.edit\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar AsyncCollectionWidget = CollectionWidgetEdit.inherit({\r\n _initMarkup() {\r\n this._deferredItems = [];\r\n this.callBase()\r\n },\r\n _renderItemContent(args) {\r\n var renderContentDeferred = new Deferred;\r\n var itemDeferred = new Deferred;\r\n this._deferredItems[args.index] = itemDeferred;\r\n var $itemContent = this.callBase.call(this, args);\r\n itemDeferred.done(() => {\r\n renderContentDeferred.resolve($itemContent)\r\n });\r\n return renderContentDeferred.promise()\r\n },\r\n _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: () => {\r\n this._deferredItems[renderArgs.index].resolve()\r\n }\r\n })\r\n },\r\n _postProcessRenderItems: noop,\r\n _renderItemsAsync() {\r\n var d = new Deferred;\r\n when.apply(this, this._deferredItems).done(() => {\r\n this._postProcessRenderItems();\r\n d.resolve()\r\n });\r\n return d.promise()\r\n },\r\n _clean() {\r\n this.callBase();\r\n this._deferredItems = []\r\n }\r\n});\r\nexport default AsyncCollectionWidget;\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/ui.toolbar.base.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getOuterWidth,\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isMaterial,\r\n waitWebFont\r\n} from \"../themes\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isPlainObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport AsyncCollectionWidget from \"../collection/ui.collection_widget.async\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../core/templates/bindable_template\";\r\nimport errors from \"../../core/errors\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n TOOLBAR_CLASS\r\n} from \"./constants\";\r\nvar TOOLBAR_BEFORE_CLASS = \"dx-toolbar-before\";\r\nvar TOOLBAR_CENTER_CLASS = \"dx-toolbar-center\";\r\nvar TOOLBAR_AFTER_CLASS = \"dx-toolbar-after\";\r\nvar TOOLBAR_MINI_CLASS = \"dx-toolbar-mini\";\r\nvar TOOLBAR_ITEM_CLASS = \"dx-toolbar-item\";\r\nvar TOOLBAR_LABEL_CLASS = \"dx-toolbar-label\";\r\nvar TOOLBAR_BUTTON_CLASS = \"dx-toolbar-button\";\r\nvar TOOLBAR_ITEMS_CONTAINER_CLASS = \"dx-toolbar-items-container\";\r\nvar TOOLBAR_GROUP_CLASS = \"dx-toolbar-group\";\r\nvar TOOLBAR_COMPACT_CLASS = \"dx-toolbar-compact\";\r\nvar TOOLBAR_LABEL_SELECTOR = \".\" + TOOLBAR_LABEL_CLASS;\r\nvar TOOLBAR_MULTILINE_CLASS = \"dx-toolbar-multiline\";\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 ToolbarBase = AsyncCollectionWidget.inherit({\r\n compactMode: false,\r\n ctor: function(element, options) {\r\n this._userOptions = options || {};\r\n this.callBase(element, options);\r\n if (\"height\" in this._userOptions) {\r\n errors.log(\"W0001\", this.NAME, \"height\", \"20.1\", \"Functionality associated with this option is not intended for the Toolbar widget.\")\r\n }\r\n },\r\n _getSynchronizableOptionsForCreateComponent: function() {\r\n return this.callBase().filter(item => \"disabled\" !== item)\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n var template = new BindableTemplate(function($container, data, rawModel) {\r\n if (isPlainObject(data)) {\r\n if (data.text) {\r\n $container.text(data.text).wrapInner(\"
\")\r\n }\r\n if (data.html) {\r\n $container.html(data.html)\r\n }\r\n if (\"dxDropDownButton\" === data.widget) {\r\n data.options = data.options || {};\r\n if (!isDefined(data.options.stylingMode)) {\r\n data.options.stylingMode = this.option(\"useFlatButtons\") ? TEXT_BUTTON_MODE : DEFAULT_DROPDOWNBUTTON_STYLING_MODE\r\n }\r\n }\r\n if (\"dxButton\" === data.widget) {\r\n if (this.option(\"useFlatButtons\")) {\r\n data.options = data.options || {};\r\n data.options.stylingMode = data.options.stylingMode || TEXT_BUTTON_MODE\r\n }\r\n if (this.option(\"useDefaultButtons\")) {\r\n data.options = data.options || {};\r\n data.options.type = data.options.type || DEFAULT_BUTTON_TYPE\r\n }\r\n }\r\n } else {\r\n $container.text(String(data))\r\n }\r\n this._getTemplate(\"dx-polymorph-widget\").render({\r\n container: $container,\r\n model: rawModel,\r\n parent: this\r\n })\r\n }.bind(this), [\"text\", \"html\", \"widget\", \"options\"], this.option(\"integrationOptions.watchMethod\"));\r\n this._templateManager.addDefaultTemplates({\r\n item: template,\r\n menuItem: template\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n renderAs: \"topToolbar\",\r\n grouped: false,\r\n useFlatButtons: false,\r\n useDefaultButtons: false,\r\n multiline: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n useFlatButtons: true\r\n }\r\n }])\r\n },\r\n _itemContainer: function() {\r\n return this._$toolbarItemsContainer.find([\".\" + TOOLBAR_BEFORE_CLASS, \".\" + TOOLBAR_CENTER_CLASS, \".\" + TOOLBAR_AFTER_CLASS].join(\",\"))\r\n },\r\n _itemClass: function() {\r\n return TOOLBAR_ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return TOOLBAR_ITEM_DATA_KEY\r\n },\r\n _buttonClass: function() {\r\n return TOOLBAR_BUTTON_CLASS\r\n },\r\n _dimensionChanged: function() {\r\n this._arrangeItems();\r\n this._applyCompactMode()\r\n },\r\n _initMarkup: function() {\r\n this._renderToolbar();\r\n this._renderSections();\r\n this.callBase();\r\n this.setAria(\"role\", \"toolbar\")\r\n },\r\n _waitParentAnimationFinished: function() {\r\n var $element = this.$element();\r\n return new Promise(resolve => {\r\n var runCheck = () => {\r\n clearTimeout(this._waitParentAnimationTimeout);\r\n this._waitParentAnimationTimeout = setTimeout(() => (() => {\r\n var readyToResolve = true;\r\n $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 })() || runCheck(), 15)\r\n };\r\n runCheck()\r\n })\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderItemsAsync();\r\n if (isMaterial()) {\r\n Promise.all([this._waitParentAnimationFinished(), this._checkWebFontForLabelsLoaded()]).then(this._dimensionChanged.bind(this))\r\n }\r\n },\r\n _postProcessRenderItems: function() {\r\n this._arrangeItems()\r\n },\r\n _renderToolbar: function() {\r\n this.$element().addClass(TOOLBAR_CLASS).toggleClass(TOOLBAR_MULTILINE_CLASS, this.option(\"multiline\"));\r\n this._$toolbarItemsContainer = $(\"
\").addClass(TOOLBAR_ITEMS_CONTAINER_CLASS).appendTo(this.$element())\r\n },\r\n _renderSections: function() {\r\n var $container = this._$toolbarItemsContainer;\r\n var that = this;\r\n each([\"before\", \"center\", \"after\"], (function() {\r\n var sectionClass = \"dx-toolbar-\" + this;\r\n var $section = $container.find(\".\" + sectionClass);\r\n if (!$section.length) {\r\n that[\"_$\" + this + \"Section\"] = $section = $(\"
\").addClass(sectionClass).appendTo($container)\r\n }\r\n }))\r\n },\r\n _checkWebFontForLabelsLoaded: function() {\r\n var $labels = this.$element().find(TOOLBAR_LABEL_SELECTOR);\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 },\r\n _arrangeItems: function(elementWidth) {\r\n elementWidth = elementWidth || getWidth(this.$element());\r\n this._$centerSection.css({\r\n margin: \"0 auto\",\r\n float: \"none\"\r\n });\r\n var beforeRect = getBoundingRect(this._$beforeSection.get(0));\r\n var afterRect = getBoundingRect(this._$afterSection.get(0));\r\n this._alignCenterSection(beforeRect, afterRect, elementWidth);\r\n var $label = this._$toolbarItemsContainer.find(TOOLBAR_LABEL_SELECTOR).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(TOOLBAR_LABEL_SELECTOR).each((function() {\r\n elemsAtSectionWidth += getOuterWidth(this)\r\n }));\r\n var freeSpace = elementWidth - elemsAtSectionWidth;\r\n var sectionMaxWidth = Math.max(freeSpace - widthBeforeSection - widthAfterSection, 0);\r\n if ($section.hasClass(TOOLBAR_BEFORE_CLASS)) {\r\n this._alignSection(this._$beforeSection, sectionMaxWidth)\r\n } else {\r\n var labelPaddings = getOuterWidth($label) - getWidth($label);\r\n $label.css(\"maxWidth\", sectionMaxWidth - labelPaddings)\r\n }\r\n },\r\n _alignCenterSection: function(beforeRect, afterRect, elementWidth) {\r\n this._alignSection(this._$centerSection, elementWidth - beforeRect.width - afterRect.width);\r\n var isRTL = this.option(\"rtlEnabled\");\r\n var leftRect = isRTL ? afterRect : beforeRect;\r\n var rightRect = isRTL ? beforeRect : afterRect;\r\n var centerRect = getBoundingRect(this._$centerSection.get(0));\r\n if (leftRect.right > centerRect.left || centerRect.right > rightRect.left) {\r\n this._$centerSection.css({\r\n marginLeft: leftRect.width,\r\n marginRight: rightRect.width,\r\n float: leftRect.width > rightRect.width ? \"none\" : \"right\"\r\n })\r\n }\r\n },\r\n _alignSection: function($section, maxWidth) {\r\n var $labels = $section.find(TOOLBAR_LABEL_SELECTOR);\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: function(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: function() {\r\n var $element = this.$element();\r\n $element.removeClass(TOOLBAR_COMPACT_CLASS);\r\n if (this.option(\"compactMode\") && this._getSummaryItemsWidth(this.itemElements(), true) > getWidth($element)) {\r\n $element.addClass(TOOLBAR_COMPACT_CLASS)\r\n }\r\n },\r\n _getCurrentLabelsWidth: function(labels) {\r\n var width = 0;\r\n labels.forEach((function(label, index) {\r\n width += getOuterWidth(label)\r\n }));\r\n return width\r\n },\r\n _getCurrentLabelsPaddings: function(labels) {\r\n var padding = 0;\r\n labels.forEach((function(label, index) {\r\n padding += getOuterWidth(label) - getWidth(label)\r\n }));\r\n return padding\r\n },\r\n _renderItem: function(index, item, itemContainer, $after) {\r\n var location = item.location || \"center\";\r\n var container = itemContainer || this[\"_$\" + location + \"Section\"];\r\n var itemHasText = !!(item.text || item.html);\r\n var itemElement = this.callBase(index, item, container, $after);\r\n itemElement.toggleClass(this._buttonClass(), !itemHasText).toggleClass(TOOLBAR_LABEL_CLASS, itemHasText).addClass(item.cssClass);\r\n return itemElement\r\n },\r\n _renderGroupedItems: function() {\r\n var that = this;\r\n each(this.option(\"items\"), (function(groupIndex, group) {\r\n var groupItems = group.items;\r\n var $container = $(\"
\").addClass(TOOLBAR_GROUP_CLASS);\r\n var location = group.location || \"center\";\r\n if (!groupItems || !groupItems.length) {\r\n return\r\n }\r\n each(groupItems, (function(itemIndex, item) {\r\n that._renderItem(itemIndex, item, $container, null)\r\n }));\r\n that._$toolbarItemsContainer.find(\".dx-toolbar-\" + location).append($container)\r\n }))\r\n },\r\n _renderItems: function(items) {\r\n var grouped = this.option(\"grouped\") && items.length && items[0].items;\r\n grouped ? this._renderGroupedItems() : this.callBase(items)\r\n },\r\n _getToolbarItems: function() {\r\n return this.option(\"items\") || []\r\n },\r\n _renderContentImpl: function() {\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: noop,\r\n _clean: function() {\r\n this._$toolbarItemsContainer.children().empty();\r\n this.$element().empty()\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._arrangeItems()\r\n }\r\n },\r\n _isVisible: function() {\r\n return getWidth(this.$element()) > 0 && getHeight(this.$element()) > 0\r\n },\r\n _getIndexByItem: function(item) {\r\n return this._getToolbarItems().indexOf(item)\r\n },\r\n _itemOptionChanged: function(item, property, value) {\r\n this.callBase.apply(this, [item, property, value]);\r\n this._arrangeItems()\r\n },\r\n _optionChanged: function(args) {\r\n var name = args.name;\r\n switch (name) {\r\n case \"width\":\r\n this.callBase.apply(this, arguments);\r\n this._dimensionChanged();\r\n break;\r\n case \"multiline\":\r\n this.$element().toggleClass(TOOLBAR_MULTILINE_CLASS, args.value);\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 this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _dispose: function() {\r\n this.callBase();\r\n clearTimeout(this._waitParentAnimationTimeout)\r\n }\r\n});\r\nregisterComponent(\"dxToolbarBase\", ToolbarBase);\r\nexport default ToolbarBase;\r\n","/**\r\n * DevExtreme (esm/events/core/event_registrator_callbacks.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport MemorizedCallbacks from \"../../core/memorized_callbacks\";\r\nexport default new MemorizedCallbacks;\r\n","/**\r\n * DevExtreme (esm/ui/collection/item.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 Class from \"../../core/class\";\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: function() {\r\n filteredCallback(fn())\r\n }\r\n }\r\n};\r\nvar CollectionItem = Class.inherit({\r\n ctor: function($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: function() {\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: function() {\r\n this._startWatcher(\"disabled\", this._renderDisabled.bind(this));\r\n this._startWatcher(\"visible\", this._renderVisible.bind(this))\r\n },\r\n _startWatcher: function(field, render) {\r\n var rawData = this._rawData;\r\n var exprGetter = this._options.fieldGetter(field);\r\n var watcher = forcibleWatcher(this._options.watchMethod(), (function() {\r\n return exprGetter(rawData)\r\n }), function(value, oldValue) {\r\n this._dirty = true;\r\n render(value, oldValue)\r\n }.bind(this));\r\n this._watchers.push(watcher)\r\n },\r\n setDataField: function() {\r\n this._dirty = false;\r\n each(this._watchers, (function(_, watcher) {\r\n watcher.force()\r\n }));\r\n if (this._dirty) {\r\n return true\r\n }\r\n },\r\n _renderDisabled: function(value, oldValue) {\r\n this._$element.toggleClass(DISABLED_STATE_CLASS, !!value);\r\n this._updateOwnerFocus(value)\r\n },\r\n _updateOwnerFocus: function(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: function(value, oldValue) {\r\n this._$element.toggleClass(INVISIBLE_STATE_CLASS, void 0 !== value && !value)\r\n },\r\n _dispose: function() {\r\n each(this._watchers, (function(_, 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/events/visibility_change.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 \"./core/events_engine\";\r\nvar triggerVisibilityChangeEvent = function(eventName) {\r\n return function(element) {\r\n var $element = $(element || \"body\");\r\n var changeHandlers = $element.filter(\".dx-visibility-change-handler\").add($element.find(\".dx-visibility-change-handler\"));\r\n for (var i = 0; i < changeHandlers.length; i++) {\r\n eventsEngine.triggerHandler(changeHandlers[i], eventName)\r\n }\r\n }\r\n};\r\nexport var triggerShownEvent = triggerVisibilityChangeEvent(\"dxshown\");\r\nexport var triggerHidingEvent = triggerVisibilityChangeEvent(\"dxhiding\");\r\nexport var triggerResizeEvent = triggerVisibilityChangeEvent(\"dxresize\");\r\n","/**\r\n * DevExtreme (esm/data/array_utils.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 isEmptyObject,\r\n isObject,\r\n isPlainObject\r\n} from \"../core/utils/type\";\r\nimport config from \"../core/config\";\r\nimport Guid from \"../core/guid\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n errors\r\n} from \"./errors\";\r\nimport {\r\n deepExtendArraySafe\r\n} from \"../core/utils/object\";\r\nimport {\r\n compileGetter\r\n} from \"../core/utils/data\";\r\nimport {\r\n keysEqual,\r\n rejectedPromise,\r\n trivialPromise\r\n} from \"./utils\";\r\n\r\nfunction hasKey(target, keyOrKeys) {\r\n var key;\r\n var keys = \"string\" === typeof keyOrKeys ? keyOrKeys.split() : keyOrKeys.slice();\r\n while (keys.length) {\r\n key = keys.shift();\r\n if (key in target) {\r\n return true\r\n }\r\n }\r\n return false\r\n}\r\n\r\nfunction findItems(keyInfo, items, key, groupCount) {\r\n var childItems;\r\n var result;\r\n if (groupCount) {\r\n for (var i = 0; i < items.length; i++) {\r\n childItems = items[i].items || items[i].collapsedItems || [];\r\n result = findItems(keyInfo, childItems || [], key, groupCount - 1);\r\n if (result) {\r\n return result\r\n }\r\n }\r\n } else if (indexByKey(keyInfo, items, key) >= 0) {\r\n return items\r\n }\r\n}\r\n\r\nfunction getItems(keyInfo, items, key, groupCount) {\r\n if (groupCount) {\r\n return findItems(keyInfo, items, key, groupCount) || []\r\n }\r\n return items\r\n}\r\n\r\nfunction generateDataByKeyMap(keyInfo, array) {\r\n if (keyInfo.key() && (!array._dataByKeyMap || array._dataByKeyMapLength !== array.length)) {\r\n var dataByKeyMap = {};\r\n var arrayLength = array.length;\r\n for (var i = 0; i < arrayLength; i++) {\r\n dataByKeyMap[JSON.stringify(keyInfo.keyOf(array[i]))] = array[i]\r\n }\r\n array._dataByKeyMap = dataByKeyMap;\r\n array._dataByKeyMapLength = arrayLength\r\n }\r\n}\r\n\r\nfunction getCacheValue(array, key) {\r\n if (array._dataByKeyMap) {\r\n return array._dataByKeyMap[JSON.stringify(key)]\r\n }\r\n}\r\n\r\nfunction getHasKeyCacheValue(array, key) {\r\n if (array._dataByKeyMap) {\r\n return array._dataByKeyMap[JSON.stringify(key)]\r\n }\r\n return true\r\n}\r\n\r\nfunction setDataByKeyMapValue(array, key, data) {\r\n if (array._dataByKeyMap) {\r\n array._dataByKeyMap[JSON.stringify(key)] = data;\r\n array._dataByKeyMapLength += data ? 1 : -1\r\n }\r\n}\r\n\r\nfunction cloneInstanceWithChangedPaths(instance, changes, clonedInstances) {\r\n clonedInstances = clonedInstances || new WeakMap;\r\n var result = instance ? Object.create(Object.getPrototypeOf(instance)) : {};\r\n if (instance) {\r\n clonedInstances.set(instance, result)\r\n }\r\n var instanceWithoutPrototype = _extends({}, instance);\r\n deepExtendArraySafe(result, instanceWithoutPrototype, true, true);\r\n for (var name in instanceWithoutPrototype) {\r\n var value = instanceWithoutPrototype[name];\r\n var change = null === changes || void 0 === changes ? void 0 : changes[name];\r\n if (isObject(value) && !isPlainObject(value) && isObject(change) && !clonedInstances.has(value)) {\r\n result[name] = cloneInstanceWithChangedPaths(value, change, clonedInstances)\r\n }\r\n }\r\n for (var _name in result) {\r\n var prop = result[_name];\r\n if (isObject(prop) && clonedInstances.has(prop)) {\r\n result[_name] = clonedInstances.get(prop)\r\n }\r\n }\r\n return result\r\n}\r\n\r\nfunction createObjectWithChanges(target, changes) {\r\n var result = cloneInstanceWithChangedPaths(target, changes);\r\n return deepExtendArraySafe(result, changes, true, true)\r\n}\r\n\r\nfunction applyBatch(_ref) {\r\n var {\r\n keyInfo: keyInfo,\r\n data: data,\r\n changes: changes,\r\n groupCount: groupCount,\r\n useInsertIndex: useInsertIndex,\r\n immutable: immutable,\r\n disableCache: disableCache,\r\n logError: logError\r\n } = _ref;\r\n var resultItems = true === immutable ? [...data] : data;\r\n changes.forEach(item => {\r\n var items = \"insert\" === item.type ? resultItems : getItems(keyInfo, resultItems, item.key, groupCount);\r\n !disableCache && generateDataByKeyMap(keyInfo, items);\r\n switch (item.type) {\r\n case \"update\":\r\n update(keyInfo, items, item.key, item.data, true, immutable, logError);\r\n break;\r\n case \"insert\":\r\n insert(keyInfo, items, item.data, useInsertIndex && isDefined(item.index) ? item.index : -1, true, logError);\r\n break;\r\n case \"remove\":\r\n remove(keyInfo, items, item.key, true, logError)\r\n }\r\n });\r\n return resultItems\r\n}\r\n\r\nfunction getErrorResult(isBatch, logError, errorCode) {\r\n return !isBatch ? rejectedPromise(errors.Error(errorCode)) : logError && errors.log(errorCode)\r\n}\r\n\r\nfunction applyChanges(data, changes) {\r\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n var {\r\n keyExpr: keyExpr = \"id\",\r\n immutable: immutable = true\r\n } = options;\r\n var keyGetter = compileGetter(keyExpr);\r\n var keyInfo = {\r\n key: () => keyExpr,\r\n keyOf: obj => keyGetter(obj)\r\n };\r\n return applyBatch({\r\n keyInfo: keyInfo,\r\n data: data,\r\n changes: changes,\r\n immutable: immutable,\r\n disableCache: true,\r\n logError: true\r\n })\r\n}\r\n\r\nfunction update(keyInfo, array, key, data, isBatch, immutable, logError) {\r\n var target;\r\n var keyExpr = keyInfo.key();\r\n if (keyExpr) {\r\n if (hasKey(data, keyExpr) && !keysEqual(keyExpr, key, keyInfo.keyOf(data))) {\r\n return getErrorResult(isBatch, logError, \"E4017\")\r\n }\r\n target = getCacheValue(array, key);\r\n if (!target) {\r\n var index = indexByKey(keyInfo, array, key);\r\n if (index < 0) {\r\n return getErrorResult(isBatch, logError, \"E4009\")\r\n }\r\n target = array[index];\r\n if (true === immutable && isDefined(target)) {\r\n var newTarget = createObjectWithChanges(target, data);\r\n array[index] = newTarget;\r\n return !isBatch && trivialPromise(newTarget, key)\r\n }\r\n }\r\n } else {\r\n target = key\r\n }\r\n deepExtendArraySafe(target, data, true);\r\n if (!isBatch) {\r\n if (config().useLegacyStoreResult) {\r\n return trivialPromise(key, data)\r\n } else {\r\n return trivialPromise(target, key)\r\n }\r\n }\r\n}\r\n\r\nfunction insert(keyInfo, array, data, index, isBatch, logError) {\r\n var keyValue;\r\n var keyExpr = keyInfo.key();\r\n var obj = isPlainObject(data) ? extend({}, data) : data;\r\n if (keyExpr) {\r\n keyValue = keyInfo.keyOf(obj);\r\n if (void 0 === keyValue || \"object\" === typeof keyValue && isEmptyObject(keyValue)) {\r\n if (Array.isArray(keyExpr)) {\r\n throw errors.Error(\"E4007\")\r\n }\r\n keyValue = obj[keyExpr] = String(new Guid)\r\n } else if (void 0 !== array[indexByKey(keyInfo, array, keyValue)]) {\r\n return getErrorResult(isBatch, logError, \"E4008\")\r\n }\r\n } else {\r\n keyValue = obj\r\n }\r\n if (index >= 0) {\r\n array.splice(index, 0, obj)\r\n } else {\r\n array.push(obj)\r\n }\r\n setDataByKeyMapValue(array, keyValue, obj);\r\n if (!isBatch) {\r\n return trivialPromise(config().useLegacyStoreResult ? data : obj, keyValue)\r\n }\r\n}\r\n\r\nfunction remove(keyInfo, array, key, isBatch, logError) {\r\n var index = indexByKey(keyInfo, array, key);\r\n if (index > -1) {\r\n array.splice(index, 1);\r\n setDataByKeyMapValue(array, key, null)\r\n }\r\n if (!isBatch) {\r\n return trivialPromise(key)\r\n } else if (index < 0) {\r\n return getErrorResult(isBatch, logError, \"E4009\")\r\n }\r\n}\r\n\r\nfunction indexByKey(keyInfo, array, key) {\r\n var keyExpr = keyInfo.key();\r\n if (!getHasKeyCacheValue(array, key)) {\r\n return -1\r\n }\r\n for (var i = 0, arrayLength = array.length; i < arrayLength; i++) {\r\n if (keysEqual(keyExpr, keyInfo.keyOf(array[i]), key)) {\r\n return i\r\n }\r\n }\r\n return -1\r\n}\r\nexport {\r\n applyBatch,\r\n createObjectWithChanges,\r\n update,\r\n insert,\r\n remove,\r\n indexByKey,\r\n applyChanges\r\n};\r\n","/**\r\n * DevExtreme (esm/animation/position.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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\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) {\r\n return pairToObject(raw)\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);\r\n var collision = normalizeCollision(options.collision);\r\n var boundary = options.boundary;\r\n var boundaryOffset = normalizeOffset(options.boundaryOffset);\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) {\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, transformProp, styleAttr, isEmpty) {\r\n var stylePropIsValid = isDefined(element.style) && !domAdapter.isNode(element.style);\r\n if (stylePropIsValid) {\r\n element.style.transform = isEmpty ? transformProp.replace(scale, \"\") : transformProp\r\n } else {\r\n element.setAttribute(\"style\", isEmpty ? styleAttr.replace(scale, \"\") : styleAttr)\r\n }\r\n};\r\nvar getOffsetWithoutScale = function getOffsetWithoutScale($startElement) {\r\n var _currentElement$getAt, _currentElement$style, _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 transform = null === (_currentElement$style = currentElement.style) || void 0 === _currentElement$style ? void 0 : _currentElement$style.transform;\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, transform, style, true);\r\n offset = getOffsetWithoutScale($startElement, $currentElement.parent());\r\n setScaleProperty(currentElement, scale, transform, 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/core/utils/public_component.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 as elementData\r\n} from \"../../core/element_data\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n isDefined\r\n} from \"./type\";\r\nimport {\r\n removeEvent\r\n} from \"../../events/remove\";\r\nvar COMPONENT_NAMES_DATA_KEY = \"dxComponents\";\r\nvar ANONYMOUS_COMPONENT_DATA_KEY = \"dxPrivateComponent\";\r\nvar componentNames = new WeakMap;\r\nvar nextAnonymousComponent = 0;\r\nvar getName = function(componentClass, newName) {\r\n if (isDefined(newName)) {\r\n componentNames.set(componentClass, newName);\r\n return\r\n }\r\n if (!componentNames.has(componentClass)) {\r\n var generatedName = ANONYMOUS_COMPONENT_DATA_KEY + nextAnonymousComponent++;\r\n componentNames.set(componentClass, generatedName);\r\n return generatedName\r\n }\r\n return componentNames.get(componentClass)\r\n};\r\nexport function attachInstanceToElement($element, componentInstance, disposeFn) {\r\n var data = elementData($element.get(0));\r\n var name = getName(componentInstance.constructor);\r\n data[name] = componentInstance;\r\n if (disposeFn) {\r\n eventsEngine.one($element, removeEvent, (function() {\r\n disposeFn.call(componentInstance)\r\n }))\r\n }\r\n if (!data[COMPONENT_NAMES_DATA_KEY]) {\r\n data[COMPONENT_NAMES_DATA_KEY] = []\r\n }\r\n data[COMPONENT_NAMES_DATA_KEY].push(name)\r\n}\r\nexport function getInstanceByElement($element, componentClass) {\r\n var name = getName(componentClass);\r\n return elementData($element.get(0), name)\r\n}\r\nexport {\r\n getName as name\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/radio_group/radio_button.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 devices from \"../../core/devices\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport Editor from \"../editor/editor\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\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: function() {\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: function() {\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: function() {\r\n return true\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(RADIO_BUTTON_CLASS)\r\n },\r\n _initMarkup: function() {\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: function() {\r\n this._$icon = $(\"
\").addClass(RADIO_BUTTON_ICON_CLASS);\r\n $(\"
\").addClass(RADIO_BUTTON_ICON_DOT_CLASS).appendTo(this._$icon);\r\n this.$element().append(this._$icon)\r\n },\r\n _renderCheckedState: function(checked) {\r\n this.$element().toggleClass(RADIO_BUTTON_CHECKED_CLASS, checked).find(\".\" + RADIO_BUTTON_ICON_CLASS).toggleClass(RADIO_BUTTON_ICON_CHECKED_CLASS, checked);\r\n this.setAria(\"checked\", checked)\r\n },\r\n _renderClick: function() {\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n this._clickAction = this._createAction(function(args) {\r\n this._clickHandler(args.event)\r\n }.bind(this));\r\n eventsEngine.off(this.$element(), eventName);\r\n eventsEngine.on(this.$element(), eventName, function(e) {\r\n this._clickAction({\r\n event: e\r\n })\r\n }.bind(this))\r\n },\r\n _clickHandler: function(e) {\r\n this._saveValueChangeEvent(e);\r\n this.option(\"value\", true)\r\n },\r\n _optionChanged: function(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/list/ui.list.edit.decorator.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n start as swipeEventStart,\r\n swipe as swipeEventSwipe,\r\n end as swipeEventEnd\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: function(list) {\r\n this._list = list;\r\n this._init()\r\n },\r\n _init: noop,\r\n _shouldHandleSwipe: false,\r\n _attachSwipeEvent: function(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: function(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: function(e) {\r\n var $itemElement = $(e.currentTarget);\r\n this._swipeUpdateHandler($itemElement, e)\r\n },\r\n _itemSwipeEndHandler: function(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: function() {\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: function(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/ui/list/ui.list.edit.decorator.selection.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport CheckBox from \"../check_box\";\r\nimport RadioButton from \"../radio_group/radio_button\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n register as registerDecorator\r\n} from \"./ui.list.edit.decorator_registry\";\r\nimport EditDecorator from \"./ui.list.edit.decorator\";\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: function() {\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: function(config) {\r\n var $itemElement = config.$itemElement;\r\n var $container = config.$container.addClass(this._containerClass);\r\n var $control = $(\"
\").addClass(this._controlClass).appendTo($container);\r\n new this._controlWidget($control, extend(this._commonOptions(), {\r\n value: this._isSelected($itemElement),\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: function(config) {\r\n this.callBase.apply(this, arguments);\r\n var $itemElement = config.$itemElement;\r\n var control = this._controlWidget.getInstance($itemElement.find(\".\" + this._controlClass));\r\n eventsEngine.on($itemElement, \"stateChanged\", function(e, state) {\r\n control.option(\"value\", state)\r\n }.bind(this))\r\n },\r\n _updateSelectAllState: function() {\r\n if (!this._$selectAll) {\r\n return\r\n }\r\n this._selectAllCheckBox.option(\"value\", this._list.isSelectAll())\r\n },\r\n afterRender: function() {\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: function(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: function(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: function() {\r\n var $selectAll = this._$selectAll = $(\"
\").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($(\"
\").addClass(SELECT_DECORATOR_SELECT_ALL_CHECKBOX_CLASS).appendTo($selectAll), CheckBox, {\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false\r\n });\r\n this._selectAllCheckBox.registerKeyHandler(\"downArrow\", downArrowHandler);\r\n $(\"
\").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: function() {\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: function(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: function() {\r\n var list = this._list;\r\n var dataSource = list.getDataSource();\r\n if (\"allPages\" === list.option(\"selectAllMode\") && list.option(\"grouped\") && (!dataSource || !dataSource.group())) {\r\n errors.log(\"W1010\");\r\n return false\r\n }\r\n return true\r\n },\r\n _selectAllItems: function() {\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: function() {\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: function(e) {\r\n this._list._saveSelectionChangeEvent(e);\r\n this._selectAllCheckBox.option(\"value\", !this._selectAllCheckBox.option(\"value\"))\r\n },\r\n _isSelected: function($itemElement) {\r\n return this._list.isItemSelected($itemElement)\r\n },\r\n _processCheckedState: function($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: function() {\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: function() {\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/overlay/overlay_position_controller.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isDefined,\r\n isString,\r\n isWindow,\r\n isEvent\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport positionUtils from \"../../animation/position\";\r\nimport {\r\n resetPosition,\r\n move,\r\n locate\r\n} from \"../../animation/translator\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport swatch from \"../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 } = _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 };\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 var resultPosition = positionUtils.setup(this._$content, this._position);\r\n this._$wrapper.css(\"overflow\", wrapperOverflow);\r\n this._initialPosition = resultPosition;\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 _this$_position;\r\n var boundaryOffset = null !== (_this$_position = this._position) && void 0 !== _this$_position ? _this$_position : {\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 _this$_props$position, _this$_props$position2;\r\n var containerProp = this._props.container;\r\n var visualContainerProp = this._props.visualContainer;\r\n var positionOf = isEvent(null === (_this$_props$position = this._props.position) || void 0 === _this$_props$position ? void 0 : _this$_props$position.of) ? this._props.position.of.target : null === (_this$_props$position2 = this._props.position) || void 0 === _this$_props$position2 ? void 0 : _this$_props$position2.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 } else {\r\n return defaultPositionConfig\r\n }\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","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","/**\r\n * DevExtreme (esm/events/core/wheel.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 registerEvent from \"./event_registrator\";\r\nimport {\r\n addNamespace,\r\n fireEvent\r\n} from \"../utils/index\";\r\nvar EVENT_NAME = \"dxmousewheel\";\r\nvar EVENT_NAMESPACE = \"dxWheel\";\r\nvar NATIVE_EVENT_NAME = \"wheel\";\r\nvar PIXEL_MODE = 0;\r\nvar DELTA_MUTLIPLIER = 30;\r\nvar wheel = {\r\n setup: function(element) {\r\n var $element = $(element);\r\n eventsEngine.on($element, addNamespace(NATIVE_EVENT_NAME, EVENT_NAMESPACE), wheel._wheelHandler.bind(wheel))\r\n },\r\n teardown: function(element) {\r\n eventsEngine.off(element, \".\".concat(EVENT_NAMESPACE))\r\n },\r\n _wheelHandler: function(e) {\r\n var {\r\n deltaMode: deltaMode,\r\n deltaY: deltaY,\r\n deltaX: deltaX,\r\n deltaZ: deltaZ\r\n } = e.originalEvent;\r\n fireEvent({\r\n type: EVENT_NAME,\r\n originalEvent: e,\r\n delta: this._normalizeDelta(deltaY, deltaMode),\r\n deltaX: deltaX,\r\n deltaY: deltaY,\r\n deltaZ: deltaZ,\r\n deltaMode: deltaMode,\r\n pointerType: \"mouse\"\r\n });\r\n e.stopPropagation()\r\n },\r\n _normalizeDelta(delta) {\r\n var deltaMode = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : PIXEL_MODE;\r\n if (deltaMode === PIXEL_MODE) {\r\n return -delta\r\n } else {\r\n return -DELTA_MUTLIPLIER * delta\r\n }\r\n }\r\n};\r\nregisterEvent(EVENT_NAME, wheel);\r\nexport {\r\n EVENT_NAME as name\r\n};\r\n","/**\r\n * DevExtreme (esm/events/core/hook_touch_props.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar touchPropsToHook = [\"pageX\", \"pageY\", \"screenX\", \"screenY\", \"clientX\", \"clientY\"];\r\nvar touchPropHook = function(name, event) {\r\n if (event[name] && !event.touches || !event.touches) {\r\n return event[name]\r\n }\r\n var touches = event.touches.length ? event.touches : event.changedTouches;\r\n if (!touches.length) {\r\n return\r\n }\r\n return touches[0][name]\r\n};\r\nexport default function(callback) {\r\n touchPropsToHook.forEach((function(name) {\r\n callback(name, (function(event) {\r\n return touchPropHook(name, event)\r\n }))\r\n }), this)\r\n}\r\n","/**\r\n * DevExtreme (esm/events/core/events_engine.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 registerEventCallbacks from \"./event_registrator_callbacks\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport injector from \"../../core/utils/dependency_injector\";\r\nimport {\r\n isWindow,\r\n isFunction,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport errors from \"../../core/errors\";\r\nimport hookTouchProps from \"../../events/core/hook_touch_props\";\r\nimport callOnce from \"../../core/utils/call_once\";\r\nvar EMPTY_EVENT_NAME = \"dxEmptyEventType\";\r\nvar NATIVE_EVENTS_TO_SUBSCRIBE = {\r\n mouseenter: \"mouseover\",\r\n mouseleave: \"mouseout\",\r\n pointerenter: \"pointerover\",\r\n pointerleave: \"pointerout\"\r\n};\r\nvar NATIVE_EVENTS_TO_TRIGGER = {\r\n focusin: \"focus\",\r\n focusout: \"blur\"\r\n};\r\nvar NO_BUBBLE_EVENTS = [\"blur\", \"focus\", \"load\"];\r\nvar forcePassiveFalseEventNames = [\"touchmove\", \"wheel\", \"mousewheel\", \"touchstart\"];\r\nvar EVENT_PROPERTIES = [\"target\", \"relatedTarget\", \"delegateTarget\", \"altKey\", \"bubbles\", \"cancelable\", \"changedTouches\", \"ctrlKey\", \"detail\", \"eventPhase\", \"metaKey\", \"shiftKey\", \"view\", \"char\", \"code\", \"charCode\", \"key\", \"keyCode\", \"button\", \"buttons\", \"offsetX\", \"offsetY\", \"pointerId\", \"pointerType\", \"targetTouches\", \"toElement\", \"touches\"];\r\n\r\nfunction matchesSafe(target, selector) {\r\n return !isWindow(target) && \"#document\" !== target.nodeName && domAdapter.elementMatches(target, selector)\r\n}\r\nvar elementDataMap = new WeakMap;\r\nvar guid = 0;\r\nvar skipEvent;\r\nvar special = function() {\r\n var specialData = {};\r\n registerEventCallbacks.add((function(eventName, eventObject) {\r\n specialData[eventName] = eventObject\r\n }));\r\n return {\r\n getField: function(eventName, field) {\r\n return specialData[eventName] && specialData[eventName][field]\r\n },\r\n callMethod: function(eventName, methodName, context, args) {\r\n return specialData[eventName] && specialData[eventName][methodName] && specialData[eventName][methodName].apply(context, args)\r\n }\r\n }\r\n}();\r\nvar eventsEngine = injector({\r\n on: getHandler(normalizeOnArguments(iterate((function(element, eventName, selector, data, handler) {\r\n var handlersController = getHandlersController(element, eventName);\r\n handlersController.addHandler(handler, selector, data)\r\n })))),\r\n one: getHandler(normalizeOnArguments((function(element, eventName, selector, data, handler) {\r\n eventsEngine.on(element, eventName, selector, data, (function oneTimeHandler() {\r\n eventsEngine.off(element, eventName, selector, oneTimeHandler);\r\n handler.apply(this, arguments)\r\n }))\r\n }))),\r\n off: getHandler(normalizeOffArguments(iterate((function(element, eventName, selector, handler) {\r\n var handlersController = getHandlersController(element, eventName);\r\n handlersController.removeHandler(handler, selector)\r\n })))),\r\n trigger: getHandler(normalizeTriggerArguments((function(element, event, extraParameters) {\r\n var eventName = event.type;\r\n var handlersController = getHandlersController(element, event.type);\r\n special.callMethod(eventName, \"trigger\", element, [event, extraParameters]);\r\n handlersController.callHandlers(event, extraParameters);\r\n var noBubble = special.getField(eventName, \"noBubble\") || event.isPropagationStopped() || -1 !== NO_BUBBLE_EVENTS.indexOf(eventName);\r\n if (!noBubble) {\r\n var parents = [];\r\n ! function getParents(element) {\r\n var _element$parentNode;\r\n var parent = null !== (_element$parentNode = element.parentNode) && void 0 !== _element$parentNode ? _element$parentNode : element.host;\r\n if (parent) {\r\n parents.push(parent);\r\n getParents(parent)\r\n }\r\n }(element);\r\n parents.push(window);\r\n var i = 0;\r\n while (parents[i] && !event.isPropagationStopped()) {\r\n var parentDataByEvent = getHandlersController(parents[i], event.type);\r\n parentDataByEvent.callHandlers(extend(event, {\r\n currentTarget: parents[i]\r\n }), extraParameters);\r\n i++\r\n }\r\n }\r\n if (element.nodeType || isWindow(element)) {\r\n special.callMethod(eventName, \"_default\", element, [event, extraParameters]);\r\n callNativeMethod(eventName, element)\r\n }\r\n }))),\r\n triggerHandler: getHandler(normalizeTriggerArguments((function(element, event, extraParameters) {\r\n var handlersController = getHandlersController(element, event.type);\r\n handlersController.callHandlers(event, extraParameters)\r\n })))\r\n});\r\n\r\nfunction applyForEach(args, method) {\r\n var element = args[0];\r\n if (!element) {\r\n return\r\n }\r\n if (domAdapter.isNode(element) || isWindow(element)) {\r\n method.apply(eventsEngine, args)\r\n } else if (!isString(element) && \"length\" in element) {\r\n var itemArgs = Array.prototype.slice.call(args, 0);\r\n Array.prototype.forEach.call(element, (function(itemElement) {\r\n itemArgs[0] = itemElement;\r\n applyForEach(itemArgs, method)\r\n }))\r\n } else {\r\n throw errors.Error(\"E0025\")\r\n }\r\n}\r\n\r\nfunction getHandler(method) {\r\n return function() {\r\n applyForEach(arguments, method)\r\n }\r\n}\r\n\r\nfunction detectPassiveEventHandlersSupport() {\r\n var isSupported = false;\r\n try {\r\n var options = Object.defineProperty({}, \"passive\", {\r\n get: function() {\r\n isSupported = true;\r\n return true\r\n }\r\n });\r\n window.addEventListener(\"test\", null, options)\r\n } catch (e) {}\r\n return isSupported\r\n}\r\nvar passiveEventHandlersSupported = callOnce(detectPassiveEventHandlersSupport);\r\nvar contains = (container, element) => {\r\n if (isWindow(container)) {\r\n return contains(container.document, element)\r\n }\r\n return container.contains ? container.contains(element) : !!(element.compareDocumentPosition(container) & element.DOCUMENT_POSITION_CONTAINS)\r\n};\r\n\r\nfunction getHandlersController(element, eventName) {\r\n var elementData = elementDataMap.get(element);\r\n eventName = eventName || \"\";\r\n var eventNameParts = eventName.split(\".\");\r\n var namespaces = eventNameParts.slice(1);\r\n var eventNameIsDefined = !!eventNameParts[0];\r\n eventName = eventNameParts[0] || EMPTY_EVENT_NAME;\r\n if (!elementData) {\r\n elementData = {};\r\n elementDataMap.set(element, elementData)\r\n }\r\n if (!elementData[eventName]) {\r\n elementData[eventName] = {\r\n handleObjects: [],\r\n nativeHandler: null\r\n }\r\n }\r\n var eventData = elementData[eventName];\r\n return {\r\n addHandler: function(handler, selector, data) {\r\n var callHandler = function(e, extraParameters) {\r\n var handlerArgs = [e];\r\n var target = e.currentTarget;\r\n var relatedTarget = e.relatedTarget;\r\n var secondaryTargetIsInside;\r\n var result;\r\n if (eventName in NATIVE_EVENTS_TO_SUBSCRIBE) {\r\n secondaryTargetIsInside = relatedTarget && target && (relatedTarget === target || contains(target, relatedTarget))\r\n }\r\n if (void 0 !== extraParameters) {\r\n handlerArgs.push(extraParameters)\r\n }\r\n special.callMethod(eventName, \"handle\", element, [e, data]);\r\n if (!secondaryTargetIsInside) {\r\n result = handler.apply(target, handlerArgs)\r\n }\r\n if (false === result) {\r\n e.preventDefault();\r\n e.stopPropagation()\r\n }\r\n };\r\n var handleObject = {\r\n handler: handler,\r\n wrappedHandler: function(e, extraParameters) {\r\n if (skipEvent && e.type === skipEvent) {\r\n return\r\n }\r\n e.data = data;\r\n e.delegateTarget = element;\r\n if (selector) {\r\n var currentTarget = e.target;\r\n while (currentTarget && currentTarget !== element) {\r\n if (matchesSafe(currentTarget, selector)) {\r\n e.currentTarget = currentTarget;\r\n callHandler(e, extraParameters)\r\n }\r\n currentTarget = currentTarget.parentNode\r\n }\r\n } else {\r\n e.currentTarget = e.delegateTarget || e.target;\r\n callHandler(e, extraParameters)\r\n }\r\n },\r\n selector: selector,\r\n type: eventName,\r\n data: data,\r\n namespace: namespaces.join(\".\"),\r\n namespaces: namespaces,\r\n guid: ++guid\r\n };\r\n eventData.handleObjects.push(handleObject);\r\n var firstHandlerForTheType = 1 === eventData.handleObjects.length;\r\n var shouldAddNativeListener = firstHandlerForTheType && eventNameIsDefined;\r\n var nativeListenerOptions;\r\n if (shouldAddNativeListener) {\r\n shouldAddNativeListener = !special.callMethod(eventName, \"setup\", element, [data, namespaces, handler])\r\n }\r\n if (shouldAddNativeListener) {\r\n eventData.nativeHandler = getNativeHandler(eventName);\r\n if (passiveEventHandlersSupported() && forcePassiveFalseEventNames.indexOf(eventName) > -1) {\r\n nativeListenerOptions = {\r\n passive: false\r\n }\r\n }\r\n eventData.removeListener = domAdapter.listen(element, NATIVE_EVENTS_TO_SUBSCRIBE[eventName] || eventName, eventData.nativeHandler, nativeListenerOptions)\r\n }\r\n special.callMethod(eventName, \"add\", element, [handleObject])\r\n },\r\n removeHandler: function(handler, selector) {\r\n var removeByEventName = function(eventName) {\r\n var eventData = elementData[eventName];\r\n if (!eventData.handleObjects.length) {\r\n delete elementData[eventName];\r\n return\r\n }\r\n var removedHandler;\r\n eventData.handleObjects = eventData.handleObjects.filter((function(handleObject) {\r\n var skip = namespaces.length && !isSubset(handleObject.namespaces, namespaces) || handler && handleObject.handler !== handler || selector && handleObject.selector !== selector;\r\n if (!skip) {\r\n removedHandler = handleObject.handler;\r\n special.callMethod(eventName, \"remove\", element, [handleObject])\r\n }\r\n return skip\r\n }));\r\n var lastHandlerForTheType = !eventData.handleObjects.length;\r\n var shouldRemoveNativeListener = lastHandlerForTheType && eventName !== EMPTY_EVENT_NAME;\r\n if (shouldRemoveNativeListener) {\r\n special.callMethod(eventName, \"teardown\", element, [namespaces, removedHandler]);\r\n if (eventData.nativeHandler) {\r\n eventData.removeListener()\r\n }\r\n delete elementData[eventName]\r\n }\r\n };\r\n if (eventNameIsDefined) {\r\n removeByEventName(eventName)\r\n } else {\r\n for (var name in elementData) {\r\n removeByEventName(name)\r\n }\r\n }\r\n var elementDataIsEmpty = 0 === Object.keys(elementData).length;\r\n if (elementDataIsEmpty) {\r\n elementDataMap.delete(element)\r\n }\r\n },\r\n callHandlers: function(event, extraParameters) {\r\n var forceStop = false;\r\n var handleCallback = function(handleObject) {\r\n if (forceStop) {\r\n return\r\n }\r\n if (!namespaces.length || isSubset(handleObject.namespaces, namespaces)) {\r\n handleObject.wrappedHandler(event, extraParameters);\r\n forceStop = event.isImmediatePropagationStopped()\r\n }\r\n };\r\n eventData.handleObjects.forEach(handleCallback);\r\n if (namespaces.length && elementData[EMPTY_EVENT_NAME]) {\r\n elementData[EMPTY_EVENT_NAME].handleObjects.forEach(handleCallback)\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction getNativeHandler(subscribeName) {\r\n return function(event, extraParameters) {\r\n var handlersController = getHandlersController(this, subscribeName);\r\n event = eventsEngine.Event(event);\r\n handlersController.callHandlers(event, extraParameters)\r\n }\r\n}\r\n\r\nfunction isSubset(original, checked) {\r\n for (var i = 0; i < checked.length; i++) {\r\n if (original.indexOf(checked[i]) < 0) {\r\n return false\r\n }\r\n }\r\n return true\r\n}\r\n\r\nfunction normalizeOnArguments(callback) {\r\n return function(element, eventName, selector, data, handler) {\r\n if (!handler) {\r\n handler = data;\r\n data = void 0\r\n }\r\n if (\"string\" !== typeof selector) {\r\n data = selector;\r\n selector = void 0\r\n }\r\n if (!handler && \"string\" === typeof eventName) {\r\n handler = data || selector;\r\n selector = void 0;\r\n data = void 0\r\n }\r\n callback(element, eventName, selector, data, handler)\r\n }\r\n}\r\n\r\nfunction normalizeOffArguments(callback) {\r\n return function(element, eventName, selector, handler) {\r\n if (\"function\" === typeof selector) {\r\n handler = selector;\r\n selector = void 0\r\n }\r\n callback(element, eventName, selector, handler)\r\n }\r\n}\r\n\r\nfunction normalizeTriggerArguments(callback) {\r\n return function(element, src, extraParameters) {\r\n if (\"string\" === typeof src) {\r\n src = {\r\n type: src\r\n }\r\n }\r\n if (!src.target) {\r\n src.target = element\r\n }\r\n src.currentTarget = element;\r\n if (!src.delegateTarget) {\r\n src.delegateTarget = element\r\n }\r\n if (!src.type && src.originalEvent) {\r\n src.type = src.originalEvent.type\r\n }\r\n callback(element, src instanceof eventsEngine.Event ? src : eventsEngine.Event(src), extraParameters)\r\n }\r\n}\r\n\r\nfunction normalizeEventArguments(callback) {\r\n eventsEngine.Event = function(src, config) {\r\n if (!(this instanceof eventsEngine.Event)) {\r\n return new eventsEngine.Event(src, config)\r\n }\r\n if (!src) {\r\n src = {}\r\n }\r\n if (\"string\" === typeof src) {\r\n src = {\r\n type: src\r\n }\r\n }\r\n if (!config) {\r\n config = {}\r\n }\r\n callback.call(this, src, config)\r\n };\r\n _extends(eventsEngine.Event.prototype, {\r\n _propagationStopped: false,\r\n _immediatePropagationStopped: false,\r\n _defaultPrevented: false,\r\n isPropagationStopped: function() {\r\n return !!(this._propagationStopped || this.originalEvent && this.originalEvent.propagationStopped)\r\n },\r\n stopPropagation: function() {\r\n this._propagationStopped = true;\r\n this.originalEvent && this.originalEvent.stopPropagation()\r\n },\r\n isImmediatePropagationStopped: function() {\r\n return this._immediatePropagationStopped\r\n },\r\n stopImmediatePropagation: function() {\r\n this.stopPropagation();\r\n this._immediatePropagationStopped = true;\r\n this.originalEvent && this.originalEvent.stopImmediatePropagation()\r\n },\r\n isDefaultPrevented: function() {\r\n return !!(this._defaultPrevented || this.originalEvent && this.originalEvent.defaultPrevented)\r\n },\r\n preventDefault: function() {\r\n this._defaultPrevented = true;\r\n this.originalEvent && this.originalEvent.preventDefault()\r\n }\r\n });\r\n return eventsEngine.Event\r\n}\r\n\r\nfunction iterate(callback) {\r\n var iterateEventNames = function(element, eventName) {\r\n if (eventName && eventName.indexOf(\" \") > -1) {\r\n var args = Array.prototype.slice.call(arguments, 0);\r\n eventName.split(\" \").forEach((function(eventName) {\r\n args[1] = eventName;\r\n callback.apply(this, args)\r\n }))\r\n } else {\r\n callback.apply(this, arguments)\r\n }\r\n };\r\n return function(element, eventName) {\r\n if (\"object\" === typeof eventName) {\r\n var args = Array.prototype.slice.call(arguments, 0);\r\n for (var name in eventName) {\r\n args[1] = name;\r\n args[args.length - 1] = eventName[name];\r\n iterateEventNames.apply(this, args)\r\n }\r\n } else {\r\n iterateEventNames.apply(this, arguments)\r\n }\r\n }\r\n}\r\n\r\nfunction callNativeMethod(eventName, element) {\r\n var nativeMethodName = NATIVE_EVENTS_TO_TRIGGER[eventName] || eventName;\r\n if (function(eventName, element) {\r\n return \"click\" === eventName && \"a\" === element.localName\r\n }(eventName, element)) {\r\n return\r\n }\r\n if (isFunction(element[nativeMethodName])) {\r\n skipEvent = eventName;\r\n element[nativeMethodName]();\r\n skipEvent = void 0\r\n }\r\n}\r\n\r\nfunction calculateWhich(event) {\r\n if (function(event) {\r\n return null == event.which && 0 === event.type.indexOf(\"key\")\r\n }(event)) {\r\n return null != event.charCode ? event.charCode : event.keyCode\r\n }\r\n if (function(event) {\r\n return !event.which && void 0 !== event.button && /^(?:mouse|pointer|contextmenu|drag|drop)|click/.test(event.type)\r\n }(event)) {\r\n return {\r\n 1: 1,\r\n 2: 3,\r\n 3: 1,\r\n 4: 2\r\n } [event.button]\r\n }\r\n return event.which\r\n}\r\n\r\nfunction initEvent(EventClass) {\r\n if (EventClass) {\r\n eventsEngine.Event = EventClass;\r\n eventsEngine.Event.prototype = EventClass.prototype\r\n }\r\n}\r\ninitEvent(normalizeEventArguments((function(src, config) {\r\n var _src$view;\r\n var srcIsEvent = src instanceof eventsEngine.Event || hasWindow() && src instanceof window.Event || (null === (_src$view = src.view) || void 0 === _src$view ? void 0 : _src$view.Event) && src instanceof src.view.Event;\r\n if (srcIsEvent) {\r\n this.originalEvent = src;\r\n this.type = src.type;\r\n this.currentTarget = void 0;\r\n if (Object.prototype.hasOwnProperty.call(src, \"isTrusted\")) {\r\n this.isTrusted = src.isTrusted\r\n }\r\n this.timeStamp = src.timeStamp || Date.now()\r\n } else {\r\n _extends(this, src)\r\n }\r\n addProperty(\"which\", calculateWhich, this);\r\n if (0 === src.type.indexOf(\"touch\")) {\r\n delete config.pageX;\r\n delete config.pageY\r\n }\r\n _extends(this, config);\r\n this.guid = ++guid\r\n})));\r\n\r\nfunction addProperty(propName, hook, eventInstance) {\r\n Object.defineProperty(eventInstance || eventsEngine.Event.prototype, propName, {\r\n enumerable: true,\r\n configurable: true,\r\n get: function() {\r\n return this.originalEvent && hook(this.originalEvent)\r\n },\r\n set: function(value) {\r\n Object.defineProperty(this, propName, {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: value\r\n })\r\n }\r\n })\r\n}\r\nEVENT_PROPERTIES.forEach(prop => addProperty(prop, event => event[prop]));\r\nhookTouchProps(addProperty);\r\nvar beforeSetStrategy = Callbacks();\r\nvar afterSetStrategy = Callbacks();\r\neventsEngine.set = function(engine) {\r\n beforeSetStrategy.fire();\r\n eventsEngine.inject(engine);\r\n initEvent(engine.Event);\r\n afterSetStrategy.fire()\r\n};\r\neventsEngine.subscribeGlobal = function() {\r\n applyForEach(arguments, normalizeOnArguments((function() {\r\n var args = arguments;\r\n eventsEngine.on.apply(this, args);\r\n beforeSetStrategy.add((function() {\r\n var offArgs = Array.prototype.slice.call(args, 0);\r\n offArgs.splice(3, 1);\r\n eventsEngine.off.apply(this, offArgs)\r\n }));\r\n afterSetStrategy.add((function() {\r\n eventsEngine.on.apply(this, args)\r\n }))\r\n })))\r\n};\r\neventsEngine.forcePassiveFalseEventNames = forcePassiveFalseEventNames;\r\neventsEngine.passiveEventHandlersSupported = passiveEventHandlersSupported;\r\nexport default eventsEngine;\r\n","/**\r\n * DevExtreme (esm/animation/translator.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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/data/query_adapters.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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","/**\r\n * DevExtreme (esm/data/remote_query.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport queryAdapters from \"./query_adapters\";\r\nimport {\r\n errors,\r\n handleError\r\n} from \"./errors\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport arrayQueryImpl from \"./array_query\";\r\nvar remoteQueryImpl = function remoteQueryImpl(url, queryOptions, tasks) {\r\n tasks = tasks || [];\r\n queryOptions = queryOptions || {};\r\n var createTask = function(name, args) {\r\n return {\r\n name: name,\r\n args: args\r\n }\r\n };\r\n var exec = function(executorTask) {\r\n var d = new Deferred;\r\n var _adapterFactory;\r\n var _adapter;\r\n var _taskQueue;\r\n var _currentTask;\r\n var _mergedSortArgs;\r\n var rejectWithNotify = function(error) {\r\n var handler = queryOptions.errorHandler;\r\n if (handler) {\r\n handler(error)\r\n }\r\n handleError(error);\r\n d.reject(error)\r\n };\r\n\r\n function mergeSortTask(task) {\r\n switch (task.name) {\r\n case \"sortBy\":\r\n _mergedSortArgs = [task.args];\r\n return true;\r\n case \"thenBy\":\r\n if (!_mergedSortArgs) {\r\n throw errors.Error(\"E4004\")\r\n }\r\n _mergedSortArgs.push(task.args);\r\n return true\r\n }\r\n return false\r\n }\r\n try {\r\n _adapterFactory = queryOptions.adapter;\r\n if (!isFunction(_adapterFactory)) {\r\n _adapterFactory = queryAdapters[_adapterFactory]\r\n }\r\n _adapter = _adapterFactory(queryOptions);\r\n _taskQueue = [].concat(tasks).concat(executorTask);\r\n var optimize = _adapter.optimize;\r\n if (optimize) {\r\n optimize(_taskQueue)\r\n }\r\n while (_taskQueue.length) {\r\n _currentTask = _taskQueue[0];\r\n if (!mergeSortTask(_currentTask)) {\r\n if (_mergedSortArgs) {\r\n _taskQueue.unshift(createTask(\"multiSort\", [_mergedSortArgs]));\r\n _mergedSortArgs = null;\r\n continue\r\n }\r\n if (\"enumerate\" !== String(_currentTask.name)) {\r\n if (!_adapter[_currentTask.name] || false === _adapter[_currentTask.name].apply(_adapter, _currentTask.args)) {\r\n break\r\n }\r\n }\r\n }\r\n _taskQueue.shift()\r\n }! function() {\r\n var head = _taskQueue[0];\r\n var unmergedTasks = [];\r\n if (head && \"multiSort\" === head.name) {\r\n _taskQueue.shift();\r\n each(head.args[0], (function() {\r\n unmergedTasks.push(createTask(unmergedTasks.length ? \"thenBy\" : \"sortBy\", this))\r\n }))\r\n }\r\n _taskQueue = unmergedTasks.concat(_taskQueue)\r\n }();\r\n _adapter.exec(url).done((function(result, extra) {\r\n if (!_taskQueue.length) {\r\n d.resolve(result, extra)\r\n } else {\r\n var clientChain = arrayQueryImpl(result, {\r\n errorHandler: queryOptions.errorHandler\r\n });\r\n each(_taskQueue, (function() {\r\n clientChain = clientChain[this.name].apply(clientChain, this.args)\r\n }));\r\n clientChain.done(d.resolve).fail(d.reject)\r\n }\r\n })).fail(rejectWithNotify)\r\n } catch (x) {\r\n rejectWithNotify(x)\r\n }\r\n return d.promise()\r\n };\r\n var query = {};\r\n each([\"sortBy\", \"thenBy\", \"filter\", \"slice\", \"select\", \"groupBy\"], (function() {\r\n var name = String(this);\r\n query[name] = function() {\r\n return remoteQueryImpl(url, queryOptions, tasks.concat(createTask(name, arguments)))\r\n }\r\n }));\r\n each([\"count\", \"min\", \"max\", \"sum\", \"avg\", \"aggregate\", \"enumerate\"], (function() {\r\n var name = String(this);\r\n query[name] = function() {\r\n return exec.call(this, createTask(name, arguments))\r\n }\r\n }));\r\n return query\r\n};\r\nexport default remoteQueryImpl;\r\n","/**\r\n * DevExtreme (esm/data/query_implementation.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport arrayQueryImpl from \"./array_query\";\r\nimport remoteQueryImpl from \"./remote_query\";\r\nexport var queryImpl = {\r\n array: arrayQueryImpl,\r\n remote: remoteQueryImpl\r\n};\r\n","/**\r\n * DevExtreme (esm/data/query.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n queryImpl\r\n} from \"./query_implementation\";\r\nvar query = function() {\r\n var impl = Array.isArray(arguments[0]) ? \"array\" : \"remote\";\r\n return queryImpl[impl].apply(this, arguments)\r\n};\r\nexport default query;\r\n","/**\r\n * DevExtreme (esm/core/utils/storage.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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\nvar window = getWindow();\r\nvar getSessionStorage = function() {\r\n var sessionStorage;\r\n try {\r\n sessionStorage = window.sessionStorage\r\n } catch (e) {}\r\n return sessionStorage\r\n};\r\nexport {\r\n getSessionStorage as sessionStorage\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/support.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../dom_adapter\";\r\nimport callOnce from \"./call_once\";\r\nimport {\r\n getNavigator,\r\n hasProperty\r\n} from \"./window\";\r\nimport devices from \"../devices\";\r\nimport {\r\n stylePropPrefix,\r\n styleProp\r\n} from \"./style\";\r\nvar {\r\n maxTouchPoints: maxTouchPoints\r\n} = getNavigator();\r\nvar transitionEndEventNames = {\r\n webkitTransition: \"webkitTransitionEnd\",\r\n MozTransition: \"transitionend\",\r\n OTransition: \"oTransitionEnd\",\r\n transition: \"transitionend\"\r\n};\r\nvar supportProp = function(prop) {\r\n return !!styleProp(prop)\r\n};\r\nvar isNativeScrollingSupported = function() {\r\n var {\r\n platform: platform,\r\n mac: isMac\r\n } = devices.real();\r\n var isNativeScrollDevice = \"ios\" === platform || \"android\" === platform || isMac;\r\n return isNativeScrollDevice\r\n};\r\nvar inputType = function(type) {\r\n if (\"text\" === type) {\r\n return true\r\n }\r\n var input = domAdapter.createElement(\"input\");\r\n try {\r\n input.setAttribute(\"type\", type);\r\n input.value = \"wrongValue\";\r\n return !input.value\r\n } catch (e) {\r\n return false\r\n }\r\n};\r\nvar detectTouchEvents = function(hasWindowProperty, maxTouchPoints) {\r\n return (hasWindowProperty(\"ontouchstart\") || !!maxTouchPoints) && !hasWindowProperty(\"callPhantom\")\r\n};\r\nvar detectPointerEvent = function(hasWindowProperty) {\r\n return hasWindowProperty(\"PointerEvent\")\r\n};\r\nvar touchEvents = detectTouchEvents(hasProperty, maxTouchPoints);\r\nvar pointerEvents = detectPointerEvent(hasProperty);\r\nvar touchPointersPresent = !!maxTouchPoints;\r\nexport {\r\n touchEvents,\r\n pointerEvents,\r\n styleProp,\r\n stylePropPrefix,\r\n supportProp,\r\n inputType\r\n};\r\nexport var touch = touchEvents || pointerEvents && touchPointersPresent;\r\nexport var transition = callOnce((function() {\r\n return supportProp(\"transition\")\r\n}));\r\nexport var transitionEndEventName = callOnce((function() {\r\n return transitionEndEventNames[styleProp(\"transition\")]\r\n}));\r\nexport var animation = callOnce((function() {\r\n return supportProp(\"animation\")\r\n}));\r\nexport var nativeScrolling = isNativeScrollingSupported();\r\n","var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","/**\r\n * DevExtreme (esm/core/events_strategy.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Callbacks from \"./utils/callbacks\";\r\nimport {\r\n each\r\n} from \"./utils/iterator\";\r\nimport {\r\n isFunction,\r\n isPlainObject\r\n} from \"./utils/type\";\r\nexport class EventsStrategy {\r\n constructor(owner) {\r\n var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n this._events = {};\r\n this._owner = owner;\r\n this._options = options\r\n }\r\n static create(owner, strategy) {\r\n if (strategy) {\r\n return isFunction(strategy) ? strategy(owner) : strategy\r\n } else {\r\n return new EventsStrategy(owner)\r\n }\r\n }\r\n hasEvent(eventName) {\r\n var callbacks = this._events[eventName];\r\n return callbacks ? callbacks.has() : false\r\n }\r\n fireEvent(eventName, eventArgs) {\r\n var callbacks = this._events[eventName];\r\n if (callbacks) {\r\n callbacks.fireWith(this._owner, eventArgs)\r\n }\r\n return this._owner\r\n }\r\n on(eventName, eventHandler) {\r\n if (isPlainObject(eventName)) {\r\n each(eventName, (e, h) => {\r\n this.on(e, h)\r\n })\r\n } else {\r\n var callbacks = this._events[eventName];\r\n if (!callbacks) {\r\n callbacks = Callbacks({\r\n syncStrategy: this._options.syncStrategy\r\n });\r\n this._events[eventName] = callbacks\r\n }\r\n var addFn = callbacks.originalAdd || callbacks.add;\r\n addFn.call(callbacks, eventHandler)\r\n }\r\n }\r\n off(eventName, eventHandler) {\r\n var callbacks = this._events[eventName];\r\n if (callbacks) {\r\n if (isFunction(eventHandler)) {\r\n callbacks.remove(eventHandler)\r\n } else {\r\n callbacks.empty()\r\n }\r\n }\r\n }\r\n dispose() {\r\n each(this._events, (eventName, event) => {\r\n event.empty()\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/data/custom_store.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 keysEqual,\r\n XHR_ERROR_UNLOAD,\r\n errorMessageFromXhr as errorMessageFromXhrUtility\r\n} from \"./utils\";\r\nimport {\r\n applyBatch\r\n} from \"./array_utils\";\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport config from \"../core/config\";\r\nimport {\r\n errors\r\n} from \"./errors\";\r\nimport Store from \"./abstract_store\";\r\nimport arrayQuery from \"./array_query\";\r\nimport storeHelper from \"./store_helper\";\r\nimport {\r\n Deferred,\r\n when,\r\n fromPromise\r\n} from \"../core/utils/deferred\";\r\nvar TOTAL_COUNT = \"totalCount\";\r\nvar LOAD = \"load\";\r\nvar BY_KEY = \"byKey\";\r\nvar INSERT = \"insert\";\r\nvar UPDATE = \"update\";\r\nvar REMOVE = \"remove\";\r\n\r\nfunction isPromise(obj) {\r\n return obj && isFunction(obj.then)\r\n}\r\n\r\nfunction trivialPromise(value) {\r\n return (new Deferred).resolve(value).promise()\r\n}\r\n\r\nfunction ensureRequiredFuncOption(name, obj) {\r\n if (!isFunction(obj)) {\r\n throw errors.Error(\"E4011\", name)\r\n }\r\n}\r\n\r\nfunction throwInvalidUserFuncResult(name) {\r\n throw errors.Error(\"E4012\", name)\r\n}\r\n\r\nfunction createUserFuncFailureHandler(pendingDeferred) {\r\n function errorMessageFromXhr(promiseArguments) {\r\n var xhr = promiseArguments[0];\r\n var textStatus = promiseArguments[1];\r\n if (!xhr || !xhr.getResponseHeader) {\r\n return null\r\n }\r\n return errorMessageFromXhrUtility(xhr, textStatus)\r\n }\r\n return function(arg) {\r\n var error;\r\n if (arg instanceof Error) {\r\n error = arg\r\n } else {\r\n error = new Error(errorMessageFromXhr(arguments) || arg && String(arg) || \"Unknown error\")\r\n }\r\n if (error.message !== XHR_ERROR_UNLOAD) {\r\n pendingDeferred.reject(error)\r\n }\r\n }\r\n}\r\n\r\nfunction invokeUserLoad(store, options) {\r\n var userFunc = store._loadFunc;\r\n var userResult;\r\n ensureRequiredFuncOption(LOAD, userFunc);\r\n userResult = userFunc.apply(store, [options]);\r\n if (Array.isArray(userResult)) {\r\n userResult = trivialPromise(userResult)\r\n } else if (null === userResult || void 0 === userResult) {\r\n userResult = trivialPromise([])\r\n } else if (!isPromise(userResult)) {\r\n throwInvalidUserFuncResult(LOAD)\r\n }\r\n return fromPromise(userResult)\r\n}\r\n\r\nfunction invokeUserTotalCountFunc(store, options) {\r\n var userFunc = store._totalCountFunc;\r\n var userResult;\r\n if (!isFunction(userFunc)) {\r\n throw errors.Error(\"E4021\")\r\n }\r\n userResult = userFunc.apply(store, [options]);\r\n if (!isPromise(userResult)) {\r\n userResult = Number(userResult);\r\n if (!isFinite(userResult)) {\r\n throwInvalidUserFuncResult(TOTAL_COUNT)\r\n }\r\n userResult = trivialPromise(userResult)\r\n }\r\n return fromPromise(userResult)\r\n}\r\n\r\nfunction invokeUserByKeyFunc(store, key, extraOptions) {\r\n var userFunc = store._byKeyFunc;\r\n var userResult;\r\n ensureRequiredFuncOption(BY_KEY, userFunc);\r\n userResult = userFunc.apply(store, [key, extraOptions]);\r\n if (!isPromise(userResult)) {\r\n userResult = trivialPromise(userResult)\r\n }\r\n return fromPromise(userResult)\r\n}\r\n\r\nfunction runRawLoad(pendingDeferred, store, userFuncOptions, continuation) {\r\n if (store.__rawData) {\r\n continuation(store.__rawData)\r\n } else {\r\n var loadPromise = store.__rawDataPromise || invokeUserLoad(store, userFuncOptions);\r\n if (store._cacheRawData) {\r\n store.__rawDataPromise = loadPromise\r\n }\r\n loadPromise.always((function() {\r\n delete store.__rawDataPromise\r\n })).done((function(rawData) {\r\n if (store._cacheRawData) {\r\n store.__rawData = rawData\r\n }\r\n continuation(rawData)\r\n })).fail(createUserFuncFailureHandler(pendingDeferred))\r\n }\r\n}\r\n\r\nfunction runRawLoadWithQuery(pendingDeferred, store, options, countOnly) {\r\n options = options || {};\r\n var userFuncOptions = {};\r\n if (\"userData\" in options) {\r\n userFuncOptions.userData = options.userData\r\n }\r\n runRawLoad(pendingDeferred, store, userFuncOptions, (function(rawData) {\r\n var rawDataQuery = arrayQuery(rawData, {\r\n errorHandler: store._errorHandler\r\n });\r\n var itemsQuery;\r\n var totalCountQuery;\r\n var waitList = [];\r\n var items;\r\n var totalCount;\r\n if (!countOnly) {\r\n itemsQuery = storeHelper.queryByOptions(rawDataQuery, options);\r\n if (itemsQuery === rawDataQuery) {\r\n items = rawData.slice(0)\r\n } else {\r\n waitList.push(itemsQuery.enumerate().done((function(asyncResult) {\r\n items = asyncResult\r\n })))\r\n }\r\n }\r\n if (options.requireTotalCount || countOnly) {\r\n totalCountQuery = storeHelper.queryByOptions(rawDataQuery, options, true);\r\n if (totalCountQuery === rawDataQuery) {\r\n totalCount = rawData.length\r\n } else {\r\n waitList.push(totalCountQuery.count().done((function(asyncResult) {\r\n totalCount = asyncResult\r\n })))\r\n }\r\n }\r\n when.apply($, waitList).done((function() {\r\n if (countOnly) {\r\n pendingDeferred.resolve(totalCount)\r\n } else if (options.requireTotalCount) {\r\n pendingDeferred.resolve(items, {\r\n totalCount: totalCount\r\n })\r\n } else {\r\n pendingDeferred.resolve(items)\r\n }\r\n })).fail((function(x) {\r\n pendingDeferred.reject(x)\r\n }))\r\n }))\r\n}\r\n\r\nfunction runRawLoadWithKey(pendingDeferred, store, key) {\r\n runRawLoad(pendingDeferred, store, {}, (function(rawData) {\r\n var keyExpr = store.key();\r\n var item;\r\n for (var i = 0, len = rawData.length; i < len; i++) {\r\n item = rawData[i];\r\n if (keysEqual(keyExpr, store.keyOf(rawData[i]), key)) {\r\n pendingDeferred.resolve(item);\r\n return\r\n }\r\n }\r\n pendingDeferred.reject(errors.Error(\"E4009\"))\r\n }))\r\n}\r\nvar CustomStore = Store.inherit({\r\n ctor: function(options) {\r\n options = options || {};\r\n this.callBase(options);\r\n this._useDefaultSearch = !!options.useDefaultSearch || \"raw\" === options.loadMode;\r\n this._loadMode = options.loadMode;\r\n this._cacheRawData = false !== options.cacheRawData;\r\n this._loadFunc = options[LOAD];\r\n this._totalCountFunc = options[TOTAL_COUNT];\r\n this._byKeyFunc = options[BY_KEY];\r\n this._insertFunc = options[INSERT];\r\n this._updateFunc = options[UPDATE];\r\n this._removeFunc = options[REMOVE]\r\n },\r\n createQuery: function() {\r\n throw errors.Error(\"E4010\")\r\n },\r\n clearRawDataCache: function() {\r\n delete this.__rawData\r\n },\r\n _totalCountImpl: function(options) {\r\n var d = new Deferred;\r\n if (\"raw\" === this._loadMode && !this._totalCountFunc) {\r\n runRawLoadWithQuery(d, this, options, true)\r\n } else {\r\n invokeUserTotalCountFunc(this, options).done((function(count) {\r\n d.resolve(Number(count))\r\n })).fail(createUserFuncFailureHandler(d));\r\n d = this._addFailHandlers(d)\r\n }\r\n return d.promise()\r\n },\r\n _pushImpl: function(changes) {\r\n if (this.__rawData) {\r\n applyBatch({\r\n keyInfo: this,\r\n data: this.__rawData,\r\n changes: changes\r\n })\r\n }\r\n },\r\n _loadImpl: function(options) {\r\n var d = new Deferred;\r\n if (\"raw\" === this._loadMode) {\r\n runRawLoadWithQuery(d, this, options, false)\r\n } else {\r\n invokeUserLoad(this, options).done((function(data, extra) {\r\n d.resolve(data, extra)\r\n })).fail(createUserFuncFailureHandler(d));\r\n d = this._addFailHandlers(d)\r\n }\r\n return d.promise()\r\n },\r\n _byKeyImpl: function(key, extraOptions) {\r\n var d = new Deferred;\r\n if (this._byKeyViaLoad()) {\r\n this._requireKey();\r\n runRawLoadWithKey(d, this, key)\r\n } else {\r\n invokeUserByKeyFunc(this, key, extraOptions).done((function(obj) {\r\n d.resolve(obj)\r\n })).fail(createUserFuncFailureHandler(d))\r\n }\r\n return d.promise()\r\n },\r\n _byKeyViaLoad: function() {\r\n return \"raw\" === this._loadMode && !this._byKeyFunc\r\n },\r\n _insertImpl: function(values) {\r\n var that = this;\r\n var userFunc = that._insertFunc;\r\n var userResult;\r\n var d = new Deferred;\r\n ensureRequiredFuncOption(INSERT, userFunc);\r\n userResult = userFunc.apply(that, [values]);\r\n if (!isPromise(userResult)) {\r\n userResult = trivialPromise(userResult)\r\n }\r\n fromPromise(userResult).done((function(serverResponse) {\r\n if (config().useLegacyStoreResult) {\r\n d.resolve(values, serverResponse)\r\n } else {\r\n d.resolve(serverResponse || values, that.keyOf(serverResponse))\r\n }\r\n })).fail(createUserFuncFailureHandler(d));\r\n return d.promise()\r\n },\r\n _updateImpl: function(key, values) {\r\n var userFunc = this._updateFunc;\r\n var userResult;\r\n var d = new Deferred;\r\n ensureRequiredFuncOption(UPDATE, userFunc);\r\n userResult = userFunc.apply(this, [key, values]);\r\n if (!isPromise(userResult)) {\r\n userResult = trivialPromise(userResult)\r\n }\r\n fromPromise(userResult).done((function(serverResponse) {\r\n if (config().useLegacyStoreResult) {\r\n d.resolve(key, values)\r\n } else {\r\n d.resolve(serverResponse || values, key)\r\n }\r\n })).fail(createUserFuncFailureHandler(d));\r\n return d.promise()\r\n },\r\n _removeImpl: function(key) {\r\n var userFunc = this._removeFunc;\r\n var userResult;\r\n var d = new Deferred;\r\n ensureRequiredFuncOption(REMOVE, userFunc);\r\n userResult = userFunc.apply(this, [key]);\r\n if (!isPromise(userResult)) {\r\n userResult = trivialPromise()\r\n }\r\n fromPromise(userResult).done((function() {\r\n d.resolve(key)\r\n })).fail(createUserFuncFailureHandler(d));\r\n return d.promise()\r\n }\r\n});\r\nexport default CustomStore;\r\n","/*!\n * devextreme-vue\n * Version: 22.1.5\n * Build date: Fri Sep 02 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DxExtensionComponent = void 0;\nvar component_1 = require(\"./component\");\nvar DxExtensionComponent = function () { return component_1.BaseComponent().extend({\n created: function () {\n this.$_isExtension = true;\n },\n mounted: function () {\n this.$el.setAttribute(\"isExtension\", \"true\");\n if (this.$vnode && this.$vnode.componentOptions.$_hasOwner) {\n return;\n }\n this.attachTo(this.$el);\n },\n methods: {\n attachTo: function (element) {\n this.$_createWidget(element);\n }\n }\n}); };\nexports.DxExtensionComponent = DxExtensionComponent;\n","/**\r\n * DevExtreme (esm/core/options/utils.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../devices\";\r\nimport {\r\n isEmptyObject,\r\n isFunction\r\n} from \"../utils/type\";\r\nimport {\r\n findBestMatches\r\n} from \"../utils/common\";\r\nimport {\r\n extend\r\n} from \"../utils/extend\";\r\nimport {\r\n compileGetter\r\n} from \"../utils/data\";\r\nvar cachedGetters = {};\r\nexport var convertRulesToOptions = rules => {\r\n var currentDevice = devices.current();\r\n return rules.reduce((options, _ref) => {\r\n var {\r\n device: device,\r\n options: ruleOptions\r\n } = _ref;\r\n var deviceFilter = device || {};\r\n var match = isFunction(deviceFilter) ? deviceFilter(currentDevice) : deviceMatch(currentDevice, deviceFilter);\r\n if (match) {\r\n extend(true, options, ruleOptions)\r\n }\r\n return options\r\n }, {})\r\n};\r\nexport var normalizeOptions = (options, value) => \"string\" !== typeof options ? options : {\r\n [options]: value\r\n};\r\nexport var deviceMatch = (device, filter) => isEmptyObject(filter) || findBestMatches(device, [filter]).length > 0;\r\nexport var getFieldName = fullName => fullName.substr(fullName.lastIndexOf(\".\") + 1);\r\nexport var getParentName = fullName => fullName.substr(0, fullName.lastIndexOf(\".\"));\r\nexport var getNestedOptionValue = function(optionsObject, name) {\r\n cachedGetters[name] = cachedGetters[name] || compileGetter(name);\r\n return cachedGetters[name](optionsObject, {\r\n functionsAsIs: true\r\n })\r\n};\r\nexport var createDefaultOptionRules = function() {\r\n var options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\r\n return options\r\n};\r\n","/**\r\n * DevExtreme (esm/events/gesture/emitter.gesture.scroll.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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","/*!\n * devextreme-vue\n * Version: 22.1.5\n * Build date: Fri Sep 02 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createExtensionComponent = exports.createConfigurationComponent = exports.createComponent = void 0;\nvar VueType = __importStar(require(\"vue\"));\nvar Vue = VueType.default || VueType;\nvar component_1 = require(\"./component\");\nvar configuration_component_1 = require(\"./configuration-component\");\nvar extension_component_1 = require(\"./extension-component\");\nfunction createComponent(config) {\n config.extends = component_1.DxComponent();\n return Vue.extend(config);\n}\nexports.createComponent = createComponent;\nfunction createConfigurationComponent(config) {\n config.extends = configuration_component_1.DxConfiguration();\n return Vue.extend(config);\n}\nexports.createConfigurationComponent = createConfigurationComponent;\nfunction createExtensionComponent(config) {\n config.extends = extension_component_1.DxExtensionComponent();\n return Vue.extend(config);\n}\nexports.createExtensionComponent = createExtensionComponent;\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","/*!\n * devextreme-vue\n * Version: 22.1.5\n * Build date: Fri Sep 02 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.initBaseComponent = exports.initDxComponent = void 0;\nvar vue_1 = require(\"vue\");\nvar callbacks_1 = __importDefault(require(\"devextreme/core/utils/callbacks\"));\nvar events_1 = require(\"devextreme/events\");\nvar vue_helper_1 = require(\"./vue-helper\");\nvar children_processing_1 = require(\"./children-processing\");\nvar configuration_1 = __importStar(require(\"./configuration\"));\nvar configuration_component_1 = require(\"./configuration-component\");\nvar constants_1 = require(\"./constants\");\nvar helpers_1 = require(\"./helpers\");\nvar templates_manager_1 = require(\"./templates-manager\");\nvar includeAttrs = [\"id\", \"class\", \"style\"];\nfunction getAttrs(attrs) {\n var attributes = {};\n includeAttrs.forEach(function (attr) {\n var attrValue = attrs[attr];\n if (attrValue) {\n attributes[attr] = attrValue;\n }\n });\n return attributes;\n}\nfunction initBaseComponent() {\n return vue_1.defineComponent({\n inheritAttrs: false,\n data: function () {\n return {\n eventBus: callbacks_1.default()\n };\n },\n provide: function () {\n return {\n eventBus: this.eventBus\n };\n },\n render: function () {\n var thisComponent = this;\n var children = [];\n if (thisComponent.$_config.cleanNested) {\n thisComponent.$_config.cleanNested();\n }\n children_processing_1.pullAllChildren(vue_helper_1.defaultSlots(this), children, thisComponent.$_config);\n this.$_processChildren(children);\n return vue_1.h(\"div\", __assign({}, getAttrs(this.$attrs)), children);\n },\n beforeUpdate: function () {\n var thisComponent = this;\n thisComponent.$_config.setPrevNestedOptions(thisComponent.$_config.getNestedOptionValues());\n },\n updated: function () {\n var thisComponent = this;\n var nodes = cleanWidgetNode(this.$el);\n vue_helper_1.getChildren(thisComponent).forEach(function (child) {\n var _a;\n configuration_component_1.initOptionChangedFunc(child.$_config, child.type.props || {}, (_a = child === null || child === void 0 ? void 0 : child.component) === null || _a === void 0 ? void 0 : _a.proxy, child.$_innerChanges);\n });\n thisComponent.$_templatesManager.discover();\n thisComponent.$_instance.beginUpdate();\n if (thisComponent.$_templatesManager.isDirty) {\n thisComponent.$_instance.option(\"integrationOptions.templates\", thisComponent.$_templatesManager.templates);\n var props = thisComponent.$.vnode.props;\n for (var _i = 0, _a = Object.keys(thisComponent.$_templatesManager.templates); _i < _a.length; _i++) {\n var name_1 = _a[_i];\n thisComponent.$_instance.option(helpers_1.getTemplatePropName(props, name_1), name_1);\n }\n thisComponent.$_templatesManager.resetDirtyFlag();\n }\n for (var _b = 0, _c = Object.keys(thisComponent.$_pendingOptions); _b < _c.length; _b++) {\n var name_2 = _c[_b];\n thisComponent.$_instance.option(name_2, thisComponent.$_pendingOptions[name_2]);\n }\n thisComponent.$_pendingOptions = {};\n this.$_applyConfigurationChanges();\n thisComponent.$_instance.endUpdate();\n restoreNodes(this.$el, nodes);\n this.eventBus.fire();\n },\n beforeUnmount: function () {\n var thisComponent = this;\n var instance = thisComponent.$_instance;\n if (instance) {\n events_1.triggerHandler(this.$el, constants_1.DX_REMOVE_EVENT);\n instance.dispose();\n }\n },\n created: function () {\n var thisComponent = this;\n var props = vue_helper_1.getComponentProps(this);\n thisComponent.$_config = new configuration_1.default(function (n, v) {\n if (Array.isArray(v)) {\n thisComponent.$_instance.option(n, v);\n }\n else {\n thisComponent.$_pendingOptions[n === vue_helper_1.VMODEL_NAME ? \"value\" : n] = v;\n }\n }, null, props && __assign({}, props), thisComponent.$_expectedChildren);\n thisComponent.$_innerChanges = {};\n thisComponent.$_config.init(this.$props && Object.keys(this.$props));\n },\n methods: {\n $_applyConfigurationChanges: function () {\n var thisComponent = this;\n thisComponent.$_config.componentsCountChanged.forEach(function (_a) {\n var optionPath = _a.optionPath, isCollection = _a.isCollection, removed = _a.removed;\n var options = thisComponent.$_config.getNestedOptionValues();\n if (!isCollection && removed) {\n thisComponent.$_instance.resetOption(optionPath);\n }\n else {\n thisComponent.$_instance.option(optionPath, helpers_1.getOptionValue(options, optionPath));\n }\n });\n thisComponent.$_config.cleanComponentsCountChanged();\n },\n $_createWidget: function (element) {\n var thisComponent = this;\n thisComponent.$_pendingOptions = {};\n thisComponent.$_templatesManager = new templates_manager_1.TemplatesManager(this);\n var config = thisComponent.$_config;\n if (config.initialValues.hasOwnProperty(vue_helper_1.VMODEL_NAME)) {\n config.initialValues.value = vue_helper_1.getVModelValue(config.initialValues);\n }\n var options = __assign(__assign(__assign(__assign({ templatesRenderAsynchronously: thisComponent.$_hasAsyncTemplate }, vue_helper_1.getComponentProps(thisComponent)), config.initialValues), config.getNestedOptionValues()), this.$_getIntegrationOptions());\n var instance = new thisComponent.$_WidgetClass(element, options);\n thisComponent.$_instance = instance;\n instance.on(\"optionChanged\", function (args) { return config.onOptionChanged(args); });\n configuration_1.setEmitOptionChangedFunc(config, thisComponent, thisComponent.$_innerChanges);\n configuration_1.bindOptionWatchers(config, thisComponent, thisComponent.$_innerChanges);\n this.$_createEmitters(instance);\n },\n $_getIntegrationOptions: function () {\n var thisComponent = this;\n var result = __assign({ integrationOptions: {\n watchMethod: this.$_getWatchMethod(),\n } }, this.$_getExtraIntegrationOptions());\n if (thisComponent.$_templatesManager.isDirty) {\n var templates = thisComponent.$_templatesManager.templates;\n result.integrationOptions.templates = templates;\n var props = thisComponent.$.vnode.props;\n for (var _i = 0, _a = Object.keys(templates); _i < _a.length; _i++) {\n var name_3 = _a[_i];\n result[helpers_1.getTemplatePropName(props, name_3)] = name_3;\n }\n thisComponent.$_templatesManager.resetDirtyFlag();\n }\n return result;\n },\n $_getWatchMethod: function () {\n var _this = this;\n return function (valueGetter, valueChangeCallback, options) {\n options = options || {};\n if (!options.skipImmediate) {\n valueChangeCallback(valueGetter());\n }\n return _this.$watch(function () {\n return valueGetter();\n }, function (newValue, oldValue) {\n if (helpers_1.toComparable(oldValue) !== helpers_1.toComparable(newValue) || options.deep) {\n valueChangeCallback(newValue);\n }\n }, {\n deep: options.deep\n });\n };\n },\n $_getExtraIntegrationOptions: function () {\n return {};\n },\n $_processChildren: function (_children) {\n return;\n },\n $_createEmitters: function (instance) {\n var _this = this;\n if (this.$attrs) {\n Object.keys(this.$attrs).forEach(function (listenerName) {\n var eventName = helpers_1.camelize(listenerName);\n instance.on(eventName, function (e) {\n _this.$emit(listenerName, e);\n });\n });\n }\n }\n }\n });\n}\nexports.initBaseComponent = initBaseComponent;\nfunction cleanWidgetNode(node) {\n var removedNodes = [];\n helpers_1.forEachChildNode(node, function (childNode) {\n var parent = childNode.parentNode;\n var isExtension = childNode.hasAttribute && childNode.hasAttribute(\"isExtension\");\n if ((childNode.nodeName === \"#comment\" || isExtension) && parent) {\n removedNodes.push(childNode);\n parent.removeChild(childNode);\n }\n });\n return removedNodes;\n}\nfunction restoreNodes(el, nodes) {\n nodes.forEach(function (node) {\n el.appendChild(node);\n });\n}\nfunction initDxComponent() {\n return vue_1.defineComponent({\n extends: initBaseComponent(),\n methods: {\n $_getExtraIntegrationOptions: function () {\n return {\n onInitializing: function () {\n this.beginUpdate();\n }\n };\n },\n $_processChildren: function (children) {\n children.forEach(function (childNode) {\n if (!childNode || typeof childNode !== \"object\") {\n return;\n }\n childNode.$_hasOwner = true;\n });\n },\n },\n mounted: function () {\n var _this = this;\n var nodes = cleanWidgetNode(this.$el);\n var thisComponent = this;\n this.$_createWidget(this.$el);\n thisComponent.$_instance.endUpdate();\n restoreNodes(this.$el, nodes);\n if (this.$slots && this.$slots.default) {\n vue_helper_1.getChildren(thisComponent).forEach(function (child) {\n var childExtenton = child;\n if (childExtenton && childExtenton.$_isExtension) {\n childExtenton.$_attachTo(_this.$el);\n }\n });\n }\n }\n });\n}\nexports.initDxComponent = initDxComponent;\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scrollable.device.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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: function() {\r\n return !nativeScrolling\r\n },\r\n options: {\r\n useNative: false\r\n }\r\n }, {\r\n device: function(_device) {\r\n return !devices.isSimulator() && \"desktop\" === devices.real().deviceType && \"generic\" === _device.platform\r\n },\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/core/utils/stubs.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function stubComponent(componentName) {\r\n return class {\r\n constructor() {\r\n throw new Error(\"Module '\".concat(componentName, \"' not found\"))\r\n }\r\n static getInstance() {}\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/widget/ui.search_box_mixin.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n stubComponent\r\n} from \"../../core/utils/stubs\";\r\nvar EditorClass = stubComponent(\"TextBox\");\r\nexport default {\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n searchMode: \"\",\r\n searchExpr: null,\r\n searchValue: \"\",\r\n searchEnabled: false,\r\n searchEditorOptions: {}\r\n })\r\n },\r\n _initMarkup: function() {\r\n this._renderSearch();\r\n this.callBase()\r\n },\r\n _renderSearch: function() {\r\n var $element = this.$element();\r\n var searchEnabled = this.option(\"searchEnabled\");\r\n var searchBoxClassName = this._addWidgetPrefix(\"search\");\r\n var rootElementClassName = this._addWidgetPrefix(\"with-search\");\r\n if (!searchEnabled) {\r\n $element.removeClass(rootElementClassName);\r\n this._removeSearchBox();\r\n return\r\n }\r\n var editorOptions = this._getSearchEditorOptions();\r\n if (this._searchEditor) {\r\n this._searchEditor.option(editorOptions)\r\n } else {\r\n $element.addClass(rootElementClassName);\r\n this._$searchEditorElement = $(\"
\").addClass(searchBoxClassName).prependTo($element);\r\n this._searchEditor = this._createComponent(this._$searchEditorElement, EditorClass, editorOptions)\r\n }\r\n },\r\n _removeSearchBox: function() {\r\n this._$searchEditorElement && this._$searchEditorElement.remove();\r\n delete this._$searchEditorElement;\r\n delete this._searchEditor\r\n },\r\n _getSearchEditorOptions: function() {\r\n var that = this;\r\n var userEditorOptions = that.option(\"searchEditorOptions\");\r\n var searchText = messageLocalization.format(\"Search\");\r\n return extend({\r\n mode: \"search\",\r\n placeholder: searchText,\r\n tabIndex: that.option(\"tabIndex\"),\r\n value: that.option(\"searchValue\"),\r\n valueChangeEvent: \"input\",\r\n inputAttr: {\r\n \"aria-label\": searchText\r\n },\r\n onValueChanged: function(e) {\r\n var searchTimeout = that.option(\"searchTimeout\");\r\n that._valueChangeDeferred = new Deferred;\r\n clearTimeout(that._valueChangeTimeout);\r\n that._valueChangeDeferred.done(function() {\r\n this.option(\"searchValue\", e.value)\r\n }.bind(that));\r\n if (e.event && \"input\" === e.event.type && searchTimeout) {\r\n that._valueChangeTimeout = setTimeout((function() {\r\n that._valueChangeDeferred.resolve()\r\n }), searchTimeout)\r\n } else {\r\n that._valueChangeDeferred.resolve()\r\n }\r\n }\r\n }, userEditorOptions)\r\n },\r\n _getAriaTarget: function() {\r\n if (this.option(\"searchEnabled\")) {\r\n return this._itemContainer(true)\r\n }\r\n return this.$element()\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 _cleanAria: function($target) {\r\n this.setAria({\r\n role: null,\r\n activedescendant: null\r\n }, $target);\r\n $target.attr(\"tabIndex\", null)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"searchEnabled\":\r\n case \"searchEditorOptions\":\r\n this._cleanAria(this.option(\"searchEnabled\") ? this.$element() : this._itemContainer());\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 _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","/*!\n * devextreme-vue\n * Version: 22.1.5\n * Build date: Fri Sep 02 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getInnerChanges = exports.getConfig = exports.initOptionChangedFunc = exports.DxConfiguration = void 0;\nvar VueType = __importStar(require(\"vue\"));\nvar Vue = VueType.default || VueType;\nvar configuration_1 = require(\"./configuration\");\nfunction getConfig(vueInstance) {\n if (!vueInstance.$vnode) {\n return;\n }\n var componentOptions = vueInstance.$vnode.componentOptions;\n return componentOptions && componentOptions.$_config;\n}\nexports.getConfig = getConfig;\nfunction getInnerChanges(vueInstance) {\n if (!vueInstance.$vnode) {\n return;\n }\n var componentOptions = vueInstance.$vnode.componentOptions;\n return componentOptions && componentOptions.$_innerChanges;\n}\nexports.getInnerChanges = getInnerChanges;\nfunction initOptionChangedFunc(config, vueInstance, innerChanges) {\n if (!config) {\n return;\n }\n config.init(Object.keys(vueInstance.$props));\n configuration_1.setEmitOptionChangedFunc(config, vueInstance, innerChanges);\n}\nexports.initOptionChangedFunc = initOptionChangedFunc;\nfunction getComponentInfo(_a, removed) {\n var name = _a.name, isCollectionItem = _a.isCollectionItem, ownerConfig = _a.ownerConfig;\n var parentPath = ownerConfig && ownerConfig.fullPath;\n var optionPath = name && parentPath ? parentPath + \".\" + name : name || \"\";\n return {\n optionPath: optionPath,\n isCollection: isCollectionItem,\n removed: removed\n };\n}\nvar DxConfiguration = function () { return Vue.extend({\n beforeMount: function () {\n var config = getConfig(this);\n var innerChanges = getInnerChanges(this);\n initOptionChangedFunc(config, this, innerChanges);\n configuration_1.bindOptionWatchers(config, this, innerChanges);\n },\n mounted: function () {\n if (this.$parent.$_instance) {\n this.$parent.$_config.componentsCountChanged\n .push(getComponentInfo(getConfig(this)));\n }\n },\n beforeDestroy: function () {\n this.$parent.$_config.componentsCountChanged\n .push(getComponentInfo(getConfig(this), true));\n },\n render: function (createElement) {\n return createElement();\n }\n}); };\nexports.DxConfiguration = DxConfiguration;\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scrollable.simulated.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n titleize\r\n} from \"../../core/utils/inflector\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport {\r\n resetPosition,\r\n move,\r\n locate\r\n} from \"../../animation/translator\";\r\nimport Class from \"../../core/class\";\r\nimport Animator from \"./animator\";\r\nimport {\r\n isDxMouseWheelEvent,\r\n addNamespace as addEventNamespace,\r\n normalizeKeyName,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport {\r\n deferUpdate,\r\n deferUpdater,\r\n deferRender,\r\n deferRenderer,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport Scrollbar from \"./ui.scrollbar\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar SCROLLABLE_SIMULATED = \"dxSimulatedScrollable\";\r\nvar SCROLLABLE_STRATEGY = \"dxScrollableStrategy\";\r\nvar SCROLLABLE_SIMULATED_CURSOR = SCROLLABLE_SIMULATED + \"Cursor\";\r\nvar SCROLLABLE_SIMULATED_KEYBOARD = 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 - Math.pow(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: function(scroller) {\r\n this.callBase();\r\n this.scroller = scroller\r\n },\r\n VELOCITY_LIMIT: MIN_VELOCITY_LIMIT,\r\n _isFinished: function() {\r\n return Math.abs(this.scroller._velocity) <= this.VELOCITY_LIMIT\r\n },\r\n _step: function() {\r\n this.scroller._scrollStep(this.scroller._velocity);\r\n this.scroller._velocity *= this._acceleration()\r\n },\r\n _acceleration: function() {\r\n return this.scroller._inBounds() ? ACCELERATION : OUT_BOUNDS_ACCELERATION\r\n },\r\n _complete: function() {\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: function() {\r\n return this.scroller._crossBoundOnNextStep() || this.callBase()\r\n },\r\n _acceleration: function() {\r\n return ACCELERATION\r\n },\r\n _complete: function() {\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: function(options) {\r\n this._initOptions(options);\r\n this._initAnimators();\r\n this._initScrollbar()\r\n },\r\n _initOptions: function(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[\"_\" + optionName] = optionValue\r\n })\r\n },\r\n _initAnimators: function() {\r\n this._inertiaAnimator = new InertiaAnimator(this);\r\n this._bounceAnimator = new BounceAnimator(this)\r\n },\r\n _initScrollbar: function() {\r\n this._scrollbar = new Scrollbar($(\"
\").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: function(mode) {\r\n return true === mode ? \"onScroll\" : false === mode ? \"never\" : mode\r\n },\r\n _scrollStep: function(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: function() {\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: function(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: function(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: function() {\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: function() {\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: function(element, dimension) {\r\n return Math.round(getBoundingRect(element)[dimension])\r\n },\r\n _getBaseDimension: function(element, dimension) {\r\n var dimensionName = \"offset\" + titleize(dimension);\r\n return element[dimensionName]\r\n },\r\n _moveContentByTranslator: function(location) {\r\n var translateOffset;\r\n var minOffset = -this._maxScrollPropValue;\r\n if (location > 0) {\r\n translateOffset = location\r\n } else if (location <= minOffset) {\r\n translateOffset = location - minOffset\r\n } else {\r\n translateOffset = location % 1\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 (0 === translateOffset) {\r\n resetPosition(this._$content);\r\n return\r\n }\r\n move(this._$content, targetLocation)\r\n },\r\n _moveScrollbar: function() {\r\n this._scrollbar.moveTo(this._location)\r\n },\r\n _scrollComplete: function() {\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: function() {\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: function() {\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: function(location) {\r\n location = void 0 !== location ? location : this._location;\r\n return this._boundLocation(location) === location\r\n },\r\n _crossBoundOnNextStep: function() {\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: function(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: function(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: function($target) {\r\n return this._isThumb($target)\r\n },\r\n _moveToMouseLocation: function(e) {\r\n var mouseLocation = e[\"page\" + 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: function() {\r\n this._showScrollbar()\r\n },\r\n _moveHandler: function(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: function(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: function(delta) {\r\n this._scrollBy(delta);\r\n this._scrollComplete()\r\n },\r\n _containerToContentRatio: function() {\r\n return this._scrollbar.containerToContentRatio()\r\n },\r\n _endHandler: function(velocity) {\r\n this._completeDeferred = new 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: function() {\r\n this._suppressInertia();\r\n this._inertiaAnimator.start()\r\n },\r\n _suppressInertia: function() {\r\n if (!this._inertiaEnabled || this._thumbScrolling) {\r\n this._velocity = 0\r\n }\r\n },\r\n _resetThumbScrolling: function() {\r\n this._thumbScrolling = false;\r\n this._crossThumbScrolling = false\r\n },\r\n _stopHandler: function() {\r\n if (this._thumbScrolling) {\r\n this._scrollComplete()\r\n }\r\n this._resetThumbScrolling();\r\n this._scrollToBounds()\r\n },\r\n _disposeHandler: function() {\r\n this._stopScrolling();\r\n this._$scrollbar.remove()\r\n },\r\n _updateHandler: function() {\r\n this._update();\r\n this._moveToBounds()\r\n },\r\n _update: function() {\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: function() {\r\n this._scaleRatio = null\r\n },\r\n _updateLocation: function() {\r\n this._location = (locate(this._$content)[this._prop] - this._$container[this._scrollProp]()) * this._getScaleRatio()\r\n },\r\n _updateBounds: function() {\r\n this._maxOffset = this._getMaxOffset();\r\n this._minOffset = this._getMinOffset()\r\n },\r\n _getMaxOffset: function() {\r\n return 0\r\n },\r\n _getMinOffset: function() {\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: function(actions) {\r\n this._scrollAction = actions.scroll;\r\n this._bounceAction = actions.bounce\r\n },\r\n _showScrollbar: function() {\r\n this._scrollbar.option(\"visible\", true)\r\n },\r\n _hideScrollbar: function() {\r\n this._scrollbar.option(\"visible\", false)\r\n },\r\n _containerSize: function() {\r\n return this._getRealDimension(this._$container.get(0), this._dimension)\r\n },\r\n _contentSize: function() {\r\n var isOverflowHidden = \"hidden\" === this._$content.css(\"overflow\" + 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\" + titleize(this._dimension)] * this._getScaleRatio();\r\n contentSize = Math.max(containerScrollSize, contentSize)\r\n }\r\n return contentSize\r\n },\r\n _validateEvent: function(e) {\r\n var $target = $(e.originalEvent.target);\r\n return this._isThumb($target) || this._isScrollbar($target)\r\n },\r\n _isThumb: function($element) {\r\n return this._scrollByThumb && this._scrollbar.isThumb($element)\r\n },\r\n _isScrollbar: function($element) {\r\n return this._scrollByThumb && $element && $element.is(this._$scrollbar)\r\n },\r\n _reachedMin: function() {\r\n return Math.round(this._location - this._minOffset) <= 0\r\n },\r\n _reachedMax: function() {\r\n return Math.round(this._location - this._maxOffset) >= 0\r\n },\r\n _cursorEnterHandler: function() {\r\n this._resetScaleRatio();\r\n this._updateScrollbar();\r\n this._scrollbar.cursorEnter()\r\n },\r\n _cursorLeaveHandler: function() {\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: function(scrollable) {\r\n this._init(scrollable)\r\n },\r\n _init: function(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: function() {\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: function() {\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: function(direction) {\r\n this._scrollers[direction] = new Scroller(this._scrollerOptions(direction))\r\n },\r\n _scrollerOptions: function(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: function(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: function($target) {\r\n var result = false;\r\n this._eventHandler(\"isThumbScrolling\", $target).done((function(isThumbScrollingVertical, isThumbScrollingHorizontal) {\r\n result = isThumbScrollingVertical || isThumbScrollingHorizontal\r\n }));\r\n return result\r\n },\r\n handleInit: function(e) {\r\n this._suppressDirections(e);\r\n this._eventForUserAction = e;\r\n this._eventHandler(\"init\", e)\r\n },\r\n _suppressDirections: function(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: function($element) {\r\n return !!$element.closest(this._$element).length\r\n },\r\n _prepareDirections: function(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: function(callback) {\r\n callback = callback.bind(this);\r\n each(this._scrollers, (function(direction, scroller) {\r\n callback(scroller, direction)\r\n }))\r\n },\r\n handleStart: function(e) {\r\n this._eventForUserAction = e;\r\n this._eventHandler(\"start\").done(this._startAction)\r\n },\r\n _saveActive: function() {\r\n activeScrollable = this\r\n },\r\n _resetActive: function() {\r\n if (activeScrollable === this) {\r\n activeScrollable = null\r\n }\r\n },\r\n handleMove: function(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: function(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: function() {\r\n if (hasWindow()) {\r\n return getWindow().devicePixelRatio\r\n }\r\n },\r\n handleEnd: function(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: function(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: function() {\r\n this._resetActive();\r\n this._eventHandler(\"stop\")\r\n },\r\n handleScroll: function() {\r\n this._updateRtlConfig();\r\n this._scrollAction()\r\n },\r\n _attachKeyboardHandler: function() {\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: function(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())) {\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: function(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: function(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: function(prop) {\r\n return \"left\" === prop ? \"width\" : \"height\"\r\n },\r\n _getPropByDirection: function(direction) {\r\n return direction === HORIZONTAL ? \"left\" : \"top\"\r\n },\r\n _scrollToHome: function() {\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: function() {\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: function() {\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: function() {\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: function(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: function() {\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: function(eventName) {\r\n var args = [].slice.call(arguments).slice(1);\r\n var deferreds = map(this._scrollers, scroller => scroller[\"_\" + eventName + \"Handler\"].apply(scroller, args));\r\n return when.apply($, deferreds).promise()\r\n },\r\n location: function() {\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: function() {\r\n this._attachCursorHandlers()\r\n },\r\n _attachCursorHandlers: function() {\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: function() {\r\n return \"onHover\" === this.option(\"showScrollbar\")\r\n },\r\n _cursorEnterHandler: function(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: function(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: function(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: function() {\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: function() {\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: function() {\r\n this._scrollers[HORIZONTAL] && this._scrollers[HORIZONTAL]._updateBounds()\r\n },\r\n _isHorizontalAndRtlEnabled: function() {\r\n return this.option(\"rtlEnabled\") && this.option(\"direction\") !== VERTICAL\r\n },\r\n updateRtlPosition: function(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 deferUpdate(() => {\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 deferRender(() => {\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 }\r\n },\r\n _updateRtlConfig: function() {\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: function() {\r\n return hasWindow() ? getWindow().devicePixelRatio : 1\r\n },\r\n scrollBy: function(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: function(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: function(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: function(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: function(e) {\r\n return isDxMouseWheelEvent(e) ? this._wheelDirection(e) : this._allowedDirection()\r\n },\r\n _wheelProp: function() {\r\n return this._wheelDirection() === HORIZONTAL ? \"left\" : \"top\"\r\n },\r\n _wheelDirection: function(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: function() {\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: function() {\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/events/remove.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 beforeCleanData\r\n} from \"../core/element_data\";\r\nimport eventsEngine from \"./core/events_engine\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nexport var removeEvent = \"dxremove\";\r\nvar eventPropName = \"dxRemoveEvent\";\r\nbeforeCleanData((function(elements) {\r\n elements = [].slice.call(elements);\r\n for (var i = 0; i < elements.length; i++) {\r\n var $element = $(elements[i]);\r\n if ($element.prop(eventPropName)) {\r\n $element[0][eventPropName] = null;\r\n eventsEngine.triggerHandler($element, removeEvent)\r\n }\r\n }\r\n}));\r\nregisterEvent(removeEvent, {\r\n noBubble: true,\r\n setup: function(element) {\r\n $(element).prop(eventPropName, true)\r\n }\r\n});\r\n","/*!\n * devextreme-vue\n * Version: 22.1.5\n * Build date: Fri Sep 02 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DX_REMOVE_EVENT = exports.DX_TEMPLATE_WRAPPER_CLASS = void 0;\nvar DX_TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\nexports.DX_TEMPLATE_WRAPPER_CLASS = DX_TEMPLATE_WRAPPER_CLASS;\nvar DX_REMOVE_EVENT = \"dxremove\";\nexports.DX_REMOVE_EVENT = DX_REMOVE_EVENT;\n","/*!\n * devextreme-vue\n * Version: 22.1.5\n * Build date: Fri Sep 02 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getConfigurationOptions = exports.setVModel = exports.setCompatOptions = exports.getVModelValue = exports.getNodeTypeOfComponent = exports.getNodeOptions = exports.usedConfigurationProps = exports.getComponentProps = exports.mount = exports.defaultSlots = exports.declaredTemplates = exports.configurationTemplate = exports.configurationDefaultTemplate = exports.configurationChildren = exports.getNormalizedProps = exports.getComponentInfo = exports.getChildren = exports.VMODEL_NAME = void 0;\nvar vue_1 = require(\"vue\");\nvar helpers_1 = require(\"./helpers\");\nvar children_processing_1 = require(\"./children-processing\");\nexports.VMODEL_NAME = \"modelValue\";\nfunction getChildren(component) {\n if (!hasChildren(component) || !component.$_config) {\n return [];\n }\n var children = component.$.subTree && component.$.subTree.children;\n if (!Array.isArray(children)) {\n return [];\n }\n return children.filter(function (child) {\n if (!children_processing_1.isFragment(child)) {\n return child;\n }\n return;\n });\n}\nexports.getChildren = getChildren;\nfunction getComponentInfo(component) {\n return getConfigurationOptions(component);\n}\nexports.getComponentInfo = getComponentInfo;\nfunction getNormalizedProps(props) {\n var result = {};\n for (var propName in props) {\n if (props.hasOwnProperty(propName)) {\n result[helpers_1.camelize(propName)] = props[propName];\n }\n }\n return result;\n}\nexports.getNormalizedProps = getNormalizedProps;\nfunction configurationChildren(component) {\n if (!component.children || !component.children.default) {\n return [];\n }\n return findConfigurationComponents(component.children.default());\n}\nexports.configurationChildren = configurationChildren;\nfunction configurationDefaultTemplate(node) {\n if (!node.children || node.children === \"object\" || !node.children.default) {\n return;\n }\n return hasInlineTemplate(node.children.default()) ? node.children.default : undefined;\n}\nexports.configurationDefaultTemplate = configurationDefaultTemplate;\nfunction configurationTemplate(node) {\n return configurationDefaultTemplate(node);\n}\nexports.configurationTemplate = configurationTemplate;\nfunction declaredTemplates(component) {\n return component.$slots;\n}\nexports.declaredTemplates = declaredTemplates;\nfunction defaultSlots(component) {\n var templates = declaredTemplates(component);\n if (!templates.default) {\n return [];\n }\n return templates.default();\n}\nexports.defaultSlots = defaultSlots;\nfunction mount(options, parent, el) {\n var template = vue_1.createApp(options);\n template.provide(\"eventBus\", parent.eventBus);\n setAppContext(template, parent);\n return template.mount(el);\n}\nexports.mount = mount;\nfunction getComponentProps(component) {\n var props = component.$.vnode.props || {};\n return getNormalizedProps(props);\n}\nexports.getComponentProps = getComponentProps;\nfunction usedConfigurationProps(node) {\n return node.props;\n}\nexports.usedConfigurationProps = usedConfigurationProps;\nfunction getNodeOptions(component) {\n if (component.$) {\n return component.$.vnode;\n }\n return component;\n}\nexports.getNodeOptions = getNodeOptions;\nfunction getNodeTypeOfComponent(component) {\n return component.$.vnode.type;\n}\nexports.getNodeTypeOfComponent = getNodeTypeOfComponent;\nfunction getVModelValue(options) {\n return options[exports.VMODEL_NAME];\n}\nexports.getVModelValue = getVModelValue;\nfunction setCompatOptions(component) {\n component.compatConfig = {\n MODE: 3\n };\n}\nexports.setCompatOptions = setCompatOptions;\nfunction setVModel(config) {\n var _a;\n var eventName = \"update:\" + exports.VMODEL_NAME;\n config.model.prop = exports.VMODEL_NAME;\n config.model.event = eventName;\n config.props.modelValue = {};\n config.emits = __assign(__assign({}, config.emits), (_a = {}, _a[\"\" + eventName] = null, _a));\n}\nexports.setVModel = setVModel;\nfunction setCustomPluginsData(appContext, parentAppContext) {\n for (var prop in parentAppContext) {\n if (!appContext.hasOwnProperty(prop) && parentAppContext.hasOwnProperty(prop)) {\n appContext[prop] = parentAppContext[prop];\n }\n }\n}\nfunction setAppContext(template, parent) {\n template._context.components = Object.assign(parent.$.appContext.components, template._context.components);\n Object.setPrototypeOf(template._context.provides, Object.getPrototypeOf(parent.$.provides));\n Object.assign(template._context.provides, parent.$.appContext.provides);\n template._context.config = parent.$.appContext.config;\n template._context.directives = parent.$.appContext.directives;\n template._context.mixins = parent.$.appContext.mixins;\n setCustomPluginsData(template._context.app, parent.$.appContext.app);\n}\nfunction findConfigurationComponents(children) {\n return children.filter(function (child) {\n if (children_processing_1.isFragment(child)) {\n return findConfigurationComponents(child.children || []);\n }\n var childType = child.type;\n if (childType && typeof childType === \"object\" && childType.$_optionName) {\n delete child.$_config;\n delete child.$_innerChanges;\n return child;\n }\n return;\n });\n}\nfunction hasInlineTemplate(children) {\n var hasTemplate = false;\n children.forEach(function (child) {\n if (!isConfiguration(child) && !children_processing_1.isFragment(child) && !isComment(child)) {\n hasTemplate = true;\n }\n });\n return hasTemplate;\n}\nfunction isComment(node) {\n var nodeType = node.type;\n var type = typeof nodeType === \"symbol\" ? nodeType.toString() : nodeType;\n return type === \"Symbol(Comment)\" || (type === \"Symbol()\" && !node.children);\n}\nfunction isConfiguration(child) {\n return child.type && typeof child.type === \"object\" && child.type.$_optionName;\n}\nfunction getConfigurationOptions(node) {\n return node.type;\n}\nexports.getConfigurationOptions = getConfigurationOptions;\nfunction hasChildren(component) {\n return component.$.vnode && component.$.vnode.children && component.$.vnode.children.default;\n}\n","/**\r\n * DevExtreme (esm/ui/widget/swatch_container.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 = $(\"
\").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/renovation/component_wrapper/editors/editor.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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\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 = $(\".dx-invalid-message.dx-overlay-wrapper\");\r\n null === $validationMessageWrapper || void 0 === $validationMessageWrapper ? void 0 : $validationMessageWrapper.removeClass(INVALID_MESSAGE_AUTO);\r\n if (this.showValidationMessageTimeout) {\r\n clearTimeout(this.showValidationMessageTimeout)\r\n }\r\n this.showValidationMessageTimeout = setTimeout(() => {\r\n null === $validationMessageWrapper || void 0 === $validationMessageWrapper ? void 0 : $validationMessageWrapper.addClass(INVALID_MESSAGE_AUTO)\r\n }, 150)\r\n }\r\n };\r\n props.saveValueChangeEvent = e => {\r\n this._valueChangeEventInstance = e\r\n };\r\n return props\r\n }\r\n _createElement(element) {\r\n super._createElement(element);\r\n this.showValidationMessageTimeout = void 0;\r\n this.validationRequest = Callbacks();\r\n data(this.$element()[0], VALIDATION_TARGET, this)\r\n }\r\n _render() {\r\n var _this$option;\r\n null === (_this$option = this.option(\"_onMarkupRendered\")) || void 0 === _this$option ? void 0 : _this$option()\r\n }\r\n _initializeComponent() {\r\n super._initializeComponent();\r\n this._valueChangeAction = this._createActionByOption(\"onValueChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n }\r\n _initOptions(options) {\r\n super._initOptions(options);\r\n this.option(ValidationEngine.initValidationOptions(options))\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n validationMessageOffset: {\r\n h: 0,\r\n v: 0\r\n },\r\n validationTooltipOptions: {}\r\n })\r\n }\r\n _bindInnerWidgetOptions(innerWidget, optionsContainer) {\r\n var innerWidgetOptions = extend({}, innerWidget.option());\r\n var syncOptions = () => this._silent(optionsContainer, innerWidgetOptions);\r\n syncOptions();\r\n innerWidget.on(\"optionChanged\", syncOptions)\r\n }\r\n _raiseValidation(value, previousValue) {\r\n var areValuesEmpty = !isDefined(value) && !isDefined(previousValue);\r\n if (value !== previousValue && !areValuesEmpty) {\r\n this.validationRequest.fire({\r\n value: value,\r\n editor: this\r\n })\r\n }\r\n }\r\n _raiseValueChangeAction(value, previousValue) {\r\n var _this$_valueChangeAct;\r\n null === (_this$_valueChangeAct = this._valueChangeAction) || void 0 === _this$_valueChangeAct ? void 0 : _this$_valueChangeAct.call(this, {\r\n element: this.$element(),\r\n previousValue: previousValue,\r\n value: value,\r\n event: this._valueChangeEventInstance\r\n });\r\n this._valueChangeEventInstance = void 0\r\n }\r\n _optionChanged(option) {\r\n var {\r\n name: name,\r\n previousValue: previousValue,\r\n value: value\r\n } = option;\r\n if (name && void 0 !== this._getActionConfigs()[name]) {\r\n this._addAction(name)\r\n }\r\n switch (name) {\r\n case \"value\":\r\n this._raiseValidation(value, previousValue);\r\n this._raiseValueChangeAction(value, previousValue);\r\n break;\r\n case \"onValueChanged\":\r\n this._valueChangeAction = this._createActionByOption(\"onValueChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n break;\r\n case \"isValid\":\r\n case \"validationError\":\r\n case \"validationErrors\":\r\n case \"validationStatus\":\r\n this.option(ValidationEngine.synchronizeValidationOptions(option, this.option()))\r\n }\r\n super._optionChanged(option)\r\n }\r\n reset() {\r\n var {\r\n value: value\r\n } = this._getDefaultOptions();\r\n this.option({\r\n value: value\r\n })\r\n }\r\n _dispose() {\r\n super._dispose();\r\n data(this.element(), VALIDATION_TARGET, null);\r\n if (this.showValidationMessageTimeout) {\r\n clearTimeout(this.showValidationMessageTimeout)\r\n }\r\n }\r\n}\r\nvar prevIsEditor = OldEditor.isEditor;\r\nvar newIsEditor = instance => prevIsEditor(instance) || instance instanceof Editor;\r\nEditor.isEditor = newIsEditor;\r\nOldEditor.isEditor = newIsEditor;\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/editors/check_box.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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/editors/check_box/utils.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"isChecked\", \"size\"];\r\nimport {\r\n createVNode\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n normalizeStyles\r\n} from \"@devextreme/runtime/inferno\";\r\nimport getElementComputedStyle from \"../../../utils/get_computed_style\";\r\nimport {\r\n hasWindow\r\n} from \"../../../../core/utils/window\";\r\nimport {\r\n normalizeStyleProp\r\n} from \"../../../../core/utils/style\";\r\nimport {\r\n isNumeric as isNumber\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n getFontSizeByIconSize\r\n} from \"./utils\";\r\nexport var viewFunction = viewModel => {\r\n var {\r\n cssStyles: cssStyles,\r\n elementRef: elementRef\r\n } = viewModel;\r\n return createVNode(1, \"span\", \"dx-checkbox-icon\", null, 1, {\r\n style: normalizeStyles(cssStyles)\r\n }, null, elementRef)\r\n};\r\nexport var CheckBoxIconProps = {\r\n isChecked: false\r\n};\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class CheckBoxIcon extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.elementRef = infernoCreateRef();\r\n this.__getterCache = {};\r\n this.updateFontSize = this.updateFontSize.bind(this);\r\n this.setIconFontSize = this.setIconFontSize.bind(this);\r\n this.getIconSize = this.getIconSize.bind(this);\r\n this.getComputedIconSize = this.getComputedIconSize.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.updateFontSize, [this.props.isChecked, this.props.size])]\r\n }\r\n updateEffects() {\r\n var _this$_effects$;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.props.isChecked, this.props.size])\r\n }\r\n updateFontSize() {\r\n var {\r\n isChecked: isChecked,\r\n size: size\r\n } = this.props;\r\n if (hasWindow() && size) {\r\n var newIconSize = this.getIconSize(size);\r\n var newFontSize = getFontSizeByIconSize(newIconSize, isChecked);\r\n this.setIconFontSize(newFontSize)\r\n }\r\n }\r\n setIconFontSize(fontSize) {\r\n var element = this.elementRef.current;\r\n element.style.fontSize = \"\".concat(fontSize, \"px\")\r\n }\r\n getIconSize(size) {\r\n if (isNumber(size)) {\r\n return size\r\n }\r\n if (size.endsWith(\"px\")) {\r\n return parseInt(size, 10)\r\n }\r\n return this.getComputedIconSize()\r\n }\r\n getComputedIconSize() {\r\n var element = this.elementRef.current;\r\n var iconComputedStyle = getElementComputedStyle(element);\r\n var computedIconSize = parseInt(null === iconComputedStyle || void 0 === iconComputedStyle ? void 0 : iconComputedStyle.width, 10);\r\n return computedIconSize\r\n }\r\n get cssStyles() {\r\n if (void 0 !== this.__getterCache.cssStyles) {\r\n return this.__getterCache.cssStyles\r\n }\r\n return this.__getterCache.cssStyles = (() => {\r\n var {\r\n size: size\r\n } = this.props;\r\n var width = normalizeStyleProp(\"width\", size);\r\n var height = normalizeStyleProp(\"height\", size);\r\n return {\r\n height: height,\r\n width: width\r\n }\r\n })()\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n super.componentWillUpdate();\r\n if (this.props.size !== nextProps.size) {\r\n this.__getterCache.cssStyles = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n elementRef: this.elementRef,\r\n setIconFontSize: this.setIconFontSize,\r\n getIconSize: this.getIconSize,\r\n getComputedIconSize: this.getComputedIconSize,\r\n cssStyles: this.cssStyles,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nCheckBoxIcon.defaultProps = CheckBoxIconProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/check_box/check_box.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"iconSize\", \"isValid\", \"name\", \"onClick\", \"onFocusIn\", \"onKeyDown\", \"readOnly\", \"rtlEnabled\", \"saveValueChangeEvent\", \"tabIndex\", \"text\", \"validationError\", \"validationErrors\", \"validationMessageMode\", \"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 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 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 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 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 validationStatus() {\r\n return CheckBoxProps.validationStatus\r\n },\r\n get isValid() {\r\n return CheckBoxProps.isValid\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 _ref;\r\n var {\r\n readOnly: readOnly,\r\n saveValueChangeEvent: saveValueChangeEvent\r\n } = this.props;\r\n var value = null !== (_ref = void 0 !== this.props.value ? this.props.value : this.state.value) && void 0 !== _ref ? _ref : false;\r\n if (!readOnly) {\r\n null === saveValueChangeEvent || void 0 === saveValueChangeEvent ? void 0 : saveValueChangeEvent(event);\r\n var __newValue;\r\n this.setState(__state_argument => {\r\n __newValue = !value;\r\n return {\r\n value: __newValue\r\n }\r\n });\r\n this.props.valueChange(__newValue)\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: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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\", \"activeStateEnabled\", \"hoverStateEnabled\", \"focusStateEnabled\", \"saveValueChangeEvent\", \"defaultValue\", \"valueChange\", \"readOnly\", \"name\", \"validationError\", \"validationErrors\", \"validationMessageMode\", \"validationStatus\", \"isValid\", \"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: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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/events/utils/event_nodes_disposing.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../core/events_engine\";\r\nimport {\r\n removeEvent\r\n} from \"../remove\";\r\n\r\nfunction nodesByEvent(event) {\r\n return event && [event.target, event.delegateTarget, event.relatedTarget, event.currentTarget].filter(node => !!node)\r\n}\r\nexport var subscribeNodesDisposing = (event, callback) => {\r\n eventsEngine.one(nodesByEvent(event), removeEvent, callback)\r\n};\r\nexport var unsubscribeNodesDisposing = (event, callback) => {\r\n eventsEngine.off(nodesByEvent(event), removeEvent, callback)\r\n};\r\n","/**\r\n * DevExtreme (esm/events/click.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 devices from \"../core/devices\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport {\r\n resetActiveElement\r\n} from \"../core/utils/dom\";\r\nimport {\r\n requestAnimationFrame,\r\n cancelAnimationFrame\r\n} from \"../animation/frame\";\r\nimport {\r\n addNamespace,\r\n fireEvent\r\n} from \"./utils/index\";\r\nimport {\r\n subscribeNodesDisposing,\r\n unsubscribeNodesDisposing\r\n} from \"./utils/event_nodes_disposing\";\r\nimport pointerEvents from \"./pointer\";\r\nimport Emitter from \"./core/emitter\";\r\nimport registerEmitter from \"./core/emitter_registrator\";\r\nvar CLICK_EVENT_NAME = \"dxclick\";\r\nvar misc = {\r\n requestAnimationFrame: requestAnimationFrame,\r\n cancelAnimationFrame: cancelAnimationFrame\r\n};\r\nvar prevented = null;\r\nvar lastFiredEvent = null;\r\nvar onNodeRemove = () => {\r\n lastFiredEvent = null\r\n};\r\nvar clickHandler = function(e) {\r\n var originalEvent = e.originalEvent;\r\n var eventAlreadyFired = lastFiredEvent === originalEvent || originalEvent && originalEvent.DXCLICK_FIRED;\r\n var leftButton = !e.which || 1 === e.which;\r\n if (leftButton && !prevented && !eventAlreadyFired) {\r\n if (originalEvent) {\r\n originalEvent.DXCLICK_FIRED = true\r\n }\r\n unsubscribeNodesDisposing(lastFiredEvent, onNodeRemove);\r\n lastFiredEvent = originalEvent;\r\n subscribeNodesDisposing(lastFiredEvent, onNodeRemove);\r\n fireEvent({\r\n type: CLICK_EVENT_NAME,\r\n originalEvent: e\r\n })\r\n }\r\n};\r\nvar ClickEmitter = Emitter.inherit({\r\n ctor: function(element) {\r\n this.callBase(element);\r\n eventsEngine.on(this.getElement(), \"click\", clickHandler)\r\n },\r\n start: function(e) {\r\n prevented = null\r\n },\r\n cancel: function() {\r\n prevented = true\r\n },\r\n dispose: function() {\r\n eventsEngine.off(this.getElement(), \"click\", clickHandler)\r\n }\r\n});\r\n! function() {\r\n var desktopDevice = devices.real().generic;\r\n if (!desktopDevice) {\r\n var startTarget = null;\r\n var blurPrevented = false;\r\n var document = domAdapter.getDocument();\r\n eventsEngine.subscribeGlobal(document, addNamespace(pointerEvents.down, \"NATIVE_CLICK_FIXER\"), (function(e) {\r\n startTarget = e.target;\r\n blurPrevented = e.isDefaultPrevented()\r\n }));\r\n eventsEngine.subscribeGlobal(document, addNamespace(\"click\", \"NATIVE_CLICK_FIXER\"), (function(e) {\r\n var $target = $(e.target);\r\n if (!blurPrevented && startTarget && !$target.is(startTarget) && !$(startTarget).is(\"label\") && (element = $target, $(element).is(\"input, textarea, select, button ,:focus, :focus *\"))) {\r\n resetActiveElement()\r\n }\r\n var element;\r\n startTarget = null;\r\n blurPrevented = false\r\n }))\r\n }\r\n}();\r\nregisterEmitter({\r\n emitter: ClickEmitter,\r\n bubble: true,\r\n events: [CLICK_EVENT_NAME]\r\n});\r\nexport {\r\n CLICK_EVENT_NAME as name\r\n};\r\n","/**\r\n * DevExtreme (esm/data/store_helper.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\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} from \"../core/utils/iterator\";\r\nimport arrayQuery from \"./array_query\";\r\nimport {\r\n normalizeSortingInfo\r\n} from \"./utils\";\r\n\r\nfunction multiLevelGroup(query, groupInfo) {\r\n query = query.groupBy(groupInfo[0].selector);\r\n if (groupInfo.length > 1) {\r\n query = query.select((function(g) {\r\n return extend({}, g, {\r\n items: multiLevelGroup(arrayQuery(g.items), groupInfo.slice(1)).toArray()\r\n })\r\n }))\r\n }\r\n return query\r\n}\r\n\r\nfunction arrangeSortingInfo(groupInfo, sortInfo) {\r\n var filteredGroup = [];\r\n each(groupInfo, (function(_, group) {\r\n var collision = grep(sortInfo, (function(sort) {\r\n return group.selector === sort.selector\r\n }));\r\n if (collision.length < 1) {\r\n filteredGroup.push(group)\r\n }\r\n }));\r\n return filteredGroup.concat(sortInfo)\r\n}\r\n\r\nfunction queryByOptions(query, options, isCountQuery) {\r\n options = options || {};\r\n var filter = options.filter;\r\n if (filter) {\r\n query = query.filter(filter)\r\n }\r\n if (isCountQuery) {\r\n return query\r\n }\r\n var sort = options.sort;\r\n var select = options.select;\r\n var group = options.group;\r\n var skip = options.skip;\r\n var take = options.take;\r\n if (group) {\r\n group = normalizeSortingInfo(group);\r\n group.keepInitialKeyOrder = !!options.group.keepInitialKeyOrder\r\n }\r\n if (sort || group) {\r\n sort = normalizeSortingInfo(sort || []);\r\n if (group && !group.keepInitialKeyOrder) {\r\n sort = arrangeSortingInfo(group, sort)\r\n }\r\n each(sort, (function(index) {\r\n query = query[index ? \"thenBy\" : \"sortBy\"](this.selector, this.desc, this.compare)\r\n }))\r\n }\r\n if (select) {\r\n query = query.select(select)\r\n }\r\n if (group) {\r\n query = multiLevelGroup(query, group)\r\n }\r\n if (take || skip) {\r\n query = query.slice(skip || 0, take)\r\n }\r\n return query\r\n}\r\nexport default {\r\n multiLevelGroup: multiLevelGroup,\r\n arrangeSortingInfo: arrangeSortingInfo,\r\n queryByOptions: queryByOptions\r\n};\r\n","/**\r\n * DevExtreme (esm/core/resize_observer.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"./utils/common\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"./utils/window\";\r\nvar window = getWindow();\r\nvar ResizeObserverMock = {\r\n observe: noop,\r\n unobserve: noop,\r\n disconnect: noop\r\n};\r\nclass ResizeObserverSingleton {\r\n constructor() {\r\n if (!hasWindow() || !window.ResizeObserver) {\r\n return ResizeObserverMock\r\n }\r\n this._callbacksMap = new Map;\r\n this._observer = new window.ResizeObserver(entries => {\r\n entries.forEach(entry => {\r\n var _this$_callbacksMap$g;\r\n null === (_this$_callbacksMap$g = this._callbacksMap.get(entry.target)) || void 0 === _this$_callbacksMap$g ? void 0 : _this$_callbacksMap$g(entry)\r\n })\r\n })\r\n }\r\n observe(element, callback) {\r\n this._callbacksMap.set(element, callback);\r\n this._observer.observe(element)\r\n }\r\n unobserve(element) {\r\n this._callbacksMap.delete(element);\r\n this._observer.unobserve(element)\r\n }\r\n disconnect() {\r\n this._callbacksMap.clear();\r\n this._observer.disconnect()\r\n }\r\n}\r\nvar resizeObserverSingleton = new ResizeObserverSingleton;\r\nexport default resizeObserverSingleton;\r\n","/*!\n * devextreme-vue\n * Version: 22.1.5\n * Build date: Fri Sep 02 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getInnerChanges = exports.getConfig = exports.initOptionChangedFunc = exports.initDxConfiguration = void 0;\nvar vue_1 = require(\"vue\");\nvar vue_helper_1 = require(\"./vue-helper\");\nvar configuration_1 = require(\"./configuration\");\nfunction getConfig(vueInstance) {\n var componentOptions = vue_helper_1.getNodeOptions(vueInstance);\n if (!componentOptions) {\n return;\n }\n return componentOptions.$_config || vueInstance.$_config;\n}\nexports.getConfig = getConfig;\nfunction getInnerChanges(vueInstance) {\n var componentOptions = vue_helper_1.getNodeOptions(vueInstance);\n if (!componentOptions) {\n return;\n }\n return componentOptions.$_innerChanges || vueInstance.$_innerChanges;\n}\nexports.getInnerChanges = getInnerChanges;\nfunction initOptionChangedFunc(config, props, vueInstance, innerChanges) {\n if (!config) {\n return;\n }\n config.init(Object.keys(props));\n if (vueInstance) {\n configuration_1.setEmitOptionChangedFunc(config, vueInstance, innerChanges);\n }\n}\nexports.initOptionChangedFunc = initOptionChangedFunc;\nfunction getComponentInfo(_a, removed) {\n var name = _a.name, isCollectionItem = _a.isCollectionItem, ownerConfig = _a.ownerConfig;\n var parentPath = ownerConfig && ownerConfig.fullPath;\n var optionPath = name && parentPath ? parentPath + \".\" + name : name || \"\";\n return {\n optionPath: optionPath,\n isCollection: isCollectionItem,\n removed: removed\n };\n}\nfunction initDxConfiguration() {\n return vue_1.defineComponent({\n beforeMount: function () {\n var thisComponent = this;\n var config = getConfig(thisComponent);\n var innerChanges = getInnerChanges(thisComponent);\n initOptionChangedFunc(config, vue_helper_1.getNodeTypeOfComponent(thisComponent).props, thisComponent, innerChanges);\n configuration_1.bindOptionWatchers(config, this, innerChanges);\n },\n mounted: function () {\n if (this.$parent.$_instance) {\n this.$parent.$_config.componentsCountChanged\n .push(getComponentInfo(getConfig(this)));\n }\n },\n beforeUnmount: function () {\n var config = getConfig(this);\n if (config) {\n this.$parent.$_config.componentsCountChanged\n .push(getComponentInfo(config, true));\n }\n },\n render: function () {\n return null;\n }\n });\n}\nexports.initDxConfiguration = initDxConfiguration;\n","/**\r\n * DevExtreme (esm/core/utils/array_compare.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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/ui/widget/ui.widget.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 this.setAria(\"hidden\", !visible || void 0)\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 _getActiveElement() {\r\n var activeElement = this._eventBindingTarget();\r\n if (this._activeStateUnit) {\r\n return activeElement.find(this._activeStateUnit).not(\".dx-state-disabled\")\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/core/element_data.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"./dom_adapter\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport MemorizedCallbacks from \"./memorized_callbacks\";\r\nvar dataMap = new WeakMap;\r\nvar strategy;\r\nexport var strategyChanging = new MemorizedCallbacks;\r\nvar beforeCleanDataFunc = function() {};\r\nvar afterCleanDataFunc = function() {};\r\nexport var setDataStrategy = function(value) {\r\n strategyChanging.fire(value);\r\n strategy = value;\r\n var cleanData = strategy.cleanData;\r\n strategy.cleanData = function(nodes) {\r\n beforeCleanDataFunc(nodes);\r\n var result = cleanData.call(this, nodes);\r\n afterCleanDataFunc(nodes);\r\n return result\r\n }\r\n};\r\nsetDataStrategy({\r\n data: function() {\r\n var element = arguments[0];\r\n var key = arguments[1];\r\n var value = arguments[2];\r\n if (!element) {\r\n return\r\n }\r\n var elementData = dataMap.get(element);\r\n if (!elementData) {\r\n elementData = {};\r\n dataMap.set(element, elementData)\r\n }\r\n if (void 0 === key) {\r\n return elementData\r\n }\r\n if (2 === arguments.length) {\r\n return elementData[key]\r\n }\r\n elementData[key] = value;\r\n return value\r\n },\r\n removeData: function(element, key) {\r\n if (!element) {\r\n return\r\n }\r\n if (void 0 === key) {\r\n dataMap.delete(element)\r\n } else {\r\n var elementData = dataMap.get(element);\r\n if (elementData) {\r\n delete elementData[key]\r\n }\r\n }\r\n },\r\n cleanData: function(elements) {\r\n for (var i = 0; i < elements.length; i++) {\r\n eventsEngine.off(elements[i]);\r\n dataMap.delete(elements[i])\r\n }\r\n }\r\n});\r\nexport function getDataStrategy() {\r\n return strategy\r\n}\r\nexport function data() {\r\n return strategy.data.apply(this, arguments)\r\n}\r\nexport function beforeCleanData(callback) {\r\n beforeCleanDataFunc = callback\r\n}\r\nexport function afterCleanData(callback) {\r\n afterCleanDataFunc = callback\r\n}\r\nexport function cleanData(nodes) {\r\n return strategy.cleanData.call(this, nodes)\r\n}\r\nexport function removeData(element, key) {\r\n return strategy.removeData.call(this, element, key)\r\n}\r\nexport function cleanDataRecursive(element, cleanSelf) {\r\n if (!domAdapter.isElementNode(element)) {\r\n return\r\n }\r\n var childElements = element.getElementsByTagName(\"*\");\r\n strategy.cleanData(childElements);\r\n if (cleanSelf) {\r\n strategy.cleanData([element])\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/size.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n isWindow,\r\n isString,\r\n isNumeric,\r\n isRenderer\r\n} from \"../utils/type\";\r\nvar window = getWindow();\r\nvar SPECIAL_HEIGHT_VALUES = [\"auto\", \"none\", \"inherit\", \"initial\"];\r\nvar getSizeByStyles = function(elementStyles, styles) {\r\n var result = 0;\r\n styles.forEach((function(style) {\r\n result += parseFloat(elementStyles[style]) || 0\r\n }));\r\n return result\r\n};\r\nexport var getElementBoxParams = function(name, elementStyles) {\r\n var beforeName = \"width\" === name ? \"Left\" : \"Top\";\r\n var afterName = \"width\" === name ? \"Right\" : \"Bottom\";\r\n return {\r\n padding: getSizeByStyles(elementStyles, [\"padding\" + beforeName, \"padding\" + afterName]),\r\n border: getSizeByStyles(elementStyles, [\"border\" + beforeName + \"Width\", \"border\" + afterName + \"Width\"]),\r\n margin: getSizeByStyles(elementStyles, [\"margin\" + beforeName, \"margin\" + afterName])\r\n }\r\n};\r\nvar getElementComputedStyle = function(element) {\r\n var _element$ownerDocumen;\r\n var view = (null === element || void 0 === element ? void 0 : null === (_element$ownerDocumen = element.ownerDocument) || void 0 === _element$ownerDocumen ? void 0 : _element$ownerDocumen.defaultView) || window;\r\n return view.getComputedStyle && view.getComputedStyle(element)\r\n};\r\nvar getCSSProperty = function(element, styles, name, defaultValue) {\r\n var _element$style;\r\n return (null === styles || void 0 === styles ? void 0 : styles[name]) || (null === (_element$style = element.style) || void 0 === _element$style ? void 0 : _element$style[name]) || defaultValue\r\n};\r\nvar boxIndices = {\r\n content: 0,\r\n padding: 1,\r\n border: 2,\r\n margin: 3,\r\n \"content-box\": 0,\r\n \"border-box\": 2\r\n};\r\nvar dimensionComponents = {\r\n width: [\"left\", \"right\"],\r\n height: [\"top\", \"bottom\"]\r\n};\r\n\r\nfunction getComponentThickness(elem, dimension, component, styles) {\r\n var get = (elem, styles, field) => parseFloat(getCSSProperty(elem, styles, field, \"0\")) || 0;\r\n var suffix = \"border\" === component ? \"-width\" : \"\";\r\n return get(elem, styles, \"\".concat(component, \"-\").concat(dimensionComponents[dimension][0]).concat(suffix)) + get(elem, styles, \"\".concat(component, \"-\").concat(dimensionComponents[dimension][1]).concat(suffix))\r\n}\r\nexport var getSize = function(element, dimension, box) {\r\n var offsetFieldName = \"width\" === dimension ? \"offsetWidth\" : \"offsetHeight\";\r\n var styles = getElementComputedStyle(element);\r\n var result = getCSSProperty(element, styles, dimension);\r\n if (\"\" === result || \"auto\" === result) {\r\n result = element[offsetFieldName]\r\n }\r\n result = parseFloat(result) || 0;\r\n var currentBox = getCSSProperty(element, styles, \"boxSizing\", \"content-box\");\r\n var targetBox = box || currentBox;\r\n var targetBoxIndex = boxIndices[targetBox];\r\n var currentBoxIndex = boxIndices[currentBox];\r\n if (void 0 === targetBoxIndex || void 0 === currentBoxIndex) {\r\n throw new Error\r\n }\r\n if (currentBoxIndex === targetBoxIndex) {\r\n return result\r\n }\r\n var coeff = Math.sign(targetBoxIndex - currentBoxIndex);\r\n var padding = false;\r\n var border = false;\r\n var margin = false;\r\n var scrollThickness = false;\r\n if (1 === coeff) {\r\n targetBoxIndex += 1;\r\n currentBoxIndex += 1\r\n }\r\n for (var boxPart = currentBoxIndex; boxPart !== targetBoxIndex; boxPart += coeff) {\r\n switch (boxPart) {\r\n case boxIndices.content:\r\n break;\r\n case boxIndices.padding:\r\n padding = coeff * getComponentThickness(element, dimension, \"padding\", styles);\r\n break;\r\n case boxIndices.border:\r\n border = coeff * getComponentThickness(element, dimension, \"border\", styles);\r\n break;\r\n case boxIndices.margin:\r\n margin = coeff * getComponentThickness(element, dimension, \"margin\", styles)\r\n }\r\n }\r\n if (padding || border) {\r\n var paddingAndBorder = (false === padding ? coeff * getComponentThickness(element, dimension, \"padding\", styles) : padding) + (false === border ? coeff * getComponentThickness(element, dimension, \"border\", styles) : border);\r\n scrollThickness = coeff * Math.max(0, Math.floor(element[offsetFieldName] - result - coeff * paddingAndBorder)) || 0\r\n }\r\n return result + margin + padding + border + scrollThickness\r\n};\r\nvar getContainerHeight = function(container) {\r\n return isWindow(container) ? container.innerHeight : container.offsetHeight\r\n};\r\nexport var parseHeight = function(value, container) {\r\n if (value.indexOf(\"px\") > 0) {\r\n value = parseInt(value.replace(\"px\", \"\"))\r\n } else if (value.indexOf(\"%\") > 0) {\r\n value = parseInt(value.replace(\"%\", \"\")) * getContainerHeight(container) / 100\r\n } else if (!isNaN(value)) {\r\n value = parseInt(value)\r\n } else if (value.indexOf(\"vh\") > 0) {\r\n value = window.innerHeight / 100 * parseInt(value.replace(\"vh\", \"\"))\r\n }\r\n return value\r\n};\r\nvar getHeightWithOffset = function(value, offset, container) {\r\n if (!value) {\r\n return null\r\n }\r\n if (SPECIAL_HEIGHT_VALUES.indexOf(value) > -1) {\r\n return offset ? null : value\r\n }\r\n if (isString(value)) {\r\n value = parseHeight(value, container)\r\n }\r\n if (isNumeric(value)) {\r\n return Math.max(0, value + offset)\r\n }\r\n var operationString = offset < 0 ? \" - \" : \" \";\r\n return \"calc(\" + value + operationString + Math.abs(offset) + \"px)\"\r\n};\r\nexport var addOffsetToMaxHeight = function(value, offset, container) {\r\n var maxHeight = getHeightWithOffset(value, offset, container);\r\n return null !== maxHeight ? maxHeight : \"none\"\r\n};\r\nexport var addOffsetToMinHeight = function(value, offset, container) {\r\n var minHeight = getHeightWithOffset(value, offset, container);\r\n return null !== minHeight ? minHeight : 0\r\n};\r\nexport var getVerticalOffsets = function(element, withMargins) {\r\n if (!element) {\r\n return 0\r\n }\r\n var boxParams = getElementBoxParams(\"height\", window.getComputedStyle(element));\r\n return boxParams.padding + boxParams.border + (withMargins ? boxParams.margin : 0)\r\n};\r\nexport var getVisibleHeight = function(element) {\r\n if (element) {\r\n var boundingClientRect = element.getBoundingClientRect();\r\n if (boundingClientRect.height) {\r\n return boundingClientRect.height\r\n }\r\n }\r\n return 0\r\n};\r\nexport var implementationsMap = {\r\n getWidth: 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 elementSizeHelper(\"width\", ...args)\r\n },\r\n setWidth: function() {\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 return elementSizeHelper(\"width\", ...args)\r\n },\r\n getHeight: function() {\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 return elementSizeHelper(\"height\", ...args)\r\n },\r\n setHeight: function() {\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 return elementSizeHelper(\"height\", ...args)\r\n },\r\n getOuterWidth: function() {\r\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\r\n args[_key5] = arguments[_key5]\r\n }\r\n return elementSizeHelper(\"outerWidth\", ...args)\r\n },\r\n setOuterWidth: function() {\r\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\r\n args[_key6] = arguments[_key6]\r\n }\r\n return elementSizeHelper(\"outerWidth\", ...args)\r\n },\r\n getOuterHeight: function() {\r\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\r\n args[_key7] = arguments[_key7]\r\n }\r\n return elementSizeHelper(\"outerHeight\", ...args)\r\n },\r\n setOuterHeight: function() {\r\n for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\r\n args[_key8] = arguments[_key8]\r\n }\r\n return elementSizeHelper(\"outerHeight\", ...args)\r\n },\r\n getInnerWidth: function() {\r\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\r\n args[_key9] = arguments[_key9]\r\n }\r\n return elementSizeHelper(\"innerWidth\", ...args)\r\n },\r\n setInnerWidth: function() {\r\n for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\r\n args[_key10] = arguments[_key10]\r\n }\r\n return elementSizeHelper(\"innerWidth\", ...args)\r\n },\r\n getInnerHeight: function() {\r\n for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {\r\n args[_key11] = arguments[_key11]\r\n }\r\n return elementSizeHelper(\"innerHeight\", ...args)\r\n },\r\n setInnerHeight: function() {\r\n for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {\r\n args[_key12] = arguments[_key12]\r\n }\r\n return elementSizeHelper(\"innerHeight\", ...args)\r\n }\r\n};\r\n\r\nfunction elementSizeHelper(sizeProperty, el, value) {\r\n return 2 === arguments.length ? elementSize(el, sizeProperty) : elementSize(el, sizeProperty, value)\r\n}\r\nexport var getWidth = el => implementationsMap.getWidth(el);\r\nexport var setWidth = (el, value) => implementationsMap.setWidth(el, value);\r\nexport var getHeight = el => implementationsMap.getHeight(el);\r\nexport var setHeight = (el, value) => implementationsMap.setHeight(el, value);\r\nexport var getOuterWidth = (el, includeMargin) => implementationsMap.getOuterWidth(el, includeMargin || false);\r\nexport var setOuterWidth = (el, value) => implementationsMap.setOuterWidth(el, value);\r\nexport var getOuterHeight = (el, includeMargin) => implementationsMap.getOuterHeight(el, includeMargin || false);\r\nexport var setOuterHeight = (el, value) => implementationsMap.setOuterHeight(el, value);\r\nexport var getInnerWidth = el => implementationsMap.getInnerWidth(el);\r\nexport var setInnerWidth = (el, value) => implementationsMap.setInnerWidth(el, value);\r\nexport var getInnerHeight = el => implementationsMap.getInnerHeight(el);\r\nexport var setInnerHeight = (el, value) => implementationsMap.setInnerHeight(el, value);\r\nvar elementSize = function elementSize(el, sizeProperty, value) {\r\n var partialName = sizeProperty.toLowerCase().indexOf(\"width\") >= 0 ? \"Width\" : \"Height\";\r\n var propName = partialName.toLowerCase();\r\n var isOuter = 0 === sizeProperty.indexOf(\"outer\");\r\n var isInner = 0 === sizeProperty.indexOf(\"inner\");\r\n var isGetter = 2 === arguments.length || \"boolean\" === typeof value;\r\n if (isRenderer(el)) {\r\n if (el.length > 1 && !isGetter) {\r\n for (var i = 0; i < el.length; i++) {\r\n elementSize(el[i], sizeProperty, value)\r\n }\r\n return\r\n }\r\n el = el[0]\r\n }\r\n if (!el) {\r\n return\r\n }\r\n if (isWindow(el)) {\r\n return isOuter ? el[\"inner\" + partialName] : domAdapter.getDocumentElement()[\"client\" + partialName]\r\n }\r\n if (domAdapter.isDocument(el)) {\r\n var documentElement = domAdapter.getDocumentElement();\r\n var body = domAdapter.getBody();\r\n return Math.max(body[\"scroll\" + partialName], body[\"offset\" + partialName], documentElement[\"scroll\" + partialName], documentElement[\"offset\" + partialName], documentElement[\"client\" + partialName])\r\n }\r\n if (isGetter) {\r\n var box = \"content\";\r\n if (isOuter) {\r\n box = value ? \"margin\" : \"border\"\r\n }\r\n if (isInner) {\r\n box = \"padding\"\r\n }\r\n return getSize(el, propName, box)\r\n }\r\n if (isNumeric(value)) {\r\n var elementStyles = getElementComputedStyle(el);\r\n var sizeAdjustment = getElementBoxParams(propName, elementStyles);\r\n var isBorderBox = \"border-box\" === elementStyles.boxSizing;\r\n value = Number(value);\r\n if (isOuter) {\r\n value -= isBorderBox ? 0 : sizeAdjustment.border + sizeAdjustment.padding\r\n } else if (isInner) {\r\n value += isBorderBox ? sizeAdjustment.border : -sizeAdjustment.padding\r\n } else if (isBorderBox) {\r\n value += sizeAdjustment.border + sizeAdjustment.padding\r\n }\r\n }\r\n value += isNumeric(value) ? \"px\" : \"\";\r\n domAdapter.setStyle(el, propName, value);\r\n return null\r\n};\r\nexport var getWindowByElement = el => isWindow(el) ? el : el.defaultView;\r\nexport var getOffset = el => {\r\n if (!el.getClientRects().length) {\r\n return {\r\n top: 0,\r\n left: 0\r\n }\r\n }\r\n var rect = el.getBoundingClientRect();\r\n var win = getWindowByElement(el.ownerDocument);\r\n var docElem = el.ownerDocument.documentElement;\r\n return {\r\n top: rect.top + win.pageYOffset - docElem.clientTop,\r\n left: rect.left + win.pageXOffset - docElem.clientLeft\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/events/hover.js)\r\n * Version: 22.1.5\r\n * Build date: Fri Sep 02 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n removeData,\r\n data as elementData\r\n} from \"../core/element_data\";\r\nimport Class from \"../core/class\";\r\nimport devices from \"../core/devices\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport {\r\n addNamespace,\r\n isTouchEvent,\r\n fireEvent\r\n} from \"./utils/index\";\r\nimport pointerEvents from \"./pointer\";\r\nvar HOVERSTART_NAMESPACE = \"dxHoverStart\";\r\nvar HOVERSTART = \"dxhoverstart\";\r\nvar POINTERENTER_NAMESPACED_EVENT_NAME = addNamespace(pointerEvents.enter, HOVERSTART_NAMESPACE);\r\nvar HOVEREND_NAMESPACE = \"dxHoverEnd\";\r\nvar HOVEREND = \"dxhoverend\";\r\nvar POINTERLEAVE_NAMESPACED_EVENT_NAME = addNamespace(pointerEvents.leave, HOVEREND_NAMESPACE);\r\nvar Hover = Class.inherit({\r\n noBubble: true,\r\n ctor: function() {\r\n this._handlerArrayKeyPath = this._eventNamespace + \"_HandlerStore\"\r\n },\r\n setup: function(element) {\r\n elementData(element, this._handlerArrayKeyPath, {})\r\n },\r\n add: function(element, handleObj) {\r\n var that = this;\r\n var handler = function(e) {\r\n that._handler(e)\r\n };\r\n eventsEngine.on(element, this._originalEventName, handleObj.selector, handler);\r\n elementData(element, this._handlerArrayKeyPath)[handleObj.guid] = handler\r\n },\r\n _handler: function(e) {\r\n if (isTouchEvent(e) || devices.isSimulator()) {\r\n return\r\n }\r\n fireEvent({\r\n type: this._eventName,\r\n originalEvent: e,\r\n delegateTarget: e.delegateTarget\r\n })\r\n },\r\n remove: function(element, handleObj) {\r\n var handler = elementData(element, this._handlerArrayKeyPath)[handleObj.guid];\r\n eventsEngine.off(element, this._originalEventName, handleObj.selector, handler)\r\n },\r\n teardown: function(element) {\r\n removeData(element, this._handlerArrayKeyPath)\r\n }\r\n});\r\nvar HoverStart = Hover.inherit({\r\n ctor: function() {\r\n this._eventNamespace = HOVERSTART_NAMESPACE;\r\n this._eventName = HOVERSTART;\r\n this._originalEventName = POINTERENTER_NAMESPACED_EVENT_NAME;\r\n this.callBase()\r\n },\r\n _handler: function(e) {\r\n var pointers = e.pointers || [];\r\n if (!pointers.length) {\r\n this.callBase(e)\r\n }\r\n }\r\n});\r\nvar HoverEnd = Hover.inherit({\r\n ctor: function() {\r\n this._eventNamespace = HOVEREND_NAMESPACE;\r\n this._eventName = HOVEREND;\r\n this._originalEventName = POINTERLEAVE_NAMESPACED_EVENT_NAME;\r\n this.callBase()\r\n }\r\n});\r\nregisterEvent(HOVERSTART, new HoverStart);\r\nregisterEvent(HOVEREND, new HoverEnd);\r\nexport {\r\n HOVERSTART as start, HOVEREND as end\r\n};\r\n"],"sourceRoot":""}