{"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/core/utils/dependency_injector.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/utils/object.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/callbacks.js","webpack:///./node_modules/devextreme/esm/core/utils/ready_callbacks.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/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/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/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/core/config.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.scrollable.js","webpack:///./node_modules/devextreme/esm/core/utils/variable_wrapper.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.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/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/localization/ldml/number.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/core/utils/math.js","webpack:///./node_modules/devextreme/esm/core/utils/inflector.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/errors.js","webpack:///./node_modules/devextreme/esm/data_helper.js","webpack:///./node_modules/devextreme/esm/core/utils/style.js","webpack:///./node_modules/devextreme/esm/core/utils/common.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/events/double_click.js","webpack:///./node_modules/devextreme/esm/ui/hierarchical_collection/ui.data_converter.js","webpack:///./node_modules/devextreme/esm/ui/hierarchical_collection/ui.data_adapter.js","webpack:///./node_modules/devextreme/esm/ui/hierarchical_collection/ui.hierarchical_collection_widget.js","webpack:///./node_modules/devextreme/esm/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-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/localization/currency.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/core/utils/string.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/localization/utils.js","webpack:///./node_modules/devextreme/esm/data/utils.js","webpack:///./node_modules/devextreme/esm/ui/load_indicator.js","webpack:///./node_modules/devextreme/esm/core/errors.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/core/utils/console.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-vue/core/strategy/vue2/component.js","webpack:///./node_modules/devextreme/esm/core/utils/iterator.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/core/utils/data.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/core/utils/extend.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/type.js","webpack:///./node_modules/devextreme/esm/core/utils/public_component.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/core/version.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/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/utils/deferred.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.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/core/utils/error.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.scrollable.device.js","webpack:///./node_modules/devextreme/esm/ui/tree_view/ui.tree_view.base.js","webpack:///./node_modules/devextreme/esm/ui/tree_view/ui.tree_view.search.js","webpack:///./node_modules/devextreme/esm/ui/tree_view.js","webpack:///./node_modules/devextreme/esm/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/localization/default_messages.js","webpack:///./node_modules/devextreme/esm/localization/message.js","webpack:///./node_modules/devextreme/esm/core/guid.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/esm/localization/cldr-data/parent_locales.js","webpack:///./node_modules/devextreme/esm/localization/parentLocale.js","webpack:///./node_modules/devextreme/esm/localization/core.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/localization/open_xml_currency_format.js","webpack:///./node_modules/devextreme/esm/localization/cldr-data/accounting_formats.js","webpack:///./node_modules/devextreme/esm/localization/intl/number.js","webpack:///./node_modules/devextreme/esm/localization/number.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/core/class.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","BaseClass","object","InjectedClass","instance","initialFields","injectFields","injectionObject","initial","inject","resetInjection","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","message","format","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","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","toggleClass","targetWidth","positionSide","verticalPositions","my","at","collision","orderEach","Clone","func","isNumberX","isNumberY","assignValueToProperty","property","assignByReference","isWrapped","deepExtendArraySafe","extendComplexObject","prevValue","newValue","goDeeper","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","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","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","Callback","_list","_queue","_firing","_fired","_firingIndexes","_fireCore","firingIndexes","list","stopOnFalse","pop","unique","has","splice","fireWith","queue","syncStrategy","memory","fired","Callbacks","callbacks","subscribeReady","removeListener","listen","getDocument","readyCallbacks","callback","windowExists","getReadyState","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","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","uppercasePattern","kebabCase","str","normalizeStyles","styles","entries","acc","createQueue","discardPendingTasks","_tasks","_busy","exec","removeTaskCallback","busy","_counter","_deferreds","operationId","DataSource","_options$reshapeOnPus","_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","delay","changingArgs","groupLevel","dataSourceChanges","postProcessChanges","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","$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","themeName","waitStartTime","timerId","intervalCleared","handleLoaded","clearInterval","isPendingThemeLoaded","now","setInterval","isLoaded","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","top","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","targetElements","dropTargets","_dropTargets","dragOffset","_calculateOffset","_processDropTargets","_cancelPreventDefault","_calculateXOffset","_calculateYOffset","_fitOffset","minOffset","maxOffset","_findDropTarget","sameTarget","_currentDropTarget","_fireDropTargetEvent","draggingElement","_$element","_checkDropTargetActive","delegatedTarget","$delegatedTarget","_checkDropTarget","active","activeTarget","$prevTarget","isDraggingElement","targetPosition","targetSize","checkDropTarget","emitter","events","getOption","deepWatch","setOptions","getElementComputedStyle","_window$getComputedSt","window","onAfterRender","onPreRender","nextNode","rootNode","mountNode","vNodeAlreadyExists","insertBefore","shallowEquals","every","removeDifferentElements","$children","$newChildren","__","hasComponent","oldElement","_this$props$model","$parent","isNode","$result","renovated","nextModel","nextTemplate","sameTemplate","nextData","nextIndex","sameModel","cloneObjectValue","cloneObjectProp","fullNameParts","updatePropsImmutable","currentPropsValue","prevPropsValue","setDefaultOptionValue","defaultValueGetter","_shouldRaiseContentReady","validateKeyDownHandler","supportedKeyNames","getSupportedKeyNames","hasComponentDefaultKeyHandlers","hasComponentKeyDownMethod","_viewComponent","_this$_viewRef","_viewRef","contentReadyOptions","_getContentReadyOptions","_checkContentReadyOption","_actionsMap","onContentReady","_propsInfo","defaultName","unwrappedProps","_this$_templateManage","getDefaultTemplates","optionProxy","_getUnwrappedOption","_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","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","_defaultOptionsRules","_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","_feedbackShowTimeout","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","defaultCurrency","defaultUseCurrencyAccountingStyle","oDataFilterToLower","serverDecimalSeparator","decimalSeparator","thousandsSeparator","forceIsoDateParsing","wrapActionsBeforeExecute","useLegacyStoreResult","useJQuery","editorStylingMode","useLegacyVisibleIndex","floatingActionButtonConfig","closeIcon","maxSpeedDialActionCount","charAt","Function","ex","deprecatedFields","configMethod","newConfig","deprecatedField","DevExpress","isWritableWrapped","wrap","unwrap","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","open","username","password","onreadystatechange","readyState","onprogress","onloadstart","onabort","xhrFields","setRequestHeader","beforeSend","send","executeAction","inactive","showTimeout","hideTimeout","resize","hover","shown","hiding","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","browser","chrome","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","_addToContainer","_isClearButtonVisible","$button","editorName","_clearValueHandler","$editor","isVisible","rendered","_isVisible","_legacyRender","CUSTOM_BUTTON_HOVERED_CLASS","_createComponent","ignoreParentReadOnly","_isDisabled","_prepareIntegrationOptions","isUpdated","isDefinedByUser","TEXTEDITOR_BUTTONS_CONTAINER_CLASS","checkButtonInfo","buttonInfo","checkNamesUniqueness","existingNames","newName","isPredefinedButtonName","predefinedButtonsInfo","info","defaultButtonsInfo","buttons","isStringButton","isDefaultButton","defaultButtonInfo","Ctor","buttonsInfo","targetLocation","$buttonsContainer","_compileButtonInfo","_createButton","prepend","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","_getDefaultButtons","_$beforeButtonsContainer","_$afterButtonsContainer","_labelContainerElement","spellcheck","showClearButton","valueChangeEvent","inputAttr","onKeyUp","onChange","onInput","onCut","onCopy","onPaste","onEnterKey","displayValueFormatter","showValidationMark","labelMode","labelMark","_input","_isFocused","_inputWrapper","_buttonsContainer","_isControlKey","_updateButtonsStyling","_renderInput","_renderInputType","_renderPlaceholder","_renderProps","_renderValue","_renderLabel","_refreshValueChangeEvent","_renderEvents","_renderEnterKeyAction","_renderEmptinessEvent","_$buttonsContainer","_$textEditorContainer","_$textEditorInputContainer","_createInput","_renderButtonContainers","_renderPendingIndicator","$inputContainer","_getInputContainer","$indicatorElement","_pendingIndicator","_disposePendingIndicator","isPending","_showValidMark","renderBeforeButtons","renderAfterButtons","_cleanButtonContainers","_this$_$beforeButtons","_this$_$afterButtonsC","clean","_unobserveLabelContainerResize","_applyInputAttributes","inputAttrName","customAttributes","inputAttributes","_getDefaultAttributes","defaultAttributes","autocomplete","_updateButtons","updateButtons","buttonInstance","getButton","renderInputPromise","_renderInputValue","val","_renderDisplayText","_toggleEmptinessEventHandler","_isValueValid","validity","valid","_toggleEmptiness","isEmpty","_togglePlaceholder","_toggleSpellcheckState","_toggleTabIndex","_toggleDisabledState","prop","_readOnlyPropValue","unobserve","_getLabelContainer","_getLabelContainerWidth","_getLabelBeforeWidth","buttonsBeforeWidth","_updateLabelWidth","_label","updateBeforeWidth","_setLabelContainerAria","getId","labelConfig","observe","_renderPlaceholderMarkup","_attachPlaceholderEvents","_$placeholder","placeholderText","$placeholder","insertAfter","startEvent","_placeholder","_clearValue","_refreshEvents","_keyPressHandler","_keyDownHandler","isCtrlEnter","isNewValue","_renderValueChangeEvent","keyPressEvent","_renderValueEventName","keyDownEvent","_valueChangeEventHandler","_cleanValueChangeEvent","valueChangeNamespace","textChangeNamespace","_focusEventTarget","_isInput","_preventNestedFocusEvent","shouldPrevent","_isNestedTarget","relatedTarget","_focusClassTarget","_hasFocusClass","formattedValue","_enterKeyAction","_enterKeyHandlerUp","_updateValue","_refreshFocusEvent","updateText","updateMark","updateMode","updateContainsButtonsBefore","_setInputType","MASK_EVENT_NAMESPACE","BLUR_EVENT","DIRECTION","FORWARD","BACKWARD","_getStrategyName","newCaret","_caret","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","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","_renderMask","_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","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","shiftKey","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","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","duration","animate","_startAnimation","simulatedEndEventTimer","startTime","transitionEndFired","simulatedTransitionEndFired","transitionEndEventFullName","cleanup","waitForJSCompleteTimer","fx","_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","of","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","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","currentPosition","scrollTop","scrollLeft","animationTypes","MemorizedCallbacks","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","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","nextSiblingElement","isAdd","_element$getRootNode","_element$getRootNode2","activeElementHolder","head","addEventListener","removeEventListener","elementsFromPoint","ignoreKeys","TEXTBOX_CLASS","SEARCHBOX_CLASS","SEARCH_ICON_CLASS","TextBox","_showClearButton","maxLength","_renderSearchMode","_useTemplates","_toggleMaxLengthProp","_getMaxLength","_renderSearchIcon","_$searchIcon","$searchIcon","prependTo","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","insertElement","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","DEFAULT_CONFIG","ESCAPING_CHAR","MAXIMUM_NUMBER_LENGTH","PERCENT_EXPONENT_SHIFT","getGroupSizes","formatString","singleQuotesLeft","isDigit","isInStub","getSignParts","signParts","reverseString","reverse","isPercentFormat","removeStubs","getNonRequiredDigitCount","floatFormat","getRequiredDigitCount","normalizeValueString","valuePart","minDigitCount","maxDigitCount","applyGroups","valueString","groupSizes","groupSize","formatNumberPart","formatPart","escapeIndex","isEscape","getFloatPointIndex","signFormatParts","isPositiveZero","isPositive","numberFormat","floatPointIndex","floatFormatParts","minFloatPrecision","maxFloatPrecision","minIntegerPrecision","maxIntegerPrecision","unlimitedIntegerDigits","integerLength","floor","floatPrecision","valueParts","valueIntegerPart","valueFloatPart","integerString","floatString","parseValue","isPercent","isNegative","prepareValueText","valueText","formatter","isIntegerPart","nextText","nextValueText","hasGroups","getFormatByValueText","valueTextParts","valueTextWithModifiedFloat","valueWithModifiedFloat","decimalSeparatorIndex","getFormat","positiveFormat","negativeFormat","renderer","initRender","dxRenderer","repeatMethod","setAttributeValue","attrName","show","hide","setProperty","classNames","_className","appendElements","wrapTR","tBodies","setCss","before","wrapper","wrapInner","removeElement","setText","cloneNode","elementId","queryId","querySelector","_element$host","offsetHeight","getClientRects","elementMatches","j","siblings","parentChildNodes","prev","previousSibling","emptyArray","offsetParent","marginTop","marginLeft","parentOffset","offsetProp","scrollWindow","scrollTo","pageYOffset","pageXOffset","directionStrategy","rendererWrapper","getElementLocationInternal","targetElement","containerElement","scrollOffset","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","onScroll","showScrollbar","useNative","bounceEnabled","scrollByContent","scrollByThumb","onUpdated","onStart","onEnd","onBounce","useSimulatedScrollbar","useKeyboard","inertiaEnabled","updateManually","mozilla","_setUseSimulatedScrollbar","initialOption","_initScrollableMarkup","_locked","_visibilityChanged","_updateRtlPosition","_savedScrollOffset","_$container","_$wrapper","_$content","_dimensionChanged","_renderDirection","_renderStrategy","_attachEventHandlers","_renderDisabledState","_createActions","needInitializeRtlConfig","_strategy","updateRtlPosition","_getMaxOffset","scrollWidth","scrollHeight","clientHeight","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","content","_getScrollOffset","_isRtlNativeStrategy","scrollBy","distance","_applyScaleRatio","scrollToElement","elementInsideContent","elementIsInsideContent","scrollPosition","getScrollElementPosition","isRenovated","FunctionTemplate","getTemplatePropName","uppercaseFirst","lowercaseFirst","camelize","toComparable","getTime","value1","value2","forEachChildNode","obj1","obj2","obj1Keys","obj1Keys_1","getOptionValue","optionPath","parts","sign","fitIntoRange","minValue","maxValue","isMinValueUndefined","isMaxValueUndefined","inRange","getExponent","toExponential","getExponentialNotation","mantissa","exponent","multiplyInExponentialForm","exponentShift","exponentialNotation","_isEdgeBug","toPrecision","adjust","interval","separatedAdjustedValue","precision","getPrecision","separatedValue","sourceValue","absValue","isExponentValue","integerPart","positionOfDelimiter","_normalize","_upperCaseFirst","_chop","dasherize","upperFirst","humanize","titleize","DIGIT_CHARS","captionize","captionList","isPrevCharNewWord","isNewWord","TEMPLATE_MULTIPLE_ROOTS_ERROR","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","_initDataSource","_loadDataSource","widgetDataSourceOptions","dataSourceType","dataSourceOptions","_isSharedDataSource","_dataSourceType","_addDataSourceHandlers","_addDataSourceChangeHandler","_addDataSourceLoadErrorHandler","_addDataSourceLoadingChangedHandler","_addReadyWatcher","_ready","_proxiedDataSourceChangedHandler","_proxiedDataSourceLoadErrorHandler","_proxiedDataSourceLoadingChangedHandler","_loadSingle","loadSingle","isLastPage","getDataSource","jsPrefixes","cssPrefixes","Webkit","Moz","O","ms","getStyles","forEachPrefixes","cssPrefixesCount","jsPrefix","prefixedProp","lowerPrefixedProp","styleProp","originalName","stylePropPrefix","specific","pxExceptions","normalizeStyleProp","setDimensionProperty","propertyName","setWidth","setHeight","executingName","ensureDefined","executeAsync","normalizedContext","delayedFuncs","delayedNames","delayedDeferreds","deferExecute","oldExecutingName","currentDelayedCount","deferRender","deferUpdate","deferRenderer","deferUpdater","findBestMatches","targetFilter","mapFn","bestMatches","maxMatchCount","itemSrc","matchCount","paramName","targetValue","mismatch","valueItem","splitPair","raw","_raw$x","_raw$y","pairToObject","preventRound","pair","getKeyHash","keyHash","stringify","escapeRegExp","string","applyServerDecimalSeparator","noop","asyncNoop","grep","checkFunction","invert","check","expectedCheck","arraysEqualByValue","array1","array2","depth","equalByValue","objectsEqualByValue","object1","object2","strict","_propertyName","maxEqualityDepth","comparisonResult","defaultNotDeepCopyArrays","propsToIgnore","getDiffItem","path","resultPaths","item1","item2","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","_holdTimer","_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","_renderDimensions","_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","isRtlEnabled","getBoundingRect","outerWidth","outerHeight","DBLCLICK_EVENT_NAME","DBLCLICK_NAMESPACE","NAMESPACED_CLICK_EVENT","DBLCLICK_TIMEOUT","DblClick","_handlerCount","_forgetLastClick","_firstClickTarget","_lastClickTimeStamp","_clickHandler","timeBetweenClicks","isSimulated","isDouble","DataConverter","_dataStructure","_itemsCount","_visibleItemsCount","_indexByKey","_convertItemsToNodes","parentKey","parentId","_getParentId","_convertItemToNode","_checkForDuplicateId","internalFields","_itemHasChildren","_dataAccessors","getters","_dataType","_getUniqueKey","keyGetter","itemKey","isCorrectKey","getItemsCount","expanded","selected","_rootValue","_makeObjectFromPrimitive","childrenKeys","setChildrenKeys","getParentNode","setters","_convertToPublicNode","publicNode","convertToPublicNodes","publicNodes","_getByKey","setDataAccessors","accessors","getByKey","currentElementKey","getVisibleItemsCount","updateIndexByKey","updateChildrenKeys","removeChildrenKeys","createPlainStructure","rootValue","EXPANDED","SELECTED","DISABLED","setEditorClass","DataAdapter","_defaultOptions","dataConverter","dataAccessors","_selectedNodesKeys","_expandedNodesKeys","_createInternalDataStructure","getTreeNodes","setOption","multipleSelection","recursiveSelection","recursiveExpansion","searchMode","onNodeChanged","_initialDataStructure","search","_updateExpansion","_setChildrenSelection","_setParentSelection","_updateNodesKeysArray","_updateOneBranch","_setParentExpansion","_getDataBySelectionMode","_isNodeVisible","toggleSelection","getFullData","_toggleChildrenSelection","_iterateParents","newParentState","_calculateSelectedState","_setFieldState","getNodeByKey","_iterateChildren","recursive","processedKeys","nodeKey","selectedItemsCount","invisibleItemsCount","childNode","isChildInvisible","childState","_markChildren","_removeNode","counter","_addNode","_updateFields","getSelectedNodesKeys","getExpandedNodesKeys","getNodeByItem","getNodesByItems","getRootNodes","getPublicNode","getChildrenNodes","query","addItem","removeItem","selectRecursive","isSingleModeUnselect","_isSingleModeUnselect","selectionState","toggleNodeDisabledState","toggleSelectAll","lastSelectedKey","dataStructure","isAllSelected","toggleExpansion","isFiltered","_filterDataStructure","_createCriteria","operation","filterValue","getOperationBySearchMode","lookForParents","DISABLED_STATE_CLASS","HierarchicalCollectionWidget","selectedExpr","itemsExpr","parentIdExpr","expandedExpr","_initAccessors","_initDataAdapter","_initDynamicTemplates","_createDataAdapterAccessors","_dataAdapter","_getDataAdapterOptions","_getIconContainer","_getTextContainer","_getPopoutContainer","_addContentClasses","_itemsGetter","_getAccessors","accessor","_compileAccessor","_getChildNodes","_hasChildren","setter","optionExpr","getterName","setterName","newAccessor","_addWidgetClass","_widgetClass","_disabledGetter","repaint","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","deferRendering","shadingColor","wrapperAttr","center","minWidth","minHeight","maxHeight","closeOnOutsideClick","copyRootClassesToWrapper","_ignoreCopyRootClassesToWrapperDeprecation","_ignoreElementAttrDeprecation","onShowing","onShown","onHiding","onHidden","innerOverlay","restorePosition","hideTopOverlayHandler","hideOnParentScroll","onPositioned","ignoreChildEvents","_fixWrapperPosition","_eventBindingTarget","_deprecatedOptions","since","_logDeprecatedOptionWarning","_initActions","_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","_show","_hide","_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","_hideAnimationProcessing","_hidingDeferred","hidingArgs","_forceFocusLost","_toggleShading","_toggleSubscriptions","shouldResetActiveElement","completeCallback","startCallback","_moveToContainer","_renderGeometry","pushToStack","_zIndex","_toggleTabTerminator","_this5","_proxiedTabTerminatorHandler","_tabKeyHandler","enabled","$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","showing","animateDeferred","forceStopAnimation","useLegacyTemplateEngine","watchChanges","rawData","fields","fieldsDispose","globalDispose","dataWithRawFields","resolvedData","missedFields","watchHandlers","BindableTemplate","_fields","_fieldsMap","_watchMethod","TextEditorButton","$placeMarker","_isRendered","_create","_attachEvents","_addPlaceMarker","_shouldRender","VueType","errors_1","TEMPLATE_PROP","Vue","asConfigurable","$vnode","componentOptions","scopedSlots","slotName","$scopedSlots","$slots","slot","childComponent","defaultSlot","getSlot","created","eventBus","$on","$forceUpdate","destroyed","$off","toRaw","deep","hasProp","$options","hasVModelValue","vnode","VMODEL_NAME","$","getVueVersion","currentVersion","POINTER_EVENTS_NAMESPACE","BaseStrategy","originalEvents","_eventName","_originalEvents","_isNoBubble","_handler","_originalEvent$target","_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","currentIndex","shouldUpdateIndex","getGroupName","groupedResult","_groupedResult$groupN","groupName","COMPOSITION_START_EVENT","COMPOSITION_END_EVENT","KEYDOWN_EVENT","NAMESPACE","ctrl","altKey","KeyboardProcessor","_keydown","_compositionStart","_compositionEnd","_processFunction","focusTargets","isNotFocusTarget","shouldSkipProcessing","_isComposingJustFinished","_isComposing","process","_toggleProcessingWithContext","toggleProcessing","_formatNumberCore","formatConfig","currencyPart","getCurrencySymbol","symbol","getOpenXmlCurrencyFormat","Emitter","_cancelCallback","_acceptCallback","_accept","_acceptRequestEvent","_getEmitterTarget","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","_scrollAction","_updateAction","_createActionArgs","_eventForUserAction","reachedLeft","_isReachedRight","_isReachedLeft","reachedRight","reachedTop","reachedBottom","_normalizeOffsetLeft","moveTo","_hideScrollbars","_update","_updateDimensions","_updateScrollbars","_containerSize","_componentContentSize","_contentSize","contentSize","scrollableNativeRegexp","_removeScrollbars","_isScrolledInMaxDirection","encodeHtml","encodeRegExp","splitQuad","quadToObject","quad","placeholderReg","SPACE_REGEXP","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","areFunctions","_initial","isGetter","aliasName","_postponedOperations","postponedPromise","promises","completePromise","getEventName","actionName","isInnerOption","Component","onInitialized","onDisposing","defaultOptionsRules","applyRules","isInitial","_optionChangedCallbacks","_disposingCallbacks","eventsStrategy","_updateLockCount","postponedOperations","_createOptions","_setDeprecatedOptions","_getOptionsByReference","_getDeprecatedOptions","_optionChanging","onDeprecated","_notifyOptionChanged","onStartChange","onEndChange","addRules","onInitializing","_setOptionsByDevice","_createOptionChangedAction","_disposingAction","_createDisposingAction","_initializing","callPostponedOperations","_lockUpdate","_unlockUpdate","_commitUpdate","getAliasesByName","_defaultActionArgs","_cancelOptionChange","actionSource","actionValue","_defaultActionConfig","actionFunc","hasEvent","beforeActionExecute","wrappedAction","onActionCreated","isDeprecated","DECIMAL_BASE","roundByAbs","valueSign","adjustValue","precisionMultiplier","pow","intermediateValue","toFixed","valuePrecision","adjustedValue","XHR_ERROR_UNLOAD","normalizeBinaryCriterion","normalizeSortingInfo","dir","errorMessageFromXhr","unloading","textStatusMessages","parsererror","textStatus","statusText","aggregators","processRequestResultLock","lockDeferred","obtain","release","isDisjunctiveOperator","keysEqual","BASE64_CHARS","base64_encode","stringToByteArray","getBase64Char","octet1","octet2","octet3","bytes","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","indicatorSrc","_animatingSegmentCount","_animatingSegmentInner","obsoleteAndroid","viaImage","_renderIndicatorContent","_renderMarkup","_renderMarkupForImage","_renderMarkupForAnimation","animatingSegmentInner","_$indicator","$segment","_updateContentSizeForAnimation","minDimension","_removeMarkupForAnimation","_removeMarkupForImage","E0001","E0002","E0003","E0004","E0005","E0006","E0007","E0008","E0009","E0010","E0011","E0012","E0013","E0014","E0015","E0017","E0018","E0020","E0021","E0022","E0023","E0024","E0025","E0100","E0101","E0102","E0103","E0110","E0120","E0121","W0000","W0001","W0002","W0003","W0004","W0005","W0006","W0007","W0008","W0009","W0010","W0011","W0012","W0013","W0014","W0015","W0016","W0017","W0018","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","scaleRatio","_isHovered","_renderThumb","_attachPointerDownHandler","_isHoverMode","_$thumb","isThumb","_dimension","_prop","feedbackOn","feedbackOff","cursorEnter","_needScrollbar","cursorLeave","_adjustVisibility","_baseContainerToContentRatio","scrollBarLocation","_calculateScrollBarPosition","_thumbRatio","baseContainerSize","baseContentSize","_realContainerToContentRatio","thumbSize","containerToContentRatio","_normalizeSize","size","combineClasses","getConsoleMethod","console","logger","warn","assert","activeFeedback","ACTIVE_EVENT_NAME","INACTIVE_EVENT_NAME","ACTIVE_TIMEOUT","INACTIVE_TIMEOUT","FeedbackEvent","_timeout","_fire","_schedule","_timer","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","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","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","changeItemSelectionWhenShiftKeyInVirtualPaging","changeItemSelectionWhenShiftKeyPressed","_resetItemSelectionWhenShiftKeyPressed","clearSelectedItems","isKeysEqual","_resetFocusedItemIndex","getLoadOptions","itemIndexStep","startIndex","endIndex","indexOffsetDefined","focusedItem","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","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","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","unwrapVariable","bracketsToDots","getPathParts","readPropValue","assignPropValue","prepareOptions","compileGetter","functionAsIs","hasDefaultValue","pathPart","combineGetters","compiledGetters","pathItem","ensurePropValueDefined","compileSetter","lastLevelIndex","levelIndex","propertyValue","isPropertyFunc","caseSensitive","forcibleWatcher","filteredCallback","CollectionItem","_rawData","_watchers","_renderWatchers","_startWatcher","_renderDisabled","_renderVisible","exprGetter","watcher","_dirty","_updateOwnerFocus","ownerComponent","extendFromObject","overrideExistingValues","sourceValueIsArray","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","change","createObjectWithChanges","applyBatch","immutable","disableCache","logError","resultItems","getErrorResult","isBatch","errorCode","newTarget","scrollbarWidth","horzRe","vertRe","collisionRe","scaleRe","IS_SAFARI","normalizeAlign","w","normalizeOffset","normalizeCollision","getAlignFactor","align","inverseAlign","calculateOversize","bounds","oversize","myLocation","collisionSide","initMyLocation","atLocation","atAlign","atSize","myAlign","mySize","collisionResolvers","fit","flip","inverseData","flipfit","none","calculateScrollbarWidth","$scrollDiv","overflow","defaultPositionResult","calculatePosition","what","$what","currentOffset","boundaryOffset","visualViewport","offsetLeft","offsetTop","ofRect","getOffsetWithoutScale","windowHeight","hZoomLevel","vZoomLevel","boundaryWidth","boundaryHeight","$boundary","boundaryPosition","preciser","precise","setScaleProperty","transformProp","styleAttr","stylePropIsValid","transform","$startElement","_currentElement$getAt","_currentElement$style","_style$match","$currentElement","types","typeOfObject","isBoolean","isExponential","isDate","isDefined","isObject","isEmptyObject","isPlainObject","proto","isPrimitive","isWindow","isRenderer","jquery","isPromise","isDeferred","isEvent","COMPONENT_NAMES_DATA_KEY","ANONYMOUS_COMPONENT_DATA_KEY","componentNames","nextAnonymousComponent","getName","generatedName","attachInstanceToElement","disposeFn","getInstanceByElement","OVERLAY_POSITION_ALIASES","OVERLAY_DEFAULT_BOUNDARY_OFFSET","OverlayPositionController","_$markupContainer","_$visualContainer","_shouldRenderContentInitialPosition","_visualPosition","_initialPosition","_previousVisualPosition","_position","shouldRestorePosition","positionProp","_normalizePosition","containerProp","getSwatchContainer","_getVisualContainer","_updateVisualPositionValue","_raisePositionedEvents","_renderContentInitialPosition","detectVisualPositionChange","useFixed","positionStyle","_renderBoundaryOffset","wrapperOverflow","resultPosition","previousPosition","newPosition","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","checked","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","EventsStrategy","_events","_owner","eventArgs","addFn","originalAdd","TOTAL_COUNT","LOAD","BY_KEY","INSERT","UPDATE","REMOVE","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","deferredConfig","_DeferredObj","_state","_promise","catch","fromPromise","whenFunc","contexts","resolvedCount","updateState","setStrategy","Deferred","when","_objectWithoutPropertiesLoose","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","TimeoutLocker","_prepare","_forget","_clearTimer","WheelLocker","_lastWheelDirection","_checkDirectionChanged","directionChange","PointerLocker","isIos","isAndroid","_scrollFrame","_checkFrame","ScrollEmitter","FRAME_DURATION","_pointerLocker","_wheelLocker","skipCheck","_prevEventData","_savedEventData","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","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","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","pendingState","forceUpdate","_nextContext","callbacks_1","includeAttrs","getAttrs","attrValue","defaultSlots","proxy","beforeUnmount","getComponentProps","getVModelValue","$_hasAsyncTemplate","childExtenton","ERROR_URL","baseErrors","makeError","combineMessage","formatMessage","formatDetails","details","getErrorUrl","__id","__details","deviceDependentOptions","_device","WIDGET_CLASS","NODE_CLASS","NODE_CONTAINER_CLASS","NODE_LOAD_INDICATOR_CLASS","OPENED_NODE_CONTAINER_CLASS","IS_LEAF","ITEM_WITH_CHECKBOX_CLASS","ITEM_WITHOUT_CHECKBOX_CLASS","TOGGLE_ITEM_VISIBILITY_CLASS","LOAD_INDICATOR_CLASS","LOAD_INDICATOR_WRAPPER_CLASS","TOGGLE_ITEM_VISIBILITY_OPENED_CLASS","SELECT_ALL_ITEM_CLASS","EXPAND_EVENT_NAMESPACE","DATA_ITEM_ID","TreeViewBase","expandEventName","_getEventNameByOption","expandByClick","_expandEventHandler","checkboxInstance","_getCheckBoxInstance","currentState","_updateItemSelection","toggleExpandedNestedItems","$rootElement","rootItem","_toggleExpandedNestedItems","_showCheckboxes","asterisk","minus","_toggleExpandedState","_getNodeElement","_encodeString","$nodeByKey","animationEnabled","expandAllEnabled","hasItemsExpr","selectNodesRecursive","expandNodesRecursive","showCheckBoxesMode","selectAllText","onItemSelectionChanged","onItemExpanded","onItemCollapsed","scrollDirection","useNativeScrolling","virtualModeEnabled","expandEvent","selectByClick","createChildren","onSelectAllValueChanged","_initSelectedItems","_fireSelectionChanged","_createSelectAllValueChangedAction","_selectAllValueChangedAction","_fireSelectAllValueChanged","_checkBoxModeChange","selectAllExists","_$selectAllItem","_renderSelectAllItem","dxCheckBox","getScrollable","_filter","_initExpandEvent","_useCustomChildrenLoader","_loadChildrenByCustomLoader","_isVirtualMode","_initVirtualMode","internal","_isDataStructurePlain","invocationResult","_combineFilter","_initStoreChangeHandlers","_removeTreeViewLoadIndicator","_treeViewLoadIndicator","_createTreeViewLoadIndicator","_dataSourceLoadingChangedHandler","resultFilter","newItem","_updateLevel","_parentIdGetter","removedKey","_markChildrenItemsToRemove","_removeItems","_getContainerByParentKey","_getOldContainer","_renderNodeContainer","_isRootLevel","_renderScrollableContainer","_isSingleSelection","_isRecursiveSelection","$nodeContainer","_selectAllEnabled","skipContentReadyAction","_scrollable","_expandedGetter","_createDOMElement","_getLevel","nodeIndex","nodeData","showCheckBox","_renderCheckBox","_toggleSelectedClass","_renderChildren","_renderToggleItemVisibilityIcon","_loadSublevel","_renderSublevel","_getActualNode","_addLeafClass","cachedNode","_hasItemsGetter","childrenNodes","_loadNestedItems","$nestedNodeContainer","childNodesByChildrenKeys","_updateParentsState","_normalizeIconState","_getNode","$nodeElement","expandedEventName","$itemsContainer","_getNodeByElement","_decodeString","_createLoadIndicator","_updateExpandedItemsUI","$icon","_renderToggleItemVisibilityIconClick","isHiddenNode","nodeContainerExists","completionCallback","_animateNodeContainer","_loadNestedItemsWithUpdate","actualNodeData","_areNodesExists","_appendItems","keyOfRootItem","fullData","nodeHeight","_fireExpandedStateUpdatedEvent","isExpanded","hasNewItems","_LoadIndicator$getIns","$loadIndicator","$toggleItem","_onSelectAllCheckboxValueChanged","_toggleSelectAll","_updateItemsUI","$checkbox","_changeCheckboxValue","_toggleNodeDisabledState","checkbox","_isLastSelectedBranch","selectedNodesKeys","_isLastRequired","isSingleMode","getSelectedNodeKeys","_fireItemSelectionChanged","needFireSelectAllChanged","nodeSelection","selectAllCheckbox","$parentNode","parentValue","_createEventHandler","clickSelector","pointerDownSelector","pointerDownEvent","_updateSelectionToFirstItem","_updateSelectionToLastItem","_setFocusedItemTimeout","_findNonDisabledNodes","$nodes","_nodeElements","$prevItem","prevItemElement","_getNodeItemElement","$nextItem","nextItemElement","$firstItem","$lastItem","_expandFocusedContainer","_collapseFocusedContainer","$focusedNode","_getClosestNonDisabledNode","nodeElement","collapsedNode","decodeURI","updateDimensions","expandItem","collapseItem","getNodes","getSelectedNodes","unselectAll","expandAll","dataAdapter","collapseAll","scrollToItem","keyOrItemOrElement","nodeKeysToExpand","scrollCallback","_expandNodes","scrollToElementTopLeft","relativeOffset","keysToExpand","resultCallback","callbacksByNodes","TreeViewSearch","_addWidgetPrefix","_updateSearch","_repaintContainer","_updateDataAdapter","_searchEditor","editorOptions","_getSearchEditorOptions","rootNodes","isSearchMode","_removeSearchBox","stubComponent","componentName","EditorClass","searchEnabled","searchEditorOptions","_renderSearch","searchBoxClassName","rootElementClassName","_$searchEditorElement","userEditorOptions","searchText","searchTimeout","_valueChangeDeferred","_valueChangeTimeout","_getAriaTarget","_cleanAria","activedescendant","parentPath","beforeMount","defaultMessages","en","Yes","No","Cancel","Close","Clear","Done","Loading","Select","Search","Back","OK","baseDictionary","getDataByLocale","localeData","locale","newMessages","messageLocalization","_dictionary","messages","_localizablePrefix","localizablePrefix","localizeString","regex","escapeString","localizationKey","defaultResult","getMessagesByLocales","getDictionary","onlyNew","core","_getFormatterBase","getValueByClosestLocale","Guid","_generate","toJSON","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","KEY_CODES","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","TAB","InertiaAnimator","scroller","VELOCITY_LIMIT","_velocity","_scrollStep","_acceleration","_inBounds","_scrollComplete","BounceAnimator","_crossBoundOnNextStep","_bounceLocation","Scroller","_initAnimators","_initScrollbar","_topReached","_bottomReached","_axis","_scrollProp","_inertiaAnimator","_bounceAnimator","_scrollbar","_scrollByThumb","_visibilityModeNormalize","_scrollbarVisible","_$scrollbar","prevLocation","_suppressBounce","_bounceEnabled","_boundLocation","_maxOffset","_minOffset","_getScaleRatio","_moveContent","_moveScrollbar","_moveContentByTranslator","_scaleRatio","realDimension","_getRealDimension","baseDimension","_getBaseDimension","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","_updateHandler","_moveToBounds","_resetScaleRatio","_updateLocation","_updateBounds","_updateScrollbar","_getMinOffset","locationChanged","_createActionsHandler","bounce","isOverflowHidden","containerScrollSize","_validateEvent","_reachedMin","_reachedMax","_cursorEnterHandler","_cursorLeaveHandler","SimulatedStrategy","_createScrollers","_attachKeyboardHandler","_attachCursorHandlers","_scrollers","_createScroller","_scrollerOptions","scrollbarVisible","isAnyThumbScrolling","_getPropByDirection","_eventHandler","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","_detachEventHandlers","removeEvent","eventPropName","nb","nn","PARENT_LOCALE_SEPARATOR","parentLocale","parentLocales","DEFAULT_LOCALE","currentLocale","isRootLocale","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","accountingFormat","encodedCurrencySymbol","currencySymbol","encodeSymbols","af","agq","ak","am","ar","as","asa","ast","az","bas","be","bem","bez","bg","bm","bn","bo","br","brx","bs","ca","ccp","ce","ceb","cgg","chr","ckb","cs","cy","da","dav","de","dje","doi","dsb","dua","dyo","dz","ebu","ee","eo","es","et","eu","ewo","fa","ff","fi","fil","fo","fr","fur","fy","ga","gd","gl","gsw","gu","guz","gv","ha","haw","he","hi","hr","hsb","hu","hy","ia","ig","ii","ja","jgo","jmc","jv","ka","kab","kam","kde","kea","kgp","khq","ki","kk","kkj","kl","kln","km","kn","ko","kok","ks","ksb","ksf","ksh","ku","kw","ky","lag","lb","lg","lkt","ln","lo","lrc","lt","lu","luo","luy","lv","mai","mas","mer","mfe","mg","mgh","mgo","mi","mk","ml","mn","mni","mr","mt","mua","mzn","naq","nd","nds","ne","nl","nmg","nnh","no","nus","nyn","om","or","os","pa","pcm","pl","ps","pt","qu","rm","rn","ro","rof","ru","rw","rwk","sa","sah","saq","sat","sbp","sc","sd","se","seh","ses","sg","shi","si","sk","sl","smn","sn","so","sq","sr","su","sv","sw","ta","te","teo","tg","ti","tk","tt","twq","tzm","ug","uk","und","ur","uz","vai","vi","vun","wae","wo","xh","xog","yav","yi","yo","yrl","yue","zgh","zh","zu","CURRENCY_STYLES","detectCurrencySymbolRegex","formattersCache","Intl","NumberFormat","getCurrencyFormatter","currency","_normalizeFormatConfig","minimumIntegerDigits","useGrouping","maximumFractionDigits","_getPrecisionConfig","_formatConfig$useCurr","useAccountingStyle","useCurrencyAccountingStyle","currencySign","minimumFractionDigits","_format","_normalizeFormat","_getCurrencySymbolInfo","_extractCurrencySymbolInfo","currencyValueString","delimiter","symbolInfo","targetCurrency","closestAccountingFormat","hasIntl","MAX_LARGE_NUMBER_POWER","NUMERIC_FORMATS","LargeNumberFormatPostfixes","LargeNumberFormatPowers","largenumber","thousands","millions","billions","trillions","numberLocalization","numericFormats","defaultLargeNumberFormatPostfixes","_parseNumberFormatString","formatType","formatObject","formatList","power","_calculateNumberPower","minPower","maxPower","_getNumberByPower","_formatNumber","powerPostfix","_formatNumberExponential","powString","_addZeroes","multiplier","_addGroupSeparators","_getSeparators","getDecimalSeparator","getThousandsSeparator","convertDigits","toStandard","digits","fromFirstDigit","toFirstDigit","fromLastDigit","regExp","getNegativeEtalonRegExp","separators","digitalRegExp","negativeEtalon","getSign","numberConfig","formatterConfig","cleanedText","_calcSignificantDigits","parsed","integer","fractional","calcDigitsAfterLeadingZeros","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","ceil","cssStyles","elementRef","CheckBoxIconProps","updateFontSize","setIconFontSize","getIconSize","getComputedIconSize","newIconSize","newFontSize","endsWith","iconComputedStyle","computedIconSize","indeterminate","editorRef","CheckBoxProps","CheckBoxPropsType","__newValue","__processTwoWayProps","twoWayProps","defaultPropName","nodesByEvent","subscribeNodesDisposing","unsubscribeNodesDisposing","CLICK_EVENT_NAME","prevented","lastFiredEvent","onNodeRemove","clickHandler","eventAlreadyFired","DXCLICK_FIRED","leftButton","ClickEmitter","desktopDevice","blurPrevented","multiLevelGroup","g","arrangeSortingInfo","sortInfo","filteredGroup","isCountQuery","keepInitialKeyOrder","ResizeObserverMock","disconnect","ResizeObserverSingleton","ResizeObserver","_callbacksMap","Map","_observer","_this$_callbacksMap$g","resizeObserverSingleton","getKeyWrapper","getKey","getSameNewByOld","oldItem","newIndexByKey","findChanges","oldItems","isItemEquals","oldIndexByKey","addedCount","removeCount","itemCount","oldNextIndex","nextOldItem","isRemoved","oldIndex","Widget","hoveredElement","useResizeObserver","_initContentReadyAction","getOptionsFromContainer","_contentReadyAction","_renderHint","_isFocusable","_renderFocusTarget","_renderFocusState","_attachFeedbackEvents","_attachHoverEvents","_toggleIndependentState","_detachKeyboardEvents","_toggleActiveState","_resetActiveState","_attachFocusEvents","_renderAccessKey","_detachFocusEvents","$focusTarget","_getKeyboardListeners","hasChildListeners","hasKeyboardEventHandler","shouldAttach","onlyChildProcessing","keyboardListeners","_hoverStartHandler","_hoverEndHandler","_hover","$previous","_findHoverTarget","newHoveredElement","_setWidgetOption","widgetOptionMap","_updatedHover","_isReady","dataMap","strategyChanging","beforeCleanDataFunc","afterCleanDataFunc","setDataStrategy","cleanData","beforeCleanData","cleanDataRecursive","cleanSelf","childElements","getElementsByTagName","SPECIAL_HEIGHT_VALUES","getSizeByStyles","getElementBoxParams","beforeName","afterName","padding","margin","_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","getWidth","elementSizeHelper","getHeight","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","wrapOverridden","baseProto","prevCallBase","clonePrototype","redefine","overridden","argument","classObj","hasClassObjOwnProperty","isES6Class","_includedCtors","_includedPostCtors","subclassOf","parentClass","hasParentProperty","baseClass","copyStatic","hasOwn","destination","classImpl","includedCtors","includedPostCtors","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-926dead6.584567a1.js","sourcesContent":["/*!\n * devextreme-vue\n * Version: 22.1.6\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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/core/utils/dependency_injector.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 isFunction\r\n} from \"./type\";\r\nimport {\r\n each\r\n} from \"./iterator\";\r\nimport Class from \"../class\";\r\nexport default function(object) {\r\n var BaseClass = Class.inherit(object);\r\n var InjectedClass = BaseClass;\r\n var instance = new InjectedClass(object);\r\n var initialFields = {};\r\n var injectFields = function(injectionObject, initial) {\r\n each(injectionObject, (function(key) {\r\n if (isFunction(instance[key])) {\r\n if (initial || !object[key]) {\r\n object[key] = function() {\r\n return instance[key].apply(object, arguments)\r\n }\r\n }\r\n } else {\r\n if (initial) {\r\n initialFields[key] = object[key]\r\n }\r\n object[key] = instance[key]\r\n }\r\n }))\r\n };\r\n injectFields(object, true);\r\n object.inject = function(injectionObject) {\r\n InjectedClass = InjectedClass.inherit(injectionObject);\r\n instance = new InjectedClass;\r\n injectFields(injectionObject)\r\n };\r\n object.resetInjection = function() {\r\n extend(object, initialFields);\r\n InjectedClass = BaseClass;\r\n instance = new BaseClass\r\n };\r\n return object\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/button.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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 camelize\r\n} from \"../../core/utils/inflector\";\r\nimport {\r\n Icon\r\n} from \"./common/icon\";\r\nimport {\r\n InkRipple\r\n} from \"./common/ink_ripple\";\r\nimport {\r\n Widget\r\n} from \"./common/widget\";\r\nimport {\r\n BaseWidgetProps\r\n} from \"./common/base_props\";\r\nimport messageLocalization from \"../../localization/message\";\r\nvar stylingModes = [\"outlined\", \"text\", \"contained\"];\r\nvar getCssClasses = model => {\r\n var {\r\n icon: icon,\r\n iconPosition: iconPosition,\r\n stylingMode: stylingMode,\r\n text: text,\r\n type: type\r\n } = model;\r\n var isValidStylingMode = stylingMode && stylingModes.includes(stylingMode);\r\n var classesMap = {\r\n \"dx-button\": true,\r\n [\"dx-button-mode-\".concat(isValidStylingMode ? stylingMode : \"contained\")]: true,\r\n [\"dx-button-\".concat(null !== type && void 0 !== type ? type : \"normal\")]: true,\r\n \"dx-button-has-text\": !!text,\r\n \"dx-button-has-icon\": !!icon,\r\n \"dx-button-icon-right\": \"left\" !== iconPosition\r\n };\r\n return combineClasses(classesMap)\r\n};\r\nexport var viewFunction = viewModel => {\r\n var {\r\n children: children,\r\n iconPosition: iconPosition,\r\n iconTemplate: IconTemplate,\r\n template: ButtonTemplate,\r\n text: text\r\n } = viewModel.props;\r\n var renderText = !viewModel.props.template && !children && \"\" !== text;\r\n var isIconLeft = \"left\" === iconPosition;\r\n var iconComponent = !viewModel.props.template && !children && (viewModel.iconSource || viewModel.props.iconTemplate) && createComponentVNode(2, Icon, {\r\n source: viewModel.iconSource,\r\n position: iconPosition,\r\n iconTemplate: IconTemplate\r\n });\r\n return normalizeProps(createComponentVNode(2, Widget, _extends({\r\n accessKey: viewModel.props.accessKey,\r\n activeStateEnabled: viewModel.props.activeStateEnabled,\r\n aria: viewModel.aria,\r\n className: viewModel.props.className,\r\n classes: viewModel.cssClasses,\r\n disabled: viewModel.props.disabled,\r\n focusStateEnabled: viewModel.props.focusStateEnabled,\r\n height: viewModel.props.height,\r\n hint: viewModel.props.hint,\r\n hoverStateEnabled: viewModel.props.hoverStateEnabled,\r\n onActive: viewModel.onActive,\r\n onClick: viewModel.onWidgetClick,\r\n onInactive: viewModel.onInactive,\r\n onKeyDown: viewModel.keyDown,\r\n rtlEnabled: viewModel.props.rtlEnabled,\r\n tabIndex: viewModel.props.tabIndex,\r\n visible: viewModel.props.visible,\r\n width: viewModel.props.width\r\n }, viewModel.restAttributes, {\r\n children: createVNode(1, \"div\", \"dx-button-content\", [viewModel.props.template && ButtonTemplate({\r\n data: viewModel.buttonTemplateData\r\n }), !viewModel.props.template && children, isIconLeft && iconComponent, renderText && createVNode(1, \"span\", \"dx-button-text\", text, 0), !isIconLeft && iconComponent, viewModel.props.useSubmitBehavior && createVNode(64, \"input\", \"dx-button-submit-input\", null, 1, {\r\n type: \"submit\",\r\n tabIndex: -1\r\n }, null, viewModel.submitInputRef), viewModel.props.useInkRipple && createComponentVNode(2, InkRipple, {\r\n config: viewModel.inkRippleConfig\r\n }, null, viewModel.inkRippleRef)], 0, null, null, viewModel.contentRef)\r\n }), null, viewModel.widgetRef))\r\n};\r\nexport var ButtonProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(BaseWidgetProps), Object.getOwnPropertyDescriptors({\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true,\r\n icon: \"\",\r\n iconPosition: \"left\",\r\n stylingMode: \"contained\",\r\n text: \"\",\r\n type: \"normal\",\r\n useInkRipple: false,\r\n useSubmitBehavior: false,\r\n templateData: Object.freeze({})\r\n})));\r\nexport var defaultOptionRules = createDefaultOptionRules([{\r\n device: () => \"desktop\" === devices.real().deviceType && !devices.isSimulator(),\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n}, {\r\n device: () => isMaterial(current()),\r\n options: {\r\n useInkRipple: true\r\n }\r\n}]);\r\nimport {\r\n createReRenderEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class Button extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.contentRef = infernoCreateRef();\r\n this.inkRippleRef = infernoCreateRef();\r\n this.submitInputRef = infernoCreateRef();\r\n this.widgetRef = infernoCreateRef();\r\n this.__getterCache = {};\r\n this.focus = this.focus.bind(this);\r\n this.activate = this.activate.bind(this);\r\n this.deactivate = this.deactivate.bind(this);\r\n this.submitEffect = this.submitEffect.bind(this);\r\n this.onActive = this.onActive.bind(this);\r\n this.onInactive = this.onInactive.bind(this);\r\n this.onWidgetClick = this.onWidgetClick.bind(this);\r\n this.keyDown = this.keyDown.bind(this)\r\n }\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 : \"\") || messageLocalization.format(camelize(icon, true)) || 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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/utils/object.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 isNumeric,\r\n isPlainObject,\r\n isObject\r\n} from \"./type\";\r\nimport variableWrapper from \"./variable_wrapper\";\r\nvar clone = function() {\r\n function Clone() {}\r\n return function(obj) {\r\n Clone.prototype = obj;\r\n return new Clone\r\n }\r\n}();\r\nvar orderEach = function(map, func) {\r\n var keys = [];\r\n var key;\r\n var i;\r\n for (key in map) {\r\n if (Object.prototype.hasOwnProperty.call(map, key)) {\r\n keys.push(key)\r\n }\r\n }\r\n keys.sort((function(x, y) {\r\n var isNumberX = isNumeric(x);\r\n var isNumberY = isNumeric(y);\r\n if (isNumberX && isNumberY) {\r\n return x - y\r\n }\r\n if (isNumberX && !isNumberY) {\r\n return -1\r\n }\r\n if (!isNumberX && isNumberY) {\r\n return 1\r\n }\r\n if (x < y) {\r\n return -1\r\n }\r\n if (x > y) {\r\n return 1\r\n }\r\n return 0\r\n }));\r\n for (i = 0; i < keys.length; i++) {\r\n key = keys[i];\r\n func(key, map[key])\r\n }\r\n};\r\nvar assignValueToProperty = function(target, property, value, assignByReference) {\r\n if (!assignByReference && variableWrapper.isWrapped(target[property])) {\r\n variableWrapper.assign(target[property], value)\r\n } else {\r\n target[property] = value\r\n }\r\n};\r\nvar deepExtendArraySafe = function deepExtendArraySafe(target, changes, extendComplexObject, assignByReference) {\r\n var prevValue;\r\n var newValue;\r\n for (var name in changes) {\r\n prevValue = target[name];\r\n newValue = changes[name];\r\n if (\"__proto__\" === name || \"constructor\" === name || target === newValue) {\r\n continue\r\n }\r\n if (isPlainObject(newValue)) {\r\n var goDeeper = extendComplexObject ? isObject(prevValue) : isPlainObject(prevValue);\r\n newValue = deepExtendArraySafe(goDeeper ? prevValue : {}, newValue, extendComplexObject, assignByReference)\r\n }\r\n if (void 0 !== newValue && prevValue !== newValue) {\r\n assignValueToProperty(target, name, newValue, assignByReference)\r\n }\r\n }\r\n return target\r\n};\r\nexport {\r\n clone,\r\n orderEach,\r\n deepExtendArraySafe\r\n};\r\n","/**\r\n * DevExtreme (esm/core/templates/empty_template.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\n * Build date: Tue Oct 18 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.6\n * Build date: Tue Oct 18 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/callbacks.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 Callback = function(options) {\r\n this._options = options || {};\r\n this._list = [];\r\n this._queue = [];\r\n this._firing = false;\r\n this._fired = false;\r\n this._firingIndexes = []\r\n};\r\nCallback.prototype._fireCore = function(context, args) {\r\n var firingIndexes = this._firingIndexes;\r\n var list = this._list;\r\n var stopOnFalse = this._options.stopOnFalse;\r\n var step = firingIndexes.length;\r\n for (firingIndexes[step] = 0; firingIndexes[step] < list.length; firingIndexes[step]++) {\r\n var result = list[firingIndexes[step]].apply(context, args);\r\n if (false === result && stopOnFalse) {\r\n break\r\n }\r\n }\r\n firingIndexes.pop()\r\n};\r\nCallback.prototype.add = function(fn) {\r\n if (\"function\" === typeof fn && (!this._options.unique || !this.has(fn))) {\r\n this._list.push(fn)\r\n }\r\n return this\r\n};\r\nCallback.prototype.remove = function(fn) {\r\n var list = this._list;\r\n var firingIndexes = this._firingIndexes;\r\n var index = list.indexOf(fn);\r\n if (index > -1) {\r\n list.splice(index, 1);\r\n if (this._firing && firingIndexes.length) {\r\n for (var step = 0; step < firingIndexes.length; step++) {\r\n if (index <= firingIndexes[step]) {\r\n firingIndexes[step]--\r\n }\r\n }\r\n }\r\n }\r\n return this\r\n};\r\nCallback.prototype.has = function(fn) {\r\n var list = this._list;\r\n return fn ? list.indexOf(fn) > -1 : !!list.length\r\n};\r\nCallback.prototype.empty = function(fn) {\r\n this._list = [];\r\n return this\r\n};\r\nCallback.prototype.fireWith = function(context, args) {\r\n var queue = this._queue;\r\n args = args || [];\r\n args = args.slice ? args.slice() : args;\r\n if (this._options.syncStrategy) {\r\n this._firing = true;\r\n this._fireCore(context, args)\r\n } else {\r\n queue.push([context, args]);\r\n if (this._firing) {\r\n return\r\n }\r\n this._firing = true;\r\n while (queue.length) {\r\n var memory = queue.shift();\r\n this._fireCore(memory[0], memory[1])\r\n }\r\n }\r\n this._firing = false;\r\n this._fired = true;\r\n return this\r\n};\r\nCallback.prototype.fire = function() {\r\n this.fireWith(this, arguments)\r\n};\r\nCallback.prototype.fired = function() {\r\n return this._fired\r\n};\r\nvar Callbacks = function(options) {\r\n return new Callback(options)\r\n};\r\nexport default Callbacks;\r\n","/**\r\n * DevExtreme (esm/core/utils/ready_callbacks.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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","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/core/utils/queue.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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 isObject\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 var changingArgs = {\r\n changes: changes\r\n };\r\n this._eventsStrategy.fireEvent(\"changing\", [changingArgs]);\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 if (changingArgs.postProcessChanges) {\r\n dataSourceChanges = changingArgs.postProcessChanges(dataSourceChanges)\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 (!isObject(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.6\r\n * Build date: Tue Oct 18 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]\\/{1,1}/.test(source)) {\r\n return \"image\"\r\n }\r\n if (/^[\\w-_]+$/.test(source)) {\r\n return \"dxIcon\"\r\n }\r\n if (/^\\s?([\\w-_]\\s?)+$/.test(source)) {\r\n return \"fontIcon\"\r\n }\r\n return false\r\n};\r\nexport var getImageContainer = source => {\r\n switch (getImageSourceType(source)) {\r\n case \"image\":\r\n return $(\"\").attr(\"src\", source).addClass(ICON_CLASS);\r\n case \"fontIcon\":\r\n return $(\"\").addClass(\"\".concat(ICON_CLASS, \" \").concat(source));\r\n case \"dxIcon\":\r\n return $(\"\").addClass(\"\".concat(ICON_CLASS, \" \").concat(ICON_CLASS, \"-\").concat(source));\r\n case \"svg\":\r\n return $(\"\").addClass(\"\".concat(ICON_CLASS, \" \").concat(SVG_ICON_CLASS)).append(source);\r\n default:\r\n return null\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/html_parser.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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/themes.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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 if (e.targetElements || null === e.targetElements) {\r\n var dropTargets = wrapToArray(e.targetElements || []);\r\n this._dropTargets = iteratorUtils.map(dropTargets, (function(element) {\r\n return $(element).get(0)\r\n }))\r\n } else {\r\n this._dropTargets = knownDropTargets\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.6\n * Build date: Tue Oct 18 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/renovation/utils/get_computed_style.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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 _getUnwrappedOption() {\r\n var unwrappedProps = {};\r\n Object.keys(this.option()).forEach(key => {\r\n unwrappedProps[key] = this.option(key)\r\n });\r\n return unwrappedProps\r\n }\r\n _initializeComponent() {\r\n var _this$_templateManage;\r\n super._initializeComponent();\r\n null === (_this$_templateManage = this._templateManager) || void 0 === _this$_templateManage ? void 0 : _this$_templateManage.addDefaultTemplates(this.getDefaultTemplates());\r\n var optionProxy = this._getUnwrappedOption();\r\n this._props = this._optionsWithDefaultTemplates(optionProxy);\r\n this._propsInfo.templates.forEach(template => {\r\n this._componentTemplates[template] = this._createTemplateComponent(this._props[template])\r\n });\r\n Object.keys(this._getActionConfigsFull()).forEach(name => this._addAction(name));\r\n this._viewRef = createRef();\r\n this.defaultKeyHandlers = this._createDefaultKeyHandlers()\r\n }\r\n _initMarkup() {\r\n var props = this.getProps();\r\n this._renderWrapper(props)\r\n }\r\n _renderWrapper(props) {\r\n var containerNode = this.$element()[0];\r\n if (!this._isNodeReplaced) {\r\n renderer.onPreRender()\r\n }\r\n renderer.render(this._viewComponent, props, containerNode, this._isNodeReplaced);\r\n if (!this._isNodeReplaced) {\r\n this._isNodeReplaced = true;\r\n renderer.onAfterRender();\r\n this._shouldRaiseContentReady = true\r\n }\r\n if (this._shouldRaiseContentReady) {\r\n this._fireContentReady();\r\n this._shouldRaiseContentReady = false\r\n }\r\n }\r\n _silent(name, value) {\r\n this._options.silent(name, value)\r\n }\r\n _render() {}\r\n _removeWidget() {\r\n renderer.remove(this.$element()[0])\r\n }\r\n _dispose() {\r\n this._removeWidget();\r\n super._dispose()\r\n }\r\n get elementAttr() {\r\n var element = this.$element()[0];\r\n if (!this._elementAttr) {\r\n var {\r\n attributes: attributes\r\n } = element;\r\n var attrs = Array.from(attributes).filter(attr => {\r\n var _attributes$attr$name;\r\n return !this._propsInfo.templates.includes(attr.name) && (null === (_attributes$attr$name = attributes[attr.name]) || void 0 === _attributes$attr$name ? void 0 : _attributes$attr$name.specified)\r\n }).reduce((result, _ref2) => {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref2;\r\n var updatedAttributes = result;\r\n var isDomAttr = name in element;\r\n updatedAttributes[name] = \"\" === value && isDomAttr ? element[name] : value;\r\n return updatedAttributes\r\n }, {});\r\n this._elementAttr = attrs;\r\n this._storedClasses = element.getAttribute(\"class\") || \"\"\r\n }\r\n var elemStyle = element.style;\r\n var style = {};\r\n for (var i = 0; i < elemStyle.length; i += 1) {\r\n style[elemStyle[i]] = elemStyle.getPropertyValue(elemStyle[i])\r\n }\r\n this._elementAttr.style = style;\r\n this._elementAttr.class = this._storedClasses;\r\n return this._elementAttr\r\n }\r\n _getAdditionalActionConfigs() {\r\n return {\r\n onContentReady: {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n }\r\n }\r\n }\r\n _getAdditionalProps() {\r\n return []\r\n }\r\n _patchOptionValues(options) {\r\n var {\r\n allowNull: allowNull,\r\n elements: elements,\r\n props: props,\r\n twoWay: twoWay\r\n } = this._propsInfo;\r\n var 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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({}, accessKey && {\r\n accessKey: accessKey\r\n }), getAria(_extends({}, aria, {\r\n disabled: disabled,\r\n hidden: !visible\r\n })), extend({}, this.restAttributes))\r\n }\r\n get styles() {\r\n var {\r\n height: height,\r\n width: width\r\n } = this.props;\r\n var style = this.restAttributes.style || {};\r\n var computedWidth = normalizeStyleProp(\"width\", isFunction(width) ? width() : width);\r\n var computedHeight = normalizeStyleProp(\"height\", isFunction(height) ? height() : height);\r\n return _extends({}, style, {\r\n height: null !== computedHeight && void 0 !== computedHeight ? computedHeight : style.height,\r\n width: null !== computedWidth && void 0 !== computedWidth ? computedWidth : style.width\r\n })\r\n }\r\n get cssClasses() {\r\n var {\r\n activeStateEnabled: activeStateEnabled,\r\n addWidgetClass: addWidgetClass,\r\n className: className,\r\n classes: classes,\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n hoverStateEnabled: hoverStateEnabled,\r\n onVisibilityChange: onVisibilityChange,\r\n visible: visible\r\n } = this.props;\r\n var isFocusable = !!focusStateEnabled && !disabled;\r\n var isHoverable = !!hoverStateEnabled && !disabled;\r\n var canBeActive = !!activeStateEnabled && !disabled;\r\n var classesMap = {\r\n \"dx-widget\": !!addWidgetClass,\r\n [String(classes)]: !!classes,\r\n [String(className)]: !!className,\r\n \"dx-state-disabled\": !!disabled,\r\n \"dx-state-invisible\": !visible,\r\n \"dx-state-focused\": !!this.state.focused && isFocusable,\r\n \"dx-state-active\": !!this.state.active && canBeActive,\r\n \"dx-state-hover\": !!this.state.hovered && isHoverable && !this.state.active,\r\n \"dx-rtl\": !!this.rtlEnabled,\r\n \"dx-visibility-change-handler\": !!onVisibilityChange\r\n };\r\n return combineClasses(classesMap)\r\n }\r\n get tabIndex() {\r\n var {\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n tabIndex: tabIndex\r\n } = this.props;\r\n var isFocusable = focusStateEnabled && !disabled;\r\n return isFocusable ? tabIndex : void 0\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n focus() {\r\n focus.trigger(this.widgetElementRef.current)\r\n }\r\n blur() {\r\n var activeElement = domAdapter.getActiveElement();\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/core/config.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 \"./utils/extend\";\r\nimport errors from \"./errors\";\r\nvar config = {\r\n rtlEnabled: false,\r\n defaultCurrency: \"USD\",\r\n defaultUseCurrencyAccountingStyle: true,\r\n oDataFilterToLower: true,\r\n serverDecimalSeparator: \".\",\r\n decimalSeparator: \".\",\r\n thousandsSeparator: \",\",\r\n forceIsoDateParsing: true,\r\n wrapActionsBeforeExecute: true,\r\n useLegacyStoreResult: false,\r\n useJQuery: void 0,\r\n editorStylingMode: void 0,\r\n useLegacyVisibleIndex: false,\r\n floatingActionButtonConfig: {\r\n icon: \"add\",\r\n closeIcon: \"close\",\r\n label: \"\",\r\n position: {\r\n at: \"right bottom\",\r\n my: \"right bottom\",\r\n offset: {\r\n x: -16,\r\n y: -16\r\n }\r\n },\r\n maxSpeedDialActionCount: 5,\r\n shading: false,\r\n direction: \"auto\"\r\n },\r\n optionsParser: optionsString => {\r\n if (\"{\" !== optionsString.trim().charAt(0)) {\r\n optionsString = \"{\" + optionsString + \"}\"\r\n }\r\n try {\r\n return new Function(\"return \" + optionsString)()\r\n } catch (ex) {\r\n throw errors.Error(\"E3018\", ex, optionsString)\r\n }\r\n }\r\n};\r\nvar deprecatedFields = [\"decimalSeparator\", \"thousandsSeparator\"];\r\nvar configMethod = function() {\r\n if (!arguments.length) {\r\n return config\r\n }\r\n var newConfig = arguments.length <= 0 ? void 0 : arguments[0];\r\n deprecatedFields.forEach(deprecatedField => {\r\n if (newConfig[deprecatedField]) {\r\n var message = \"Now, the \".concat(deprecatedField, \" is selected based on the specified locale.\");\r\n errors.log(\"W0003\", \"config\", deprecatedField, \"19.2\", message)\r\n }\r\n });\r\n extend(config, newConfig)\r\n};\r\nif (\"undefined\" !== typeof DevExpress && DevExpress.config) {\r\n configMethod(DevExpress.config)\r\n}\r\nexport default configMethod;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scrollable.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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/core/utils/variable_wrapper.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 logger\r\n} from \"./console\";\r\nimport dependencyInjector from \"./dependency_injector\";\r\nexport default dependencyInjector({\r\n isWrapped: function() {\r\n return false\r\n },\r\n isWritableWrapped: function() {\r\n return false\r\n },\r\n wrap: function(value) {\r\n return value\r\n },\r\n unwrap: function(value) {\r\n return value\r\n },\r\n assign: function() {\r\n logger.error(\"Method 'assign' should not be used for not wrapped variables. Use 'isWrapped' method for ensuring.\")\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/core/http_request.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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\nimport browser from \"../../core/utils/browser\";\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\") && !browser.chrome || isModernAndroidDevice()\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.mask.rule.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.edit.strategy.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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","/**\r\n * DevExtreme (esm/animation/easing.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\n * Build date: Tue Oct 18 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/localization/ldml/number.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 fitIntoRange,\r\n multiplyInExponentialForm\r\n} from \"../../core/utils/math\";\r\nimport {\r\n toFixed\r\n} from \"../utils\";\r\nvar DEFAULT_CONFIG = {\r\n thousandsSeparator: \",\",\r\n decimalSeparator: \".\"\r\n};\r\nvar ESCAPING_CHAR = \"'\";\r\nvar MAXIMUM_NUMBER_LENGTH = 15;\r\nvar PERCENT_EXPONENT_SHIFT = 2;\r\n\r\nfunction getGroupSizes(formatString) {\r\n return formatString.split(\",\").slice(1).map((function(str) {\r\n var singleQuotesLeft = 0;\r\n return str.split(\"\").filter((function(char, index) {\r\n singleQuotesLeft += \"'\" === char;\r\n var isDigit = \"#\" === char || \"0\" === char;\r\n var isInStub = singleQuotesLeft % 2;\r\n return isDigit && !isInStub\r\n })).length\r\n }))\r\n}\r\n\r\nfunction getSignParts(format) {\r\n var signParts = format.split(\";\");\r\n if (1 === signParts.length) {\r\n signParts.push(\"-\" + signParts[0])\r\n }\r\n return signParts\r\n}\r\n\r\nfunction reverseString(str) {\r\n return str.toString().split(\"\").reverse().join(\"\")\r\n}\r\n\r\nfunction isPercentFormat(format) {\r\n return -1 !== format.indexOf(\"%\") && !format.match(/'[^']*%[^']*'/g)\r\n}\r\n\r\nfunction removeStubs(str) {\r\n return str.replace(/'.+'/g, \"\")\r\n}\r\n\r\nfunction getNonRequiredDigitCount(floatFormat) {\r\n if (!floatFormat) {\r\n return 0\r\n }\r\n var format = removeStubs(floatFormat);\r\n return format.length - format.replace(/[#]/g, \"\").length\r\n}\r\n\r\nfunction getRequiredDigitCount(floatFormat) {\r\n if (!floatFormat) {\r\n return 0\r\n }\r\n var format = removeStubs(floatFormat);\r\n return format.length - format.replace(/[0]/g, \"\").length\r\n}\r\n\r\nfunction normalizeValueString(valuePart, minDigitCount, maxDigitCount) {\r\n if (!valuePart) {\r\n return \"\"\r\n }\r\n if (valuePart.length > maxDigitCount) {\r\n valuePart = valuePart.substr(0, maxDigitCount)\r\n }\r\n while (valuePart.length > minDigitCount && \"0\" === valuePart.slice(-1)) {\r\n valuePart = valuePart.substr(0, valuePart.length - 1)\r\n }\r\n while (valuePart.length < minDigitCount) {\r\n valuePart += \"0\"\r\n }\r\n return valuePart\r\n}\r\n\r\nfunction applyGroups(valueString, groupSizes, thousandsSeparator) {\r\n if (!groupSizes.length) {\r\n return valueString\r\n }\r\n var groups = [];\r\n var index = 0;\r\n while (valueString) {\r\n var groupSize = groupSizes[index];\r\n if (!groupSize) {\r\n break\r\n }\r\n groups.push(valueString.slice(0, groupSize));\r\n valueString = valueString.slice(groupSize);\r\n if (index < groupSizes.length - 1) {\r\n index++\r\n }\r\n }\r\n return groups.join(thousandsSeparator)\r\n}\r\n\r\nfunction formatNumberPart(format, valueString) {\r\n return format.split(ESCAPING_CHAR).map((function(formatPart, escapeIndex) {\r\n var isEscape = escapeIndex % 2;\r\n if (!formatPart && isEscape) {\r\n return ESCAPING_CHAR\r\n }\r\n return isEscape ? formatPart : formatPart.replace(/[,#0]+/, valueString)\r\n })).join(\"\")\r\n}\r\n\r\nfunction getFloatPointIndex(format) {\r\n var isEscape = false;\r\n for (var index = 0; index < format.length; index++) {\r\n if (\"'\" === format[index]) {\r\n isEscape = !isEscape\r\n }\r\n if (\".\" === format[index] && !isEscape) {\r\n return index\r\n }\r\n }\r\n return format.length\r\n}\r\nexport function getFormatter(format, config) {\r\n config = config || DEFAULT_CONFIG;\r\n return function(value) {\r\n if (\"number\" !== typeof value || isNaN(value)) {\r\n return \"\"\r\n }\r\n var signFormatParts = getSignParts(format);\r\n var isPositiveZero = 1 / value === 1 / 0;\r\n var isPositive = value > 0 || isPositiveZero;\r\n var numberFormat = signFormatParts[isPositive ? 0 : 1];\r\n var floatPointIndex = getFloatPointIndex(numberFormat);\r\n var floatFormatParts = [numberFormat.substr(0, floatPointIndex), numberFormat.substr(floatPointIndex + 1)];\r\n var minFloatPrecision = getRequiredDigitCount(floatFormatParts[1]);\r\n var maxFloatPrecision = minFloatPrecision + getNonRequiredDigitCount(floatFormatParts[1]);\r\n if (isPercentFormat(numberFormat)) {\r\n value = multiplyInExponentialForm(value, PERCENT_EXPONENT_SHIFT)\r\n }\r\n if (!isPositive) {\r\n value = -value\r\n }\r\n var minIntegerPrecision = getRequiredDigitCount(floatFormatParts[0]);\r\n var maxIntegerPrecision = getNonRequiredDigitCount(floatFormatParts[0]) || config.unlimitedIntegerDigits ? void 0 : minIntegerPrecision;\r\n var integerLength = Math.floor(value).toString().length;\r\n var floatPrecision = fitIntoRange(maxFloatPrecision, 0, MAXIMUM_NUMBER_LENGTH - integerLength);\r\n var groupSizes = getGroupSizes(floatFormatParts[0]).reverse();\r\n var valueParts = toFixed(value, floatPrecision < 0 ? 0 : floatPrecision).split(\".\");\r\n var valueIntegerPart = normalizeValueString(reverseString(valueParts[0]), minIntegerPrecision, maxIntegerPrecision);\r\n var valueFloatPart = normalizeValueString(valueParts[1], minFloatPrecision, maxFloatPrecision);\r\n valueIntegerPart = applyGroups(valueIntegerPart, groupSizes, config.thousandsSeparator);\r\n var integerString = reverseString(formatNumberPart(reverseString(floatFormatParts[0]), valueIntegerPart));\r\n var floatString = maxFloatPrecision ? formatNumberPart(floatFormatParts[1], valueFloatPart) : \"\";\r\n var result = integerString + (floatString.match(/\\d/) ? config.decimalSeparator : \"\") + floatString;\r\n return result\r\n }\r\n}\r\n\r\nfunction parseValue(text, isPercent, isNegative) {\r\n var value = (isPercent ? .01 : 1) * parseFloat(text) || 0;\r\n return isNegative ? -value : value\r\n}\r\n\r\nfunction prepareValueText(valueText, formatter, isPercent, isIntegerPart) {\r\n var nextValueText = valueText;\r\n var char;\r\n var text;\r\n var nextText;\r\n do {\r\n if (nextText) {\r\n char = text.length === nextText.length ? \"0\" : \"1\";\r\n valueText = isIntegerPart ? char + valueText : valueText + char\r\n }\r\n text = nextText || formatter(parseValue(nextValueText, isPercent));\r\n nextValueText = isIntegerPart ? \"1\" + nextValueText : nextValueText + \"1\";\r\n nextText = formatter(parseValue(nextValueText, isPercent))\r\n } while (text !== nextText && (isIntegerPart ? text.length === nextText.length : text.length <= nextText.length));\r\n if (isIntegerPart && nextText.length > text.length) {\r\n var hasGroups = -1 === formatter(12345).indexOf(\"12345\");\r\n do {\r\n valueText = \"1\" + valueText\r\n } while (hasGroups && parseValue(valueText, isPercent) < 1e5)\r\n }\r\n return valueText\r\n}\r\n\r\nfunction getFormatByValueText(valueText, formatter, isPercent, isNegative) {\r\n var format = formatter(parseValue(valueText, isPercent, isNegative));\r\n var valueTextParts = valueText.split(\".\");\r\n var valueTextWithModifiedFloat = valueTextParts[0] + \".3\" + valueTextParts[1].slice(1);\r\n var valueWithModifiedFloat = parseValue(valueTextWithModifiedFloat, isPercent, isNegative);\r\n var decimalSeparatorIndex = formatter(valueWithModifiedFloat).indexOf(\"3\") - 1;\r\n format = format.replace(/(\\d)\\D(\\d)/g, \"$1,$2\");\r\n if (decimalSeparatorIndex >= 0) {\r\n format = format.slice(0, decimalSeparatorIndex) + \".\" + format.slice(decimalSeparatorIndex + 1)\r\n }\r\n format = format.replace(/1+/, \"1\").replace(/1/g, \"#\");\r\n if (!isPercent) {\r\n format = format.replace(\"%\", \"'%'\")\r\n }\r\n return format\r\n}\r\nexport function getFormat(formatter) {\r\n var valueText = \".\";\r\n var isPercent = formatter(1).indexOf(\"100\") >= 0;\r\n valueText = prepareValueText(valueText, formatter, isPercent, true);\r\n valueText = prepareValueText(valueText, formatter, isPercent, false);\r\n var positiveFormat = getFormatByValueText(valueText, formatter, isPercent, false);\r\n var negativeFormat = getFormatByValueText(valueText, formatter, isPercent, true);\r\n return negativeFormat === \"-\" + positiveFormat ? positiveFormat : positiveFormat + \";\" + negativeFormat\r\n}\r\n","/**\r\n * DevExtreme (esm/core/renderer_base.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\n * Build date: Tue Oct 18 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/core/utils/math.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 isExponential\r\n} from \"./type\";\r\nvar sign = function(value) {\r\n if (0 === value) {\r\n return 0\r\n }\r\n return value / Math.abs(value)\r\n};\r\nvar fitIntoRange = function(value, minValue, maxValue) {\r\n var isMinValueUndefined = !minValue && 0 !== minValue;\r\n var isMaxValueUndefined = !maxValue && 0 !== maxValue;\r\n isMinValueUndefined && (minValue = !isMaxValueUndefined ? Math.min(value, maxValue) : value);\r\n isMaxValueUndefined && (maxValue = !isMinValueUndefined ? Math.max(value, minValue) : value);\r\n return Math.min(Math.max(value, minValue), maxValue)\r\n};\r\nvar inRange = function(value, minValue, maxValue) {\r\n return value >= minValue && value <= maxValue\r\n};\r\n\r\nfunction getExponent(value) {\r\n return Math.abs(parseInt(value.toExponential().split(\"e\")[1]))\r\n}\r\n\r\nfunction getExponentialNotation(value) {\r\n var parts = value.toExponential().split(\"e\");\r\n var mantissa = parseFloat(parts[0]);\r\n var exponent = parseInt(parts[1]);\r\n return {\r\n exponent: exponent,\r\n mantissa: mantissa\r\n }\r\n}\r\n\r\nfunction multiplyInExponentialForm(value, exponentShift) {\r\n var exponentialNotation = getExponentialNotation(value);\r\n return parseFloat(\"\".concat(exponentialNotation.mantissa, \"e\").concat(exponentialNotation.exponent + exponentShift))\r\n}\r\n\r\nfunction _isEdgeBug() {\r\n return \"0.000300\" !== 3e-4.toPrecision(3)\r\n}\r\n\r\nfunction adjust(value, interval) {\r\n var precision = getPrecision(interval || 0) + 2;\r\n var separatedValue = value.toString().split(\".\");\r\n var sourceValue = value;\r\n var absValue = Math.abs(value);\r\n var separatedAdjustedValue;\r\n var isExponentValue = isExponential(value);\r\n var integerPart = absValue > 1 ? 10 : 0;\r\n if (1 === separatedValue.length) {\r\n return value\r\n }\r\n if (!isExponentValue) {\r\n if (isExponential(interval)) {\r\n precision = separatedValue[0].length + getExponent(interval)\r\n }\r\n value = absValue;\r\n value = value - Math.floor(value) + integerPart\r\n }\r\n precision = _isEdgeBug() && getExponent(value) > 6 || precision > 7 ? 15 : 7;\r\n if (!isExponentValue) {\r\n separatedAdjustedValue = parseFloat(value.toPrecision(precision)).toString().split(\".\");\r\n if (separatedAdjustedValue[0] === integerPart.toString()) {\r\n return parseFloat(separatedValue[0] + \".\" + separatedAdjustedValue[1])\r\n }\r\n }\r\n return parseFloat(sourceValue.toPrecision(precision))\r\n}\r\n\r\nfunction getPrecision(value) {\r\n var str = value.toString();\r\n if (str.indexOf(\".\") < 0) {\r\n return 0\r\n }\r\n var mantissa = str.split(\".\");\r\n var positionOfDelimiter = mantissa[1].indexOf(\"e\");\r\n return positionOfDelimiter >= 0 ? positionOfDelimiter : mantissa[1].length\r\n}\r\n\r\nfunction getRoot(x, n) {\r\n if (x < 0 && n % 2 !== 1) {\r\n return NaN\r\n }\r\n var y = Math.pow(Math.abs(x), 1 / n);\r\n return n % 2 === 1 && x < 0 ? -y : y\r\n}\r\n\r\nfunction solveCubicEquation(a, b, c, d) {\r\n if (Math.abs(a) < 1e-8) {\r\n a = b;\r\n b = c;\r\n c = d;\r\n if (Math.abs(a) < 1e-8) {\r\n a = b;\r\n b = c;\r\n if (Math.abs(a) < 1e-8) {\r\n return []\r\n }\r\n return [-b / a]\r\n }\r\n var D2 = b * b - 4 * a * c;\r\n if (Math.abs(D2) < 1e-8) {\r\n return [-b / (2 * a)]\r\n } else if (D2 > 0) {\r\n return [(-b + Math.sqrt(D2)) / (2 * a), (-b - Math.sqrt(D2)) / (2 * a)]\r\n }\r\n return []\r\n }\r\n var p = (3 * a * c - b * b) / (3 * a * a);\r\n var q = (2 * b * b * b - 9 * a * b * c + 27 * a * a * d) / (27 * a * a * a);\r\n var roots;\r\n var u;\r\n if (Math.abs(p) < 1e-8) {\r\n roots = [getRoot(-q, 3)]\r\n } else if (Math.abs(q) < 1e-8) {\r\n roots = [0].concat(p < 0 ? [Math.sqrt(-p), -Math.sqrt(-p)] : [])\r\n } else {\r\n var D3 = q * q / 4 + p * p * p / 27;\r\n if (Math.abs(D3) < 1e-8) {\r\n roots = [-1.5 * q / p, 3 * q / p]\r\n } else if (D3 > 0) {\r\n u = getRoot(-q / 2 - Math.sqrt(D3), 3);\r\n roots = [u - p / (3 * u)]\r\n } else {\r\n u = 2 * Math.sqrt(-p / 3);\r\n var t = Math.acos(3 * q / p / u) / 3;\r\n var k = 2 * Math.PI / 3;\r\n roots = [u * Math.cos(t), u * Math.cos(t - k), u * Math.cos(t - 2 * k)]\r\n }\r\n }\r\n for (var i = 0; i < roots.length; i++) {\r\n roots[i] -= b / (3 * a)\r\n }\r\n return roots\r\n}\r\n\r\nfunction trunc(value) {\r\n return Math.trunc ? Math.trunc(value) : value > 0 ? Math.floor(value) : Math.ceil(value)\r\n}\r\n\r\nfunction getRemainderByDivision(dividend, divider, digitsCount) {\r\n if (divider === parseInt(divider)) {\r\n return dividend % divider\r\n }\r\n var quotient = roundFloatPart(dividend / divider, digitsCount);\r\n return (quotient - parseInt(quotient)) * divider\r\n}\r\n\r\nfunction getExponentLength(value) {\r\n var _valueString$split$;\r\n var valueString = value.toString();\r\n return (null === (_valueString$split$ = valueString.split(\".\")[1]) || void 0 === _valueString$split$ ? void 0 : _valueString$split$.length) || parseInt(valueString.split(\"e-\")[1]) || 0\r\n}\r\n\r\nfunction roundFloatPart(value) {\r\n var digitsCount = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0;\r\n return parseFloat(value.toFixed(digitsCount))\r\n}\r\nexport {\r\n sign,\r\n fitIntoRange,\r\n inRange,\r\n adjust,\r\n getPrecision,\r\n getExponent,\r\n getRoot,\r\n solveCubicEquation,\r\n trunc,\r\n roundFloatPart,\r\n getExponentLength,\r\n getRemainderByDivision,\r\n multiplyInExponentialForm\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/inflector.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 map\r\n} from \"./iterator\";\r\nvar _normalize = function(text) {\r\n if (void 0 === text || null === text) {\r\n return \"\"\r\n }\r\n return String(text)\r\n};\r\nvar _upperCaseFirst = function(text) {\r\n return _normalize(text).charAt(0).toUpperCase() + text.substr(1)\r\n};\r\nvar _chop = function(text) {\r\n return _normalize(text).replace(/([a-z\\d])([A-Z])/g, \"$1 $2\").split(/[\\s_-]+/)\r\n};\r\nexport var dasherize = function(text) {\r\n return map(_chop(text), (function(p) {\r\n return p.toLowerCase()\r\n })).join(\"-\")\r\n};\r\nexport var underscore = function(text) {\r\n return dasherize(text).replace(/-/g, \"_\")\r\n};\r\nexport var camelize = function(text, upperFirst) {\r\n return map(_chop(text), (function(p, i) {\r\n p = p.toLowerCase();\r\n if (upperFirst || i > 0) {\r\n p = _upperCaseFirst(p)\r\n }\r\n return p\r\n })).join(\"\")\r\n};\r\nexport var humanize = function(text) {\r\n return _upperCaseFirst(dasherize(text).replace(/-/g, \" \"))\r\n};\r\nexport var titleize = function(text) {\r\n return map(_chop(text), (function(p) {\r\n return _upperCaseFirst(p.toLowerCase())\r\n })).join(\" \")\r\n};\r\nvar DIGIT_CHARS = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"];\r\nexport var captionize = function(name) {\r\n var captionList = [];\r\n var i;\r\n var char;\r\n var isPrevCharNewWord = false;\r\n var isNewWord = false;\r\n for (i = 0; i < name.length; i++) {\r\n char = name.charAt(i);\r\n isNewWord = char === char.toUpperCase() && \"-\" !== char && \")\" !== char && \"/\" !== char || char in DIGIT_CHARS;\r\n if (\"_\" === char || \".\" === char) {\r\n char = \" \";\r\n isNewWord = true\r\n } else if (0 === i) {\r\n char = char.toUpperCase();\r\n isNewWord = true\r\n } else if (!isPrevCharNewWord && isNewWord) {\r\n if (captionList.length > 0) {\r\n captionList.push(\" \")\r\n }\r\n }\r\n captionList.push(char);\r\n isPrevCharNewWord = isNewWord\r\n }\r\n return captionList.join(\"\")\r\n};\r\n","/*!\n * devextreme-vue\n * Version: 22.1.6\n * Build date: Tue Oct 18 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/data_helper.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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/core/utils/common.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 Guid from \"../guid\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../utils/deferred\";\r\nimport {\r\n toComparable\r\n} from \"./data\";\r\nimport {\r\n each\r\n} from \"./iterator\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isString,\r\n isObject,\r\n type\r\n} from \"./type\";\r\nexport var ensureDefined = function(value, defaultValue) {\r\n return isDefined(value) ? value : defaultValue\r\n};\r\nexport var executeAsync = function(action, context) {\r\n var deferred = new Deferred;\r\n var normalizedContext = context || this;\r\n var task = {\r\n promise: deferred.promise(),\r\n abort: function() {\r\n clearTimeout(timerId);\r\n deferred.rejectWith(normalizedContext)\r\n }\r\n };\r\n var callback = function() {\r\n var result = action.call(normalizedContext);\r\n if (result && result.done && isFunction(result.done)) {\r\n result.done((function() {\r\n deferred.resolveWith(normalizedContext)\r\n }))\r\n } else {\r\n deferred.resolveWith(normalizedContext)\r\n }\r\n };\r\n var timerId = (arguments[2] || setTimeout)(callback, \"number\" === typeof context ? context : 0);\r\n return task\r\n};\r\nvar delayedFuncs = [];\r\nvar delayedNames = [];\r\nvar delayedDeferreds = [];\r\nvar executingName;\r\nvar deferExecute = function(name, func, deferred) {\r\n if (executingName && executingName !== name) {\r\n delayedFuncs.push(func);\r\n delayedNames.push(name);\r\n deferred = deferred || new Deferred;\r\n delayedDeferreds.push(deferred);\r\n return deferred\r\n } else {\r\n var oldExecutingName = executingName;\r\n var currentDelayedCount = delayedDeferreds.length;\r\n executingName = name;\r\n var result = func();\r\n if (!result) {\r\n if (delayedDeferreds.length > currentDelayedCount) {\r\n result = when.apply(this, delayedDeferreds.slice(currentDelayedCount))\r\n } else if (deferred) {\r\n deferred.resolve()\r\n }\r\n }\r\n executingName = oldExecutingName;\r\n if (deferred && result && result.done) {\r\n result.done(deferred.resolve).fail(deferred.reject)\r\n }\r\n if (!executingName && delayedFuncs.length) {\r\n (\"render\" === delayedNames.shift() ? deferRender : deferUpdate)(delayedFuncs.shift(), delayedDeferreds.shift())\r\n }\r\n return result || when()\r\n }\r\n};\r\nexport var deferRender = function(func, deferred) {\r\n return deferExecute(\"render\", func, deferred)\r\n};\r\nexport var deferUpdate = function(func, deferred) {\r\n return deferExecute(\"update\", func, deferred)\r\n};\r\nexport var deferRenderer = function(func) {\r\n return function() {\r\n var that = this;\r\n return deferExecute(\"render\", (function() {\r\n return func.call(that)\r\n }))\r\n }\r\n};\r\nexport var deferUpdater = function(func) {\r\n return function() {\r\n var that = this;\r\n return deferExecute(\"update\", (function() {\r\n return func.call(that)\r\n }))\r\n }\r\n};\r\nexport var findBestMatches = function(targetFilter, items, mapFn) {\r\n var bestMatches = [];\r\n var maxMatchCount = 0;\r\n each(items, (index, itemSrc) => {\r\n var matchCount = 0;\r\n var item = mapFn ? mapFn(itemSrc) : itemSrc;\r\n each(targetFilter, (paramName, targetValue) => {\r\n var value = item[paramName];\r\n if (void 0 === value) {\r\n return\r\n }\r\n if (match(value, targetValue)) {\r\n matchCount++;\r\n return\r\n }\r\n matchCount = -1;\r\n return false\r\n });\r\n if (matchCount < maxMatchCount) {\r\n return\r\n }\r\n if (matchCount > maxMatchCount) {\r\n bestMatches.length = 0;\r\n maxMatchCount = matchCount\r\n }\r\n bestMatches.push(itemSrc)\r\n });\r\n return bestMatches\r\n};\r\nvar match = function(value, targetValue) {\r\n if (Array.isArray(value) && Array.isArray(targetValue)) {\r\n var mismatch = false;\r\n each(value, (index, valueItem) => {\r\n if (valueItem !== targetValue[index]) {\r\n mismatch = true;\r\n return false\r\n }\r\n });\r\n if (mismatch) {\r\n return false\r\n }\r\n return true\r\n }\r\n if (value === targetValue) {\r\n return true\r\n }\r\n return false\r\n};\r\nexport var splitPair = function(raw) {\r\n var _raw$x, _raw$y;\r\n switch (type(raw)) {\r\n case \"string\":\r\n return raw.split(/\\s+/, 2);\r\n case \"object\":\r\n return [null !== (_raw$x = raw.x) && void 0 !== _raw$x ? _raw$x : raw.h, null !== (_raw$y = raw.y) && void 0 !== _raw$y ? _raw$y : raw.v];\r\n case \"number\":\r\n return [raw];\r\n case \"array\":\r\n return raw;\r\n default:\r\n return null\r\n }\r\n};\r\nexport var normalizeKey = function(id) {\r\n var key = isString(id) ? id : id.toString();\r\n var arr = key.match(/[^a-zA-Z0-9_]/g);\r\n arr && each(arr, (_, sign) => {\r\n key = key.replace(sign, \"__\" + sign.charCodeAt() + \"__\")\r\n });\r\n return key\r\n};\r\nexport var denormalizeKey = function(key) {\r\n var arr = key.match(/__\\d+__/g);\r\n arr && arr.forEach(char => {\r\n var charCode = parseInt(char.replace(\"__\", \"\"));\r\n key = key.replace(char, String.fromCharCode(charCode))\r\n });\r\n return key\r\n};\r\nexport var pairToObject = function(raw, preventRound) {\r\n var pair = splitPair(raw);\r\n var h = preventRound ? parseFloat(pair && pair[0]) : parseInt(pair && pair[0], 10);\r\n var v = preventRound ? parseFloat(pair && pair[1]) : parseInt(pair && pair[1], 10);\r\n if (!isFinite(h)) {\r\n h = 0\r\n }\r\n if (!isFinite(v)) {\r\n v = h\r\n }\r\n return {\r\n h: h,\r\n v: v\r\n }\r\n};\r\nexport var getKeyHash = function(key) {\r\n if (key instanceof Guid) {\r\n return key.toString()\r\n } else if (isObject(key) || Array.isArray(key)) {\r\n try {\r\n var keyHash = JSON.stringify(key);\r\n return \"{}\" === keyHash ? key : keyHash\r\n } catch (e) {\r\n return key\r\n }\r\n }\r\n return key\r\n};\r\nexport var escapeRegExp = function(string) {\r\n return string.replace(/[[\\]{}\\-()*+?.\\\\^$|\\s]/g, \"\\\\$&\")\r\n};\r\nexport var applyServerDecimalSeparator = function(value) {\r\n var separator = config().serverDecimalSeparator;\r\n if (isDefined(value)) {\r\n value = value.toString().replace(\".\", separator)\r\n }\r\n return value\r\n};\r\nexport var noop = function() {};\r\nexport var asyncNoop = function() {\r\n return (new Deferred).resolve().promise()\r\n};\r\nexport var grep = function(elements, checkFunction, invert) {\r\n var result = [];\r\n var check;\r\n var expectedCheck = !invert;\r\n for (var i = 0; i < elements.length; i++) {\r\n check = !!checkFunction(elements[i], i);\r\n if (check === expectedCheck) {\r\n result.push(elements[i])\r\n }\r\n }\r\n return result\r\n};\r\nvar arraysEqualByValue = function(array1, array2, depth) {\r\n if (array1.length !== array2.length) {\r\n return false\r\n }\r\n for (var i = 0; i < array1.length; i++) {\r\n if (!equalByValue(array1[i], array2[i], depth + 1)) {\r\n return false\r\n }\r\n }\r\n return true\r\n};\r\nvar objectsEqualByValue = function(object1, object2, depth, strict) {\r\n for (var propertyName in object1) {\r\n if (Object.prototype.hasOwnProperty.call(object1, propertyName) && !equalByValue(object1[propertyName], object2[propertyName], depth + 1, strict)) {\r\n return false\r\n }\r\n }\r\n for (var _propertyName in object2) {\r\n if (!(_propertyName in object1)) {\r\n return false\r\n }\r\n }\r\n return true\r\n};\r\nvar maxEqualityDepth = 3;\r\nexport var equalByValue = function(object1, object2) {\r\n var depth = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0;\r\n var strict = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : true;\r\n object1 = toComparable(object1, true);\r\n object2 = toComparable(object2, true);\r\n var comparisonResult = strict ? object1 === object2 : object1 == object2;\r\n if (comparisonResult || depth >= maxEqualityDepth) {\r\n return true\r\n }\r\n if (isObject(object1) && isObject(object2)) {\r\n return objectsEqualByValue(object1, object2, depth, strict)\r\n } else if (Array.isArray(object1) && Array.isArray(object2)) {\r\n return arraysEqualByValue(object1, object2, depth)\r\n }\r\n return false\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/utils/get_updated_options.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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/events/double_click.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 closestCommonParent\r\n} from \"../core/utils/dom\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport Class from \"../core/class\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport {\r\n name as clickEventName\r\n} from \"./click\";\r\nimport {\r\n addNamespace,\r\n fireEvent\r\n} from \"./utils/index\";\r\nvar DBLCLICK_EVENT_NAME = \"dxdblclick\";\r\nvar DBLCLICK_NAMESPACE = \"dxDblClick\";\r\nvar NAMESPACED_CLICK_EVENT = addNamespace(clickEventName, DBLCLICK_NAMESPACE);\r\nvar DBLCLICK_TIMEOUT = 300;\r\nvar DblClick = Class.inherit({\r\n ctor: function() {\r\n this._handlerCount = 0;\r\n this._forgetLastClick()\r\n },\r\n _forgetLastClick: function() {\r\n this._firstClickTarget = null;\r\n this._lastClickTimeStamp = -DBLCLICK_TIMEOUT\r\n },\r\n add: function() {\r\n if (this._handlerCount <= 0) {\r\n eventsEngine.on(domAdapter.getDocument(), NAMESPACED_CLICK_EVENT, this._clickHandler.bind(this))\r\n }\r\n this._handlerCount++\r\n },\r\n _clickHandler: function(e) {\r\n var timeStamp = e.timeStamp || Date.now();\r\n var timeBetweenClicks = timeStamp - this._lastClickTimeStamp;\r\n var isSimulated = timeBetweenClicks < 0;\r\n var isDouble = !isSimulated && timeBetweenClicks < DBLCLICK_TIMEOUT;\r\n if (isDouble) {\r\n fireEvent({\r\n type: DBLCLICK_EVENT_NAME,\r\n target: closestCommonParent(this._firstClickTarget, e.target),\r\n originalEvent: e\r\n });\r\n this._forgetLastClick()\r\n } else {\r\n this._firstClickTarget = e.target;\r\n this._lastClickTimeStamp = timeStamp\r\n }\r\n },\r\n remove: function() {\r\n this._handlerCount--;\r\n if (this._handlerCount <= 0) {\r\n this._forgetLastClick();\r\n eventsEngine.off(domAdapter.getDocument(), NAMESPACED_CLICK_EVENT)\r\n }\r\n }\r\n});\r\nregisterEvent(DBLCLICK_EVENT_NAME, new DblClick);\r\nexport {\r\n DBLCLICK_EVENT_NAME as name\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/hierarchical_collection/ui.data_converter.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 errors from \"../../ui/widget/ui.errors\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isPrimitive\r\n} from \"../../core/utils/type\";\r\nvar DataConverter = Class.inherit({\r\n ctor: function() {\r\n this._dataStructure = [];\r\n this._itemsCount = 0;\r\n this._visibleItemsCount = 0\r\n },\r\n _indexByKey: {},\r\n _convertItemsToNodes: function(items, parentKey) {\r\n var that = this;\r\n each(items, (function(_, item) {\r\n var parentId = isDefined(parentKey) ? parentKey : that._getParentId(item);\r\n var node = that._convertItemToNode(item, parentId);\r\n that._dataStructure.push(node);\r\n that._checkForDuplicateId(node.internalFields.key);\r\n that._indexByKey[node.internalFields.key] = that._dataStructure.length - 1;\r\n if (that._itemHasChildren(item)) {\r\n that._convertItemsToNodes(that._dataAccessors.getters.items(item), node.internalFields.key)\r\n }\r\n }))\r\n },\r\n _checkForDuplicateId: function(key) {\r\n if (isDefined(this._indexByKey[key])) {\r\n throw errors.Error(\"E1040\", key)\r\n }\r\n },\r\n _getParentId: function(item) {\r\n return \"plain\" === this._dataType ? this._dataAccessors.getters.parentKey(item) : void 0\r\n },\r\n _itemHasChildren: function(item) {\r\n if (\"plain\" === this._dataType) {\r\n return\r\n }\r\n var items = this._dataAccessors.getters.items(item);\r\n return items && items.length\r\n },\r\n _getUniqueKey: function(item) {\r\n var keyGetter = this._dataAccessors.getters.key;\r\n var itemKey = keyGetter(item);\r\n var isCorrectKey = keyGetter && (itemKey || 0 === itemKey) && isPrimitive(itemKey);\r\n return isCorrectKey ? itemKey : this.getItemsCount()\r\n },\r\n _convertItemToNode: function(item, parentKey) {\r\n this._itemsCount++;\r\n false !== item.visible && this._visibleItemsCount++;\r\n var node = {\r\n internalFields: {\r\n disabled: this._dataAccessors.getters.disabled(item, {\r\n defaultValue: false\r\n }),\r\n expanded: this._dataAccessors.getters.expanded(item, {\r\n defaultValue: false\r\n }),\r\n selected: this._dataAccessors.getters.selected(item, {\r\n defaultValue: false\r\n }),\r\n key: this._getUniqueKey(item),\r\n parentKey: isDefined(parentKey) ? parentKey : this._rootValue,\r\n item: this._makeObjectFromPrimitive(item),\r\n childrenKeys: []\r\n }\r\n };\r\n extend(node, item);\r\n delete node.items;\r\n return node\r\n },\r\n setChildrenKeys: function() {\r\n var that = this;\r\n each(this._dataStructure, (function(_, node) {\r\n if (node.internalFields.parentKey === that._rootValue) {\r\n return\r\n }\r\n var parent = that.getParentNode(node);\r\n parent && parent.internalFields.childrenKeys.push(node.internalFields.key)\r\n }))\r\n },\r\n _makeObjectFromPrimitive: function(item) {\r\n if (isPrimitive(item)) {\r\n var key = item;\r\n item = {};\r\n this._dataAccessors.setters.key(item, key)\r\n }\r\n return item\r\n },\r\n _convertToPublicNode: function(node, parent) {\r\n if (!node) {\r\n return null\r\n }\r\n var publicNode = {\r\n text: this._dataAccessors.getters.display(node),\r\n key: node.internalFields.key,\r\n selected: node.internalFields.selected,\r\n expanded: node.internalFields.expanded,\r\n disabled: node.internalFields.disabled,\r\n parent: parent || null,\r\n itemData: node.internalFields.item,\r\n children: [],\r\n items: []\r\n };\r\n if (publicNode.parent) {\r\n publicNode.parent.children.push(publicNode);\r\n publicNode.parent.items.push(publicNode)\r\n }\r\n return publicNode\r\n },\r\n convertToPublicNodes: function(data, parent) {\r\n if (!data.length) {\r\n return []\r\n }\r\n var that = this;\r\n var publicNodes = [];\r\n each(data, (function(_, node) {\r\n node = isPrimitive(node) ? that._getByKey(node) : node;\r\n var publicNode = that._convertToPublicNode(node, parent);\r\n publicNode.children = that.convertToPublicNodes(node.internalFields.childrenKeys, publicNode);\r\n publicNodes.push(publicNode);\r\n node.internalFields.publicNode = publicNode\r\n }));\r\n return publicNodes\r\n },\r\n setDataAccessors: function(accessors) {\r\n this._dataAccessors = accessors\r\n },\r\n _getByKey: function(key) {\r\n return this._dataStructure[this.getIndexByKey(key)] || null\r\n },\r\n getParentNode: function(node) {\r\n return this._getByKey(node.internalFields.parentKey)\r\n },\r\n getByKey: function(data, key) {\r\n if (null === key || void 0 === key) {\r\n return null\r\n }\r\n var result = null;\r\n var that = this;\r\n var getByKey = function(data, key) {\r\n each(data, (function(_, element) {\r\n var currentElementKey = element.internalFields && element.internalFields.key || that._dataAccessors.getters.key(element);\r\n if (currentElementKey.toString() === key.toString()) {\r\n result = element;\r\n return false\r\n }\r\n }));\r\n return result\r\n };\r\n return getByKey(data, key)\r\n },\r\n getItemsCount: function() {\r\n return this._itemsCount\r\n },\r\n getVisibleItemsCount: function() {\r\n return this._visibleItemsCount\r\n },\r\n updateIndexByKey: function() {\r\n var that = this;\r\n this._indexByKey = {};\r\n each(this._dataStructure, (function(index, node) {\r\n that._checkForDuplicateId(node.internalFields.key);\r\n that._indexByKey[node.internalFields.key] = index\r\n }))\r\n },\r\n updateChildrenKeys: function() {\r\n this._indexByKey = {};\r\n this.removeChildrenKeys();\r\n this.updateIndexByKey();\r\n this.setChildrenKeys()\r\n },\r\n removeChildrenKeys: function() {\r\n this._indexByKey = {};\r\n each(this._dataStructure, (function(index, node) {\r\n node.internalFields.childrenKeys = []\r\n }))\r\n },\r\n getIndexByKey: function(key) {\r\n return this._indexByKey[key]\r\n },\r\n createPlainStructure: function(items, rootValue, dataType) {\r\n this._itemsCount = 0;\r\n this._visibleItemsCount = 0;\r\n this._rootValue = rootValue;\r\n this._dataType = dataType;\r\n this._indexByKey = {};\r\n this._convertItemsToNodes(items);\r\n this.setChildrenKeys();\r\n return this._dataStructure\r\n }\r\n});\r\nexport default DataConverter;\r\n","/**\r\n * DevExtreme (esm/ui/hierarchical_collection/ui.data_adapter.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isFunction,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport errors from \"../../ui/widget/ui.errors\";\r\nimport uiSearchBoxMixin from \"../../ui/widget/ui.search_box_mixin\";\r\nimport TextBox from \"../../ui/text_box\";\r\nimport query from \"../../data/query\";\r\nimport storeHelper from \"../../data/store_helper\";\r\nimport HierarchicalDataConverter from \"./ui.data_converter\";\r\nvar EXPANDED = \"expanded\";\r\nvar SELECTED = \"selected\";\r\nvar DISABLED = \"disabled\";\r\nuiSearchBoxMixin.setEditorClass(TextBox);\r\nvar DataAdapter = Class.inherit({\r\n ctor: function(options) {\r\n this.options = {};\r\n extend(this.options, this._defaultOptions(), options);\r\n this.options.dataConverter.setDataAccessors(this.options.dataAccessors);\r\n this._selectedNodesKeys = [];\r\n this._expandedNodesKeys = [];\r\n this._dataStructure = [];\r\n this._createInternalDataStructure();\r\n this.getTreeNodes()\r\n },\r\n setOption: function(name, value) {\r\n this.options[name] = value;\r\n if (\"recursiveSelection\" === name) {\r\n this._updateSelection()\r\n }\r\n },\r\n _defaultOptions: function() {\r\n return {\r\n dataAccessors: void 0,\r\n items: [],\r\n multipleSelection: true,\r\n recursiveSelection: false,\r\n recursiveExpansion: false,\r\n rootValue: 0,\r\n searchValue: \"\",\r\n dataType: \"tree\",\r\n searchMode: \"contains\",\r\n dataConverter: new HierarchicalDataConverter,\r\n onNodeChanged: noop,\r\n sort: null\r\n }\r\n },\r\n _createInternalDataStructure: function() {\r\n this._initialDataStructure = this.options.dataConverter.createPlainStructure(this.options.items, this.options.rootValue, this.options.dataType);\r\n this._dataStructure = this.options.searchValue.length ? this.search(this.options.searchValue) : this._initialDataStructure;\r\n this.options.dataConverter._dataStructure = this._dataStructure;\r\n this._updateSelection();\r\n this._updateExpansion()\r\n },\r\n _updateSelection: function() {\r\n if (this.options.recursiveSelection) {\r\n this._setChildrenSelection();\r\n this._setParentSelection()\r\n }\r\n this._selectedNodesKeys = this._updateNodesKeysArray(SELECTED)\r\n },\r\n _updateExpansion: function(key) {\r\n if (this.options.recursiveExpansion) {\r\n key ? this._updateOneBranch(key) : this._setParentExpansion()\r\n }\r\n this._expandedNodesKeys = this._updateNodesKeysArray(EXPANDED)\r\n },\r\n _updateNodesKeysArray: function(property) {\r\n var that = this;\r\n var array = [];\r\n each(that._getDataBySelectionMode(), (function(_, node) {\r\n if (!that._isNodeVisible(node)) {\r\n return\r\n }\r\n if (node.internalFields[property]) {\r\n if (property === EXPANDED || that.options.multipleSelection) {\r\n array.push(node.internalFields.key)\r\n } else {\r\n array.length && that.toggleSelection(array[0], false, true);\r\n array = [node.internalFields.key]\r\n }\r\n }\r\n }));\r\n return array\r\n },\r\n _getDataBySelectionMode: function() {\r\n return this.options.multipleSelection ? this.getData() : this.getFullData()\r\n },\r\n _isNodeVisible: function(node) {\r\n return false !== node.internalFields.item.visible\r\n },\r\n _getByKey: function(data, key) {\r\n return data === this._dataStructure ? this.options.dataConverter._getByKey(key) : this.options.dataConverter.getByKey(data, key)\r\n },\r\n _setChildrenSelection: function() {\r\n var that = this;\r\n each(this._dataStructure, (function(_, node) {\r\n if (!node.internalFields.childrenKeys.length) {\r\n return\r\n }\r\n var isSelected = node.internalFields.selected;\r\n true === isSelected && that._toggleChildrenSelection(node, isSelected)\r\n }))\r\n },\r\n _setParentSelection: function() {\r\n var that = this;\r\n each(this._dataStructure, (function(_, node) {\r\n var parent = that.options.dataConverter.getParentNode(node);\r\n if (parent && node.internalFields.parentKey !== that.options.rootValue) {\r\n that._iterateParents(node, (function(parent) {\r\n var newParentState = that._calculateSelectedState(parent);\r\n that._setFieldState(parent, SELECTED, newParentState)\r\n }))\r\n }\r\n }))\r\n },\r\n _setParentExpansion: function() {\r\n var that = this;\r\n each(this._dataStructure, (function(_, node) {\r\n if (!node.internalFields.expanded) {\r\n return\r\n }\r\n that._updateOneBranch(node.internalFields.key)\r\n }))\r\n },\r\n _updateOneBranch: function(key) {\r\n var that = this;\r\n var node = this.getNodeByKey(key);\r\n that._iterateParents(node, (function(parent) {\r\n that._setFieldState(parent, EXPANDED, true)\r\n }))\r\n },\r\n _iterateChildren: function(node, recursive, callback, processedKeys) {\r\n if (!isFunction(callback)) {\r\n return\r\n }\r\n var that = this;\r\n var nodeKey = node.internalFields.key;\r\n processedKeys = processedKeys || [];\r\n if (-1 === processedKeys.indexOf(nodeKey)) {\r\n processedKeys.push(nodeKey);\r\n each(node.internalFields.childrenKeys, (function(_, key) {\r\n var child = that.getNodeByKey(key);\r\n callback(child);\r\n if (child.internalFields.childrenKeys.length && recursive) {\r\n that._iterateChildren(child, recursive, callback, processedKeys)\r\n }\r\n }))\r\n }\r\n },\r\n _iterateParents: function(node, callback, processedKeys) {\r\n if (node.internalFields.parentKey === this.options.rootValue || !isFunction(callback)) {\r\n return\r\n }\r\n processedKeys = processedKeys || [];\r\n var key = node.internalFields.key;\r\n if (-1 === processedKeys.indexOf(key)) {\r\n processedKeys.push(key);\r\n var parent = this.options.dataConverter.getParentNode(node);\r\n if (parent) {\r\n callback(parent);\r\n if (parent.internalFields.parentKey !== this.options.rootValue) {\r\n this._iterateParents(parent, callback, processedKeys)\r\n }\r\n }\r\n }\r\n },\r\n _calculateSelectedState: function(node) {\r\n var itemsCount = node.internalFields.childrenKeys.length;\r\n var selectedItemsCount = 0;\r\n var invisibleItemsCount = 0;\r\n var result = false;\r\n for (var i = 0; i <= itemsCount - 1; i++) {\r\n var childNode = this.getNodeByKey(node.internalFields.childrenKeys[i]);\r\n var isChildInvisible = false === childNode.internalFields.item.visible;\r\n var childState = childNode.internalFields.selected;\r\n if (isChildInvisible) {\r\n invisibleItemsCount++;\r\n continue\r\n }\r\n if (childState) {\r\n selectedItemsCount++\r\n } else if (void 0 === childState) {\r\n selectedItemsCount += .5\r\n }\r\n }\r\n if (selectedItemsCount) {\r\n result = selectedItemsCount === itemsCount - invisibleItemsCount ? true : void 0\r\n }\r\n return result\r\n },\r\n _toggleChildrenSelection: function(node, state) {\r\n var that = this;\r\n this._iterateChildren(node, true, (function(child) {\r\n if (that._isNodeVisible(child)) {\r\n that._setFieldState(child, SELECTED, state)\r\n }\r\n }))\r\n },\r\n _setFieldState: function(node, field, state) {\r\n if (node.internalFields[field] === state) {\r\n return\r\n }\r\n node.internalFields[field] = state;\r\n if (node.internalFields.publicNode) {\r\n node.internalFields.publicNode[field] = state\r\n }\r\n this.options.dataAccessors.setters[field](node.internalFields.item, state);\r\n this.options.onNodeChanged(node)\r\n },\r\n _markChildren: function(keys) {\r\n var that = this;\r\n each(keys, (function(_, key) {\r\n var index = that.getIndexByKey(key);\r\n var node = that.getNodeByKey(key);\r\n that._dataStructure[index] = 0;\r\n node.internalFields.childrenKeys.length && that._markChildren(node.internalFields.childrenKeys)\r\n }))\r\n },\r\n _removeNode: function(key) {\r\n var node = this.getNodeByKey(key);\r\n this._dataStructure[this.getIndexByKey(key)] = 0;\r\n this._markChildren(node.internalFields.childrenKeys);\r\n var that = this;\r\n var counter = 0;\r\n var items = extend([], this._dataStructure);\r\n each(items, (function(index, item) {\r\n if (!item) {\r\n that._dataStructure.splice(index - counter, 1);\r\n counter++\r\n }\r\n }))\r\n },\r\n _addNode: function(item) {\r\n var dataConverter = this.options.dataConverter;\r\n var node = dataConverter._convertItemToNode(item, this.options.dataAccessors.getters.parentKey(item));\r\n this._dataStructure = this._dataStructure.concat(node);\r\n this._initialDataStructure = this._initialDataStructure.concat(node);\r\n dataConverter._dataStructure = dataConverter._dataStructure.concat(node)\r\n },\r\n _updateFields: function() {\r\n this.options.dataConverter.updateChildrenKeys();\r\n this._updateSelection();\r\n this._updateExpansion()\r\n },\r\n getSelectedNodesKeys: function() {\r\n return this._selectedNodesKeys\r\n },\r\n getExpandedNodesKeys: function() {\r\n return this._expandedNodesKeys\r\n },\r\n getData: function() {\r\n return this._dataStructure\r\n },\r\n getFullData: function() {\r\n return this._initialDataStructure\r\n },\r\n getNodeByItem: function(item) {\r\n var result = null;\r\n each(this._dataStructure, (function(_, node) {\r\n if (node.internalFields.item === item) {\r\n result = node;\r\n return false\r\n }\r\n }));\r\n return result\r\n },\r\n getNodesByItems: function(items) {\r\n var that = this;\r\n var nodes = [];\r\n each(items, (function(_, item) {\r\n var node = that.getNodeByItem(item);\r\n node && nodes.push(node)\r\n }));\r\n return nodes\r\n },\r\n getNodeByKey: function(key, data) {\r\n return this._getByKey(data || this._getDataBySelectionMode(), key)\r\n },\r\n getTreeNodes: function() {\r\n return this.options.dataConverter.convertToPublicNodes(this.getRootNodes())\r\n },\r\n getItemsCount: function() {\r\n return this.options.dataConverter.getItemsCount()\r\n },\r\n getVisibleItemsCount: function() {\r\n return this.options.dataConverter.getVisibleItemsCount()\r\n },\r\n getPublicNode: function(node) {\r\n return node.internalFields.publicNode\r\n },\r\n getRootNodes: function() {\r\n return this.getChildrenNodes(this.options.rootValue)\r\n },\r\n getChildrenNodes: function(parentKey) {\r\n return query(this._dataStructure).filter([\"internalFields.parentKey\", parentKey]).toArray()\r\n },\r\n getIndexByKey: function(key) {\r\n return this.options.dataConverter.getIndexByKey(key)\r\n },\r\n addItem: function(item) {\r\n this._addNode(item);\r\n this._updateFields()\r\n },\r\n removeItem: function(key) {\r\n this._removeNode(key);\r\n this._updateFields()\r\n },\r\n toggleSelection: function(key, state, selectRecursive) {\r\n var isSingleModeUnselect = this._isSingleModeUnselect(state);\r\n var node = this._getByKey(selectRecursive || isSingleModeUnselect ? this._initialDataStructure : this._dataStructure, key);\r\n this._setFieldState(node, SELECTED, state);\r\n if (this.options.recursiveSelection && !selectRecursive) {\r\n state ? this._setChildrenSelection() : this._toggleChildrenSelection(node, state);\r\n this._setParentSelection()\r\n }\r\n this._selectedNodesKeys = this._updateNodesKeysArray(SELECTED)\r\n },\r\n _isSingleModeUnselect: function(selectionState) {\r\n return !this.options.multipleSelection && !selectionState\r\n },\r\n toggleNodeDisabledState: function(key, state) {\r\n var node = this.getNodeByKey(key);\r\n this._setFieldState(node, DISABLED, state)\r\n },\r\n toggleSelectAll: function(state) {\r\n if (!isDefined(state)) {\r\n return\r\n }\r\n var that = this;\r\n var lastSelectedKey = that._selectedNodesKeys[that._selectedNodesKeys.length - 1];\r\n var dataStructure = that._isSingleModeUnselect(state) ? this._initialDataStructure : this._dataStructure;\r\n each(dataStructure, (function(index, node) {\r\n if (!that._isNodeVisible(node)) {\r\n return\r\n }\r\n that._setFieldState(node, SELECTED, state)\r\n }));\r\n that._selectedNodesKeys = that._updateNodesKeysArray(SELECTED);\r\n if (!state && that.options.selectionRequired) {\r\n that.toggleSelection(lastSelectedKey, true)\r\n }\r\n },\r\n isAllSelected: function() {\r\n if (this.getSelectedNodesKeys().length) {\r\n return this.getSelectedNodesKeys().length === this.getVisibleItemsCount() ? true : void 0\r\n } else {\r\n return false\r\n }\r\n },\r\n toggleExpansion: function(key, state) {\r\n var node = this.getNodeByKey(key);\r\n this._setFieldState(node, EXPANDED, state);\r\n if (state) {\r\n this._updateExpansion(key)\r\n }\r\n this._expandedNodesKeys = this._updateNodesKeysArray(EXPANDED)\r\n },\r\n isFiltered: function(item) {\r\n return !this.options.searchValue.length || !!this._filterDataStructure(this.options.searchValue, [item]).length\r\n },\r\n _createCriteria: function(selector, value, operation) {\r\n var searchFilter = [];\r\n if (!Array.isArray(selector)) {\r\n return [selector, operation, value]\r\n }\r\n each(selector, (function(i, item) {\r\n searchFilter.push([item, operation, value], \"or\")\r\n }));\r\n searchFilter.pop();\r\n return searchFilter\r\n },\r\n _filterDataStructure: function(filterValue, dataStructure) {\r\n var selector = this.options.searchExpr || this.options.dataAccessors.getters.display;\r\n var operation = uiSearchBoxMixin.getOperationBySearchMode(this.options.searchMode);\r\n var criteria = this._createCriteria(selector, filterValue, operation);\r\n dataStructure = dataStructure || this._initialDataStructure;\r\n return query(dataStructure).filter(criteria).toArray()\r\n },\r\n search: function(searchValue) {\r\n var that = this;\r\n var matches = this._filterDataStructure(searchValue);\r\n var dataConverter = this.options.dataConverter;\r\n ! function lookForParents(matches, index) {\r\n var length = matches.length;\r\n while (index < length) {\r\n var node = matches[index];\r\n if (node.internalFields.parentKey === that.options.rootValue) {\r\n index++;\r\n continue\r\n }\r\n var parent = dataConverter.getParentNode(node);\r\n if (!parent) {\r\n errors.log(\"W1007\", node.internalFields.parentKey, node.internalFields.key);\r\n index++;\r\n continue\r\n }\r\n if (!parent.internalFields.expanded) {\r\n that._setFieldState(parent, EXPANDED, true)\r\n }\r\n if (matches.includes(parent)) {\r\n index++;\r\n continue\r\n }\r\n matches.splice(index, 0, parent);\r\n lookForParents(matches, index)\r\n }\r\n }(matches, 0);\r\n if (this.options.sort) {\r\n matches = storeHelper.queryByOptions(query(matches), {\r\n sort: this.options.sort\r\n }).toArray()\r\n }\r\n dataConverter._indexByKey = {};\r\n each(matches, (function(index, node) {\r\n node.internalFields.childrenKeys = [];\r\n dataConverter._indexByKey[node.internalFields.key] = index\r\n }));\r\n dataConverter._dataStructure = matches;\r\n dataConverter.setChildrenKeys();\r\n return dataConverter._dataStructure\r\n }\r\n});\r\nexport default DataAdapter;\r\n","/**\r\n * DevExtreme (esm/ui/hierarchical_collection/ui.hierarchical_collection_widget.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 compileGetter,\r\n compileSetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n getImageContainer\r\n} from \"../../core/utils/icon\";\r\nimport HierarchicalDataAdapter from \"./ui.data_adapter\";\r\nimport CollectionWidget from \"../collection/ui.collection_widget.edit\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../core/templates/bindable_template\";\r\nimport {\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar HierarchicalCollectionWidget = CollectionWidget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n keyExpr: \"id\",\r\n displayExpr: \"text\",\r\n selectedExpr: \"selected\",\r\n disabledExpr: \"disabled\",\r\n itemsExpr: \"items\",\r\n hoverStateEnabled: true,\r\n parentIdExpr: \"parentId\",\r\n expandedExpr: \"expanded\"\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initAccessors();\r\n this._initDataAdapter();\r\n this._initDynamicTemplates()\r\n },\r\n _initDataSource: function() {\r\n this.callBase();\r\n this._dataSource && this._dataSource.paginate(false)\r\n },\r\n _initDataAdapter: function() {\r\n var accessors = this._createDataAdapterAccessors();\r\n this._dataAdapter = new HierarchicalDataAdapter(extend({\r\n dataAccessors: {\r\n getters: accessors.getters,\r\n setters: accessors.setters\r\n },\r\n items: this.option(\"items\")\r\n }, this._getDataAdapterOptions()))\r\n },\r\n _getDataAdapterOptions: noop,\r\n _initDynamicTemplates: function() {\r\n var that = this;\r\n this._templateManager.addDefaultTemplates({\r\n item: new BindableTemplate(function($container, itemData) {\r\n $container.html(itemData.html).append(this._getIconContainer(itemData)).append(this._getTextContainer(itemData)).append(this._getPopoutContainer(itemData));\r\n that._addContentClasses(itemData, $container.parent())\r\n }.bind(this), [\"text\", \"html\", \"items\", \"icon\"], this.option(\"integrationOptions.watchMethod\"), {\r\n text: this._displayGetter,\r\n items: this._itemsGetter\r\n })\r\n })\r\n },\r\n _getIconContainer: function(itemData) {\r\n return itemData.icon ? getImageContainer(itemData.icon) : void 0\r\n },\r\n _getTextContainer: function(itemData) {\r\n return $(\"\").text(itemData.text)\r\n },\r\n _getPopoutContainer: noop,\r\n _addContentClasses: noop,\r\n _initAccessors: function() {\r\n var that = this;\r\n each(this._getAccessors(), (function(_, accessor) {\r\n that._compileAccessor(accessor)\r\n }));\r\n this._compileDisplayGetter()\r\n },\r\n _getAccessors: function() {\r\n return [\"key\", \"selected\", \"items\", \"disabled\", \"parentId\", \"expanded\"]\r\n },\r\n _getChildNodes: function(node) {\r\n var that = this;\r\n var arr = [];\r\n each(node.internalFields.childrenKeys, (function(_, key) {\r\n var childNode = that._dataAdapter.getNodeByKey(key);\r\n arr.push(childNode)\r\n }));\r\n return arr\r\n },\r\n _hasChildren: function(node) {\r\n return node && node.internalFields.childrenKeys.length\r\n },\r\n _compileAccessor: function(optionName) {\r\n var getter = \"_\" + optionName + \"Getter\";\r\n var setter = \"_\" + optionName + \"Setter\";\r\n var optionExpr = this.option(optionName + \"Expr\");\r\n if (!optionExpr) {\r\n this[getter] = noop;\r\n this[setter] = noop;\r\n return\r\n } else if (isFunction(optionExpr)) {\r\n this[setter] = function(obj, value) {\r\n obj[optionExpr()] = value\r\n };\r\n this[getter] = function(obj) {\r\n return obj[optionExpr()]\r\n };\r\n return\r\n }\r\n this[getter] = compileGetter(optionExpr);\r\n this[setter] = compileSetter(optionExpr)\r\n },\r\n _createDataAdapterAccessors: function() {\r\n var that = this;\r\n var accessors = {\r\n getters: {},\r\n setters: {}\r\n };\r\n each(this._getAccessors(), (function(_, accessor) {\r\n var getterName = \"_\" + accessor + \"Getter\";\r\n var setterName = \"_\" + accessor + \"Setter\";\r\n var newAccessor = \"parentId\" === accessor ? \"parentKey\" : accessor;\r\n accessors.getters[newAccessor] = that[getterName];\r\n accessors.setters[newAccessor] = that[setterName]\r\n }));\r\n accessors.getters.display = !this._displayGetter ? itemData => itemData.text : this._displayGetter;\r\n return accessors\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._addWidgetClass()\r\n },\r\n _addWidgetClass: function() {\r\n this._focusTarget().addClass(this._widgetClass())\r\n },\r\n _widgetClass: noop,\r\n _renderItemFrame: function(index, itemData) {\r\n var $itemFrame = this.callBase.apply(this, arguments);\r\n $itemFrame.toggleClass(DISABLED_STATE_CLASS, !!this._disabledGetter(itemData));\r\n return $itemFrame\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"displayExpr\":\r\n case \"keyExpr\":\r\n this._initAccessors();\r\n this._initDynamicTemplates();\r\n this.repaint();\r\n break;\r\n case \"itemsExpr\":\r\n case \"selectedExpr\":\r\n case \"disabledExpr\":\r\n case \"expandedExpr\":\r\n case \"parentIdExpr\":\r\n this._initAccessors();\r\n this._initDataAdapter();\r\n this.repaint();\r\n break;\r\n case \"items\":\r\n this._initDataAdapter();\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default HierarchicalCollectionWidget;\r\n","/**\r\n * DevExtreme (esm/mobile/hide_callback.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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._stopAnimation();\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.6\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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","/*!\n * devextreme-vue\n * Version: 22.1.6\n * Build date: Tue Oct 18 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.6\n * Build date: Tue Oct 18 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.6\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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 _originalEvent$target;\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 && null !== (_originalEvent$target = originalEvent.target) && void 0 !== _originalEvent$target && _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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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/localization/currency.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 default {\r\n _formatNumberCore: function(value, format, formatConfig) {\r\n if (\"currency\" === format) {\r\n formatConfig.precision = formatConfig.precision || 0;\r\n var result = this.format(value, extend({}, formatConfig, {\r\n type: \"fixedpoint\"\r\n }));\r\n var currencyPart = this.getCurrencySymbol().symbol.replace(/\\$/g, \"$$$$\");\r\n result = result.replace(/^(\\D*)(\\d.*)/, \"$1\" + currencyPart + \"$2\");\r\n return result\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n getCurrencySymbol: function() {\r\n return {\r\n symbol: \"$\"\r\n }\r\n },\r\n getOpenXmlCurrencyFormat: function() {\r\n return \"$#,##0{0}_);\\\\($#,##0{0}\\\\)\"\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/events/core/emitter.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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.6\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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/core/utils/string.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 isString\r\n} from \"./type\";\r\nexport var encodeHtml = function() {\r\n var encodeRegExp = [new RegExp(\"&\", \"g\"), new RegExp('\"', \"g\"), new RegExp(\"'\", \"g\"), new RegExp(\"<\", \"g\"), new RegExp(\">\", \"g\")];\r\n return function(str) {\r\n return String(str).replace(encodeRegExp[0], \"&\").replace(encodeRegExp[1], \""\").replace(encodeRegExp[2], \"'\").replace(encodeRegExp[3], \"<\").replace(encodeRegExp[4], \">\")\r\n }\r\n}();\r\nvar splitQuad = function(raw) {\r\n switch (typeof raw) {\r\n case \"string\":\r\n return raw.split(/\\s+/, 4);\r\n case \"object\":\r\n return [raw.x || raw.h || raw.left, raw.y || raw.v || raw.top, raw.x || raw.h || raw.right, raw.y || raw.v || raw.bottom];\r\n case \"number\":\r\n return [raw];\r\n default:\r\n return raw\r\n }\r\n};\r\nexport var quadToObject = function(raw) {\r\n var quad = splitQuad(raw);\r\n var left = parseInt(quad && quad[0], 10);\r\n var top = parseInt(quad && quad[1], 10);\r\n var right = parseInt(quad && quad[2], 10);\r\n var bottom = parseInt(quad && quad[3], 10);\r\n if (!isFinite(left)) {\r\n left = 0\r\n }\r\n if (!isFinite(top)) {\r\n top = left\r\n }\r\n if (!isFinite(right)) {\r\n right = left\r\n }\r\n if (!isFinite(bottom)) {\r\n bottom = top\r\n }\r\n return {\r\n top: top,\r\n right: right,\r\n bottom: bottom,\r\n left: left\r\n }\r\n};\r\nexport function format(template) {\r\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\r\n values[_key - 1] = arguments[_key]\r\n }\r\n if (isFunction(template)) {\r\n return template(...values)\r\n }\r\n values.forEach((value, index) => {\r\n if (isString(value)) {\r\n value = value.replace(/\\$/g, \"$$$$\")\r\n }\r\n var placeholderReg = new RegExp(\"\\\\{\" + index + \"\\\\}\", \"gm\");\r\n template = template.replace(placeholderReg, value)\r\n });\r\n return template\r\n}\r\nexport var replaceAll = function(text, searchToken, replacementToken) {\r\n return text.replace(new RegExp(\"(\" + (str = searchToken, (str + \"\").replace(/([+*?.[^\\]$(){}><|=!:])/g, \"\\\\$1\")) + \")\", \"gi\"), replacementToken);\r\n var str\r\n};\r\nexport var isEmpty = function() {\r\n var SPACE_REGEXP = /\\s/g;\r\n return function(text) {\r\n return !text || !text.replace(SPACE_REGEXP, \"\")\r\n }\r\n}();\r\n","/**\r\n * DevExtreme (esm/renovation/common/config_context.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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/localization/utils.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 sign,\r\n multiplyInExponentialForm\r\n} from \"../core/utils/math\";\r\nvar DECIMAL_BASE = 10;\r\n\r\nfunction roundByAbs(value) {\r\n var valueSign = sign(value);\r\n return valueSign * Math.round(Math.abs(value))\r\n}\r\n\r\nfunction adjustValue(value, precision) {\r\n var precisionMultiplier = Math.pow(DECIMAL_BASE, precision);\r\n var intermediateValue = multiplyInExponentialForm(value, precision);\r\n return roundByAbs(intermediateValue) / precisionMultiplier\r\n}\r\nexport function toFixed(value, precision) {\r\n var valuePrecision = precision || 0;\r\n var adjustedValue = valuePrecision > 0 ? adjustValue(...arguments) : value;\r\n return adjustedValue.toFixed(valuePrecision)\r\n}\r\n","/**\r\n * DevExtreme (esm/data/utils.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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/core/errors.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 \"./utils/error\";\r\nexport default errorUtils({\r\n E0001: \"Method is not implemented\",\r\n E0002: \"Member name collision: {0}\",\r\n E0003: \"A class must be instantiated using the 'new' keyword\",\r\n E0004: \"The NAME property of the component is not specified\",\r\n E0005: \"Unknown device\",\r\n E0006: \"Unknown endpoint key is requested\",\r\n E0007: \"'Invalidate' method is called outside the update transaction\",\r\n E0008: \"Type of the option name is not appropriate to create an action\",\r\n E0009: \"Component '{0}' has not been initialized for an element\",\r\n E0010: \"Animation configuration with the '{0}' type requires '{1}' configuration as {2}\",\r\n E0011: \"Unknown animation type '{0}'\",\r\n E0012: \"jQuery version is too old. Please upgrade jQuery to 1.10.0 or later\",\r\n E0013: \"KnockoutJS version is too old. Please upgrade KnockoutJS to 2.3.0 or later\",\r\n E0014: \"The 'release' method shouldn't be called for an unlocked Lock object\",\r\n E0015: \"Queued task returned an unexpected result\",\r\n E0017: \"Event namespace is not defined\",\r\n E0018: \"DevExpress.ui.DevExpressPopup widget is required\",\r\n E0020: \"Template engine '{0}' is not supported\",\r\n E0021: \"Unknown theme is set: {0}\",\r\n E0022: \"LINK[rel=DevExpress-theme] tags must go before DevExpress included scripts\",\r\n E0023: \"Template name is not specified\",\r\n E0024: \"DevExtreme bundle already included\",\r\n E0025: \"Unexpected argument type\",\r\n E0100: \"Unknown validation type is detected\",\r\n E0101: \"Misconfigured range validation rule is detected\",\r\n E0102: \"Misconfigured comparison validation rule is detected\",\r\n E0103: \"validationCallback of an asynchronous rule should return a jQuery or a native promise\",\r\n E0110: \"Unknown validation group is detected\",\r\n E0120: \"Adapter for a DevExpressValidator component cannot be configured\",\r\n E0121: \"The 'customItem' parameter of the 'onCustomItemCreating' function is empty or contains invalid data. Assign a custom object or a Promise that is resolved after the item is created.\",\r\n W0000: \"'{0}' is deprecated in {1}. {2}\",\r\n W0001: \"{0} - '{1}' option is deprecated in {2}. {3}\",\r\n W0002: \"{0} - '{1}' method is deprecated in {2}. {3}\",\r\n W0003: \"{0} - '{1}' property is deprecated in {2}. {3}\",\r\n W0004: \"Timeout for theme loading is over: {0}\",\r\n W0005: \"'{0}' event is deprecated in {1}. {2}\",\r\n W0006: \"Invalid recurrence rule: '{0}'\",\r\n W0007: \"'{0}' Globalize culture is not defined\",\r\n W0008: \"Invalid view name: '{0}'\",\r\n W0009: \"Invalid time zone name: '{0}'\",\r\n W0010: \"{0} is deprecated in {1}. {2}\",\r\n W0011: \"Number parsing is invoked while the parser is not defined\",\r\n W0012: \"Date parsing is invoked while the parser is not defined\",\r\n W0013: \"'{0}' file is deprecated in {1}. {2}\",\r\n W0014: \"{0} - '{1}' type is deprecated in {2}. {3}\",\r\n W0015: \"Instead of returning a value from the '{0}' function, write it into the '{1}' field of the function's parameter.\",\r\n W0016: 'The \"{0}\" option does not accept the \"{1}\" value since v{2}. {3}.',\r\n W0017: 'Setting the \"{0}\" property with a function is deprecated since v21.2',\r\n W0018: 'Setting the \"position\" property with a function is deprecated since v21.2'\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scrollbar.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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/core/utils/console.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 \"./type\";\r\nvar noop = function() {};\r\nvar getConsoleMethod = function(method) {\r\n if (\"undefined\" === typeof console || !isFunction(console[method])) {\r\n return noop\r\n }\r\n return console[method].bind(console)\r\n};\r\nexport var logger = {\r\n info: getConsoleMethod(\"info\"),\r\n warn: getConsoleMethod(\"warn\"),\r\n error: getConsoleMethod(\"error\")\r\n};\r\nexport var debug = function() {\r\n function assert(condition, message) {\r\n if (!condition) {\r\n throw new Error(message)\r\n }\r\n }\r\n return {\r\n assert: assert,\r\n assertParam: function(parameter, message) {\r\n assert(null !== parameter && void 0 !== parameter, message)\r\n }\r\n }\r\n}();\r\n","/**\r\n * DevExtreme (esm/events/core/emitter.feedback.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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.6\n * Build date: Tue Oct 18 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.6\n * Build date: Tue Oct 18 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.6\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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","/*!\n * devextreme-vue\n * Version: 22.1.6\n * Build date: Tue Oct 18 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","/**\r\n * DevExtreme (esm/core/utils/iterator.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 map = (values, callback) => {\r\n if (Array.isArray(values)) {\r\n return values.map(callback)\r\n }\r\n var result = [];\r\n for (var key in values) {\r\n result.push(callback(values[key], key))\r\n }\r\n return result\r\n};\r\nvar each = (values, callback) => {\r\n if (!values) {\r\n return\r\n }\r\n if (\"length\" in values) {\r\n for (var i = 0; i < values.length; i++) {\r\n if (false === callback.call(values[i], i, values[i])) {\r\n break\r\n }\r\n }\r\n } else {\r\n for (var key in values) {\r\n if (false === callback.call(values[key], key, values[key])) {\r\n break\r\n }\r\n }\r\n }\r\n return values\r\n};\r\nvar reverseEach = (array, callback) => {\r\n if (!array || !(\"length\" in array) || 0 === array.length) {\r\n return\r\n }\r\n for (var i = array.length - 1; i >= 0; i--) {\r\n if (false === callback.call(array[i], i, array[i])) {\r\n break\r\n }\r\n }\r\n};\r\nexport {\r\n map,\r\n each,\r\n reverseEach\r\n};\r\n","/*!\n * devextreme-vue\n * Version: 22.1.6\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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/core/utils/data.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 Class from \"../class\";\r\nimport {\r\n deepExtendArraySafe\r\n} from \"./object\";\r\nimport {\r\n isObject,\r\n isPlainObject,\r\n isFunction,\r\n isDefined\r\n} from \"./type\";\r\nimport {\r\n each\r\n} from \"./iterator\";\r\nimport variableWrapper from \"./variable_wrapper\";\r\nvar unwrapVariable = variableWrapper.unwrap;\r\nvar isWrapped = variableWrapper.isWrapped;\r\nvar assign = variableWrapper.assign;\r\nvar bracketsToDots = function(expr) {\r\n return expr.replace(/\\[/g, \".\").replace(/\\]/g, \"\")\r\n};\r\nexport var getPathParts = function(name) {\r\n return bracketsToDots(name).split(\".\")\r\n};\r\nvar readPropValue = function(obj, propName, options) {\r\n options = options || {};\r\n if (\"this\" === propName) {\r\n return unwrap(obj, options)\r\n }\r\n return unwrap(obj[propName], options)\r\n};\r\nvar assignPropValue = function(obj, propName, value, options) {\r\n if (\"this\" === propName) {\r\n throw new errors.Error(\"E4016\")\r\n }\r\n var propValue = obj[propName];\r\n if (options.unwrapObservables && isWrapped(propValue)) {\r\n assign(propValue, value)\r\n } else {\r\n obj[propName] = value\r\n }\r\n};\r\nvar prepareOptions = function(options) {\r\n options = options || {};\r\n options.unwrapObservables = void 0 !== options.unwrapObservables ? options.unwrapObservables : true;\r\n return options\r\n};\r\n\r\nfunction unwrap(value, options) {\r\n return options.unwrapObservables ? unwrapVariable(value) : value\r\n}\r\nexport var compileGetter = function(expr) {\r\n if (arguments.length > 1) {\r\n expr = [].slice.call(arguments)\r\n }\r\n if (!expr || \"this\" === expr) {\r\n return function(obj) {\r\n return obj\r\n }\r\n }\r\n if (\"string\" === typeof expr) {\r\n var path = getPathParts(expr);\r\n return function(obj, options) {\r\n options = prepareOptions(options);\r\n var functionAsIs = options.functionsAsIs;\r\n var hasDefaultValue = \"defaultValue\" in options;\r\n var current = unwrap(obj, options);\r\n for (var i = 0; i < path.length; i++) {\r\n if (!current) {\r\n if (null == current && hasDefaultValue) {\r\n return options.defaultValue\r\n }\r\n break\r\n }\r\n var pathPart = path[i];\r\n if (hasDefaultValue && isObject(current) && !(pathPart in current)) {\r\n return options.defaultValue\r\n }\r\n var next = unwrap(current[pathPart], options);\r\n if (!functionAsIs && isFunction(next)) {\r\n next = next.call(current)\r\n }\r\n current = next\r\n }\r\n return current\r\n }\r\n }\r\n if (Array.isArray(expr)) {\r\n return combineGetters(expr)\r\n }\r\n if (isFunction(expr)) {\r\n return expr\r\n }\r\n};\r\n\r\nfunction combineGetters(getters) {\r\n var compiledGetters = {};\r\n for (var i = 0, l = getters.length; i < l; i++) {\r\n var getter = getters[i];\r\n compiledGetters[getter] = compileGetter(getter)\r\n }\r\n return function(obj, options) {\r\n var result;\r\n each(compiledGetters, (function(name) {\r\n var value = this(obj, options);\r\n if (void 0 === value) {\r\n return\r\n }\r\n var current = result || (result = {});\r\n var path = name.split(\".\");\r\n var last = path.length - 1;\r\n for (var _i = 0; _i < last; _i++) {\r\n var pathItem = path[_i];\r\n if (!(pathItem in current)) {\r\n current[pathItem] = {}\r\n }\r\n current = current[pathItem]\r\n }\r\n current[path[last]] = value\r\n }));\r\n return result\r\n }\r\n}\r\nvar ensurePropValueDefined = function(obj, propName, value, options) {\r\n if (isDefined(value)) {\r\n return value\r\n }\r\n var newValue = {};\r\n assignPropValue(obj, propName, newValue, options);\r\n return newValue\r\n};\r\nexport var compileSetter = function(expr) {\r\n expr = getPathParts(expr || \"this\");\r\n var lastLevelIndex = expr.length - 1;\r\n return function(obj, value, options) {\r\n options = prepareOptions(options);\r\n var currentValue = unwrap(obj, options);\r\n expr.forEach((function(propertyName, levelIndex) {\r\n var propertyValue = readPropValue(currentValue, propertyName, options);\r\n var isPropertyFunc = !options.functionsAsIs && isFunction(propertyValue) && !isWrapped(propertyValue);\r\n if (levelIndex === lastLevelIndex) {\r\n if (options.merge && isPlainObject(value) && (!isDefined(propertyValue) || isPlainObject(propertyValue))) {\r\n propertyValue = ensurePropValueDefined(currentValue, propertyName, propertyValue, options);\r\n deepExtendArraySafe(propertyValue, value, false, true)\r\n } else if (isPropertyFunc) {\r\n currentValue[propertyName](value)\r\n } else {\r\n assignPropValue(currentValue, propertyName, value, options)\r\n }\r\n } else {\r\n propertyValue = ensurePropValueDefined(currentValue, propertyName, propertyValue, options);\r\n if (isPropertyFunc) {\r\n propertyValue = propertyValue.call(currentValue)\r\n }\r\n currentValue = propertyValue\r\n }\r\n }))\r\n }\r\n};\r\nexport var toComparable = function(value, caseSensitive) {\r\n if (value instanceof Date) {\r\n return value.getTime()\r\n }\r\n if (value && value instanceof Class && value.valueOf) {\r\n return value.valueOf()\r\n }\r\n if (!caseSensitive && \"string\" === typeof value) {\r\n return value.toLowerCase()\r\n }\r\n return value\r\n};\r\n","/**\r\n * DevExtreme (esm/events/core/event_registrator_callbacks.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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/core/utils/extend.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 isPlainObject\r\n} from \"./type\";\r\nexport var extendFromObject = function(target, source, overrideExistingValues) {\r\n target = target || {};\r\n for (var prop in source) {\r\n if (Object.prototype.hasOwnProperty.call(source, prop)) {\r\n var value = source[prop];\r\n if (!(prop in target) || overrideExistingValues) {\r\n target[prop] = value\r\n }\r\n }\r\n }\r\n return target\r\n};\r\nexport var extend = function extend(target) {\r\n target = target || {};\r\n var i = 1;\r\n var deep = false;\r\n if (\"boolean\" === typeof target) {\r\n deep = target;\r\n target = arguments[1] || {};\r\n i++\r\n }\r\n for (; i < arguments.length; i++) {\r\n var source = arguments[i];\r\n if (null == source) {\r\n continue\r\n }\r\n for (var key in source) {\r\n var targetValue = target[key];\r\n var sourceValue = source[key];\r\n var sourceValueIsArray = false;\r\n var clone = void 0;\r\n if (\"__proto__\" === key || \"constructor\" === key || target === sourceValue) {\r\n continue\r\n }\r\n if (deep && sourceValue && (isPlainObject(sourceValue) || (sourceValueIsArray = Array.isArray(sourceValue)))) {\r\n if (sourceValueIsArray) {\r\n clone = targetValue && Array.isArray(targetValue) ? targetValue : []\r\n } else {\r\n clone = targetValue && isPlainObject(targetValue) ? targetValue : {}\r\n }\r\n target[key] = extend(deep, clone, sourceValue)\r\n } else if (void 0 !== sourceValue) {\r\n target[key] = sourceValue\r\n }\r\n }\r\n }\r\n return target\r\n};\r\n","/**\r\n * DevExtreme (esm/events/visibility_change.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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/type.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 types = {\r\n \"[object Array]\": \"array\",\r\n \"[object Date]\": \"date\",\r\n \"[object Object]\": \"object\",\r\n \"[object String]\": \"string\",\r\n \"[object Null]\": \"null\"\r\n};\r\nvar type = function(object) {\r\n var typeOfObject = Object.prototype.toString.call(object);\r\n return \"object\" === typeof object ? types[typeOfObject] || \"object\" : typeof object\r\n};\r\nvar isBoolean = function(object) {\r\n return \"boolean\" === typeof object\r\n};\r\nvar isExponential = function(value) {\r\n return isNumeric(value) && -1 !== value.toString().indexOf(\"e\")\r\n};\r\nvar isDate = function(object) {\r\n return \"date\" === type(object)\r\n};\r\nvar isDefined = function(object) {\r\n return null !== object && void 0 !== object\r\n};\r\nvar isFunction = function(object) {\r\n return \"function\" === typeof object\r\n};\r\nvar isString = function(object) {\r\n return \"string\" === typeof object\r\n};\r\nvar isNumeric = function(object) {\r\n return \"number\" === typeof object && isFinite(object) || !isNaN(object - parseFloat(object))\r\n};\r\nvar isObject = function(object) {\r\n return \"object\" === type(object)\r\n};\r\nvar isEmptyObject = function(object) {\r\n var property;\r\n for (property in object) {\r\n return false\r\n }\r\n return true\r\n};\r\nvar isPlainObject = function(object) {\r\n if (!object || \"[object Object]\" !== Object.prototype.toString.call(object)) {\r\n return false\r\n }\r\n var proto = Object.getPrototypeOf(object);\r\n var ctor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\r\n return \"function\" === typeof ctor && Object.toString.call(ctor) === Object.toString.call(Object)\r\n};\r\nvar isPrimitive = function(value) {\r\n return -1 === [\"object\", \"array\", \"function\"].indexOf(type(value))\r\n};\r\nvar isWindow = function(object) {\r\n return null != object && object === object.window\r\n};\r\nvar isRenderer = function(object) {\r\n return !!object && !!(object.jquery || object.dxRenderer)\r\n};\r\nvar isPromise = function(object) {\r\n return !!object && isFunction(object.then)\r\n};\r\nvar isDeferred = function(object) {\r\n return !!object && isFunction(object.done) && isFunction(object.fail)\r\n};\r\nvar isEvent = function(object) {\r\n return !!(object && object.preventDefault)\r\n};\r\nexport {\r\n isBoolean,\r\n isExponential,\r\n isDate,\r\n isDefined,\r\n isFunction,\r\n isString,\r\n isNumeric,\r\n isObject,\r\n isEmptyObject,\r\n isPlainObject,\r\n isPrimitive,\r\n isWindow,\r\n isRenderer,\r\n isPromise,\r\n isDeferred,\r\n type,\r\n isEvent\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/public_component.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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/overlay/overlay_position_controller.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","/**\r\n * DevExtreme (esm/core/version.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 version = \"22.1.6\";\r\n","/**\r\n * DevExtreme (esm/events/core/wheel.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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","/**\r\n * DevExtreme (esm/core/events_strategy.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\n * Build date: Tue Oct 18 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/utils/deferred.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 isDeferred,\r\n isDefined,\r\n isPromise\r\n} from \"../utils/type\";\r\nimport {\r\n extend\r\n} from \"../utils/extend\";\r\nimport Callbacks from \"../utils/callbacks\";\r\nvar deferredConfig = [{\r\n method: \"resolve\",\r\n handler: \"done\",\r\n state: \"resolved\"\r\n}, {\r\n method: \"reject\",\r\n handler: \"fail\",\r\n state: \"rejected\"\r\n}, {\r\n method: \"notify\",\r\n handler: \"progress\"\r\n}];\r\nvar _DeferredObj = function() {\r\n var that = this;\r\n this._state = \"pending\";\r\n this._promise = {};\r\n deferredConfig.forEach(function(config) {\r\n var methodName = config.method;\r\n this[methodName + \"Callbacks\"] = new Callbacks;\r\n this[methodName] = function() {\r\n return this[methodName + \"With\"](this._promise, arguments)\r\n }.bind(this);\r\n this._promise[config.handler] = function(handler) {\r\n if (!handler) {\r\n return this\r\n }\r\n var callbacks = that[methodName + \"Callbacks\"];\r\n if (callbacks.fired()) {\r\n handler.apply(that[methodName + \"Context\"], that[methodName + \"Args\"])\r\n } else {\r\n callbacks.add(function(context, args) {\r\n handler.apply(context, args)\r\n }.bind(this))\r\n }\r\n return this\r\n }\r\n }.bind(this));\r\n this._promise.always = function(handler) {\r\n return this.done(handler).fail(handler)\r\n };\r\n this._promise.catch = function(handler) {\r\n return this.then(null, handler)\r\n };\r\n this._promise.then = function(resolve, reject) {\r\n var result = new _DeferredObj;\r\n [\"done\", \"fail\"].forEach(function(method) {\r\n var callback = \"done\" === method ? resolve : reject;\r\n this[method]((function() {\r\n if (!callback) {\r\n result[\"done\" === method ? \"resolve\" : \"reject\"].apply(this, arguments);\r\n return\r\n }\r\n var callbackResult = callback && callback.apply(this, arguments);\r\n if (isDeferred(callbackResult)) {\r\n callbackResult.done(result.resolve).fail(result.reject)\r\n } else if (isPromise(callbackResult)) {\r\n callbackResult.then(result.resolve, result.reject)\r\n } else {\r\n result.resolve.apply(this, isDefined(callbackResult) ? [callbackResult] : arguments)\r\n }\r\n }))\r\n }.bind(this));\r\n return result.promise()\r\n };\r\n this._promise.state = function() {\r\n return that._state\r\n };\r\n this._promise.promise = function(args) {\r\n return args ? extend(args, that._promise) : that._promise\r\n };\r\n this._promise.promise(this)\r\n};\r\ndeferredConfig.forEach((function(config) {\r\n var methodName = config.method;\r\n var state = config.state;\r\n _DeferredObj.prototype[methodName + \"With\"] = function(context, args) {\r\n var callbacks = this[methodName + \"Callbacks\"];\r\n if (\"pending\" === this.state()) {\r\n this[methodName + \"Args\"] = args;\r\n this[methodName + \"Context\"] = context;\r\n if (state) {\r\n this._state = state\r\n }\r\n callbacks.fire(context, args)\r\n }\r\n return this\r\n }\r\n}));\r\nexport function fromPromise(promise, context) {\r\n if (isDeferred(promise)) {\r\n return promise\r\n } else if (isPromise(promise)) {\r\n var d = new _DeferredObj;\r\n promise.then((function() {\r\n d.resolveWith.apply(d, [context].concat([\r\n [].slice.call(arguments)\r\n ]))\r\n }), (function() {\r\n d.rejectWith.apply(d, [context].concat([\r\n [].slice.call(arguments)\r\n ]))\r\n }));\r\n return d\r\n }\r\n return (new _DeferredObj).resolveWith(context, [promise])\r\n}\r\nvar whenFunc = function() {\r\n if (1 === arguments.length) {\r\n return fromPromise(arguments[0])\r\n }\r\n var values = [].slice.call(arguments);\r\n var contexts = [];\r\n var resolvedCount = 0;\r\n var deferred = new _DeferredObj;\r\n var updateState = function(i) {\r\n return function(value) {\r\n contexts[i] = this;\r\n values[i] = arguments.length > 1 ? [].slice.call(arguments) : value;\r\n resolvedCount++;\r\n if (resolvedCount === values.length) {\r\n deferred.resolveWith(contexts, values)\r\n }\r\n }\r\n };\r\n for (var i = 0; i < values.length; i++) {\r\n if (isDeferred(values[i])) {\r\n values[i].promise().done(updateState(i)).fail(deferred.reject)\r\n } else {\r\n resolvedCount++\r\n }\r\n }\r\n if (resolvedCount === values.length) {\r\n deferred.resolveWith(contexts, values)\r\n }\r\n return deferred.promise()\r\n};\r\nexport function setStrategy(value) {\r\n _DeferredObj = value.Deferred;\r\n whenFunc = value.when\r\n}\r\nexport function Deferred() {\r\n return new _DeferredObj\r\n}\r\nexport function when() {\r\n return whenFunc.apply(this, arguments)\r\n}\r\n","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.indexOf(n) >= 0) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","/**\r\n * DevExtreme (esm/core/options/utils.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\n * Build date: Tue Oct 18 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.6\n * Build date: Tue Oct 18 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/core/utils/error.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 logger\r\n} from \"./console\";\r\nimport {\r\n format\r\n} from \"./string\";\r\nimport {\r\n version\r\n} from \"../version\";\r\nvar ERROR_URL = \"http://js.devexpress.com/error/\" + version.split(\".\").slice(0, 2).join(\"_\") + \"/\";\r\nexport default function(baseErrors, errors) {\r\n var exports = {\r\n ERROR_MESSAGES: extend(errors, baseErrors),\r\n Error: function() {\r\n return makeError([].slice.call(arguments))\r\n },\r\n log: function(id) {\r\n var method = \"log\";\r\n if (/^E\\d+$/.test(id)) {\r\n method = \"error\"\r\n } else if (/^W\\d+$/.test(id)) {\r\n method = \"warn\"\r\n }\r\n logger[method](\"log\" === method ? id : combineMessage([].slice.call(arguments)))\r\n }\r\n };\r\n\r\n function combineMessage(args) {\r\n var id = args[0];\r\n args = args.slice(1);\r\n return formatMessage(id, formatDetails(id, args))\r\n }\r\n\r\n function formatDetails(id, args) {\r\n args = [exports.ERROR_MESSAGES[id]].concat(args);\r\n return format.apply(this, args).replace(/\\.*\\s*?$/, \"\")\r\n }\r\n\r\n function formatMessage(id, details) {\r\n return format.apply(this, [\"{0} - {1}. See:\\n{2}\", id, details, getErrorUrl(id)])\r\n }\r\n\r\n function makeError(args) {\r\n var id = args[0];\r\n args = args.slice(1);\r\n var details = formatDetails(id, args);\r\n var url = getErrorUrl(id);\r\n var message = formatMessage(id, details);\r\n return extend(new Error(message), {\r\n __id: id,\r\n __details: details,\r\n url: url\r\n })\r\n }\r\n\r\n function getErrorUrl(id) {\r\n return ERROR_URL + id\r\n }\r\n return exports\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scrollable.device.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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/ui/tree_view/ui.tree_view.base.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n asyncNoop,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n isDefined,\r\n isPrimitive,\r\n isFunction,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport CheckBox from \"../check_box\";\r\nimport HierarchicalCollectionWidget from \"../hierarchical_collection/ui.hierarchical_collection_widget\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n name as dblclickEvent\r\n} from \"../../events/double_click\";\r\nimport fx from \"../../animation/fx\";\r\nimport Scrollable from \"../scroll_view/ui.scrollable\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n fromPromise,\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n nativeScrolling\r\n} from \"../../core/utils/support\";\r\nimport {\r\n getRelativeOffset\r\n} from \"../../renovation/ui/scroll_view/utils/get_relative_offset\";\r\nimport {\r\n SCROLLABLE_CONTENT_CLASS,\r\n DIRECTION_HORIZONTAL,\r\n DIRECTION_VERTICAL\r\n} from \"../../renovation/ui/scroll_view/common/consts\";\r\nvar WIDGET_CLASS = \"dx-treeview\";\r\nvar NODE_CLASS = \"\".concat(WIDGET_CLASS, \"-node\");\r\nvar NODE_CONTAINER_CLASS = \"\".concat(NODE_CLASS, \"-container\");\r\nvar NODE_LOAD_INDICATOR_CLASS = \"\".concat(NODE_CLASS, \"-loadindicator\");\r\nvar OPENED_NODE_CONTAINER_CLASS = \"\".concat(NODE_CLASS, \"-container-opened\");\r\nvar IS_LEAF = \"\".concat(NODE_CLASS, \"-is-leaf\");\r\nvar ITEM_CLASS = \"\".concat(WIDGET_CLASS, \"-item\");\r\nvar ITEM_WITH_CHECKBOX_CLASS = \"\".concat(ITEM_CLASS, \"-with-checkbox\");\r\nvar ITEM_WITHOUT_CHECKBOX_CLASS = \"\".concat(ITEM_CLASS, \"-without-checkbox\");\r\nvar ITEM_DATA_KEY = \"\".concat(ITEM_CLASS, \"-data\");\r\nvar TOGGLE_ITEM_VISIBILITY_CLASS = \"\".concat(WIDGET_CLASS, \"-toggle-item-visibility\");\r\nvar LOAD_INDICATOR_CLASS = \"\".concat(WIDGET_CLASS, \"-loadindicator\");\r\nvar LOAD_INDICATOR_WRAPPER_CLASS = \"\".concat(WIDGET_CLASS, \"-loadindicator-wrapper\");\r\nvar TOGGLE_ITEM_VISIBILITY_OPENED_CLASS = \"\".concat(WIDGET_CLASS, \"-toggle-item-visibility-opened\");\r\nvar SELECT_ALL_ITEM_CLASS = \"\".concat(WIDGET_CLASS, \"-select-all-item\");\r\nvar INVISIBLE_STATE_CLASS = \"dx-state-invisible\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar SELECTED_ITEM_CLASS = \"dx-state-selected\";\r\nvar EXPAND_EVENT_NAMESPACE = \"dxTreeView_expand\";\r\nvar DATA_ITEM_ID = \"data-item-id\";\r\nvar TreeViewBase = HierarchicalCollectionWidget.inherit({\r\n _supportedKeys: function(e) {\r\n var click = e => {\r\n var $itemElement = $(this.option(\"focusedElement\"));\r\n if (!$itemElement.length) {\r\n return\r\n }\r\n e.target = $itemElement;\r\n e.currentTarget = $itemElement;\r\n this._itemClickHandler(e, $itemElement.children(\".\" + ITEM_CLASS));\r\n var expandEventName = this._getEventNameByOption(this.option(\"expandEvent\"));\r\n var expandByClick = expandEventName === addNamespace(clickEventName, EXPAND_EVENT_NAMESPACE);\r\n if (expandByClick) {\r\n this._expandEventHandler(e)\r\n }\r\n };\r\n var select = e => {\r\n e.preventDefault();\r\n var $focusedElement = $(this.option(\"focusedElement\"));\r\n var checkboxInstance = this._getCheckBoxInstance($focusedElement);\r\n if (!checkboxInstance.option(\"disabled\")) {\r\n var currentState = checkboxInstance.option(\"value\");\r\n this._updateItemSelection(!currentState, $focusedElement.find(\".\" + ITEM_CLASS).get(0), true)\r\n }\r\n };\r\n var toggleExpandedNestedItems = function(state, e) {\r\n if (!this.option(\"expandAllEnabled\")) {\r\n return\r\n }\r\n e.preventDefault();\r\n var $rootElement = $(this.option(\"focusedElement\"));\r\n if (!$rootElement.length) {\r\n return\r\n }\r\n var rootItem = this._getItemData($rootElement.find(\".\".concat(ITEM_CLASS)));\r\n this._toggleExpandedNestedItems([rootItem], state)\r\n };\r\n return extend(this.callBase(), {\r\n enter: this._showCheckboxes() ? select : click,\r\n space: this._showCheckboxes() ? select : click,\r\n asterisk: toggleExpandedNestedItems.bind(this, true),\r\n minus: toggleExpandedNestedItems.bind(this, false)\r\n })\r\n },\r\n _toggleExpandedNestedItems: function(items, state) {\r\n if (!items) {\r\n return\r\n }\r\n for (var i = 0, len = items.length; i < len; i++) {\r\n var item = items[i];\r\n var node = this._dataAdapter.getNodeByItem(item);\r\n this._toggleExpandedState(node, state);\r\n this._toggleExpandedNestedItems(item.items, state)\r\n }\r\n },\r\n _getNodeElement: function(node, cache) {\r\n var key = this._encodeString(node.internalFields.key);\r\n if (cache) {\r\n if (!cache.$nodeByKey) {\r\n cache.$nodeByKey = {};\r\n this.$element().find(\".\".concat(NODE_CLASS)).each((function() {\r\n var $node = $(this);\r\n var key = $node.attr(DATA_ITEM_ID);\r\n cache.$nodeByKey[key] = $node\r\n }))\r\n }\r\n return cache.$nodeByKey[key] || $()\r\n }\r\n var element = this.$element().get(0).querySelector(\"[\".concat(DATA_ITEM_ID, '=\"').concat(key, '\"]'));\r\n return $(element)\r\n },\r\n _activeStateUnit: \".\" + ITEM_CLASS,\r\n _widgetClass: function() {\r\n return WIDGET_CLASS\r\n },\r\n _getDefaultOptions: function() {\r\n var defaultOptions = extend(this.callBase(), {\r\n animationEnabled: true,\r\n dataStructure: \"tree\",\r\n deferRendering: true,\r\n expandAllEnabled: false,\r\n hasItemsExpr: \"hasItems\",\r\n selectNodesRecursive: true,\r\n expandNodesRecursive: true,\r\n showCheckBoxesMode: \"none\",\r\n selectAllText: messageLocalization.format(\"dxList-selectAll\"),\r\n onItemSelectionChanged: null,\r\n onItemExpanded: null,\r\n onItemCollapsed: null,\r\n scrollDirection: \"vertical\",\r\n useNativeScrolling: true,\r\n virtualModeEnabled: false,\r\n rootValue: 0,\r\n focusStateEnabled: false,\r\n selectionMode: \"multiple\",\r\n expandEvent: \"dblclick\",\r\n selectByClick: false,\r\n createChildren: null,\r\n onSelectAllValueChanged: null\r\n });\r\n return extend(true, defaultOptions, {\r\n integrationOptions: {\r\n useDeferUpdateForTemplates: false\r\n }\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return !nativeScrolling\r\n },\r\n options: {\r\n useNativeScrolling: false\r\n }\r\n }])\r\n },\r\n _initSelectedItems: noop,\r\n _syncSelectionOptions: asyncNoop,\r\n _fireSelectionChanged: function() {\r\n var selectionChangePromise = this._selectionChangePromise;\r\n when(selectionChangePromise).done(function() {\r\n this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })()\r\n }.bind(this))\r\n },\r\n _createSelectAllValueChangedAction: function() {\r\n this._selectAllValueChangedAction = this._createActionByOption(\"onSelectAllValueChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _fireSelectAllValueChanged: function(value) {\r\n this._selectAllValueChangedAction({\r\n value: value\r\n })\r\n },\r\n _checkBoxModeChange: function(value, previousValue) {\r\n if (\"none\" === previousValue || \"none\" === value) {\r\n this.repaint();\r\n return\r\n }\r\n var selectAllExists = this._$selectAllItem && this._$selectAllItem.length;\r\n switch (value) {\r\n case \"selectAll\":\r\n if (!selectAllExists) {\r\n this._createSelectAllValueChangedAction();\r\n this._renderSelectAllItem()\r\n }\r\n break;\r\n case \"normal\":\r\n if (selectAllExists) {\r\n this._$selectAllItem.remove();\r\n delete this._$selectAllItem\r\n }\r\n }\r\n },\r\n _removeSelection: function() {\r\n var that = this;\r\n each(this._dataAdapter.getFullData(), (function(_, node) {\r\n if (!that._hasChildren(node)) {\r\n return\r\n }\r\n that._dataAdapter.toggleSelection(node.internalFields.key, false, true)\r\n }))\r\n },\r\n _optionChanged: function(args) {\r\n var {\r\n name: name,\r\n value: value,\r\n previousValue: previousValue\r\n } = args;\r\n switch (name) {\r\n case \"selectAllText\":\r\n if (this._$selectAllItem) {\r\n this._$selectAllItem.dxCheckBox(\"instance\").option(\"text\", value)\r\n }\r\n break;\r\n case \"showCheckBoxesMode\":\r\n this._checkBoxModeChange(value, previousValue);\r\n break;\r\n case \"scrollDirection\":\r\n this.getScrollable().option(\"direction\", value);\r\n break;\r\n case \"useNativeScrolling\":\r\n this.getScrollable().option(\"useNative\", value);\r\n break;\r\n case \"items\":\r\n delete this._$selectAllItem;\r\n this.callBase(args);\r\n break;\r\n case \"dataSource\":\r\n this.callBase(args);\r\n this._initDataAdapter();\r\n this._filter = {};\r\n break;\r\n case \"hasItemsExpr\":\r\n this._initAccessors();\r\n this.repaint();\r\n break;\r\n case \"expandEvent\":\r\n this._initExpandEvent();\r\n break;\r\n case \"deferRendering\":\r\n case \"dataStructure\":\r\n case \"rootValue\":\r\n case \"createChildren\":\r\n case \"expandNodesRecursive\":\r\n case \"onItemSelectionChanged\":\r\n case \"onItemExpanded\":\r\n case \"onItemCollapsed\":\r\n case \"expandAllEnabled\":\r\n case \"animationEnabled\":\r\n case \"virtualModeEnabled\":\r\n case \"selectByClick\":\r\n break;\r\n case \"selectionMode\":\r\n this._initDataAdapter();\r\n this.callBase(args);\r\n break;\r\n case \"onSelectAllValueChanged\":\r\n this._createSelectAllValueChangedAction();\r\n break;\r\n case \"selectNodesRecursive\":\r\n this._dataAdapter.setOption(\"recursiveSelection\", args.value);\r\n this.repaint();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _initDataSource: function() {\r\n if (this._useCustomChildrenLoader()) {\r\n this._loadChildrenByCustomLoader(null).done(function(newItems) {\r\n if (newItems && newItems.length) {\r\n this.option(\"items\", newItems)\r\n }\r\n }.bind(this))\r\n } else {\r\n this.callBase();\r\n this._isVirtualMode() && this._initVirtualMode()\r\n }\r\n },\r\n _initVirtualMode: function() {\r\n var filter = this._filter;\r\n if (!filter.custom) {\r\n filter.custom = this._dataSource.filter()\r\n }\r\n if (!filter.internal) {\r\n filter.internal = [this.option(\"parentIdExpr\"), this.option(\"rootValue\")]\r\n }\r\n },\r\n _useCustomChildrenLoader: function() {\r\n return isFunction(this.option(\"createChildren\")) && this._isDataStructurePlain()\r\n },\r\n _loadChildrenByCustomLoader: function(parentNode) {\r\n var invocationResult = this.option(\"createChildren\").call(this, parentNode);\r\n if (Array.isArray(invocationResult)) {\r\n return (new Deferred).resolve(invocationResult).promise()\r\n }\r\n if (invocationResult && isFunction(invocationResult.then)) {\r\n return fromPromise(invocationResult)\r\n }\r\n return (new Deferred).resolve([]).promise()\r\n },\r\n _combineFilter: function() {\r\n if (!this._filter.custom || !this._filter.custom.length) {\r\n return this._filter.internal\r\n }\r\n return [this._filter.custom, this._filter.internal]\r\n },\r\n _dataSourceLoadErrorHandler: function() {\r\n this._renderEmptyMessage()\r\n },\r\n _init: function() {\r\n this._filter = {};\r\n this.callBase();\r\n this._initStoreChangeHandlers()\r\n },\r\n _dataSourceChangedHandler: function(newItems) {\r\n var items = this.option(\"items\");\r\n if (this._initialized && this._isVirtualMode() && items.length) {\r\n return\r\n }\r\n this.option(\"items\", newItems)\r\n },\r\n _removeTreeViewLoadIndicator: function() {\r\n if (!this._treeViewLoadIndicator) {\r\n return\r\n }\r\n this._treeViewLoadIndicator.remove();\r\n this._treeViewLoadIndicator = null\r\n },\r\n _createTreeViewLoadIndicator: function() {\r\n this._treeViewLoadIndicator = $(\"
\").addClass(LOAD_INDICATOR_CLASS);\r\n this._createComponent(this._treeViewLoadIndicator, LoadIndicator, {});\r\n return this._treeViewLoadIndicator\r\n },\r\n _dataSourceLoadingChangedHandler: function(isLoading) {\r\n var resultFilter;\r\n if (this._isVirtualMode()) {\r\n resultFilter = this._combineFilter();\r\n this._dataSource.filter(resultFilter)\r\n }\r\n if (isLoading && !this._dataSource.isLoaded()) {\r\n this.option(\"items\", []);\r\n var $wrapper = $(\"
\").addClass(LOAD_INDICATOR_WRAPPER_CLASS);\r\n this._createTreeViewLoadIndicator().appendTo($wrapper);\r\n this.itemsContainer().append($wrapper);\r\n if (this._isVirtualMode() && this._dataSource.filter() !== resultFilter) {\r\n this._dataSource.filter([])\r\n }\r\n } else {\r\n this._removeTreeViewLoadIndicator()\r\n }\r\n },\r\n _initStoreChangeHandlers: function() {\r\n if (\"plain\" !== this.option(\"dataStructure\")) {\r\n return\r\n }\r\n this._dataSource && this._dataSource.store().on(\"inserted\", newItem => {\r\n this.option().items = this.option(\"items\").concat(newItem);\r\n this._dataAdapter.addItem(newItem);\r\n if (!this._dataAdapter.isFiltered(newItem)) {\r\n return\r\n }\r\n this._updateLevel(this._parentIdGetter(newItem))\r\n }).on(\"removed\", removedKey => {\r\n var node = this._dataAdapter.getNodeByKey(removedKey);\r\n if (isDefined(node)) {\r\n this.option(\"items\")[this._dataAdapter.getIndexByKey(node.internalFields.key)] = 0;\r\n this._markChildrenItemsToRemove(node);\r\n this._removeItems();\r\n this._dataAdapter.removeItem(removedKey);\r\n this._updateLevel(this._parentIdGetter(node))\r\n }\r\n })\r\n },\r\n _markChildrenItemsToRemove: function(node) {\r\n var keys = node.internalFields.childrenKeys;\r\n each(keys, (_, key) => {\r\n this.option(\"items\")[this._dataAdapter.getIndexByKey(key)] = 0;\r\n this._markChildrenItemsToRemove(this._dataAdapter.getNodeByKey(key))\r\n })\r\n },\r\n _removeItems: function() {\r\n var items = extend(true, [], this.option(\"items\"));\r\n var counter = 0;\r\n each(items, (index, item) => {\r\n if (!item) {\r\n this.option(\"items\").splice(index - counter, 1);\r\n counter++\r\n }\r\n })\r\n },\r\n _updateLevel: function(parentId) {\r\n var $container = this._getContainerByParentKey(parentId);\r\n this._renderItems($container, this._dataAdapter.getChildrenNodes(parentId))\r\n },\r\n _getOldContainer: function($itemElement) {\r\n if ($itemElement.length) {\r\n return $itemElement.children(\".\".concat(NODE_CONTAINER_CLASS))\r\n }\r\n var scrollable = this.getScrollable();\r\n if (scrollable) {\r\n return $(scrollable.content()).children()\r\n }\r\n return $()\r\n },\r\n _getContainerByParentKey: function(parentId) {\r\n var node = this._dataAdapter.getNodeByKey(parentId);\r\n var $itemElement = node ? this._getNodeElement(node) : [];\r\n this._getOldContainer($itemElement).remove();\r\n var $container = this._renderNodeContainer($itemElement);\r\n if (this._isRootLevel(parentId)) {\r\n var scrollable = this.getScrollable();\r\n if (!scrollable) {\r\n this._renderScrollableContainer()\r\n }\r\n $(scrollable.content()).append($container)\r\n }\r\n return $container\r\n },\r\n _isRootLevel: function(parentId) {\r\n return parentId === this.option(\"rootValue\")\r\n },\r\n _getAccessors: function() {\r\n var accessors = this.callBase();\r\n accessors.push(\"hasItems\");\r\n return accessors\r\n },\r\n _getDataAdapterOptions: function() {\r\n return {\r\n rootValue: this.option(\"rootValue\"),\r\n multipleSelection: !this._isSingleSelection(),\r\n recursiveSelection: this._isRecursiveSelection(),\r\n recursiveExpansion: this.option(\"expandNodesRecursive\"),\r\n selectionRequired: this.option(\"selectionRequired\"),\r\n dataType: this.option(\"dataStructure\"),\r\n sort: this._dataSource && this._dataSource.sort()\r\n }\r\n },\r\n _initMarkup: function() {\r\n this._renderScrollableContainer();\r\n this._renderEmptyMessage(this._dataAdapter.getRootNodes());\r\n this.callBase();\r\n this.setAria(\"role\", \"tree\")\r\n },\r\n _renderContentImpl: function() {\r\n var $nodeContainer = this._renderNodeContainer();\r\n $(this.getScrollable().content()).append($nodeContainer);\r\n if (!this.option(\"items\") || !this.option(\"items\").length) {\r\n return\r\n }\r\n this._renderItems($nodeContainer, this._dataAdapter.getRootNodes());\r\n this._initExpandEvent();\r\n if (this._selectAllEnabled()) {\r\n this._createSelectAllValueChangedAction();\r\n this._renderSelectAllItem($nodeContainer)\r\n }\r\n },\r\n _isVirtualMode: function() {\r\n return this.option(\"virtualModeEnabled\") && this._isDataStructurePlain() && !!this.option(\"dataSource\")\r\n },\r\n _isDataStructurePlain: function() {\r\n return \"plain\" === this.option(\"dataStructure\")\r\n },\r\n _fireContentReadyAction: function() {\r\n var dataSource = this.getDataSource();\r\n var skipContentReadyAction = dataSource && !dataSource.isLoaded();\r\n var scrollable = this.getScrollable();\r\n if (scrollable && hasWindow()) {\r\n scrollable.update()\r\n }\r\n if (!skipContentReadyAction) {\r\n this.callBase()\r\n }\r\n if (scrollable && hasWindow()) {\r\n scrollable.update()\r\n }\r\n },\r\n _renderScrollableContainer: function() {\r\n this._scrollable = this._createComponent($(\"
\").appendTo(this.$element()), Scrollable, {\r\n useNative: this.option(\"useNativeScrolling\"),\r\n direction: this.option(\"scrollDirection\"),\r\n useKeyboard: false\r\n })\r\n },\r\n _renderNodeContainer: function($parent) {\r\n var $container = $(\"
    \").addClass(NODE_CONTAINER_CLASS);\r\n this.setAria(\"role\", \"group\", $container);\r\n if ($parent && $parent.length) {\r\n var itemData = this._getItemData($parent.children(\".\" + ITEM_CLASS));\r\n if (this._expandedGetter(itemData)) {\r\n $container.addClass(OPENED_NODE_CONTAINER_CLASS)\r\n }\r\n $container.appendTo($parent)\r\n }\r\n return $container\r\n },\r\n _createDOMElement: function($nodeContainer, node) {\r\n var $node = $(\"
  • \").addClass(NODE_CLASS).attr(DATA_ITEM_ID, this._encodeString(node.internalFields.key)).prependTo($nodeContainer);\r\n this.setAria({\r\n role: \"treeitem\",\r\n label: this._displayGetter(node.internalFields.item) || \"\",\r\n expanded: node.internalFields.expanded || false,\r\n level: this._getLevel($nodeContainer)\r\n }, $node);\r\n return $node\r\n },\r\n _getLevel: function($nodeContainer) {\r\n var parent = $nodeContainer.parent();\r\n return parent.hasClass(\"dx-scrollable-content\") ? 1 : parseInt(parent.attr(\"aria-level\")) + 1\r\n },\r\n _showCheckboxes: function() {\r\n return \"none\" !== this.option(\"showCheckBoxesMode\")\r\n },\r\n _selectAllEnabled: function() {\r\n return \"selectAll\" === this.option(\"showCheckBoxesMode\") && !this._isSingleSelection()\r\n },\r\n _renderItems: function($nodeContainer, nodes) {\r\n var length = nodes.length - 1;\r\n for (var i = length; i >= 0; i--) {\r\n this._renderItem(i, nodes[i], $nodeContainer)\r\n }\r\n this._renderedItemsCount += nodes.length\r\n },\r\n _renderItem: function(nodeIndex, node, $nodeContainer) {\r\n var $node = this._createDOMElement($nodeContainer, node);\r\n var nodeData = node.internalFields;\r\n var showCheckBox = this._showCheckboxes();\r\n $node.addClass(showCheckBox ? ITEM_WITH_CHECKBOX_CLASS : ITEM_WITHOUT_CHECKBOX_CLASS);\r\n $node.toggleClass(INVISIBLE_STATE_CLASS, false === nodeData.item.visible);\r\n showCheckBox && this._renderCheckBox($node, node);\r\n this.setAria(\"selected\", nodeData.selected, $node);\r\n this._toggleSelectedClass($node, nodeData.selected);\r\n this.callBase(this._renderedItemsCount + nodeIndex, nodeData.item, $node);\r\n if (false !== nodeData.item.visible) {\r\n this._renderChildren($node, node)\r\n }\r\n },\r\n _setAriaSelected: function() {},\r\n _renderChildren: function($node, node) {\r\n if (!this._hasChildren(node)) {\r\n this._addLeafClass($node);\r\n return\r\n }\r\n this._renderToggleItemVisibilityIcon($node, node);\r\n if (this.option(\"deferRendering\") && !node.internalFields.expanded) {\r\n return\r\n }\r\n this._loadSublevel(node).done(childNodes => {\r\n this._renderSublevel($node, this._getActualNode(node), childNodes)\r\n })\r\n },\r\n _getActualNode: function(cachedNode) {\r\n return this._dataAdapter.getNodeByKey(cachedNode.internalFields.key)\r\n },\r\n _hasChildren: function(node) {\r\n if (this._isVirtualMode() || this._useCustomChildrenLoader()) {\r\n return false !== this._hasItemsGetter(node.internalFields.item)\r\n }\r\n return this.callBase(node)\r\n },\r\n _loadSublevel: function(node) {\r\n var deferred = new Deferred;\r\n var childrenNodes = this._getChildNodes(node);\r\n if (childrenNodes.length) {\r\n deferred.resolve(childrenNodes)\r\n } else {\r\n this._loadNestedItems(node).done(items => {\r\n deferred.resolve(this._dataAdapter.getNodesByItems(items))\r\n })\r\n }\r\n return deferred.promise()\r\n },\r\n _renderSublevel: function($node, node, childNodes) {\r\n var $nestedNodeContainer = this._renderNodeContainer($node, node);\r\n var childNodesByChildrenKeys = childNodes.filter(childNode => -1 !== node.internalFields.childrenKeys.indexOf(childNode.internalFields.key));\r\n this._renderItems($nestedNodeContainer, childNodesByChildrenKeys);\r\n if (childNodesByChildrenKeys.length && !node.internalFields.selected) {\r\n var firstChild = childNodesByChildrenKeys[0];\r\n this._updateParentsState(firstChild, this._getNodeElement(firstChild))\r\n }\r\n this._normalizeIconState($node, childNodesByChildrenKeys.length);\r\n if (node.internalFields.expanded) {\r\n $nestedNodeContainer.addClass(OPENED_NODE_CONTAINER_CLASS)\r\n }\r\n },\r\n _executeItemRenderAction: function(itemIndex, itemData, itemElement) {\r\n var node = this._getNode(itemElement);\r\n this._getItemRenderAction()({\r\n itemElement: itemElement,\r\n itemIndex: itemIndex,\r\n itemData: itemData,\r\n node: this._dataAdapter.getPublicNode(node)\r\n })\r\n },\r\n _addLeafClass: function($node) {\r\n $node.addClass(IS_LEAF)\r\n },\r\n _expandEventHandler: function(e) {\r\n var $nodeElement = $(e.currentTarget.parentNode);\r\n if (!$nodeElement.hasClass(IS_LEAF)) {\r\n this._toggleExpandedState(e.currentTarget, void 0, e)\r\n }\r\n },\r\n _initExpandEvent: function() {\r\n var expandedEventName = this._getEventNameByOption(this.option(\"expandEvent\"));\r\n var $itemsContainer = this._itemContainer();\r\n var itemSelector = this._itemSelector();\r\n eventsEngine.off($itemsContainer, \".\" + EXPAND_EVENT_NAMESPACE, itemSelector);\r\n eventsEngine.on($itemsContainer, expandedEventName, itemSelector, this._expandEventHandler.bind(this))\r\n },\r\n _getEventNameByOption: function(name) {\r\n var event = \"click\" === name ? clickEventName : dblclickEvent;\r\n return addNamespace(event, EXPAND_EVENT_NAMESPACE)\r\n },\r\n _getNode: function(identifier) {\r\n if (!isDefined(identifier)) {\r\n return null\r\n }\r\n if (identifier.internalFields) {\r\n return identifier\r\n }\r\n if (isPrimitive(identifier)) {\r\n return this._dataAdapter.getNodeByKey(identifier)\r\n }\r\n var itemElement = $(identifier).get(0);\r\n if (!itemElement) {\r\n return null\r\n }\r\n if (domAdapter.isElementNode(itemElement)) {\r\n return this._getNodeByElement(itemElement)\r\n }\r\n return this._dataAdapter.getNodeByItem(itemElement)\r\n },\r\n _getNodeByElement: function(itemElement) {\r\n var $node = $(itemElement).closest(\".\" + NODE_CLASS);\r\n var key = this._decodeString($node.attr(DATA_ITEM_ID));\r\n return this._dataAdapter.getNodeByKey(key)\r\n },\r\n _toggleExpandedState: function(itemElement, state, e) {\r\n var node = this._getNode(itemElement);\r\n if (!node) {\r\n return (new Deferred).reject().promise()\r\n }\r\n if (node.internalFields.disabled) {\r\n return (new Deferred).reject().promise()\r\n }\r\n var currentState = node.internalFields.expanded;\r\n if (currentState === state) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n if (this._hasChildren(node)) {\r\n var $node = this._getNodeElement(node);\r\n if ($node.find(\".\".concat(NODE_LOAD_INDICATOR_CLASS, \":not(.\").concat(INVISIBLE_STATE_CLASS, \")\")).length) {\r\n return (new Deferred).reject().promise()\r\n }\r\n this._createLoadIndicator($node)\r\n }\r\n if (!isDefined(state)) {\r\n state = !currentState\r\n }\r\n this._dataAdapter.toggleExpansion(node.internalFields.key, state);\r\n return this._updateExpandedItemsUI(node, state, e)\r\n },\r\n _createLoadIndicator: function($node) {\r\n var $icon = $node.children(\".\" + TOGGLE_ITEM_VISIBILITY_CLASS);\r\n var $nodeContainer = $node.children(\".\".concat(NODE_CONTAINER_CLASS));\r\n if ($icon.hasClass(TOGGLE_ITEM_VISIBILITY_OPENED_CLASS) || $nodeContainer.not(\":empty\").length) {\r\n return\r\n }\r\n this._createComponent($(\"
    \").addClass(NODE_LOAD_INDICATOR_CLASS), LoadIndicator, {}).$element().appendTo($node);\r\n $icon.hide()\r\n },\r\n _renderToggleItemVisibilityIcon: function($node, node) {\r\n var $icon = $(\"
    \").addClass(TOGGLE_ITEM_VISIBILITY_CLASS).appendTo($node);\r\n if (node.internalFields.expanded) {\r\n $icon.addClass(TOGGLE_ITEM_VISIBILITY_OPENED_CLASS);\r\n $node.parent().addClass(OPENED_NODE_CONTAINER_CLASS)\r\n }\r\n if (node.internalFields.disabled) {\r\n $icon.addClass(DISABLED_STATE_CLASS)\r\n }\r\n this._renderToggleItemVisibilityIconClick($icon, node)\r\n },\r\n _renderToggleItemVisibilityIconClick: function($icon, node) {\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n eventsEngine.off($icon, eventName);\r\n eventsEngine.on($icon, eventName, e => {\r\n this._toggleExpandedState(node.internalFields.key, void 0, e)\r\n })\r\n },\r\n _updateExpandedItemsUI: function(node, state, e) {\r\n var $node = this._getNodeElement(node);\r\n var isHiddenNode = !$node.length || state && $node.is(\":hidden\");\r\n if (this.option(\"expandNodesRecursive\") && isHiddenNode) {\r\n var parentNode = this._getNode(node.internalFields.parentKey);\r\n if (parentNode) {\r\n this._updateExpandedItemsUI(parentNode, state, e)\r\n }\r\n }\r\n var $icon = $node.children(\".\" + TOGGLE_ITEM_VISIBILITY_CLASS);\r\n var $nodeContainer = $node.children(\".\".concat(NODE_CONTAINER_CLASS));\r\n $icon.toggleClass(TOGGLE_ITEM_VISIBILITY_OPENED_CLASS, state);\r\n var nodeContainerExists = $nodeContainer.length > 0;\r\n var completionCallback = new Deferred;\r\n if (!state || nodeContainerExists && !$nodeContainer.is(\":empty\")) {\r\n this._animateNodeContainer(node, state, e, completionCallback);\r\n return completionCallback.promise()\r\n }\r\n if (0 === node.internalFields.childrenKeys.length && (this._isVirtualMode() || this._useCustomChildrenLoader())) {\r\n this._loadNestedItemsWithUpdate(node, state, e, completionCallback);\r\n return completionCallback.promise()\r\n }\r\n this._renderSublevel($node, node, this._getChildNodes(node));\r\n this._fireContentReadyAction();\r\n this._animateNodeContainer(node, state, e, completionCallback);\r\n return completionCallback.promise()\r\n },\r\n _loadNestedItemsWithUpdate: function(node, state, e, completionCallback) {\r\n var $node = this._getNodeElement(node);\r\n this._loadNestedItems(node).done(items => {\r\n var actualNodeData = this._getActualNode(node);\r\n this._renderSublevel($node, actualNodeData, this._dataAdapter.getNodesByItems(items));\r\n if (!items || !items.length) {\r\n completionCallback.resolve();\r\n return\r\n }\r\n this._fireContentReadyAction();\r\n this._animateNodeContainer(actualNodeData, state, e, completionCallback)\r\n })\r\n },\r\n _loadNestedItems: function(node) {\r\n if (this._useCustomChildrenLoader()) {\r\n var publicNode = this._dataAdapter.getPublicNode(node);\r\n return this._loadChildrenByCustomLoader(publicNode).done(newItems => {\r\n if (!this._areNodesExists(newItems)) {\r\n this._appendItems(newItems)\r\n }\r\n })\r\n }\r\n if (!this._isVirtualMode()) {\r\n return (new Deferred).resolve([]).promise()\r\n }\r\n this._filter.internal = [this.option(\"parentIdExpr\"), node.internalFields.key];\r\n this._dataSource.filter(this._combineFilter());\r\n return this._dataSource.load().done(newItems => {\r\n if (!this._areNodesExists(newItems)) {\r\n this._appendItems(newItems)\r\n }\r\n })\r\n },\r\n _areNodesExists: function(newItems, items) {\r\n var keyOfRootItem = this.keyOf(newItems[0]);\r\n var fullData = this._dataAdapter.getFullData();\r\n return !!this._dataAdapter.getNodeByKey(keyOfRootItem, fullData)\r\n },\r\n _appendItems: function(newItems) {\r\n this.option().items = this.option(\"items\").concat(newItems);\r\n this._initDataAdapter()\r\n },\r\n _animateNodeContainer: function(node, state, e, completionCallback) {\r\n var $node = this._getNodeElement(node);\r\n var $nodeContainer = $node.children(\".\".concat(NODE_CONTAINER_CLASS));\r\n if (node && completionCallback && 0 === $nodeContainer.length) {\r\n completionCallback.resolve()\r\n }\r\n $nodeContainer.addClass(OPENED_NODE_CONTAINER_CLASS);\r\n var nodeHeight = getHeight($nodeContainer);\r\n fx.stop($nodeContainer, true);\r\n fx.animate($nodeContainer, {\r\n type: \"custom\",\r\n duration: this.option(\"animationEnabled\") ? 400 : 0,\r\n from: {\r\n maxHeight: state ? 0 : nodeHeight\r\n },\r\n to: {\r\n maxHeight: state ? nodeHeight : 0\r\n },\r\n complete: function() {\r\n $nodeContainer.css(\"maxHeight\", \"none\");\r\n $nodeContainer.toggleClass(OPENED_NODE_CONTAINER_CLASS, state);\r\n this.setAria(\"expanded\", state, $node);\r\n this.getScrollable().update();\r\n this._fireExpandedStateUpdatedEvent(state, node, e);\r\n if (completionCallback) {\r\n completionCallback.resolve()\r\n }\r\n }.bind(this)\r\n })\r\n },\r\n _fireExpandedStateUpdatedEvent: function(isExpanded, node, e) {\r\n if (!this._hasChildren(node)) {\r\n return\r\n }\r\n var optionName = isExpanded ? \"onItemExpanded\" : \"onItemCollapsed\";\r\n if (isDefined(e)) {\r\n this._itemDXEventHandler(e, optionName, {\r\n node: this._dataAdapter.getPublicNode(node)\r\n })\r\n } else {\r\n var target = this._getNodeElement(node);\r\n this._itemEventHandler(target, optionName, {\r\n event: e,\r\n node: this._dataAdapter.getPublicNode(node)\r\n })\r\n }\r\n },\r\n _normalizeIconState: function($node, hasNewItems) {\r\n var $loadIndicator = $node.find(\".\".concat(NODE_LOAD_INDICATOR_CLASS));\r\n if ($loadIndicator.length) {\r\n var _LoadIndicator$getIns;\r\n null === (_LoadIndicator$getIns = LoadIndicator.getInstance($loadIndicator)) || void 0 === _LoadIndicator$getIns ? void 0 : _LoadIndicator$getIns.option(\"visible\", false)\r\n }\r\n var $toggleItem = $node.find(\".\".concat(TOGGLE_ITEM_VISIBILITY_CLASS));\r\n if (hasNewItems) {\r\n $toggleItem.show();\r\n return\r\n }\r\n $toggleItem.removeClass(TOGGLE_ITEM_VISIBILITY_CLASS);\r\n $node.addClass(IS_LEAF)\r\n },\r\n _emptyMessageContainer: function() {\r\n var scrollable = this.getScrollable();\r\n return scrollable ? $(scrollable.content()) : this.callBase()\r\n },\r\n _renderContent: function() {\r\n var items = this.option(\"items\");\r\n if (items && items.length) {\r\n this._contentAlreadyRendered = true\r\n }\r\n this.callBase()\r\n },\r\n _renderSelectAllItem: function($container) {\r\n $container = $container || this.$element().find(\".\".concat(NODE_CONTAINER_CLASS)).first();\r\n this._$selectAllItem = $(\"
    \").addClass(SELECT_ALL_ITEM_CLASS);\r\n var value = this._dataAdapter.isAllSelected();\r\n this._createComponent(this._$selectAllItem, CheckBox, {\r\n value: value,\r\n text: this.option(\"selectAllText\"),\r\n onValueChanged: this._onSelectAllCheckboxValueChanged.bind(this)\r\n });\r\n this._toggleSelectedClass(this._$selectAllItem, value);\r\n $container.before(this._$selectAllItem)\r\n },\r\n _onSelectAllCheckboxValueChanged: function(args) {\r\n this._toggleSelectAll(args);\r\n this._fireSelectAllValueChanged(args.value)\r\n },\r\n _toggleSelectAll: function(args) {\r\n this._dataAdapter.toggleSelectAll(args.value);\r\n this._updateItemsUI();\r\n this._fireSelectionChanged()\r\n },\r\n _renderCheckBox: function($node, node) {\r\n var $checkbox = $(\"
    \").appendTo($node);\r\n this._createComponent($checkbox, CheckBox, {\r\n value: node.internalFields.selected,\r\n onValueChanged: this._changeCheckboxValue.bind(this),\r\n focusStateEnabled: false,\r\n disabled: this._disabledGetter(node)\r\n })\r\n },\r\n _toggleSelectedClass: function($node, value) {\r\n $node.toggleClass(SELECTED_ITEM_CLASS, !!value)\r\n },\r\n _toggleNodeDisabledState: function(node, state) {\r\n var $node = this._getNodeElement(node);\r\n var $item = $node.find(\".\" + ITEM_CLASS).eq(0);\r\n this._dataAdapter.toggleNodeDisabledState(node.internalFields.key, state);\r\n $item.toggleClass(DISABLED_STATE_CLASS, !!state);\r\n if (this._showCheckboxes()) {\r\n var checkbox = this._getCheckBoxInstance($node);\r\n checkbox.option(\"disabled\", !!state)\r\n }\r\n },\r\n _itemOptionChanged: function(item, property, value) {\r\n var node = this._dataAdapter.getNodeByItem(item);\r\n if (property === this.option(\"disabledExpr\")) {\r\n this._toggleNodeDisabledState(node, value)\r\n }\r\n },\r\n _changeCheckboxValue: function(e) {\r\n var $node = $(e.element).parent(\".\" + NODE_CLASS);\r\n var $item = $node.children(\".\" + ITEM_CLASS);\r\n var item = this._getItemData($item);\r\n var node = this._getNodeByElement($item);\r\n var value = e.value;\r\n if (node && node.internalFields.selected === value) {\r\n return\r\n }\r\n this._updateItemSelection(value, item, e.event)\r\n },\r\n _isSingleSelection: function() {\r\n return \"single\" === this.option(\"selectionMode\")\r\n },\r\n _isRecursiveSelection: function() {\r\n return this.option(\"selectNodesRecursive\") && \"single\" !== this.option(\"selectionMode\")\r\n },\r\n _isLastSelectedBranch: function(publicNode, selectedNodesKeys, deep) {\r\n var keyIndex = selectedNodesKeys.indexOf(publicNode.key);\r\n if (keyIndex >= 0) {\r\n selectedNodesKeys.splice(keyIndex, 1)\r\n }\r\n if (deep) {\r\n each(publicNode.children, function(_, childNode) {\r\n this._isLastSelectedBranch(childNode, selectedNodesKeys, true)\r\n }.bind(this))\r\n }\r\n if (publicNode.parent) {\r\n this._isLastSelectedBranch(publicNode.parent, selectedNodesKeys)\r\n }\r\n return 0 === selectedNodesKeys.length\r\n },\r\n _isLastRequired: function(node) {\r\n var selectionRequired = this.option(\"selectionRequired\");\r\n var isSingleMode = this._isSingleSelection();\r\n var selectedNodesKeys = this.getSelectedNodeKeys();\r\n if (!selectionRequired) {\r\n return\r\n }\r\n if (isSingleMode) {\r\n return 1 === selectedNodesKeys.length\r\n } else {\r\n return this._isLastSelectedBranch(node.internalFields.publicNode, selectedNodesKeys.slice(), true)\r\n }\r\n },\r\n _updateItemSelection: function(value, itemElement, dxEvent) {\r\n var node = this._getNode(itemElement);\r\n if (!node || false === node.visible) {\r\n return false\r\n }\r\n if (node.internalFields.selected === value) {\r\n return true\r\n }\r\n if (!value && this._isLastRequired(node)) {\r\n if (this._showCheckboxes()) {\r\n var $node = this._getNodeElement(node);\r\n this._getCheckBoxInstance($node).option(\"value\", true)\r\n }\r\n return false\r\n }\r\n if (value && this._isSingleSelection()) {\r\n var selectedKeys = this.getSelectedNodeKeys();\r\n each(selectedKeys, (index, key) => {\r\n this._dataAdapter.toggleSelection(key, false);\r\n this._updateItemsUI();\r\n this._fireItemSelectionChanged(this._getNode(key))\r\n })\r\n }\r\n this._dataAdapter.toggleSelection(node.internalFields.key, value);\r\n var isAllSelected = this._dataAdapter.isAllSelected();\r\n var needFireSelectAllChanged = this._selectAllEnabled() && this._$selectAllItem.dxCheckBox(\"instance\").option(\"value\") !== isAllSelected;\r\n this._updateItemsUI();\r\n this._fireItemSelectionChanged(node, dxEvent);\r\n this._fireSelectionChanged();\r\n if (needFireSelectAllChanged) {\r\n this._fireSelectAllValueChanged(isAllSelected)\r\n }\r\n return true\r\n },\r\n _fireItemSelectionChanged: function(node, dxEvent) {\r\n var initiator = dxEvent || this._findItemElementByItem(node.internalFields.item);\r\n var handler = dxEvent ? this._itemDXEventHandler : this._itemEventHandler;\r\n handler.call(this, initiator, \"onItemSelectionChanged\", {\r\n node: this._dataAdapter.getPublicNode(node),\r\n itemData: node.internalFields.item\r\n })\r\n },\r\n _getCheckBoxInstance: function($node) {\r\n return $node.children(\".dx-checkbox\").dxCheckBox(\"instance\")\r\n },\r\n _updateItemsUI: function() {\r\n var cache = {};\r\n each(this._dataAdapter.getData(), (_, node) => {\r\n var $node = this._getNodeElement(node, cache);\r\n var nodeSelection = node.internalFields.selected;\r\n if (!$node.length) {\r\n return\r\n }\r\n this._toggleSelectedClass($node, nodeSelection);\r\n this.setAria(\"selected\", nodeSelection, $node);\r\n if (this._showCheckboxes()) {\r\n this._getCheckBoxInstance($node).option(\"value\", nodeSelection)\r\n }\r\n });\r\n if (this._selectAllEnabled()) {\r\n var selectAllCheckbox = this._$selectAllItem.dxCheckBox(\"instance\");\r\n selectAllCheckbox.option(\"onValueChanged\", void 0);\r\n selectAllCheckbox.option(\"value\", this._dataAdapter.isAllSelected());\r\n selectAllCheckbox.option(\"onValueChanged\", this._onSelectAllCheckboxValueChanged.bind(this))\r\n }\r\n },\r\n _updateParentsState: function(node, $node) {\r\n if (!$node) {\r\n return\r\n }\r\n var parentNode = this._dataAdapter.getNodeByKey(node.internalFields.parentKey);\r\n var $parentNode = $($node.parents(\".\" + NODE_CLASS)[0]);\r\n if (this._showCheckboxes()) {\r\n var parentValue = parentNode.internalFields.selected;\r\n this._getCheckBoxInstance($parentNode).option(\"value\", parentValue);\r\n this._toggleSelectedClass($parentNode, parentValue)\r\n }\r\n if (parentNode.internalFields.parentKey !== this.option(\"rootValue\")) {\r\n this._updateParentsState(parentNode, $parentNode)\r\n }\r\n },\r\n _itemEventHandlerImpl: function(initiator, action, actionArgs) {\r\n var $itemElement = $(initiator).closest(\".\" + NODE_CLASS).children(\".\" + ITEM_CLASS);\r\n return action(extend(this._extendActionArgs($itemElement), actionArgs))\r\n },\r\n _itemContextMenuHandler: function(e) {\r\n this._createEventHandler(\"onItemContextMenu\", e)\r\n },\r\n _itemHoldHandler: function(e) {\r\n this._createEventHandler(\"onItemHold\", e)\r\n },\r\n _createEventHandler: function(eventName, e) {\r\n var node = this._getNodeByElement(e.currentTarget);\r\n this._itemDXEventHandler(e, eventName, {\r\n node: this._dataAdapter.getPublicNode(node)\r\n })\r\n },\r\n _itemClass: function() {\r\n return ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return ITEM_DATA_KEY\r\n },\r\n _attachClickEvent: function() {\r\n var clickSelector = \".\" + this._itemClass();\r\n var pointerDownSelector = \".\" + NODE_CLASS + \", .\" + SELECT_ALL_ITEM_CLASS;\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n var pointerDownEvent = addNamespace(pointerEvents.down, this.NAME);\r\n var $itemContainer = this._itemContainer();\r\n var that = this;\r\n eventsEngine.off($itemContainer, eventName, clickSelector);\r\n eventsEngine.off($itemContainer, pointerDownEvent, pointerDownSelector);\r\n eventsEngine.on($itemContainer, eventName, clickSelector, (function(e) {\r\n that._itemClickHandler(e, $(this))\r\n }));\r\n eventsEngine.on($itemContainer, pointerDownEvent, pointerDownSelector, (function(e) {\r\n that._itemPointerDownHandler(e)\r\n }))\r\n },\r\n _itemClickHandler: function(e, $item) {\r\n var itemData = this._getItemData($item);\r\n var node = this._getNodeByElement($item);\r\n this._itemDXEventHandler(e, \"onItemClick\", {\r\n node: this._dataAdapter.getPublicNode(node)\r\n });\r\n if (this.option(\"selectByClick\") && !e.isDefaultPrevented()) {\r\n this._updateItemSelection(!node.internalFields.selected, itemData, e)\r\n }\r\n },\r\n _updateSelectionToFirstItem: function($items, startIndex) {\r\n var itemIndex = startIndex;\r\n while (itemIndex >= 0) {\r\n var $item = $($items[itemIndex]);\r\n this._updateItemSelection(true, $item.find(\".\" + ITEM_CLASS).get(0));\r\n itemIndex--\r\n }\r\n },\r\n _updateSelectionToLastItem: function($items, startIndex) {\r\n var length = $items.length;\r\n var itemIndex = startIndex;\r\n while (itemIndex < length) {\r\n var $item = $($items[itemIndex]);\r\n this._updateItemSelection(true, $item.find(\".\" + ITEM_CLASS).get(0));\r\n itemIndex++\r\n }\r\n },\r\n _focusInHandler: function(e) {\r\n this._updateFocusState(e, true);\r\n if (this.option(\"focusedElement\")) {\r\n clearTimeout(this._setFocusedItemTimeout);\r\n this._setFocusedItemTimeout = setTimeout(() => {\r\n this._setFocusedItem($(this.option(\"focusedElement\")))\r\n });\r\n return\r\n }\r\n var $activeItem = this._getActiveItem();\r\n this.option(\"focusedElement\", getPublicElement($activeItem.closest(\".\" + NODE_CLASS)))\r\n },\r\n _setFocusedItem: function($target) {\r\n if (!$target || !$target.length) {\r\n return\r\n }\r\n if (!$target.children().hasClass(DISABLED_STATE_CLASS)) {\r\n this.callBase($target)\r\n }\r\n },\r\n _itemPointerDownHandler: function(e) {\r\n if (!this.option(\"focusStateEnabled\")) {\r\n return\r\n }\r\n var $target = $(e.target).closest(\".\" + NODE_CLASS + \", .\" + SELECT_ALL_ITEM_CLASS);\r\n if (!$target.length) {\r\n return\r\n }\r\n var itemElement = $target.hasClass(DISABLED_STATE_CLASS) ? null : $target;\r\n this.option(\"focusedElement\", getPublicElement(itemElement))\r\n },\r\n _findNonDisabledNodes: function($nodes) {\r\n return $nodes.not((function() {\r\n return $(this).children(\".\" + ITEM_CLASS).hasClass(DISABLED_STATE_CLASS)\r\n }))\r\n },\r\n _moveFocus: function(location, e) {\r\n var FOCUS_UP = \"up\";\r\n var FOCUS_DOWN = \"down\";\r\n var FOCUS_FIRST = \"first\";\r\n var FOCUS_LAST = \"last\";\r\n var FOCUS_LEFT = this.option(\"rtlEnabled\") ? \"right\" : \"left\";\r\n var FOCUS_RIGHT = this.option(\"rtlEnabled\") ? \"left\" : \"right\";\r\n this.$element().find(\".\".concat(NODE_CONTAINER_CLASS)).each((function() {\r\n fx.stop(this, true)\r\n }));\r\n var $items = this._findNonDisabledNodes(this._nodeElements());\r\n if (!$items || !$items.length) {\r\n return\r\n }\r\n switch (location) {\r\n case FOCUS_UP:\r\n var $prevItem = this._prevItem($items);\r\n this.option(\"focusedElement\", getPublicElement($prevItem));\r\n var prevItemElement = this._getNodeItemElement($prevItem);\r\n this.getScrollable().scrollToElement(prevItemElement);\r\n if (e.shiftKey && this._showCheckboxes()) {\r\n this._updateItemSelection(true, prevItemElement)\r\n }\r\n break;\r\n case FOCUS_DOWN:\r\n var $nextItem = this._nextItem($items);\r\n this.option(\"focusedElement\", getPublicElement($nextItem));\r\n var nextItemElement = this._getNodeItemElement($nextItem);\r\n this.getScrollable().scrollToElement(nextItemElement);\r\n if (e.shiftKey && this._showCheckboxes()) {\r\n this._updateItemSelection(true, nextItemElement)\r\n }\r\n break;\r\n case FOCUS_FIRST:\r\n var $firstItem = $items.first();\r\n if (e.shiftKey && this._showCheckboxes()) {\r\n this._updateSelectionToFirstItem($items, $items.index(this._prevItem($items)))\r\n }\r\n this.option(\"focusedElement\", getPublicElement($firstItem));\r\n this.getScrollable().scrollToElement(this._getNodeItemElement($firstItem));\r\n break;\r\n case FOCUS_LAST:\r\n var $lastItem = $items.last();\r\n if (e.shiftKey && this._showCheckboxes()) {\r\n this._updateSelectionToLastItem($items, $items.index(this._nextItem($items)))\r\n }\r\n this.option(\"focusedElement\", getPublicElement($lastItem));\r\n this.getScrollable().scrollToElement(this._getNodeItemElement($lastItem));\r\n break;\r\n case FOCUS_RIGHT:\r\n this._expandFocusedContainer();\r\n break;\r\n case FOCUS_LEFT:\r\n this._collapseFocusedContainer();\r\n break;\r\n default:\r\n this.callBase.apply(this, arguments);\r\n return\r\n }\r\n },\r\n _getNodeItemElement: function($node) {\r\n return $node.find(\".\" + ITEM_CLASS).get(0)\r\n },\r\n _nodeElements: function() {\r\n return this.$element().find(\".\" + NODE_CLASS).not(\":hidden\")\r\n },\r\n _expandFocusedContainer: function() {\r\n var $focusedNode = $(this.option(\"focusedElement\"));\r\n if (!$focusedNode.length || $focusedNode.hasClass(IS_LEAF)) {\r\n return\r\n }\r\n var $node = $focusedNode.find(\".\".concat(NODE_CONTAINER_CLASS)).eq(0);\r\n if ($node.hasClass(OPENED_NODE_CONTAINER_CLASS)) {\r\n var $nextItem = this._nextItem(this._findNonDisabledNodes(this._nodeElements()));\r\n this.option(\"focusedElement\", getPublicElement($nextItem));\r\n this.getScrollable().scrollToElement(this._getNodeItemElement($nextItem));\r\n return\r\n }\r\n var node = this._getNodeByElement($focusedNode.children(\".\" + ITEM_CLASS));\r\n this._toggleExpandedState(node, true)\r\n },\r\n _getClosestNonDisabledNode: function($node) {\r\n do {\r\n $node = $node.parent().closest(\".\" + NODE_CLASS)\r\n } while ($node.children(\".dx-treeview-item.dx-state-disabled\").length);\r\n return $node\r\n },\r\n _collapseFocusedContainer: function() {\r\n var $focusedNode = $(this.option(\"focusedElement\"));\r\n if (!$focusedNode.length) {\r\n return\r\n }\r\n var nodeElement = $focusedNode.find(\".\".concat(NODE_CONTAINER_CLASS)).eq(0);\r\n if (!$focusedNode.hasClass(IS_LEAF) && nodeElement.hasClass(OPENED_NODE_CONTAINER_CLASS)) {\r\n var node = this._getNodeByElement($focusedNode.children(\".\" + ITEM_CLASS));\r\n this._toggleExpandedState(node, false)\r\n } else {\r\n var collapsedNode = this._getClosestNonDisabledNode($focusedNode);\r\n collapsedNode.length && this.option(\"focusedElement\", getPublicElement(collapsedNode));\r\n this.getScrollable().scrollToElement(this._getNodeItemElement(collapsedNode))\r\n }\r\n },\r\n _encodeString: function(value) {\r\n return isString(value) ? encodeURI(value) : value\r\n },\r\n _decodeString: function(value) {\r\n return isString(value) ? decodeURI(value) : value\r\n },\r\n getScrollable: function() {\r\n return this._scrollable\r\n },\r\n updateDimensions: function() {\r\n var deferred = new Deferred;\r\n var scrollable = this.getScrollable();\r\n if (scrollable) {\r\n scrollable.update().done(() => {\r\n deferred.resolveWith(this)\r\n })\r\n } else {\r\n deferred.resolveWith(this)\r\n }\r\n return deferred.promise()\r\n },\r\n selectItem: function(itemElement) {\r\n return this._updateItemSelection(true, itemElement)\r\n },\r\n unselectItem: function(itemElement) {\r\n return this._updateItemSelection(false, itemElement)\r\n },\r\n expandItem: function(itemElement) {\r\n return this._toggleExpandedState(itemElement, true)\r\n },\r\n collapseItem: function(itemElement) {\r\n return this._toggleExpandedState(itemElement, false)\r\n },\r\n getNodes: function() {\r\n return this._dataAdapter.getTreeNodes()\r\n },\r\n getSelectedNodes: function() {\r\n return this.getSelectedNodeKeys().map(key => {\r\n var node = this._dataAdapter.getNodeByKey(key);\r\n return this._dataAdapter.getPublicNode(node)\r\n })\r\n },\r\n getSelectedNodesKeys: function() {\r\n errors.log(\"W0002\", \"dxTreeView\", \"getSelectedNodesKeys\", \"20.1\", \"Use the 'getSelectedNodeKeys' method instead\");\r\n return this.getSelectedNodeKeys()\r\n },\r\n getSelectedNodeKeys: function() {\r\n return this._dataAdapter.getSelectedNodesKeys()\r\n },\r\n selectAll: function() {\r\n if (this._selectAllEnabled()) {\r\n this._$selectAllItem.dxCheckBox(\"instance\").option(\"value\", true)\r\n } else {\r\n this._toggleSelectAll({\r\n value: true\r\n })\r\n }\r\n },\r\n unselectAll: function() {\r\n if (this._selectAllEnabled()) {\r\n this._$selectAllItem.dxCheckBox(\"instance\").option(\"value\", false)\r\n } else {\r\n this._toggleSelectAll({\r\n value: false\r\n })\r\n }\r\n },\r\n expandAll: function() {\r\n var dataAdapter = this._dataAdapter;\r\n each(dataAdapter.getData(), (_, node) => dataAdapter.toggleExpansion(node.internalFields.key, true));\r\n this.repaint()\r\n },\r\n collapseAll: function() {\r\n each(this._dataAdapter.getExpandedNodesKeys(), function(_, key) {\r\n this._toggleExpandedState(key, false)\r\n }.bind(this))\r\n },\r\n scrollToItem: function(keyOrItemOrElement) {\r\n var node = this._getNode(keyOrItemOrElement);\r\n if (!node) {\r\n return (new Deferred).reject().promise()\r\n }\r\n var nodeKeysToExpand = [];\r\n var parentNode = node.internalFields.publicNode.parent;\r\n while (null != parentNode) {\r\n if (!parentNode.expanded) {\r\n nodeKeysToExpand.push(parentNode.key)\r\n }\r\n parentNode = parentNode.parent\r\n }\r\n var scrollCallback = new Deferred;\r\n this._expandNodes(nodeKeysToExpand.reverse()).always(() => {\r\n var $element = this._getNodeElement(node);\r\n if ($element && $element.length) {\r\n this.scrollToElementTopLeft($element.get(0));\r\n scrollCallback.resolve()\r\n } else {\r\n scrollCallback.reject()\r\n }\r\n });\r\n return scrollCallback.promise()\r\n },\r\n scrollToElementTopLeft: function(targetElement) {\r\n var scrollable = this.getScrollable();\r\n var {\r\n scrollDirection: scrollDirection,\r\n rtlEnabled: rtlEnabled\r\n } = this.option();\r\n var targetLocation = {\r\n top: 0,\r\n left: 0\r\n };\r\n var relativeOffset = getRelativeOffset(SCROLLABLE_CONTENT_CLASS, targetElement);\r\n if (scrollDirection !== DIRECTION_VERTICAL) {\r\n var containerElement = $(scrollable.container()).get(0);\r\n targetLocation.left = rtlEnabled ? relativeOffset.left + targetElement.offsetWidth - containerElement.clientWidth : relativeOffset.left\r\n }\r\n if (scrollDirection !== DIRECTION_HORIZONTAL) {\r\n targetLocation.top = relativeOffset.top\r\n }\r\n scrollable.scrollTo(targetLocation)\r\n },\r\n _expandNodes: function(keysToExpand) {\r\n if (!keysToExpand || 0 === keysToExpand.length) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n var resultCallback = new Deferred;\r\n var callbacksByNodes = keysToExpand.map(key => this.expandItem(key));\r\n when.apply($, callbacksByNodes).done(() => resultCallback.resolve()).fail(() => resultCallback.reject());\r\n return resultCallback.promise()\r\n },\r\n _dispose: function() {\r\n this.callBase();\r\n clearTimeout(this._setFocusedItemTimeout)\r\n }\r\n});\r\nexport default TreeViewBase;\r\n","/**\r\n * DevExtreme (esm/ui/tree_view/ui.tree_view.search.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 registerComponent from \"../../core/component_registrator\";\r\nimport searchBoxMixin from \"../widget/ui.search_box_mixin\";\r\nimport TextBox from \"../text_box\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport TreeViewBase from \"./ui.tree_view.base\";\r\nsearchBoxMixin.setEditorClass(TextBox);\r\nvar WIDGET_CLASS = \"dx-treeview\";\r\nvar NODE_CONTAINER_CLASS = \"\".concat(WIDGET_CLASS, \"-node-container\");\r\nvar TreeViewSearch = TreeViewBase.inherit(searchBoxMixin).inherit({\r\n _addWidgetPrefix: function(className) {\r\n return \"\".concat(WIDGET_CLASS, \"-\").concat(className)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"searchValue\":\r\n if (this._showCheckboxes() && this._isRecursiveSelection()) {\r\n this._removeSelection()\r\n }\r\n this._initDataAdapter();\r\n this._updateSearch();\r\n this._repaintContainer();\r\n this.option(\"focusedElement\", null);\r\n break;\r\n case \"searchExpr\":\r\n this._initDataAdapter();\r\n this.repaint();\r\n break;\r\n case \"searchMode\":\r\n this.option(\"expandNodesRecursive\") ? this._updateDataAdapter() : this._initDataAdapter();\r\n this.repaint();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _updateDataAdapter: function() {\r\n this._setOptionWithoutOptionChange(\"expandNodesRecursive\", false);\r\n this._initDataAdapter();\r\n this._setOptionWithoutOptionChange(\"expandNodesRecursive\", true)\r\n },\r\n _getDataAdapterOptions: function() {\r\n return extend(this.callBase(), {\r\n searchValue: this.option(\"searchValue\"),\r\n searchMode: this.option(\"searchMode\") || \"contains\",\r\n searchExpr: this.option(\"searchExpr\")\r\n })\r\n },\r\n _updateSearch: function() {\r\n if (this._searchEditor) {\r\n var editorOptions = this._getSearchEditorOptions();\r\n this._searchEditor.option(editorOptions)\r\n }\r\n },\r\n _repaintContainer: function() {\r\n var $container = this.$element().find(\".\".concat(NODE_CONTAINER_CLASS)).first();\r\n var rootNodes;\r\n if ($container.length) {\r\n $container.empty();\r\n rootNodes = this._dataAdapter.getRootNodes();\r\n this._renderEmptyMessage(rootNodes);\r\n this._renderItems($container, rootNodes);\r\n this._fireContentReadyAction()\r\n }\r\n },\r\n _itemContainer: function(isSearchMode) {\r\n if (this._scrollable && isSearchMode) {\r\n return $(this._scrollable.content())\r\n }\r\n return this.callBase()\r\n },\r\n _addWidgetClass: function() {\r\n this.$element().addClass(this._widgetClass())\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n this._removeSearchBox()\r\n }\r\n});\r\nregisterComponent(\"dxTreeView\", TreeViewSearch);\r\nexport default TreeViewSearch;\r\n","/**\r\n * DevExtreme (esm/ui/tree_view.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 TreeView from \"./tree_view/ui.tree_view.search\";\r\nexport default TreeView;\r\n","/**\r\n * DevExtreme (esm/core/utils/stubs.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\n * Build date: Tue Oct 18 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/localization/default_messages.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 defaultMessages = {\r\n en: {\r\n Yes: \"Yes\",\r\n No: \"No\",\r\n Cancel: \"Cancel\",\r\n Close: \"Close\",\r\n Clear: \"Clear\",\r\n Done: \"Done\",\r\n Loading: \"Loading...\",\r\n Select: \"Select...\",\r\n Search: \"Search\",\r\n Back: \"Back\",\r\n OK: \"OK\",\r\n \"dxCollectionWidget-noDataText\": \"No data to display\",\r\n \"dxDropDownEditor-selectLabel\": \"Select\",\r\n \"validation-required\": \"Required\",\r\n \"validation-required-formatted\": \"{0} is required\",\r\n \"validation-numeric\": \"Value must be a number\",\r\n \"validation-numeric-formatted\": \"{0} must be a number\",\r\n \"validation-range\": \"Value is out of range\",\r\n \"validation-range-formatted\": \"{0} is out of range\",\r\n \"validation-stringLength\": \"The length of the value is not correct\",\r\n \"validation-stringLength-formatted\": \"The length of {0} is not correct\",\r\n \"validation-custom\": \"Value is invalid\",\r\n \"validation-custom-formatted\": \"{0} is invalid\",\r\n \"validation-async\": \"Value is invalid\",\r\n \"validation-async-formatted\": \"{0} is invalid\",\r\n \"validation-compare\": \"Values do not match\",\r\n \"validation-compare-formatted\": \"{0} does not match\",\r\n \"validation-pattern\": \"Value does not match pattern\",\r\n \"validation-pattern-formatted\": \"{0} does not match pattern\",\r\n \"validation-email\": \"Email is invalid\",\r\n \"validation-email-formatted\": \"{0} is invalid\",\r\n \"validation-mask\": \"Value is invalid\",\r\n \"dxLookup-searchPlaceholder\": \"Minimum character number: {0}\",\r\n \"dxList-pullingDownText\": \"Pull down to refresh...\",\r\n \"dxList-pulledDownText\": \"Release to refresh...\",\r\n \"dxList-refreshingText\": \"Refreshing...\",\r\n \"dxList-pageLoadingText\": \"Loading...\",\r\n \"dxList-nextButtonText\": \"More\",\r\n \"dxList-selectAll\": \"Select All\",\r\n \"dxListEditDecorator-delete\": \"Delete\",\r\n \"dxListEditDecorator-more\": \"More\",\r\n \"dxScrollView-pullingDownText\": \"Pull down to refresh...\",\r\n \"dxScrollView-pulledDownText\": \"Release to refresh...\",\r\n \"dxScrollView-refreshingText\": \"Refreshing...\",\r\n \"dxScrollView-reachBottomText\": \"Loading...\",\r\n \"dxDateBox-simulatedDataPickerTitleTime\": \"Select time\",\r\n \"dxDateBox-simulatedDataPickerTitleDate\": \"Select date\",\r\n \"dxDateBox-simulatedDataPickerTitleDateTime\": \"Select date and time\",\r\n \"dxDateBox-validation-datetime\": \"Value must be a date or time\",\r\n \"dxFileUploader-selectFile\": \"Select a file\",\r\n \"dxFileUploader-dropFile\": \"or Drop a file here\",\r\n \"dxFileUploader-bytes\": \"bytes\",\r\n \"dxFileUploader-kb\": \"kb\",\r\n \"dxFileUploader-Mb\": \"Mb\",\r\n \"dxFileUploader-Gb\": \"Gb\",\r\n \"dxFileUploader-upload\": \"Upload\",\r\n \"dxFileUploader-uploaded\": \"Uploaded\",\r\n \"dxFileUploader-readyToUpload\": \"Ready to upload\",\r\n \"dxFileUploader-uploadAbortedMessage\": \"Upload cancelled\",\r\n \"dxFileUploader-uploadFailedMessage\": \"Upload failed\",\r\n \"dxFileUploader-invalidFileExtension\": \"File type is not allowed\",\r\n \"dxFileUploader-invalidMaxFileSize\": \"File is too large\",\r\n \"dxFileUploader-invalidMinFileSize\": \"File is too small\",\r\n \"dxRangeSlider-ariaFrom\": \"From\",\r\n \"dxRangeSlider-ariaTill\": \"Till\",\r\n \"dxSwitch-switchedOnText\": \"ON\",\r\n \"dxSwitch-switchedOffText\": \"OFF\",\r\n \"dxForm-optionalMark\": \"optional\",\r\n \"dxForm-requiredMessage\": \"{0} is required\",\r\n \"dxNumberBox-invalidValueMessage\": \"Value must be a number\",\r\n \"dxNumberBox-noDataText\": \"No data\",\r\n \"dxDataGrid-columnChooserTitle\": \"Column Chooser\",\r\n \"dxDataGrid-columnChooserEmptyText\": \"Drag a column here to hide it\",\r\n \"dxDataGrid-groupContinuesMessage\": \"Continues on the next page\",\r\n \"dxDataGrid-groupContinuedMessage\": \"Continued from the previous page\",\r\n \"dxDataGrid-groupHeaderText\": \"Group by This Column\",\r\n \"dxDataGrid-ungroupHeaderText\": \"Ungroup\",\r\n \"dxDataGrid-ungroupAllText\": \"Ungroup All\",\r\n \"dxDataGrid-editingEditRow\": \"Edit\",\r\n \"dxDataGrid-editingSaveRowChanges\": \"Save\",\r\n \"dxDataGrid-editingCancelRowChanges\": \"Cancel\",\r\n \"dxDataGrid-editingDeleteRow\": \"Delete\",\r\n \"dxDataGrid-editingUndeleteRow\": \"Undelete\",\r\n \"dxDataGrid-editingConfirmDeleteMessage\": \"Are you sure you want to delete this record?\",\r\n \"dxDataGrid-validationCancelChanges\": \"Cancel changes\",\r\n \"dxDataGrid-groupPanelEmptyText\": \"Drag a column header here to group by that column\",\r\n \"dxDataGrid-noDataText\": \"No data\",\r\n \"dxDataGrid-searchPanelPlaceholder\": \"Search...\",\r\n \"dxDataGrid-filterRowShowAllText\": \"(All)\",\r\n \"dxDataGrid-filterRowResetOperationText\": \"Reset\",\r\n \"dxDataGrid-filterRowOperationEquals\": \"Equals\",\r\n \"dxDataGrid-filterRowOperationNotEquals\": \"Does not equal\",\r\n \"dxDataGrid-filterRowOperationLess\": \"Less than\",\r\n \"dxDataGrid-filterRowOperationLessOrEquals\": \"Less than or equal to\",\r\n \"dxDataGrid-filterRowOperationGreater\": \"Greater than\",\r\n \"dxDataGrid-filterRowOperationGreaterOrEquals\": \"Greater than or equal to\",\r\n \"dxDataGrid-filterRowOperationStartsWith\": \"Starts with\",\r\n \"dxDataGrid-filterRowOperationContains\": \"Contains\",\r\n \"dxDataGrid-filterRowOperationNotContains\": \"Does not contain\",\r\n \"dxDataGrid-filterRowOperationEndsWith\": \"Ends with\",\r\n \"dxDataGrid-filterRowOperationBetween\": \"Between\",\r\n \"dxDataGrid-filterRowOperationBetweenStartText\": \"Start\",\r\n \"dxDataGrid-filterRowOperationBetweenEndText\": \"End\",\r\n \"dxDataGrid-applyFilterText\": \"Apply filter\",\r\n \"dxDataGrid-trueText\": \"true\",\r\n \"dxDataGrid-falseText\": \"false\",\r\n \"dxDataGrid-sortingAscendingText\": \"Sort Ascending\",\r\n \"dxDataGrid-sortingDescendingText\": \"Sort Descending\",\r\n \"dxDataGrid-sortingClearText\": \"Clear Sorting\",\r\n \"dxDataGrid-editingSaveAllChanges\": \"Save changes\",\r\n \"dxDataGrid-editingCancelAllChanges\": \"Discard changes\",\r\n \"dxDataGrid-editingAddRow\": \"Add a row\",\r\n \"dxDataGrid-summaryMin\": \"Min: {0}\",\r\n \"dxDataGrid-summaryMinOtherColumn\": \"Min of {1} is {0}\",\r\n \"dxDataGrid-summaryMax\": \"Max: {0}\",\r\n \"dxDataGrid-summaryMaxOtherColumn\": \"Max of {1} is {0}\",\r\n \"dxDataGrid-summaryAvg\": \"Avg: {0}\",\r\n \"dxDataGrid-summaryAvgOtherColumn\": \"Avg of {1} is {0}\",\r\n \"dxDataGrid-summarySum\": \"Sum: {0}\",\r\n \"dxDataGrid-summarySumOtherColumn\": \"Sum of {1} is {0}\",\r\n \"dxDataGrid-summaryCount\": \"Count: {0}\",\r\n \"dxDataGrid-columnFixingFix\": \"Fix\",\r\n \"dxDataGrid-columnFixingUnfix\": \"Unfix\",\r\n \"dxDataGrid-columnFixingLeftPosition\": \"To the left\",\r\n \"dxDataGrid-columnFixingRightPosition\": \"To the right\",\r\n \"dxDataGrid-exportTo\": \"Export\",\r\n \"dxDataGrid-exportToExcel\": \"Export to Excel file\",\r\n \"dxDataGrid-exporting\": \"Exporting...\",\r\n \"dxDataGrid-excelFormat\": \"Excel file\",\r\n \"dxDataGrid-selectedRows\": \"Selected rows\",\r\n \"dxDataGrid-exportSelectedRows\": \"Export selected rows to {0}\",\r\n \"dxDataGrid-exportAll\": \"Export all data to {0}\",\r\n \"dxDataGrid-headerFilterLabel\": \"Filter options\",\r\n \"dxDataGrid-headerFilterIndicatorLabel\": \"Show filter options for column '{0}'\",\r\n \"dxDataGrid-headerFilterEmptyValue\": \"(Blanks)\",\r\n \"dxDataGrid-headerFilterOK\": \"OK\",\r\n \"dxDataGrid-headerFilterCancel\": \"Cancel\",\r\n \"dxDataGrid-ariaAdaptiveCollapse\": \"Hide additional data\",\r\n \"dxDataGrid-ariaAdaptiveExpand\": \"Display additional data\",\r\n \"dxDataGrid-ariaColumn\": \"Column\",\r\n \"dxDataGrid-ariaValue\": \"Value\",\r\n \"dxDataGrid-ariaFilterCell\": \"Filter cell\",\r\n \"dxDataGrid-ariaCollapse\": \"Collapse\",\r\n \"dxDataGrid-ariaExpand\": \"Expand\",\r\n \"dxDataGrid-ariaDataGrid\": \"Data grid\",\r\n \"dxDataGrid-ariaSearchInGrid\": \"Search in the data grid\",\r\n \"dxDataGrid-ariaSelectAll\": \"Select all\",\r\n \"dxDataGrid-ariaSelectRow\": \"Select row\",\r\n \"dxDataGrid-ariaToolbar\": \"Data grid toolbar\",\r\n \"dxDataGrid-filterBuilderPopupTitle\": \"Filter Builder\",\r\n \"dxDataGrid-filterPanelCreateFilter\": \"Create Filter\",\r\n \"dxDataGrid-filterPanelClearFilter\": \"Clear\",\r\n \"dxDataGrid-filterPanelFilterEnabledHint\": \"Enable the filter\",\r\n \"dxTreeList-ariaTreeList\": \"Tree list\",\r\n \"dxTreeList-ariaSearchInGrid\": \"Search in the tree list\",\r\n \"dxTreeList-ariaToolbar\": \"Tree list toolbar\",\r\n \"dxTreeList-editingAddRowToNode\": \"Add\",\r\n \"dxPager-infoText\": \"Page {0} of {1} ({2} items)\",\r\n \"dxPager-pagesCountText\": \"of\",\r\n \"dxPager-pageSizesAllText\": \"All\",\r\n \"dxPager-page\": \"Page {0}\",\r\n \"dxPager-prevPage\": \"Previous Page\",\r\n \"dxPager-nextPage\": \"Next Page\",\r\n \"dxPager-ariaLabel\": \"Page Navigation\",\r\n \"dxPivotGrid-grandTotal\": \"Grand Total\",\r\n \"dxPivotGrid-total\": \"{0} Total\",\r\n \"dxPivotGrid-fieldChooserTitle\": \"Field Chooser\",\r\n \"dxPivotGrid-showFieldChooser\": \"Show Field Chooser\",\r\n \"dxPivotGrid-expandAll\": \"Expand All\",\r\n \"dxPivotGrid-collapseAll\": \"Collapse All\",\r\n \"dxPivotGrid-sortColumnBySummary\": 'Sort \"{0}\" by This Column',\r\n \"dxPivotGrid-sortRowBySummary\": 'Sort \"{0}\" by This Row',\r\n \"dxPivotGrid-removeAllSorting\": \"Remove All Sorting\",\r\n \"dxPivotGrid-dataNotAvailable\": \"N/A\",\r\n \"dxPivotGrid-rowFields\": \"Row Fields\",\r\n \"dxPivotGrid-columnFields\": \"Column Fields\",\r\n \"dxPivotGrid-dataFields\": \"Data Fields\",\r\n \"dxPivotGrid-filterFields\": \"Filter Fields\",\r\n \"dxPivotGrid-allFields\": \"All Fields\",\r\n \"dxPivotGrid-columnFieldArea\": \"Drop Column Fields Here\",\r\n \"dxPivotGrid-dataFieldArea\": \"Drop Data Fields Here\",\r\n \"dxPivotGrid-rowFieldArea\": \"Drop Row Fields Here\",\r\n \"dxPivotGrid-filterFieldArea\": \"Drop Filter Fields Here\",\r\n \"dxScheduler-editorLabelTitle\": \"Subject\",\r\n \"dxScheduler-editorLabelStartDate\": \"Start Date\",\r\n \"dxScheduler-editorLabelEndDate\": \"End Date\",\r\n \"dxScheduler-editorLabelDescription\": \"Description\",\r\n \"dxScheduler-editorLabelRecurrence\": \"Repeat\",\r\n \"dxScheduler-openAppointment\": \"Open appointment\",\r\n \"dxScheduler-recurrenceNever\": \"Never\",\r\n \"dxScheduler-recurrenceMinutely\": \"Every minute\",\r\n \"dxScheduler-recurrenceHourly\": \"Hourly\",\r\n \"dxScheduler-recurrenceDaily\": \"Daily\",\r\n \"dxScheduler-recurrenceWeekly\": \"Weekly\",\r\n \"dxScheduler-recurrenceMonthly\": \"Monthly\",\r\n \"dxScheduler-recurrenceYearly\": \"Yearly\",\r\n \"dxScheduler-recurrenceRepeatEvery\": \"Repeat Every\",\r\n \"dxScheduler-recurrenceRepeatOn\": \"Repeat On\",\r\n \"dxScheduler-recurrenceEnd\": \"End repeat\",\r\n \"dxScheduler-recurrenceAfter\": \"After\",\r\n \"dxScheduler-recurrenceOn\": \"On\",\r\n \"dxScheduler-recurrenceRepeatMinutely\": \"minute(s)\",\r\n \"dxScheduler-recurrenceRepeatHourly\": \"hour(s)\",\r\n \"dxScheduler-recurrenceRepeatDaily\": \"day(s)\",\r\n \"dxScheduler-recurrenceRepeatWeekly\": \"week(s)\",\r\n \"dxScheduler-recurrenceRepeatMonthly\": \"month(s)\",\r\n \"dxScheduler-recurrenceRepeatYearly\": \"year(s)\",\r\n \"dxScheduler-switcherDay\": \"Day\",\r\n \"dxScheduler-switcherWeek\": \"Week\",\r\n \"dxScheduler-switcherWorkWeek\": \"Work Week\",\r\n \"dxScheduler-switcherMonth\": \"Month\",\r\n \"dxScheduler-switcherAgenda\": \"Agenda\",\r\n \"dxScheduler-switcherTimelineDay\": \"Timeline Day\",\r\n \"dxScheduler-switcherTimelineWeek\": \"Timeline Week\",\r\n \"dxScheduler-switcherTimelineWorkWeek\": \"Timeline Work Week\",\r\n \"dxScheduler-switcherTimelineMonth\": \"Timeline Month\",\r\n \"dxScheduler-recurrenceRepeatOnDate\": \"on date\",\r\n \"dxScheduler-recurrenceRepeatCount\": \"occurrence(s)\",\r\n \"dxScheduler-allDay\": \"All day\",\r\n \"dxScheduler-confirmRecurrenceEditMessage\": \"Do you want to edit only this appointment or the whole series?\",\r\n \"dxScheduler-confirmRecurrenceDeleteMessage\": \"Do you want to delete only this appointment or the whole series?\",\r\n \"dxScheduler-confirmRecurrenceEditSeries\": \"Edit series\",\r\n \"dxScheduler-confirmRecurrenceDeleteSeries\": \"Delete series\",\r\n \"dxScheduler-confirmRecurrenceEditOccurrence\": \"Edit appointment\",\r\n \"dxScheduler-confirmRecurrenceDeleteOccurrence\": \"Delete appointment\",\r\n \"dxScheduler-noTimezoneTitle\": \"No timezone\",\r\n \"dxScheduler-moreAppointments\": \"{0} more\",\r\n \"dxCalendar-todayButtonText\": \"Today\",\r\n \"dxCalendar-ariaWidgetName\": \"Calendar\",\r\n \"dxColorView-ariaRed\": \"Red\",\r\n \"dxColorView-ariaGreen\": \"Green\",\r\n \"dxColorView-ariaBlue\": \"Blue\",\r\n \"dxColorView-ariaAlpha\": \"Transparency\",\r\n \"dxColorView-ariaHex\": \"Color code\",\r\n \"dxTagBox-selected\": \"{0} selected\",\r\n \"dxTagBox-allSelected\": \"All selected ({0})\",\r\n \"dxTagBox-moreSelected\": \"{0} more\",\r\n \"vizExport-printingButtonText\": \"Print\",\r\n \"vizExport-titleMenuText\": \"Exporting/Printing\",\r\n \"vizExport-exportButtonText\": \"{0} file\",\r\n \"dxFilterBuilder-and\": \"And\",\r\n \"dxFilterBuilder-or\": \"Or\",\r\n \"dxFilterBuilder-notAnd\": \"Not And\",\r\n \"dxFilterBuilder-notOr\": \"Not Or\",\r\n \"dxFilterBuilder-addCondition\": \"Add Condition\",\r\n \"dxFilterBuilder-addGroup\": \"Add Group\",\r\n \"dxFilterBuilder-enterValueText\": \"\",\r\n \"dxFilterBuilder-filterOperationEquals\": \"Equals\",\r\n \"dxFilterBuilder-filterOperationNotEquals\": \"Does not equal\",\r\n \"dxFilterBuilder-filterOperationLess\": \"Is less than\",\r\n \"dxFilterBuilder-filterOperationLessOrEquals\": \"Is less than or equal to\",\r\n \"dxFilterBuilder-filterOperationGreater\": \"Is greater than\",\r\n \"dxFilterBuilder-filterOperationGreaterOrEquals\": \"Is greater than or equal to\",\r\n \"dxFilterBuilder-filterOperationStartsWith\": \"Starts with\",\r\n \"dxFilterBuilder-filterOperationContains\": \"Contains\",\r\n \"dxFilterBuilder-filterOperationNotContains\": \"Does not contain\",\r\n \"dxFilterBuilder-filterOperationEndsWith\": \"Ends with\",\r\n \"dxFilterBuilder-filterOperationIsBlank\": \"Is blank\",\r\n \"dxFilterBuilder-filterOperationIsNotBlank\": \"Is not blank\",\r\n \"dxFilterBuilder-filterOperationBetween\": \"Is between\",\r\n \"dxFilterBuilder-filterOperationAnyOf\": \"Is any of\",\r\n \"dxFilterBuilder-filterOperationNoneOf\": \"Is none of\",\r\n \"dxHtmlEditor-dialogColorCaption\": \"Change Font Color\",\r\n \"dxHtmlEditor-dialogBackgroundCaption\": \"Change Background Color\",\r\n \"dxHtmlEditor-dialogLinkCaption\": \"Add Link\",\r\n \"dxHtmlEditor-dialogLinkUrlField\": \"URL\",\r\n \"dxHtmlEditor-dialogLinkTextField\": \"Text\",\r\n \"dxHtmlEditor-dialogLinkTargetField\": \"Open link in new window\",\r\n \"dxHtmlEditor-dialogImageCaption\": \"Add Image\",\r\n \"dxHtmlEditor-dialogImageUrlField\": \"URL\",\r\n \"dxHtmlEditor-dialogImageAltField\": \"Alternate text\",\r\n \"dxHtmlEditor-dialogImageWidthField\": \"Width (px)\",\r\n \"dxHtmlEditor-dialogImageHeightField\": \"Height (px)\",\r\n \"dxHtmlEditor-dialogInsertTableRowsField\": \"Rows\",\r\n \"dxHtmlEditor-dialogInsertTableColumnsField\": \"Columns\",\r\n \"dxHtmlEditor-dialogInsertTableCaption\": \"Insert Table\",\r\n \"dxHtmlEditor-dialogUpdateImageCaption\": \"Update Image\",\r\n \"dxHtmlEditor-dialogImageUpdateButton\": \"Update\",\r\n \"dxHtmlEditor-dialogImageAddButton\": \"Add\",\r\n \"dxHtmlEditor-dialogImageSpecifyUrl\": \"From the Web\",\r\n \"dxHtmlEditor-dialogImageSelectFile\": \"From This Device\",\r\n \"dxHtmlEditor-dialogImageKeepAspectRatio\": \"Keep Aspect Ratio\",\r\n \"dxHtmlEditor-dialogImageEncodeToBase64\": \"Encode to Base64\",\r\n \"dxHtmlEditor-heading\": \"Heading\",\r\n \"dxHtmlEditor-normalText\": \"Normal text\",\r\n \"dxHtmlEditor-background\": \"Background Color\",\r\n \"dxHtmlEditor-bold\": \"Bold\",\r\n \"dxHtmlEditor-color\": \"Font Color\",\r\n \"dxHtmlEditor-font\": \"Font\",\r\n \"dxHtmlEditor-italic\": \"Italic\",\r\n \"dxHtmlEditor-link\": \"Add Link\",\r\n \"dxHtmlEditor-image\": \"Add Image\",\r\n \"dxHtmlEditor-size\": \"Size\",\r\n \"dxHtmlEditor-strike\": \"Strikethrough\",\r\n \"dxHtmlEditor-subscript\": \"Subscript\",\r\n \"dxHtmlEditor-superscript\": \"Superscript\",\r\n \"dxHtmlEditor-underline\": \"Underline\",\r\n \"dxHtmlEditor-blockquote\": \"Blockquote\",\r\n \"dxHtmlEditor-header\": \"Header\",\r\n \"dxHtmlEditor-increaseIndent\": \"Increase Indent\",\r\n \"dxHtmlEditor-decreaseIndent\": \"Decrease Indent\",\r\n \"dxHtmlEditor-orderedList\": \"Ordered List\",\r\n \"dxHtmlEditor-bulletList\": \"Bullet List\",\r\n \"dxHtmlEditor-alignLeft\": \"Align Left\",\r\n \"dxHtmlEditor-alignCenter\": \"Align Center\",\r\n \"dxHtmlEditor-alignRight\": \"Align Right\",\r\n \"dxHtmlEditor-alignJustify\": \"Align Justify\",\r\n \"dxHtmlEditor-codeBlock\": \"Code Block\",\r\n \"dxHtmlEditor-variable\": \"Add Variable\",\r\n \"dxHtmlEditor-undo\": \"Undo\",\r\n \"dxHtmlEditor-redo\": \"Redo\",\r\n \"dxHtmlEditor-clear\": \"Clear Formatting\",\r\n \"dxHtmlEditor-insertTable\": \"Insert Table\",\r\n \"dxHtmlEditor-insertHeaderRow\": \"Insert Header Row\",\r\n \"dxHtmlEditor-insertRowAbove\": \"Insert Row Above\",\r\n \"dxHtmlEditor-insertRowBelow\": \"Insert Row Below\",\r\n \"dxHtmlEditor-insertColumnLeft\": \"Insert Column Left\",\r\n \"dxHtmlEditor-insertColumnRight\": \"Insert Column Right\",\r\n \"dxHtmlEditor-deleteColumn\": \"Delete Column\",\r\n \"dxHtmlEditor-deleteRow\": \"Delete Row\",\r\n \"dxHtmlEditor-deleteTable\": \"Delete Table\",\r\n \"dxHtmlEditor-cellProperties\": \"Cell Properties\",\r\n \"dxHtmlEditor-tableProperties\": \"Table Properties\",\r\n \"dxHtmlEditor-insert\": \"Insert\",\r\n \"dxHtmlEditor-delete\": \"Delete\",\r\n \"dxHtmlEditor-border\": \"Border\",\r\n \"dxHtmlEditor-style\": \"Style\",\r\n \"dxHtmlEditor-width\": \"Width\",\r\n \"dxHtmlEditor-height\": \"Height\",\r\n \"dxHtmlEditor-borderColor\": \"Color\",\r\n \"dxHtmlEditor-tableBackground\": \"Background\",\r\n \"dxHtmlEditor-dimensions\": \"Dimensions\",\r\n \"dxHtmlEditor-alignment\": \"Alignment\",\r\n \"dxHtmlEditor-horizontal\": \"Horizontal\",\r\n \"dxHtmlEditor-vertical\": \"Vertical\",\r\n \"dxHtmlEditor-paddingVertical\": \"Vertical Padding\",\r\n \"dxHtmlEditor-paddingHorizontal\": \"Horizontal Padding\",\r\n \"dxHtmlEditor-pixels\": \"Pixels\",\r\n \"dxHtmlEditor-list\": \"List\",\r\n \"dxHtmlEditor-ordered\": \"Ordered\",\r\n \"dxHtmlEditor-bullet\": \"Bullet\",\r\n \"dxHtmlEditor-align\": \"Align\",\r\n \"dxHtmlEditor-center\": \"Center\",\r\n \"dxHtmlEditor-left\": \"Left\",\r\n \"dxHtmlEditor-right\": \"Right\",\r\n \"dxHtmlEditor-indent\": \"Indent\",\r\n \"dxHtmlEditor-justify\": \"Justify\",\r\n \"dxFileManager-newDirectoryName\": \"Untitled directory\",\r\n \"dxFileManager-rootDirectoryName\": \"Files\",\r\n \"dxFileManager-errorNoAccess\": \"Access Denied. Operation could not be completed.\",\r\n \"dxFileManager-errorDirectoryExistsFormat\": \"Directory '{0}' already exists.\",\r\n \"dxFileManager-errorFileExistsFormat\": \"File '{0}' already exists.\",\r\n \"dxFileManager-errorFileNotFoundFormat\": \"File '{0}' not found.\",\r\n \"dxFileManager-errorDirectoryNotFoundFormat\": \"Directory '{0}' not found.\",\r\n \"dxFileManager-errorWrongFileExtension\": \"File extension is not allowed.\",\r\n \"dxFileManager-errorMaxFileSizeExceeded\": \"File size exceeds the maximum allowed size.\",\r\n \"dxFileManager-errorInvalidSymbols\": \"This name contains invalid characters.\",\r\n \"dxFileManager-errorDefault\": \"Unspecified error.\",\r\n \"dxFileManager-errorDirectoryOpenFailed\": \"The directory cannot be opened\",\r\n \"dxFileManager-commandCreate\": \"New directory\",\r\n \"dxFileManager-commandRename\": \"Rename\",\r\n \"dxFileManager-commandMove\": \"Move to\",\r\n \"dxFileManager-commandCopy\": \"Copy to\",\r\n \"dxFileManager-commandDelete\": \"Delete\",\r\n \"dxFileManager-commandDownload\": \"Download\",\r\n \"dxFileManager-commandUpload\": \"Upload files\",\r\n \"dxFileManager-commandRefresh\": \"Refresh\",\r\n \"dxFileManager-commandThumbnails\": \"Thumbnails View\",\r\n \"dxFileManager-commandDetails\": \"Details View\",\r\n \"dxFileManager-commandClearSelection\": \"Clear selection\",\r\n \"dxFileManager-commandShowNavPane\": \"Toggle navigation pane\",\r\n \"dxFileManager-dialogDirectoryChooserMoveTitle\": \"Move to\",\r\n \"dxFileManager-dialogDirectoryChooserMoveButtonText\": \"Move\",\r\n \"dxFileManager-dialogDirectoryChooserCopyTitle\": \"Copy to\",\r\n \"dxFileManager-dialogDirectoryChooserCopyButtonText\": \"Copy\",\r\n \"dxFileManager-dialogRenameItemTitle\": \"Rename\",\r\n \"dxFileManager-dialogRenameItemButtonText\": \"Save\",\r\n \"dxFileManager-dialogCreateDirectoryTitle\": \"New directory\",\r\n \"dxFileManager-dialogCreateDirectoryButtonText\": \"Create\",\r\n \"dxFileManager-dialogDeleteItemTitle\": \"Delete\",\r\n \"dxFileManager-dialogDeleteItemButtonText\": \"Delete\",\r\n \"dxFileManager-dialogDeleteItemSingleItemConfirmation\": \"Are you sure you want to delete {0}?\",\r\n \"dxFileManager-dialogDeleteItemMultipleItemsConfirmation\": \"Are you sure you want to delete {0} items?\",\r\n \"dxFileManager-dialogButtonCancel\": \"Cancel\",\r\n \"dxFileManager-editingCreateSingleItemProcessingMessage\": \"Creating a directory inside {0}\",\r\n \"dxFileManager-editingCreateSingleItemSuccessMessage\": \"Created a directory inside {0}\",\r\n \"dxFileManager-editingCreateSingleItemErrorMessage\": \"Directory was not created\",\r\n \"dxFileManager-editingCreateCommonErrorMessage\": \"Directory was not created\",\r\n \"dxFileManager-editingRenameSingleItemProcessingMessage\": \"Renaming an item inside {0}\",\r\n \"dxFileManager-editingRenameSingleItemSuccessMessage\": \"Renamed an item inside {0}\",\r\n \"dxFileManager-editingRenameSingleItemErrorMessage\": \"Item was not renamed\",\r\n \"dxFileManager-editingRenameCommonErrorMessage\": \"Item was not renamed\",\r\n \"dxFileManager-editingDeleteSingleItemProcessingMessage\": \"Deleting an item from {0}\",\r\n \"dxFileManager-editingDeleteMultipleItemsProcessingMessage\": \"Deleting {0} items from {1}\",\r\n \"dxFileManager-editingDeleteSingleItemSuccessMessage\": \"Deleted an item from {0}\",\r\n \"dxFileManager-editingDeleteMultipleItemsSuccessMessage\": \"Deleted {0} items from {1}\",\r\n \"dxFileManager-editingDeleteSingleItemErrorMessage\": \"Item was not deleted\",\r\n \"dxFileManager-editingDeleteMultipleItemsErrorMessage\": \"{0} items were not deleted\",\r\n \"dxFileManager-editingDeleteCommonErrorMessage\": \"Some items were not deleted\",\r\n \"dxFileManager-editingMoveSingleItemProcessingMessage\": \"Moving an item to {0}\",\r\n \"dxFileManager-editingMoveMultipleItemsProcessingMessage\": \"Moving {0} items to {1}\",\r\n \"dxFileManager-editingMoveSingleItemSuccessMessage\": \"Moved an item to {0}\",\r\n \"dxFileManager-editingMoveMultipleItemsSuccessMessage\": \"Moved {0} items to {1}\",\r\n \"dxFileManager-editingMoveSingleItemErrorMessage\": \"Item was not moved\",\r\n \"dxFileManager-editingMoveMultipleItemsErrorMessage\": \"{0} items were not moved\",\r\n \"dxFileManager-editingMoveCommonErrorMessage\": \"Some items were not moved\",\r\n \"dxFileManager-editingCopySingleItemProcessingMessage\": \"Copying an item to {0}\",\r\n \"dxFileManager-editingCopyMultipleItemsProcessingMessage\": \"Copying {0} items to {1}\",\r\n \"dxFileManager-editingCopySingleItemSuccessMessage\": \"Copied an item to {0}\",\r\n \"dxFileManager-editingCopyMultipleItemsSuccessMessage\": \"Copied {0} items to {1}\",\r\n \"dxFileManager-editingCopySingleItemErrorMessage\": \"Item was not copied\",\r\n \"dxFileManager-editingCopyMultipleItemsErrorMessage\": \"{0} items were not copied\",\r\n \"dxFileManager-editingCopyCommonErrorMessage\": \"Some items were not copied\",\r\n \"dxFileManager-editingUploadSingleItemProcessingMessage\": \"Uploading an item to {0}\",\r\n \"dxFileManager-editingUploadMultipleItemsProcessingMessage\": \"Uploading {0} items to {1}\",\r\n \"dxFileManager-editingUploadSingleItemSuccessMessage\": \"Uploaded an item to {0}\",\r\n \"dxFileManager-editingUploadMultipleItemsSuccessMessage\": \"Uploaded {0} items to {1}\",\r\n \"dxFileManager-editingUploadSingleItemErrorMessage\": \"Item was not uploaded\",\r\n \"dxFileManager-editingUploadMultipleItemsErrorMessage\": \"{0} items were not uploaded\",\r\n \"dxFileManager-editingUploadCanceledMessage\": \"Canceled\",\r\n \"dxFileManager-editingDownloadSingleItemErrorMessage\": \"Item was not downloaded\",\r\n \"dxFileManager-editingDownloadMultipleItemsErrorMessage\": \"{0} items were not downloaded\",\r\n \"dxFileManager-listDetailsColumnCaptionName\": \"Name\",\r\n \"dxFileManager-listDetailsColumnCaptionDateModified\": \"Date Modified\",\r\n \"dxFileManager-listDetailsColumnCaptionFileSize\": \"File Size\",\r\n \"dxFileManager-listThumbnailsTooltipTextSize\": \"Size\",\r\n \"dxFileManager-listThumbnailsTooltipTextDateModified\": \"Date Modified\",\r\n \"dxFileManager-notificationProgressPanelTitle\": \"Progress\",\r\n \"dxFileManager-notificationProgressPanelEmptyListText\": \"No operations\",\r\n \"dxFileManager-notificationProgressPanelOperationCanceled\": \"Canceled\",\r\n \"dxDiagram-categoryGeneral\": \"General\",\r\n \"dxDiagram-categoryFlowchart\": \"Flowchart\",\r\n \"dxDiagram-categoryOrgChart\": \"Org Chart\",\r\n \"dxDiagram-categoryContainers\": \"Containers\",\r\n \"dxDiagram-categoryCustom\": \"Custom\",\r\n \"dxDiagram-commandExportToSvg\": \"Export to SVG\",\r\n \"dxDiagram-commandExportToPng\": \"Export to PNG\",\r\n \"dxDiagram-commandExportToJpg\": \"Export to JPEG\",\r\n \"dxDiagram-commandUndo\": \"Undo\",\r\n \"dxDiagram-commandRedo\": \"Redo\",\r\n \"dxDiagram-commandFontName\": \"Font Name\",\r\n \"dxDiagram-commandFontSize\": \"Font Size\",\r\n \"dxDiagram-commandBold\": \"Bold\",\r\n \"dxDiagram-commandItalic\": \"Italic\",\r\n \"dxDiagram-commandUnderline\": \"Underline\",\r\n \"dxDiagram-commandTextColor\": \"Font Color\",\r\n \"dxDiagram-commandLineColor\": \"Line Color\",\r\n \"dxDiagram-commandLineWidth\": \"Line Width\",\r\n \"dxDiagram-commandLineStyle\": \"Line Style\",\r\n \"dxDiagram-commandLineStyleSolid\": \"Solid\",\r\n \"dxDiagram-commandLineStyleDotted\": \"Dotted\",\r\n \"dxDiagram-commandLineStyleDashed\": \"Dashed\",\r\n \"dxDiagram-commandFillColor\": \"Fill Color\",\r\n \"dxDiagram-commandAlignLeft\": \"Align Left\",\r\n \"dxDiagram-commandAlignCenter\": \"Align Center\",\r\n \"dxDiagram-commandAlignRight\": \"Align Right\",\r\n \"dxDiagram-commandConnectorLineType\": \"Connector Line Type\",\r\n \"dxDiagram-commandConnectorLineStraight\": \"Straight\",\r\n \"dxDiagram-commandConnectorLineOrthogonal\": \"Orthogonal\",\r\n \"dxDiagram-commandConnectorLineStart\": \"Connector Line Start\",\r\n \"dxDiagram-commandConnectorLineEnd\": \"Connector Line End\",\r\n \"dxDiagram-commandConnectorLineNone\": \"None\",\r\n \"dxDiagram-commandConnectorLineArrow\": \"Arrow\",\r\n \"dxDiagram-commandFullscreen\": \"Full Screen\",\r\n \"dxDiagram-commandUnits\": \"Units\",\r\n \"dxDiagram-commandPageSize\": \"Page Size\",\r\n \"dxDiagram-commandPageOrientation\": \"Page Orientation\",\r\n \"dxDiagram-commandPageOrientationLandscape\": \"Landscape\",\r\n \"dxDiagram-commandPageOrientationPortrait\": \"Portrait\",\r\n \"dxDiagram-commandPageColor\": \"Page Color\",\r\n \"dxDiagram-commandShowGrid\": \"Show Grid\",\r\n \"dxDiagram-commandSnapToGrid\": \"Snap to Grid\",\r\n \"dxDiagram-commandGridSize\": \"Grid Size\",\r\n \"dxDiagram-commandZoomLevel\": \"Zoom Level\",\r\n \"dxDiagram-commandAutoZoom\": \"Auto Zoom\",\r\n \"dxDiagram-commandFitToContent\": \"Fit to Content\",\r\n \"dxDiagram-commandFitToWidth\": \"Fit to Width\",\r\n \"dxDiagram-commandAutoZoomByContent\": \"Auto Zoom by Content\",\r\n \"dxDiagram-commandAutoZoomByWidth\": \"Auto Zoom by Width\",\r\n \"dxDiagram-commandSimpleView\": \"Simple View\",\r\n \"dxDiagram-commandCut\": \"Cut\",\r\n \"dxDiagram-commandCopy\": \"Copy\",\r\n \"dxDiagram-commandPaste\": \"Paste\",\r\n \"dxDiagram-commandSelectAll\": \"Select All\",\r\n \"dxDiagram-commandDelete\": \"Delete\",\r\n \"dxDiagram-commandBringToFront\": \"Bring to Front\",\r\n \"dxDiagram-commandSendToBack\": \"Send to Back\",\r\n \"dxDiagram-commandLock\": \"Lock\",\r\n \"dxDiagram-commandUnlock\": \"Unlock\",\r\n \"dxDiagram-commandInsertShapeImage\": \"Insert Image...\",\r\n \"dxDiagram-commandEditShapeImage\": \"Change Image...\",\r\n \"dxDiagram-commandDeleteShapeImage\": \"Delete Image\",\r\n \"dxDiagram-commandLayoutLeftToRight\": \"Left-to-right\",\r\n \"dxDiagram-commandLayoutRightToLeft\": \"Right-to-left\",\r\n \"dxDiagram-commandLayoutTopToBottom\": \"Top-to-bottom\",\r\n \"dxDiagram-commandLayoutBottomToTop\": \"Bottom-to-top\",\r\n \"dxDiagram-unitIn\": \"in\",\r\n \"dxDiagram-unitCm\": \"cm\",\r\n \"dxDiagram-unitPx\": \"px\",\r\n \"dxDiagram-dialogButtonOK\": \"OK\",\r\n \"dxDiagram-dialogButtonCancel\": \"Cancel\",\r\n \"dxDiagram-dialogInsertShapeImageTitle\": \"Insert Image\",\r\n \"dxDiagram-dialogEditShapeImageTitle\": \"Change Image\",\r\n \"dxDiagram-dialogEditShapeImageSelectButton\": \"Select image\",\r\n \"dxDiagram-dialogEditShapeImageLabelText\": \"or drop a file here\",\r\n \"dxDiagram-uiExport\": \"Export\",\r\n \"dxDiagram-uiProperties\": \"Properties\",\r\n \"dxDiagram-uiSettings\": \"Settings\",\r\n \"dxDiagram-uiShowToolbox\": \"Show Toolbox\",\r\n \"dxDiagram-uiSearch\": \"Search\",\r\n \"dxDiagram-uiStyle\": \"Style\",\r\n \"dxDiagram-uiLayout\": \"Layout\",\r\n \"dxDiagram-uiLayoutTree\": \"Tree\",\r\n \"dxDiagram-uiLayoutLayered\": \"Layered\",\r\n \"dxDiagram-uiDiagram\": \"Diagram\",\r\n \"dxDiagram-uiText\": \"Text\",\r\n \"dxDiagram-uiObject\": \"Object\",\r\n \"dxDiagram-uiConnector\": \"Connector\",\r\n \"dxDiagram-uiPage\": \"Page\",\r\n \"dxDiagram-shapeText\": \"Text\",\r\n \"dxDiagram-shapeRectangle\": \"Rectangle\",\r\n \"dxDiagram-shapeEllipse\": \"Ellipse\",\r\n \"dxDiagram-shapeCross\": \"Cross\",\r\n \"dxDiagram-shapeTriangle\": \"Triangle\",\r\n \"dxDiagram-shapeDiamond\": \"Diamond\",\r\n \"dxDiagram-shapeHeart\": \"Heart\",\r\n \"dxDiagram-shapePentagon\": \"Pentagon\",\r\n \"dxDiagram-shapeHexagon\": \"Hexagon\",\r\n \"dxDiagram-shapeOctagon\": \"Octagon\",\r\n \"dxDiagram-shapeStar\": \"Star\",\r\n \"dxDiagram-shapeArrowLeft\": \"Left Arrow\",\r\n \"dxDiagram-shapeArrowUp\": \"Up Arrow\",\r\n \"dxDiagram-shapeArrowRight\": \"Right Arrow\",\r\n \"dxDiagram-shapeArrowDown\": \"Down Arrow\",\r\n \"dxDiagram-shapeArrowUpDown\": \"Up Down Arrow\",\r\n \"dxDiagram-shapeArrowLeftRight\": \"Left Right Arrow\",\r\n \"dxDiagram-shapeProcess\": \"Process\",\r\n \"dxDiagram-shapeDecision\": \"Decision\",\r\n \"dxDiagram-shapeTerminator\": \"Terminator\",\r\n \"dxDiagram-shapePredefinedProcess\": \"Predefined Process\",\r\n \"dxDiagram-shapeDocument\": \"Document\",\r\n \"dxDiagram-shapeMultipleDocuments\": \"Multiple Documents\",\r\n \"dxDiagram-shapeManualInput\": \"Manual Input\",\r\n \"dxDiagram-shapePreparation\": \"Preparation\",\r\n \"dxDiagram-shapeData\": \"Data\",\r\n \"dxDiagram-shapeDatabase\": \"Database\",\r\n \"dxDiagram-shapeHardDisk\": \"Hard Disk\",\r\n \"dxDiagram-shapeInternalStorage\": \"Internal Storage\",\r\n \"dxDiagram-shapePaperTape\": \"Paper Tape\",\r\n \"dxDiagram-shapeManualOperation\": \"Manual Operation\",\r\n \"dxDiagram-shapeDelay\": \"Delay\",\r\n \"dxDiagram-shapeStoredData\": \"Stored Data\",\r\n \"dxDiagram-shapeDisplay\": \"Display\",\r\n \"dxDiagram-shapeMerge\": \"Merge\",\r\n \"dxDiagram-shapeConnector\": \"Connector\",\r\n \"dxDiagram-shapeOr\": \"Or\",\r\n \"dxDiagram-shapeSummingJunction\": \"Summing Junction\",\r\n \"dxDiagram-shapeContainerDefaultText\": \"Container\",\r\n \"dxDiagram-shapeVerticalContainer\": \"Vertical Container\",\r\n \"dxDiagram-shapeHorizontalContainer\": \"Horizontal Container\",\r\n \"dxDiagram-shapeCardDefaultText\": \"Person's Name\",\r\n \"dxDiagram-shapeCardWithImageOnLeft\": \"Card with Image on the Left\",\r\n \"dxDiagram-shapeCardWithImageOnTop\": \"Card with Image on the Top\",\r\n \"dxDiagram-shapeCardWithImageOnRight\": \"Card with Image on the Right\",\r\n \"dxGantt-dialogTitle\": \"Title\",\r\n \"dxGantt-dialogStartTitle\": \"Start\",\r\n \"dxGantt-dialogEndTitle\": \"End\",\r\n \"dxGantt-dialogProgressTitle\": \"Progress\",\r\n \"dxGantt-dialogResourcesTitle\": \"Resources\",\r\n \"dxGantt-dialogResourceManagerTitle\": \"Resource Manager\",\r\n \"dxGantt-dialogTaskDetailsTitle\": \"Task Details\",\r\n \"dxGantt-dialogEditResourceListHint\": \"Edit Resource List\",\r\n \"dxGantt-dialogEditNoResources\": \"No resources\",\r\n \"dxGantt-dialogButtonAdd\": \"Add\",\r\n \"dxGantt-contextMenuNewTask\": \"New Task\",\r\n \"dxGantt-contextMenuNewSubtask\": \"New Subtask\",\r\n \"dxGantt-contextMenuDeleteTask\": \"Delete Task\",\r\n \"dxGantt-contextMenuDeleteDependency\": \"Delete Dependency\",\r\n \"dxGantt-dialogTaskDeleteConfirmation\": \"Deleting a task also deletes all its dependencies and subtasks. Are you sure you want to delete this task?\",\r\n \"dxGantt-dialogDependencyDeleteConfirmation\": \"Are you sure you want to delete the dependency from the task?\",\r\n \"dxGantt-dialogResourcesDeleteConfirmation\": \"Deleting a resource also deletes it from tasks to which this resource is assigned. Are you sure you want to delete these resources? Resources: {0}\",\r\n \"dxGantt-dialogConstraintCriticalViolationMessage\": \"The task you are attempting to move is linked to a second task by a dependency relation. This change would conflict with dependency rules. How would you like to proceed?\",\r\n \"dxGantt-dialogConstraintViolationMessage\": \"The task you are attempting to move is linked to a second task by a dependency relation. How would you like to proceed?\",\r\n \"dxGantt-dialogCancelOperationMessage\": \"Cancel the operation\",\r\n \"dxGantt-dialogDeleteDependencyMessage\": \"Delete the dependency\",\r\n \"dxGantt-dialogMoveTaskAndKeepDependencyMessage\": \"Move the task and keep the dependency\",\r\n \"dxGantt-dialogConstraintCriticalViolationSeveralTasksMessage\": \"The task you are attempting to move is linked to another tasks by dependency relations. This change would conflict with dependency rules. How would you like to proceed?\",\r\n \"dxGantt-dialogConstraintViolationSeveralTasksMessage\": \"The task you are attempting to move is linked to another tasks by dependency relations. How would you like to proceed?\",\r\n \"dxGantt-dialogDeleteDependenciesMessage\": \"Delete the dependency relations\",\r\n \"dxGantt-dialogMoveTaskAndKeepDependenciesMessage\": \"Move the task and keep the dependencies\",\r\n \"dxGantt-undo\": \"Undo\",\r\n \"dxGantt-redo\": \"Redo\",\r\n \"dxGantt-expandAll\": \"Expand All\",\r\n \"dxGantt-collapseAll\": \"Collapse All\",\r\n \"dxGantt-addNewTask\": \"Add New Task\",\r\n \"dxGantt-deleteSelectedTask\": \"Delete Selected Task\",\r\n \"dxGantt-zoomIn\": \"Zoom In\",\r\n \"dxGantt-zoomOut\": \"Zoom Out\",\r\n \"dxGantt-fullScreen\": \"Full Screen\",\r\n \"dxGantt-quarter\": \"Q{0}\",\r\n \"dxGantt-sortingAscendingText\": \"Sort Ascending\",\r\n \"dxGantt-sortingDescendingText\": \"Sort Descending\",\r\n \"dxGantt-sortingClearText\": \"Clear Sorting\",\r\n \"dxGantt-showResources\": \"Show Resources\",\r\n \"dxGantt-showDependencies\": \"Show Dependencies\",\r\n \"dxGantt-dialogStartDateValidation\": \"Start date must be after {0}\",\r\n \"dxGantt-dialogEndDateValidation\": \"End date must be after {0}\"\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/message.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 dependencyInjector from \"../core/utils/dependency_injector\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n format as stringFormat\r\n} from \"../core/utils/string\";\r\nimport {\r\n humanize\r\n} from \"../core/utils/inflector\";\r\nimport coreLocalization from \"./core\";\r\nimport {\r\n defaultMessages\r\n} from \"./default_messages\";\r\nvar baseDictionary = extend(true, {}, defaultMessages);\r\nvar getDataByLocale = (localeData, locale) => localeData[locale] || {};\r\nvar newMessages = {};\r\nvar messageLocalization = dependencyInjector({\r\n engine: function() {\r\n return \"base\"\r\n },\r\n _dictionary: baseDictionary,\r\n load: function(messages) {\r\n extend(true, this._dictionary, messages)\r\n },\r\n _localizablePrefix: \"@\",\r\n setup: function(localizablePrefix) {\r\n this._localizablePrefix = localizablePrefix\r\n },\r\n localizeString: function(text) {\r\n var that = this;\r\n var regex = new RegExp(\"(^|[^a-zA-Z_0-9\" + that._localizablePrefix + \"-]+)(\" + that._localizablePrefix + \"{1,2})([a-zA-Z_0-9-]+)\", \"g\");\r\n var escapeString = that._localizablePrefix + that._localizablePrefix;\r\n return text.replace(regex, (str, prefix, escape, localizationKey) => {\r\n var defaultResult = that._localizablePrefix + localizationKey;\r\n var result;\r\n if (escape !== escapeString) {\r\n result = that.format(localizationKey)\r\n }\r\n if (!result) {\r\n newMessages[localizationKey] = humanize(localizationKey)\r\n }\r\n return prefix + (result || defaultResult)\r\n })\r\n },\r\n getMessagesByLocales: function() {\r\n return this._dictionary\r\n },\r\n getDictionary: function(onlyNew) {\r\n if (onlyNew) {\r\n return newMessages\r\n }\r\n return extend({}, newMessages, this.getMessagesByLocales()[coreLocalization.locale()])\r\n },\r\n getFormatter: function(key) {\r\n return this._getFormatterBase(key) || this._getFormatterBase(key, \"en\")\r\n },\r\n _getFormatterBase: function(key, locale) {\r\n var message = coreLocalization.getValueByClosestLocale(locale => getDataByLocale(this._dictionary, locale)[key]);\r\n if (message) {\r\n return function() {\r\n var args = 1 === arguments.length && Array.isArray(arguments[0]) ? arguments[0].slice(0) : Array.prototype.slice.call(arguments, 0);\r\n args.unshift(message);\r\n return stringFormat.apply(this, args)\r\n }\r\n }\r\n },\r\n format: function(key) {\r\n var formatter = this.getFormatter(key);\r\n var values = Array.prototype.slice.call(arguments, 1);\r\n return formatter && formatter.apply(this, values) || \"\"\r\n }\r\n});\r\nexport default messageLocalization;\r\n","/**\r\n * DevExtreme (esm/core/guid.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 \"./class\";\r\nvar Guid = Class.inherit({\r\n ctor: function(value) {\r\n if (value) {\r\n value = String(value)\r\n }\r\n this._value = this._normalize(value || this._generate())\r\n },\r\n _normalize: function(value) {\r\n value = value.replace(/[^a-f0-9]/gi, \"\").toLowerCase();\r\n while (value.length < 32) {\r\n value += \"0\"\r\n }\r\n return [value.substr(0, 8), value.substr(8, 4), value.substr(12, 4), value.substr(16, 4), value.substr(20, 12)].join(\"-\")\r\n },\r\n _generate: function() {\r\n var value = \"\";\r\n for (var i = 0; i < 32; i++) {\r\n value += Math.round(15 * Math.random()).toString(16)\r\n }\r\n return value\r\n },\r\n toString: function() {\r\n return this._value\r\n },\r\n valueOf: function() {\r\n return this._value\r\n },\r\n toJSON: function() {\r\n return this._value\r\n }\r\n});\r\nexport default Guid;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scrollable.simulated.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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","/**\r\n * DevExtreme (esm/localization/cldr-data/parent_locales.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 \"en-150\": \"en-001\",\r\n \"en-AG\": \"en-001\",\r\n \"en-AI\": \"en-001\",\r\n \"en-AU\": \"en-001\",\r\n \"en-BB\": \"en-001\",\r\n \"en-BM\": \"en-001\",\r\n \"en-BS\": \"en-001\",\r\n \"en-BW\": \"en-001\",\r\n \"en-BZ\": \"en-001\",\r\n \"en-CC\": \"en-001\",\r\n \"en-CK\": \"en-001\",\r\n \"en-CM\": \"en-001\",\r\n \"en-CX\": \"en-001\",\r\n \"en-CY\": \"en-001\",\r\n \"en-DG\": \"en-001\",\r\n \"en-DM\": \"en-001\",\r\n \"en-ER\": \"en-001\",\r\n \"en-FJ\": \"en-001\",\r\n \"en-FK\": \"en-001\",\r\n \"en-FM\": \"en-001\",\r\n \"en-GB\": \"en-001\",\r\n \"en-GD\": \"en-001\",\r\n \"en-GG\": \"en-001\",\r\n \"en-GH\": \"en-001\",\r\n \"en-GI\": \"en-001\",\r\n \"en-GM\": \"en-001\",\r\n \"en-GY\": \"en-001\",\r\n \"en-HK\": \"en-001\",\r\n \"en-IE\": \"en-001\",\r\n \"en-IL\": \"en-001\",\r\n \"en-IM\": \"en-001\",\r\n \"en-IN\": \"en-001\",\r\n \"en-IO\": \"en-001\",\r\n \"en-JE\": \"en-001\",\r\n \"en-JM\": \"en-001\",\r\n \"en-KE\": \"en-001\",\r\n \"en-KI\": \"en-001\",\r\n \"en-KN\": \"en-001\",\r\n \"en-KY\": \"en-001\",\r\n \"en-LC\": \"en-001\",\r\n \"en-LR\": \"en-001\",\r\n \"en-LS\": \"en-001\",\r\n \"en-MG\": \"en-001\",\r\n \"en-MO\": \"en-001\",\r\n \"en-MS\": \"en-001\",\r\n \"en-MT\": \"en-001\",\r\n \"en-MU\": \"en-001\",\r\n \"en-MV\": \"en-001\",\r\n \"en-MW\": \"en-001\",\r\n \"en-MY\": \"en-001\",\r\n \"en-NA\": \"en-001\",\r\n \"en-NF\": \"en-001\",\r\n \"en-NG\": \"en-001\",\r\n \"en-NR\": \"en-001\",\r\n \"en-NU\": \"en-001\",\r\n \"en-NZ\": \"en-001\",\r\n \"en-PG\": \"en-001\",\r\n \"en-PK\": \"en-001\",\r\n \"en-PN\": \"en-001\",\r\n \"en-PW\": \"en-001\",\r\n \"en-RW\": \"en-001\",\r\n \"en-SB\": \"en-001\",\r\n \"en-SC\": \"en-001\",\r\n \"en-SD\": \"en-001\",\r\n \"en-SG\": \"en-001\",\r\n \"en-SH\": \"en-001\",\r\n \"en-SL\": \"en-001\",\r\n \"en-SS\": \"en-001\",\r\n \"en-SX\": \"en-001\",\r\n \"en-SZ\": \"en-001\",\r\n \"en-TC\": \"en-001\",\r\n \"en-TK\": \"en-001\",\r\n \"en-TO\": \"en-001\",\r\n \"en-TT\": \"en-001\",\r\n \"en-TV\": \"en-001\",\r\n \"en-TZ\": \"en-001\",\r\n \"en-UG\": \"en-001\",\r\n \"en-VC\": \"en-001\",\r\n \"en-VG\": \"en-001\",\r\n \"en-VU\": \"en-001\",\r\n \"en-WS\": \"en-001\",\r\n \"en-ZA\": \"en-001\",\r\n \"en-ZM\": \"en-001\",\r\n \"en-ZW\": \"en-001\",\r\n \"en-AT\": \"en-150\",\r\n \"en-BE\": \"en-150\",\r\n \"en-CH\": \"en-150\",\r\n \"en-DE\": \"en-150\",\r\n \"en-DK\": \"en-150\",\r\n \"en-FI\": \"en-150\",\r\n \"en-NL\": \"en-150\",\r\n \"en-SE\": \"en-150\",\r\n \"en-SI\": \"en-150\",\r\n \"hi-Latn\": \"en-IN\",\r\n \"es-AR\": \"es-419\",\r\n \"es-BO\": \"es-419\",\r\n \"es-BR\": \"es-419\",\r\n \"es-BZ\": \"es-419\",\r\n \"es-CL\": \"es-419\",\r\n \"es-CO\": \"es-419\",\r\n \"es-CR\": \"es-419\",\r\n \"es-CU\": \"es-419\",\r\n \"es-DO\": \"es-419\",\r\n \"es-EC\": \"es-419\",\r\n \"es-GT\": \"es-419\",\r\n \"es-HN\": \"es-419\",\r\n \"es-MX\": \"es-419\",\r\n \"es-NI\": \"es-419\",\r\n \"es-PA\": \"es-419\",\r\n \"es-PE\": \"es-419\",\r\n \"es-PR\": \"es-419\",\r\n \"es-PY\": \"es-419\",\r\n \"es-SV\": \"es-419\",\r\n \"es-US\": \"es-419\",\r\n \"es-UY\": \"es-419\",\r\n \"es-VE\": \"es-419\",\r\n nb: \"no\",\r\n nn: \"no\",\r\n \"pt-AO\": \"pt-PT\",\r\n \"pt-CH\": \"pt-PT\",\r\n \"pt-CV\": \"pt-PT\",\r\n \"pt-FR\": \"pt-PT\",\r\n \"pt-GQ\": \"pt-PT\",\r\n \"pt-GW\": \"pt-PT\",\r\n \"pt-LU\": \"pt-PT\",\r\n \"pt-MO\": \"pt-PT\",\r\n \"pt-MZ\": \"pt-PT\",\r\n \"pt-ST\": \"pt-PT\",\r\n \"pt-TL\": \"pt-PT\",\r\n \"az-Arab\": \"und\",\r\n \"az-Cyrl\": \"und\",\r\n \"bal-Latn\": \"und\",\r\n \"blt-Latn\": \"und\",\r\n \"bm-Nkoo\": \"und\",\r\n \"bs-Cyrl\": \"und\",\r\n \"byn-Latn\": \"und\",\r\n \"cu-Glag\": \"und\",\r\n \"dje-Arab\": \"und\",\r\n \"dyo-Arab\": \"und\",\r\n \"en-Dsrt\": \"und\",\r\n \"en-Shaw\": \"und\",\r\n \"ff-Adlm\": \"und\",\r\n \"ff-Arab\": \"und\",\r\n \"ha-Arab\": \"und\",\r\n \"iu-Latn\": \"und\",\r\n \"kk-Arab\": \"und\",\r\n \"ks-Deva\": \"und\",\r\n \"ku-Arab\": \"und\",\r\n \"ky-Arab\": \"und\",\r\n \"ky-Latn\": \"und\",\r\n \"ml-Arab\": \"und\",\r\n \"mn-Mong\": \"und\",\r\n \"mni-Mtei\": \"und\",\r\n \"ms-Arab\": \"und\",\r\n \"pa-Arab\": \"und\",\r\n \"sat-Deva\": \"und\",\r\n \"sd-Deva\": \"und\",\r\n \"sd-Khoj\": \"und\",\r\n \"sd-Sind\": \"und\",\r\n \"shi-Latn\": \"und\",\r\n \"so-Arab\": \"und\",\r\n \"sr-Latn\": \"und\",\r\n \"sw-Arab\": \"und\",\r\n \"tg-Arab\": \"und\",\r\n \"ug-Cyrl\": \"und\",\r\n \"uz-Arab\": \"und\",\r\n \"uz-Cyrl\": \"und\",\r\n \"vai-Latn\": \"und\",\r\n \"wo-Arab\": \"und\",\r\n \"yo-Arab\": \"und\",\r\n \"yue-Hans\": \"und\",\r\n \"zh-Hant\": \"und\",\r\n \"zh-Hant-MO\": \"zh-Hant-HK\"\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/parentLocale.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 PARENT_LOCALE_SEPARATOR = \"-\";\r\nexport default (parentLocales, locale) => {\r\n var parentLocale = parentLocales[locale];\r\n if (parentLocale) {\r\n return \"root\" !== parentLocale && parentLocale\r\n }\r\n return locale.substr(0, locale.lastIndexOf(PARENT_LOCALE_SEPARATOR))\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/core.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 dependencyInjector from \"../core/utils/dependency_injector\";\r\nimport parentLocales from \"./cldr-data/parent_locales\";\r\nimport getParentLocale from \"./parentLocale\";\r\nvar DEFAULT_LOCALE = \"en\";\r\nexport default dependencyInjector({\r\n locale: (() => {\r\n var currentLocale = DEFAULT_LOCALE;\r\n return locale => {\r\n if (!locale) {\r\n return currentLocale\r\n }\r\n currentLocale = locale\r\n }\r\n })(),\r\n getValueByClosestLocale: function(getter) {\r\n var locale = this.locale();\r\n var value = getter(locale);\r\n var isRootLocale;\r\n while (!value && !isRootLocale) {\r\n locale = getParentLocale(parentLocales, locale);\r\n if (locale) {\r\n value = getter(locale)\r\n } else {\r\n isRootLocale = true\r\n }\r\n }\r\n if (void 0 === value && locale !== DEFAULT_LOCALE) {\r\n return getter(DEFAULT_LOCALE)\r\n }\r\n return value\r\n }\r\n});\r\n","/*!\n * devextreme-vue\n * Version: 22.1.6\n * Build date: Tue Oct 18 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.6\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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/localization/open_xml_currency_format.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 (currencySymbol, accountingFormat) => {\r\n if (!accountingFormat) {\r\n return\r\n }\r\n var encodedCurrencySymbol = currencySymbol;\r\n if (\"string\" === typeof currencySymbol) {\r\n encodedCurrencySymbol = \"\";\r\n for (var i = 0; i < currencySymbol.length; i++) {\r\n if (\"$\" !== currencySymbol[i]) {\r\n encodedCurrencySymbol += \"\\\\\"\r\n }\r\n encodedCurrencySymbol += currencySymbol[i]\r\n }\r\n }\r\n var encodeSymbols = {\r\n \".00\": \"{0}\",\r\n \"'\": \"\\\\'\",\r\n \"\\\\(\": \"\\\\(\",\r\n \"\\\\)\": \"\\\\)\",\r\n \" \": \"\\\\ \",\r\n '\"': \""\",\r\n \"\\\\\\xa4\": encodedCurrencySymbol\r\n };\r\n var result = accountingFormat.split(\";\");\r\n for (var _i = 0; _i < result.length; _i++) {\r\n for (var symbol in encodeSymbols) {\r\n if (Object.prototype.hasOwnProperty.call(encodeSymbols, symbol)) {\r\n result[_i] = result[_i].replace(new RegExp(symbol, \"g\"), encodeSymbols[symbol])\r\n }\r\n }\r\n }\r\n return 2 === result.length ? result[0] + \"_);\" + result[1] : result[0]\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/cldr-data/accounting_formats.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 af: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"af-NA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n agq: \"#,##0.00\\xa4\",\r\n ak: \"\\xa4#,##0.00\",\r\n am: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ar: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-AE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-BH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-DJ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-DZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-EG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-EH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-ER\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-IL\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-IQ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-JO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-KM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-KW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-LB\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-LY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-MA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-MR\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-OM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-PS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-QA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-SA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-SD\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-SO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-SS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-SY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-TD\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-TN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-YE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n as: \"\\xa4\\xa0#,##,##0.00\",\r\n asa: \"#,##0.00\\xa0\\xa4\",\r\n ast: \"#,##0.00\\xa0\\xa4\",\r\n az: \"#,##0.00\\xa0\\xa4\",\r\n \"az-Cyrl\": \"#,##0.00\\xa0\\xa4\",\r\n \"az-Latn\": \"#,##0.00\\xa0\\xa4\",\r\n bas: \"#,##0.00\\xa0\\xa4\",\r\n be: \"#,##0.00\\xa0\\xa4\",\r\n \"be-tarask\": \"#,##0.00\\xa0\\xa4\",\r\n bem: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n bez: \"#,##0.00\\xa4\",\r\n bg: \"0.00\\xa0\\xa4;(0.00\\xa0\\xa4)\",\r\n bm: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n bn: \"#,##,##0.00\\xa4;(#,##,##0.00\\xa4)\",\r\n \"bn-IN\": \"#,##,##0.00\\xa4;(#,##,##0.00\\xa4)\",\r\n bo: \"\\xa4\\xa0#,##0.00\",\r\n \"bo-IN\": \"\\xa4\\xa0#,##0.00\",\r\n br: \"#,##0.00\\xa0\\xa4\",\r\n brx: \"\\xa4\\xa0#,##,##0.00\",\r\n bs: \"#,##0.00\\xa0\\xa4\",\r\n \"bs-Cyrl\": \"#,##0.00\\xa0\\xa4\",\r\n \"bs-Latn\": \"#,##0.00\\xa0\\xa4\",\r\n ca: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"ca-AD\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"ca-ES-valencia\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"ca-FR\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"ca-IT\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n ccp: \"#,##,##0.00\\xa4;(#,##,##0.00\\xa4)\",\r\n \"ccp-IN\": \"#,##,##0.00\\xa4;(#,##,##0.00\\xa4)\",\r\n ce: \"#,##0.00\\xa0\\xa4\",\r\n ceb: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n cgg: \"\\xa4#,##0.00\",\r\n chr: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ckb: \"\\xa4\\xa0#,##0.00\",\r\n \"ckb-IR\": \"\\xa4\\xa0#,##0.00\",\r\n cs: \"#,##0.00\\xa0\\xa4\",\r\n cy: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n da: \"#,##0.00\\xa0\\xa4\",\r\n \"da-GL\": \"#,##0.00\\xa0\\xa4\",\r\n dav: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n de: \"#,##0.00\\xa0\\xa4\",\r\n \"de-AT\": \"#,##0.00\\xa0\\xa4\",\r\n \"de-BE\": \"#,##0.00\\xa0\\xa4\",\r\n \"de-CH\": \"#,##0.00\\xa0\\xa4\",\r\n \"de-IT\": \"#,##0.00\\xa0\\xa4\",\r\n \"de-LI\": \"#,##0.00\\xa0\\xa4\",\r\n \"de-LU\": \"#,##0.00\\xa0\\xa4\",\r\n dje: \"#,##0.00\\xa4\",\r\n doi: \"\\xa4#,##0.00\",\r\n dsb: \"#,##0.00\\xa0\\xa4\",\r\n dua: \"#,##0.00\\xa0\\xa4\",\r\n dyo: \"#,##0.00\\xa0\\xa4\",\r\n dz: \"\\xa4#,##,##0.00\",\r\n ebu: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ee: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ee-TG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n el: \"#,##0.00\\xa0\\xa4\",\r\n \"el-CY\": \"#,##0.00\\xa0\\xa4\",\r\n en: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-001\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-150\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-AE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-AG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-AI\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-AS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-AT\": \"\\xa4\\xa0#,##0.00\",\r\n \"en-AU\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BB\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BE\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-BI\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CC\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CH\": \"\\xa4\\xa0#,##0.00;\\xa4-#,##0.00\",\r\n \"en-CK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CX\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-DE\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-DG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-DK\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-DM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-ER\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-FI\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-FJ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-FK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-FM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GB\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GD\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GI\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GU\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-HK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-IE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-IL\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-IM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-IN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-IO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-JE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-JM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-KE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-KI\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-KN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-KY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-LC\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-LR\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-LS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MP\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MT\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MU\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MV\": \"\\xa4\\xa0#,##0.00\",\r\n \"en-MW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NF\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NL\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"en-NR\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NU\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PR\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-RW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SB\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SC\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SD\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SE\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-SG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SI\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"en-SL\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SX\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TC\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TT\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TV\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-UG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-UM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-VC\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-VG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-VI\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-VU\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-WS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-ZA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-ZM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-ZW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n eo: \"\\xa4\\xa0#,##0.00\",\r\n es: \"#,##0.00\\xa0\\xa4\",\r\n \"es-419\": \"\\xa4#,##0.00\",\r\n \"es-AR\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"es-BO\": \"\\xa4#,##0.00\",\r\n \"es-BR\": \"\\xa4#,##0.00\",\r\n \"es-BZ\": \"\\xa4#,##0.00\",\r\n \"es-CL\": \"\\xa4#,##0.00\",\r\n \"es-CO\": \"\\xa4#,##0.00\",\r\n \"es-CR\": \"\\xa4#,##0.00\",\r\n \"es-CU\": \"\\xa4#,##0.00\",\r\n \"es-DO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"es-EA\": \"#,##0.00\\xa0\\xa4\",\r\n \"es-EC\": \"\\xa4#,##0.00\",\r\n \"es-GQ\": \"#,##0.00\\xa0\\xa4\",\r\n \"es-GT\": \"\\xa4#,##0.00\",\r\n \"es-HN\": \"\\xa4#,##0.00\",\r\n \"es-IC\": \"#,##0.00\\xa0\\xa4\",\r\n \"es-MX\": \"\\xa4#,##0.00\",\r\n \"es-NI\": \"\\xa4#,##0.00\",\r\n \"es-PA\": \"\\xa4#,##0.00\",\r\n \"es-PE\": \"\\xa4#,##0.00\",\r\n \"es-PH\": \"#,##0.00\\xa0\\xa4\",\r\n \"es-PR\": \"\\xa4#,##0.00\",\r\n \"es-PY\": \"\\xa4#,##0.00\",\r\n \"es-SV\": \"\\xa4#,##0.00\",\r\n \"es-US\": \"\\xa4#,##0.00\",\r\n \"es-UY\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"es-VE\": \"\\xa4#,##0.00\",\r\n et: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n eu: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n ewo: \"#,##0.00\\xa0\\xa4\",\r\n fa: \"\\u200e\\xa4\\xa0#,##0.00;\\u200e(\\xa4\\xa0#,##0.00)\",\r\n \"fa-AF\": \"\\xa4\\xa0#,##0.00;\\u200e(\\xa4\\xa0#,##0.00)\",\r\n ff: \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Adlm\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-BF\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-CM\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-GH\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-GM\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-GW\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-LR\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-MR\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-NE\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-NG\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-SL\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-SN\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Latn\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-BF\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-CM\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-GH\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-GM\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-GN\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-GW\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-LR\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-MR\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-NE\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-NG\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-SL\": \"#,##0.00\\xa0\\xa4\",\r\n fi: \"#,##0.00\\xa0\\xa4\",\r\n fil: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n fo: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fo-DK\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n fr: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-BE\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-BF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-BI\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-BJ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-BL\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CA\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CD\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CG\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CH\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CI\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CM\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-DJ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-DZ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-GA\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-GF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-GN\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-GP\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-GQ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-HT\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-KM\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-LU\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MA\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MC\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MG\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-ML\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MQ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MR\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MU\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-NC\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-NE\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-PF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-PM\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-RE\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-RW\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-SC\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-SN\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-SY\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-TD\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-TG\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-TN\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-VU\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-WF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-YT\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n fur: \"\\xa4\\xa0#,##0.00\",\r\n fy: \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n ga: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ga-GB\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n gd: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n gl: \"#,##0.00\\xa0\\xa4\",\r\n gsw: \"#,##0.00\\xa0\\xa4\",\r\n \"gsw-FR\": \"#,##0.00\\xa0\\xa4\",\r\n \"gsw-LI\": \"#,##0.00\\xa0\\xa4\",\r\n gu: \"\\xa4#,##,##0.00;(\\xa4#,##,##0.00)\",\r\n guz: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n gv: \"\\xa4#,##0.00\",\r\n ha: \"\\xa4\\xa0#,##0.00\",\r\n \"ha-GH\": \"\\xa4\\xa0#,##0.00\",\r\n \"ha-NE\": \"\\xa4\\xa0#,##0.00\",\r\n haw: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n he: \"#,##0.00\\xa0\\xa4\",\r\n hi: \"\\xa4#,##,##0.00\",\r\n \"hi-Latn\": \"\\xa4#,##,##0.00\",\r\n hr: \"#,##0.00\\xa0\\xa4\",\r\n \"hr-BA\": \"#,##0.00\\xa0\\xa4\",\r\n hsb: \"#,##0.00\\xa0\\xa4\",\r\n hu: \"#,##0.00\\xa0\\xa4\",\r\n hy: \"#,##0.00\\xa0\\xa4\",\r\n ia: \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n id: \"\\xa4#,##0.00\",\r\n ig: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ii: \"\\xa4\\xa0#,##0.00\",\r\n is: \"#,##0.00\\xa0\\xa4\",\r\n it: \"#,##0.00\\xa0\\xa4\",\r\n \"it-CH\": \"#,##0.00\\xa0\\xa4\",\r\n \"it-SM\": \"#,##0.00\\xa0\\xa4\",\r\n \"it-VA\": \"#,##0.00\\xa0\\xa4\",\r\n ja: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n jgo: \"\\xa4\\xa0#,##0.00\",\r\n jmc: \"\\xa4#,##0.00\",\r\n jv: \"\\xa4\\xa0#,##0.00\",\r\n ka: \"#,##0.00\\xa0\\xa4\",\r\n kab: \"#,##0.00\\xa4\",\r\n kam: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n kde: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n kea: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n kgp: \"\\xa4\\xa0#,##0.00\",\r\n khq: \"#,##0.00\\xa4\",\r\n ki: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n kk: \"#,##0.00\\xa0\\xa4\",\r\n kkj: \"\\xa4\\xa0#,##0.00\",\r\n kl: \"\\xa4#,##0.00;\\xa4-#,##0.00\",\r\n kln: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n km: \"#,##0.00\\xa4;(#,##0.00\\xa4)\",\r\n kn: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ko: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ko-KP\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n kok: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ks: \"\\xa4#,##0.00\",\r\n \"ks-Arab\": \"\\xa4#,##0.00\",\r\n \"ks-Deva\": \"\\xa4\\xa0#,##0.00\",\r\n ksb: \"#,##0.00\\xa4\",\r\n ksf: \"#,##0.00\\xa0\\xa4\",\r\n ksh: \"#,##0.00\\xa0\\xa4\",\r\n ku: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n kw: \"\\xa4#,##0.00\",\r\n ky: \"#,##0.00\\xa0\\xa4\",\r\n lag: \"\\xa4\\xa0#,##0.00\",\r\n lb: \"#,##0.00\\xa0\\xa4\",\r\n lg: \"#,##0.00\\xa4\",\r\n lkt: \"\\xa4\\xa0#,##0.00\",\r\n ln: \"#,##0.00\\xa0\\xa4\",\r\n \"ln-AO\": \"#,##0.00\\xa0\\xa4\",\r\n \"ln-CF\": \"#,##0.00\\xa0\\xa4\",\r\n \"ln-CG\": \"#,##0.00\\xa0\\xa4\",\r\n lo: \"\\xa4#,##0.00;\\xa4-#,##0.00\",\r\n lrc: \"\\xa4\\xa0#,##0.00\",\r\n \"lrc-IQ\": \"\\xa4\\xa0#,##0.00\",\r\n lt: \"#,##0.00\\xa0\\xa4\",\r\n lu: \"#,##0.00\\xa4\",\r\n luo: \"#,##0.00\\xa4\",\r\n luy: \"\\xa4#,##0.00;\\xa4-\\xa0#,##0.00\",\r\n lv: \"#,##0.00\\xa0\\xa4\",\r\n mai: \"\\xa4\\xa0#,##0.00\",\r\n mas: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"mas-TZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n mer: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n mfe: \"\\xa4\\xa0#,##0.00\",\r\n mg: \"\\xa4#,##0.00\",\r\n mgh: \"\\xa4\\xa0#,##0.00\",\r\n mgo: \"\\xa4\\xa0#,##0.00\",\r\n mi: \"\\xa4\\xa0#,##0.00\",\r\n mk: \"#,##0.00\\xa0\\xa4\",\r\n ml: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n mn: \"\\xa4\\xa0#,##0.00\",\r\n mni: \"\\xa4\\xa0#,##0.00\",\r\n \"mni-Beng\": \"\\xa4\\xa0#,##0.00\",\r\n mr: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ms: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ms-BN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ms-ID\": \"\\xa4#,##0.00\",\r\n \"ms-SG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n mt: \"\\xa4#,##0.00\",\r\n mua: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n my: \"\\xa4\\xa0#,##0.00\",\r\n mzn: \"\\xa4\\xa0#,##0.00\",\r\n naq: \"\\xa4#,##0.00\",\r\n nb: \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nb-SJ\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n nd: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n nds: \"\\xa4\\xa0#,##0.00\",\r\n \"nds-NL\": \"\\xa4\\xa0#,##0.00\",\r\n ne: \"\\xa4\\xa0#,##,##0.00\",\r\n \"ne-IN\": \"\\xa4\\xa0#,##,##0.00\",\r\n nl: \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-AW\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-BE\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-BQ\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-CW\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-SR\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-SX\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n nmg: \"#,##0.00\\xa0\\xa4\",\r\n nn: \"#,##0.00\\xa0\\xa4\",\r\n nnh: \"\\xa4\\xa0#,##0.00\",\r\n no: \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n nus: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n nyn: \"\\xa4#,##0.00\",\r\n om: \"\\xa4#,##0.00\",\r\n \"om-KE\": \"\\xa4#,##0.00\",\r\n or: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n os: \"\\xa4\\xa0#,##0.00\",\r\n \"os-RU\": \"\\xa4\\xa0#,##0.00\",\r\n pa: \"\\xa4\\xa0#,##0.00\",\r\n \"pa-Arab\": \"\\xa4\\xa0#,##0.00\",\r\n \"pa-Guru\": \"\\xa4\\xa0#,##0.00\",\r\n pcm: \"\\xa4#,##0.00\",\r\n pl: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n ps: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ps-PK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n pt: \"\\xa4\\xa0#,##0.00\",\r\n \"pt-AO\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-CH\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-CV\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-GQ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-GW\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-LU\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-MO\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-MZ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-PT\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-ST\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-TL\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n qu: \"\\xa4\\xa0#,##0.00\",\r\n \"qu-BO\": \"\\xa4\\xa0#,##0.00\",\r\n \"qu-EC\": \"\\xa4\\xa0#,##0.00\",\r\n rm: \"#,##0.00\\xa0\\xa4\",\r\n rn: \"#,##0.00\\xa4\",\r\n ro: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"ro-MD\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n rof: \"\\xa4#,##0.00\",\r\n ru: \"#,##0.00\\xa0\\xa4\",\r\n \"ru-BY\": \"#,##0.00\\xa0\\xa4\",\r\n \"ru-KG\": \"#,##0.00\\xa0\\xa4\",\r\n \"ru-KZ\": \"#,##0.00\\xa0\\xa4\",\r\n \"ru-MD\": \"#,##0.00\\xa0\\xa4\",\r\n \"ru-UA\": \"#,##0.00\\xa0\\xa4\",\r\n rw: \"\\xa4\\xa0#,##0.00\",\r\n rwk: \"#,##0.00\\xa4\",\r\n sa: \"\\xa4\\xa0#,##0.00\",\r\n sah: \"#,##0.00\\xa0\\xa4\",\r\n saq: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n sat: \"\\xa4\\xa0#,##0.00\",\r\n \"sat-Olck\": \"\\xa4\\xa0#,##0.00\",\r\n sbp: \"#,##0.00\\xa4\",\r\n sc: \"#,##0.00\\xa0\\xa4\",\r\n sd: \"\\xa4\\xa0#,##0.00\",\r\n \"sd-Arab\": \"\\xa4\\xa0#,##0.00\",\r\n \"sd-Deva\": \"\\xa4\\xa0#,##0.00\",\r\n se: \"#,##0.00\\xa0\\xa4\",\r\n \"se-FI\": \"#,##0.00\\xa0\\xa4\",\r\n \"se-SE\": \"#,##0.00\\xa0\\xa4\",\r\n seh: \"#,##0.00\\xa4\",\r\n ses: \"#,##0.00\\xa4\",\r\n sg: \"\\xa4#,##0.00;\\xa4-#,##0.00\",\r\n shi: \"#,##0.00\\xa4\",\r\n \"shi-Latn\": \"#,##0.00\\xa4\",\r\n \"shi-Tfng\": \"#,##0.00\\xa4\",\r\n si: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n sk: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n sl: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n smn: \"#,##0.00\\xa0\\xa4\",\r\n sn: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n so: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"so-DJ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"so-ET\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"so-KE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n sq: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sq-MK\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sq-XK\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n sr: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Cyrl\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Cyrl-BA\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Cyrl-ME\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Cyrl-XK\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Latn\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Latn-BA\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Latn-ME\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Latn-XK\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n su: \"\\xa4#,##0.00\",\r\n \"su-Latn\": \"\\xa4#,##0.00\",\r\n sv: \"#,##0.00\\xa0\\xa4\",\r\n \"sv-AX\": \"#,##0.00\\xa0\\xa4\",\r\n \"sv-FI\": \"#,##0.00\\xa0\\xa4\",\r\n sw: \"\\xa4\\xa0#,##0.00\",\r\n \"sw-CD\": \"\\xa4\\xa0#,##0.00\",\r\n \"sw-KE\": \"\\xa4\\xa0#,##0.00\",\r\n \"sw-UG\": \"\\xa4\\xa0#,##0.00\",\r\n ta: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ta-LK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ta-MY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ta-SG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n te: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n teo: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"teo-KE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n tg: \"#,##0.00\\xa0\\xa4\",\r\n th: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ti: \"\\xa4#,##0.00\",\r\n \"ti-ER\": \"\\xa4#,##0.00\",\r\n tk: \"#,##0.00\\xa0\\xa4\",\r\n to: \"\\xa4\\xa0#,##0.00\",\r\n tr: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"tr-CY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n tt: \"#,##0.00\\xa0\\xa4\",\r\n twq: \"#,##0.00\\xa4\",\r\n tzm: \"#,##0.00\\xa0\\xa4\",\r\n ug: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n uk: \"#,##0.00\\xa0\\xa4\",\r\n und: \"\\xa4\\xa0#,##0.00\",\r\n ur: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ur-IN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n uz: \"#,##0.00\\xa0\\xa4\",\r\n \"uz-Arab\": \"\\xa4\\xa0#,##0.00\",\r\n \"uz-Cyrl\": \"#,##0.00\\xa0\\xa4\",\r\n \"uz-Latn\": \"#,##0.00\\xa0\\xa4\",\r\n vai: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"vai-Latn\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"vai-Vaii\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n vi: \"#,##0.00\\xa0\\xa4\",\r\n vun: \"\\xa4#,##0.00\",\r\n wae: \"\\xa4\\xa0#,##0.00\",\r\n wo: \"\\xa4\\xa0#,##0.00\",\r\n xh: \"\\xa4#,##0.00\",\r\n xog: \"#,##0.00\\xa0\\xa4\",\r\n yav: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n yi: \"\\xa4\\xa0#,##0.00\",\r\n yo: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"yo-BJ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n yrl: \"\\xa4\\xa0#,##0.00\",\r\n \"yrl-CO\": \"\\xa4\\xa0#,##0.00\",\r\n \"yrl-VE\": \"\\xa4\\xa0#,##0.00\",\r\n yue: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"yue-Hans\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"yue-Hant\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n zgh: \"#,##0.00\\xa4\",\r\n zh: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hans\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hans-HK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hans-MO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hans-SG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hant\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hant-HK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hant-MO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n zu: \"\\xa4#,##0.00;(\\xa4#,##0.00)\"\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/intl/number.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 dxConfig from \"../../core/config\";\r\nimport localizationCoreUtils from \"../core\";\r\nimport openXmlCurrencyFormat from \"../open_xml_currency_format\";\r\nimport accountingFormats from \"../cldr-data/accounting_formats\";\r\nvar CURRENCY_STYLES = [\"standard\", \"accounting\"];\r\nvar detectCurrencySymbolRegex = /([^\\s0]+)?(\\s*)0*[.,]*0*(\\s*)([^\\s0]+)?/;\r\nvar formattersCache = {};\r\nvar getFormatter = format => {\r\n var key = localizationCoreUtils.locale() + \"/\" + JSON.stringify(format);\r\n if (!formattersCache[key]) {\r\n formattersCache[key] = new Intl.NumberFormat(localizationCoreUtils.locale(), format).format\r\n }\r\n return formattersCache[key]\r\n};\r\nvar getCurrencyFormatter = currency => new Intl.NumberFormat(localizationCoreUtils.locale(), {\r\n style: \"currency\",\r\n currency: currency\r\n});\r\nexport default {\r\n engine: function() {\r\n return \"intl\"\r\n },\r\n _formatNumberCore: function(value, format, formatConfig) {\r\n if (\"exponential\" === format) {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n return getFormatter(this._normalizeFormatConfig(format, formatConfig, value))(value)\r\n },\r\n _normalizeFormatConfig: function(format, formatConfig, value) {\r\n var config;\r\n if (\"decimal\" === format) {\r\n config = {\r\n minimumIntegerDigits: formatConfig.precision || void 0,\r\n useGrouping: false,\r\n maximumFractionDigits: String(value).length,\r\n round: value < 0 ? \"ceil\" : \"floor\"\r\n }\r\n } else {\r\n config = this._getPrecisionConfig(formatConfig.precision)\r\n }\r\n if (\"percent\" === format) {\r\n config.style = \"percent\"\r\n } else if (\"currency\" === format) {\r\n var _formatConfig$useCurr;\r\n var useAccountingStyle = null !== (_formatConfig$useCurr = formatConfig.useCurrencyAccountingStyle) && void 0 !== _formatConfig$useCurr ? _formatConfig$useCurr : dxConfig().defaultUseCurrencyAccountingStyle;\r\n config.style = \"currency\";\r\n config.currency = formatConfig.currency || dxConfig().defaultCurrency;\r\n config.currencySign = CURRENCY_STYLES[+useAccountingStyle]\r\n }\r\n return config\r\n },\r\n _getPrecisionConfig: function(precision) {\r\n var config;\r\n if (null === precision) {\r\n config = {\r\n minimumFractionDigits: 0,\r\n maximumFractionDigits: 20\r\n }\r\n } else {\r\n config = {\r\n minimumFractionDigits: precision || 0,\r\n maximumFractionDigits: precision || 0\r\n }\r\n }\r\n return config\r\n },\r\n format: function(value, _format) {\r\n if (\"number\" !== typeof value) {\r\n return value\r\n }\r\n _format = this._normalizeFormat(_format);\r\n if (\"default\" === _format.currency) {\r\n _format.currency = dxConfig().defaultCurrency\r\n }\r\n if (!_format || \"function\" !== typeof _format && !_format.type && !_format.formatter) {\r\n return getFormatter(_format)(value)\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _getCurrencySymbolInfo: function(currency) {\r\n var formatter = getCurrencyFormatter(currency);\r\n return this._extractCurrencySymbolInfo(formatter.format(0))\r\n },\r\n _extractCurrencySymbolInfo: function(currencyValueString) {\r\n var match = detectCurrencySymbolRegex.exec(currencyValueString) || [];\r\n var position = match[1] ? \"before\" : \"after\";\r\n var symbol = match[1] || match[4] || \"\";\r\n var delimiter = match[2] || match[3] || \"\";\r\n return {\r\n position: position,\r\n symbol: symbol,\r\n delimiter: delimiter\r\n }\r\n },\r\n getCurrencySymbol: function(currency) {\r\n if (!currency) {\r\n currency = dxConfig().defaultCurrency\r\n }\r\n var symbolInfo = this._getCurrencySymbolInfo(currency);\r\n return {\r\n symbol: symbolInfo.symbol\r\n }\r\n },\r\n getOpenXmlCurrencyFormat: function(currency) {\r\n var targetCurrency = currency || dxConfig().defaultCurrency;\r\n var currencySymbol = this._getCurrencySymbolInfo(targetCurrency).symbol;\r\n var closestAccountingFormat = localizationCoreUtils.getValueByClosestLocale(locale => accountingFormats[locale]);\r\n return openXmlCurrencyFormat(currencySymbol, closestAccountingFormat)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/number.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 dependencyInjector from \"../core/utils/dependency_injector\";\r\nimport {\r\n escapeRegExp\r\n} from \"../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n isPlainObject\r\n} from \"../core/utils/type\";\r\nimport {\r\n getFormatter\r\n} from \"./ldml/number\";\r\nimport config from \"../core/config\";\r\nimport errors from \"../core/errors\";\r\nimport {\r\n toFixed\r\n} from \"./utils\";\r\nimport currencyLocalization from \"./currency\";\r\nimport intlNumberLocalization from \"./intl/number\";\r\nvar hasIntl = \"undefined\" !== typeof Intl;\r\nvar MAX_LARGE_NUMBER_POWER = 4;\r\nvar DECIMAL_BASE = 10;\r\nvar NUMERIC_FORMATS = [\"currency\", \"fixedpoint\", \"exponential\", \"percent\", \"decimal\"];\r\nvar LargeNumberFormatPostfixes = {\r\n 1: \"K\",\r\n 2: \"M\",\r\n 3: \"B\",\r\n 4: \"T\"\r\n};\r\nvar LargeNumberFormatPowers = {\r\n largenumber: \"auto\",\r\n thousands: 1,\r\n millions: 2,\r\n billions: 3,\r\n trillions: 4\r\n};\r\nvar numberLocalization = dependencyInjector({\r\n engine: function() {\r\n return \"base\"\r\n },\r\n numericFormats: NUMERIC_FORMATS,\r\n defaultLargeNumberFormatPostfixes: LargeNumberFormatPostfixes,\r\n _parseNumberFormatString: function(formatType) {\r\n var formatObject = {};\r\n if (!formatType || \"string\" !== typeof formatType) {\r\n return\r\n }\r\n var formatList = formatType.toLowerCase().split(\" \");\r\n each(formatList, (index, value) => {\r\n if (NUMERIC_FORMATS.includes(value)) {\r\n formatObject.formatType = value\r\n } else if (value in LargeNumberFormatPowers) {\r\n formatObject.power = LargeNumberFormatPowers[value]\r\n }\r\n });\r\n if (formatObject.power && !formatObject.formatType) {\r\n formatObject.formatType = \"fixedpoint\"\r\n }\r\n if (formatObject.formatType) {\r\n return formatObject\r\n }\r\n },\r\n _calculateNumberPower: function(value, base, minPower, maxPower) {\r\n var number = Math.abs(value);\r\n var power = 0;\r\n if (number > 1) {\r\n while (number && number >= base && (void 0 === maxPower || power < maxPower)) {\r\n power++;\r\n number /= base\r\n }\r\n } else if (number > 0 && number < 1) {\r\n while (number < 1 && (void 0 === minPower || power > minPower)) {\r\n power--;\r\n number *= base\r\n }\r\n }\r\n return power\r\n },\r\n _getNumberByPower: function(number, power, base) {\r\n var result = number;\r\n while (power > 0) {\r\n result /= base;\r\n power--\r\n }\r\n while (power < 0) {\r\n result *= base;\r\n power++\r\n }\r\n return result\r\n },\r\n _formatNumber: function(value, formatObject, formatConfig) {\r\n if (\"auto\" === formatObject.power) {\r\n formatObject.power = this._calculateNumberPower(value, 1e3, 0, MAX_LARGE_NUMBER_POWER)\r\n }\r\n if (formatObject.power) {\r\n value = this._getNumberByPower(value, formatObject.power, 1e3)\r\n }\r\n var powerPostfix = this.defaultLargeNumberFormatPostfixes[formatObject.power] || \"\";\r\n var result = this._formatNumberCore(value, formatObject.formatType, formatConfig);\r\n result = result.replace(/(\\d|.$)(\\D*)$/, \"$1\" + powerPostfix + \"$2\");\r\n return result\r\n },\r\n _formatNumberExponential: function(value, formatConfig) {\r\n var power = this._calculateNumberPower(value, DECIMAL_BASE);\r\n var number = this._getNumberByPower(value, power, DECIMAL_BASE);\r\n if (void 0 === formatConfig.precision) {\r\n formatConfig.precision = 1\r\n }\r\n if (number.toFixed(formatConfig.precision || 0) >= DECIMAL_BASE) {\r\n power++;\r\n number /= DECIMAL_BASE\r\n }\r\n var powString = (power >= 0 ? \"+\" : \"\") + power.toString();\r\n return this._formatNumberCore(number, \"fixedpoint\", formatConfig) + \"E\" + powString\r\n },\r\n _addZeroes: function(value, precision) {\r\n var multiplier = Math.pow(10, precision);\r\n var sign = value < 0 ? \"-\" : \"\";\r\n value = (Math.abs(value) * multiplier >>> 0) / multiplier;\r\n var result = value.toString();\r\n while (result.length < precision) {\r\n result = \"0\" + result\r\n }\r\n return sign + result\r\n },\r\n _addGroupSeparators: function(value) {\r\n var parts = value.toString().split(\".\");\r\n return parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, config().thousandsSeparator) + (parts[1] ? config().decimalSeparator + parts[1] : \"\")\r\n },\r\n _formatNumberCore: function(value, format, formatConfig) {\r\n if (\"exponential\" === format) {\r\n return this._formatNumberExponential(value, formatConfig)\r\n }\r\n if (\"decimal\" !== format && null !== formatConfig.precision) {\r\n formatConfig.precision = formatConfig.precision || 0\r\n }\r\n if (\"percent\" === format) {\r\n value *= 100\r\n }\r\n if (void 0 !== formatConfig.precision) {\r\n if (\"decimal\" === format) {\r\n value = this._addZeroes(value, formatConfig.precision)\r\n } else {\r\n value = null === formatConfig.precision ? value.toPrecision() : toFixed(value, formatConfig.precision)\r\n }\r\n }\r\n if (\"decimal\" !== format) {\r\n value = this._addGroupSeparators(value)\r\n } else {\r\n value = value.toString().replace(\".\", config().decimalSeparator)\r\n }\r\n if (\"percent\" === format) {\r\n value += \"%\"\r\n }\r\n return value\r\n },\r\n _normalizeFormat: function(format) {\r\n if (!format) {\r\n return {}\r\n }\r\n if (\"function\" === typeof format) {\r\n return format\r\n }\r\n if (!isPlainObject(format)) {\r\n format = {\r\n type: format\r\n }\r\n }\r\n return format\r\n },\r\n _getSeparators: function() {\r\n return {\r\n decimalSeparator: this.getDecimalSeparator(),\r\n thousandsSeparator: this.getThousandsSeparator()\r\n }\r\n },\r\n getThousandsSeparator: function() {\r\n return this.format(1e4, \"fixedPoint\")[2]\r\n },\r\n getDecimalSeparator: function() {\r\n return this.format(1.2, {\r\n type: \"fixedPoint\",\r\n precision: 1\r\n })[1]\r\n },\r\n convertDigits: function(value, toStandard) {\r\n var digits = this.format(90, \"decimal\");\r\n if (\"string\" !== typeof value || \"0\" === digits[1]) {\r\n return value\r\n }\r\n var fromFirstDigit = toStandard ? digits[1] : \"0\";\r\n var toFirstDigit = toStandard ? \"0\" : digits[1];\r\n var fromLastDigit = toStandard ? digits[0] : \"9\";\r\n var regExp = new RegExp(\"[\" + fromFirstDigit + \"-\" + fromLastDigit + \"]\", \"g\");\r\n return value.replace(regExp, char => String.fromCharCode(char.charCodeAt(0) + (toFirstDigit.charCodeAt(0) - fromFirstDigit.charCodeAt(0))))\r\n },\r\n getNegativeEtalonRegExp: function(format) {\r\n var separators = this._getSeparators();\r\n var digitalRegExp = new RegExp(\"[0-9\" + escapeRegExp(separators.decimalSeparator + separators.thousandsSeparator) + \"]+\", \"g\");\r\n var negativeEtalon = this.format(-1, format).replace(digitalRegExp, \"1\");\r\n [\"\\\\\", \"(\", \")\", \"[\", \"]\", \"*\", \"+\", \"$\", \"^\", \"?\", \"|\", \"{\", \"}\"].forEach(char => {\r\n negativeEtalon = negativeEtalon.replace(new RegExp(\"\\\\\".concat(char), \"g\"), \"\\\\\".concat(char))\r\n });\r\n negativeEtalon = negativeEtalon.replace(/ /g, \"\\\\s\");\r\n negativeEtalon = negativeEtalon.replace(/1/g, \".*\");\r\n return new RegExp(negativeEtalon, \"g\")\r\n },\r\n getSign: function(text, format) {\r\n if (!format) {\r\n if (\"-\" === text.replace(/[^0-9-]/g, \"\").charAt(0)) {\r\n return -1\r\n }\r\n return 1\r\n }\r\n var negativeEtalon = this.getNegativeEtalonRegExp(format);\r\n return text.match(negativeEtalon) ? -1 : 1\r\n },\r\n format: function(value, _format) {\r\n if (\"number\" !== typeof value) {\r\n return value\r\n }\r\n if (\"number\" === typeof _format) {\r\n return value\r\n }\r\n _format = _format && _format.formatter || _format;\r\n if (\"function\" === typeof _format) {\r\n return _format(value)\r\n }\r\n _format = this._normalizeFormat(_format);\r\n if (!_format.type) {\r\n _format.type = \"decimal\"\r\n }\r\n var numberConfig = this._parseNumberFormatString(_format.type);\r\n if (!numberConfig) {\r\n var formatterConfig = this._getSeparators();\r\n formatterConfig.unlimitedIntegerDigits = _format.unlimitedIntegerDigits;\r\n return this.convertDigits(getFormatter(_format.type, formatterConfig)(value))\r\n }\r\n return this._formatNumber(value, numberConfig, _format)\r\n },\r\n parse: function(text, format) {\r\n if (!text) {\r\n return\r\n }\r\n if (format && format.parser) {\r\n return format.parser(text)\r\n }\r\n text = this.convertDigits(text, true);\r\n if (format && \"string\" !== typeof format) {\r\n errors.log(\"W0011\")\r\n }\r\n var decimalSeparator = this.getDecimalSeparator();\r\n var regExp = new RegExp(\"[^0-9\" + escapeRegExp(decimalSeparator) + \"]\", \"g\");\r\n var cleanedText = text.replace(regExp, \"\").replace(decimalSeparator, \".\").replace(/\\.$/g, \"\");\r\n if (\".\" === cleanedText || \"\" === cleanedText) {\r\n return null\r\n }\r\n if (this._calcSignificantDigits(cleanedText) > 15) {\r\n return NaN\r\n }\r\n var parsed = +cleanedText * this.getSign(text, format);\r\n format = this._normalizeFormat(format);\r\n var formatConfig = this._parseNumberFormatString(format.type);\r\n var power = null === formatConfig || void 0 === formatConfig ? void 0 : formatConfig.power;\r\n if (power) {\r\n if (\"auto\" === power) {\r\n var match = text.match(/\\d(K|M|B|T)/);\r\n if (match) {\r\n power = Object.keys(LargeNumberFormatPostfixes).find(power => LargeNumberFormatPostfixes[power] === match[1])\r\n }\r\n }\r\n parsed *= Math.pow(10, 3 * power)\r\n }\r\n if (\"percent\" === (null === formatConfig || void 0 === formatConfig ? void 0 : formatConfig.formatType)) {\r\n parsed /= 100\r\n }\r\n return parsed\r\n },\r\n _calcSignificantDigits: function(text) {\r\n var [integer, fractional] = text.split(\".\");\r\n var calcDigitsAfterLeadingZeros = digits => {\r\n var index = -1;\r\n for (var i = 0; i < digits.length; i++) {\r\n if (\"0\" !== digits[i]) {\r\n index = i;\r\n break\r\n }\r\n }\r\n return index > -1 ? digits.length - index : 0\r\n };\r\n var result = 0;\r\n if (integer) {\r\n result += calcDigitsAfterLeadingZeros(integer.split(\"\"))\r\n }\r\n if (fractional) {\r\n result += calcDigitsAfterLeadingZeros(fractional.split(\"\").reverse())\r\n }\r\n return result\r\n }\r\n});\r\nnumberLocalization.inject(currencyLocalization);\r\nif (hasIntl) {\r\n numberLocalization.inject(intlNumberLocalization)\r\n}\r\nexport default numberLocalization;\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/editors/editor.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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.6\r\n * Build date: Tue Oct 18 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/core/class.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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 isWindow\r\n} from \"./utils/type\";\r\nvar wrapOverridden = function(baseProto, methodName, method) {\r\n return function() {\r\n var prevCallBase = this.callBase;\r\n this.callBase = baseProto[methodName];\r\n try {\r\n return method.apply(this, arguments)\r\n } finally {\r\n this.callBase = prevCallBase\r\n }\r\n }\r\n};\r\nvar clonePrototype = function(obj) {\r\n var func = function() {};\r\n func.prototype = obj.prototype;\r\n return new func\r\n};\r\nvar redefine = function(members) {\r\n var overridden;\r\n var memberName;\r\n var member;\r\n if (!members) {\r\n return this\r\n }\r\n for (memberName in members) {\r\n member = members[memberName];\r\n overridden = \"function\" === typeof this.prototype[memberName] && \"function\" === typeof member;\r\n this.prototype[memberName] = overridden ? wrapOverridden(this.parent.prototype, memberName, member) : member\r\n }\r\n return this\r\n};\r\nvar include = function() {\r\n var classObj = this;\r\n var argument;\r\n var name;\r\n var i;\r\n var hasClassObjOwnProperty = Object.prototype.hasOwnProperty.bind(classObj);\r\n var isES6Class = !hasClassObjOwnProperty(\"_includedCtors\") && !hasClassObjOwnProperty(\"_includedPostCtors\");\r\n if (isES6Class) {\r\n classObj._includedCtors = classObj._includedCtors.slice(0);\r\n classObj._includedPostCtors = classObj._includedPostCtors.slice(0)\r\n }\r\n for (i = 0; i < arguments.length; i++) {\r\n argument = arguments[i];\r\n if (argument.ctor) {\r\n classObj._includedCtors.push(argument.ctor)\r\n }\r\n if (argument.postCtor) {\r\n classObj._includedPostCtors.push(argument.postCtor)\r\n }\r\n for (name in argument) {\r\n if (\"ctor\" === name || \"postCtor\" === name || \"default\" === name) {\r\n continue\r\n }\r\n classObj.prototype[name] = argument[name]\r\n }\r\n }\r\n return classObj\r\n};\r\nvar subclassOf = function(parentClass) {\r\n var hasParentProperty = Object.prototype.hasOwnProperty.bind(this)(\"parent\");\r\n var isES6Class = !hasParentProperty && this.parent;\r\n if (isES6Class) {\r\n var baseClass = Object.getPrototypeOf(this);\r\n return baseClass === parentClass || baseClass.subclassOf(parentClass)\r\n } else {\r\n if (this.parent === parentClass) {\r\n return true\r\n }\r\n if (!this.parent || !this.parent.subclassOf) {\r\n return false\r\n }\r\n return this.parent.subclassOf(parentClass)\r\n }\r\n};\r\nvar abstract = function() {\r\n throw errors.Error(\"E0001\")\r\n};\r\nvar copyStatic = function() {\r\n var hasOwn = Object.prototype.hasOwnProperty;\r\n return function(source, destination) {\r\n for (var key in source) {\r\n if (!hasOwn.call(source, key)) {\r\n return\r\n }\r\n destination[key] = source[key]\r\n }\r\n }\r\n}();\r\nvar classImpl = function() {};\r\nclassImpl.inherit = function(members) {\r\n var inheritor = function() {\r\n if (!this || isWindow(this) || \"function\" !== typeof this.constructor) {\r\n throw errors.Error(\"E0003\")\r\n }\r\n var instance = this;\r\n var ctor = instance.ctor;\r\n var includedCtors = instance.constructor._includedCtors;\r\n var includedPostCtors = instance.constructor._includedPostCtors;\r\n var i;\r\n for (i = 0; i < includedCtors.length; i++) {\r\n includedCtors[i].call(instance)\r\n }\r\n if (ctor) {\r\n ctor.apply(instance, arguments)\r\n }\r\n for (i = 0; i < includedPostCtors.length; i++) {\r\n includedPostCtors[i].call(instance)\r\n }\r\n };\r\n inheritor.prototype = clonePrototype(this);\r\n copyStatic(this, inheritor);\r\n inheritor.inherit = this.inherit;\r\n inheritor.abstract = abstract;\r\n inheritor.redefine = redefine;\r\n inheritor.include = include;\r\n inheritor.subclassOf = subclassOf;\r\n inheritor.parent = this;\r\n inheritor._includedCtors = this._includedCtors ? this._includedCtors.slice(0) : [];\r\n inheritor._includedPostCtors = this._includedPostCtors ? this._includedPostCtors.slice(0) : [];\r\n inheritor.prototype.constructor = inheritor;\r\n inheritor.redefine(members);\r\n return inheritor\r\n};\r\nclassImpl.abstract = abstract;\r\nexport default classImpl;\r\n","/**\r\n * DevExtreme (esm/events/hover.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 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":""}